ガイド · Google ドキュメント → HTML

Google ドキュメントからきれいな HTML を取り出す

ドキュメントから数段落コピーして CMS に貼ると、手元にないスタイルシートを指す c1 や c17 といったクラス名に文字が包まれて出てきます。

そのマークアップには具体的な問題が三つあります。それが何かを知ってしまえば、直し方は一回の貼り付けです。

変換ツールを開く

コピーするのは内容、リンクではない

最初につまずくのはここです。ドキュメントのメニューから「ダウンロード → ウェブページ」を選ぶと、完全な HTML 文書と埋め込みのスタイルシートが入った zip が手に入ります —— ページ丸ごと、スタイルごとです。

欲しいのはクリップボードのほうです。ドキュメント上で内容を選択してコピーすると、リッチテキストの HTML 版がそこに載ります。その版はスタイルシートを持たずに構造を運んできます。

  1. 01ドキュメントを開いて欲しい範囲を選択します。全部なら Ctrl+A。
  2. 02Ctrl+C でコピーします —— 「リンクをコピー」ではありません。あれはドキュメントの URL しか渡しません。
  3. 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