ガイド · Google ドキュメント → HTML
Google ドキュメントからきれいな HTML を取り出す
ドキュメントから数段落コピーして CMS に貼ると、手元にないスタイルシートを指す c1 や c17 といったクラス名に文字が包まれて出てきます。
そのマークアップには具体的な問題が三つあります。それが何かを知ってしまえば、直し方は一回の貼り付けです。
コピーするのは内容、リンクではない
最初につまずくのはここです。ドキュメントのメニューから「ダウンロード → ウェブページ」を選ぶと、完全な HTML 文書と埋め込みのスタイルシートが入った zip が手に入ります —— ページ丸ごと、スタイルごとです。
欲しいのはクリップボードのほうです。ドキュメント上で内容を選択してコピーすると、リッチテキストの HTML 版がそこに載ります。その版はスタイルシートを持たずに構造を運んできます。
- 01ドキュメントを開いて欲しい範囲を選択します。全部なら Ctrl+A。
- 02Ctrl+C でコピーします —— 「リンクをコピー」ではありません。あれはドキュメントの URL しか渡しません。
- 03変換ツールのページの入力欄に貼るか、そのページのどこかで Ctrl+V を押します。ログインもドライブの権限も関係ありません。ブラウザが渡すのはクリップボードだけで、ほかには何もありません。
問題その一:クラスの山
Google のクリップボード HTML は、ほとんどすべての要素にクラスを付けます —— c0、c1、c17、リストの項目には lst-kix_ で始まるもの。どれも文書ごとに生成され、参照先の CSS はドキュメント側に残ります。
つまり単なるノイズではなく、切れた参照です。あなたのページでは何もせず、自分のクラス名と衝突し、あとから編集しようとしたときにマークアップを読めなくします。
取り除きはパターンで行います。c に数字が続くもの、lst-kix_ で始まるもの、docs-internal-guid の id。あなた自身のクラスが混ざっていても触りません。
<p class="c3"><span class="c1">A sentence.</span></p><p>A sentence.</p>問題その二:太字にならない太字の外側
ドキュメントはコピーした内容を <b style="font-weight:normal"> で包みます。太字を明示的に切っている <b> タグ —— エディタが内部で書式を管理する仕組みから来た奇妙なものです。
style 属性が取り除かれる場所(ほとんどの CMS がそうです)に貼ると、そのブロック全体が太字になります。ここではこのタグを残さず外すので、内容は本来あるべき入れ子の深さで出てきます。
同じ処理で、クラス名が消えたあとに残る空の <span> も取り除きます。二段落の貼り付けが十二行になるのは、あれのせいです。
問題その三:リンクがすべてリダイレクト
ドキュメントのリンクは、行き先ではなく google.com/url?q=https://example.com/… を指して出てきます。Google がエディタ内でのクリック計測に使っているものです。
ページに載せると、サイトの外部リンクが全部 Google を経由し、ステータスバーには違う URL が出て、そのリダイレクタが変わった日に全部壊れます。
この外側は本当の行き先まで巻き戻します。入れ子になっていれば何段でも。追跡パラメータも一緒に落とします —— utm_source の一族、gclid、fbclid、ほかにいくつか。
<a href="https://www.google.com/url?q=https://example.com/a%3Futm_source%3Ddoc">link</a><a href="https://example.com/a">link</a>残るもの、そちらの仕事として残るもの
見出し、段落、リスト、表、リンク、太字と斜体 —— つまりその文書です。スクリプト・イベントハンドラ・インラインスタイルは消えます。クリップボードの HTML は Web のどのページから来たものでもありうるので、信頼できない入力として扱っています。
整理ツールがそちらに残すものが二つ。Google の空の間隔用の段落は <p></p> として届くので、不要なものは消してください。それとドキュメントの画像は Google のサーバーにあり、URL は期限切れになります —— ダウンロードして自分でホストしてください。そうしないと、あとになってページから消えます。
選択、コピー、貼り付け。クリップボードはブラウザのなかで読まれ、どこにも送られません。
Google ドキュメント → HTML