【Googleドキュメント】Docs→YAMLメタ情報抽出!静的サイト連携

【Googleドキュメント】Docs→YAMLメタ情報抽出!静的サイト連携
🛡️ 超解決

ブログやドキュメントサイトを静的サイトジェネレーターで運用している方の中には、Google ドキュメントで記事を下書きしてからYAMLフロントマターを含むMarkdownに変換したいとお考えの方も多いでしょう。タイトルや作成日、タグといったメタ情報を手動で打ち込むのは非効率です。この記事では、Google ドキュメントからYAMLメタ情報を自動的に抽出し、静的サイトと連携する方法を詳しく解説します。

具体的には、Google Apps Script を使ってドキュメント内の特定のテキストを解析し、YAML形式に整形して出力する手順を紹介します。この方法を覚えれば、毎回手作業でメタデータを書く手間を省き、更新作業を効率化できます。

【要点】Google ドキュメントのテキストからYAMLフロントマターを抽出し、静的サイトに連携する方法

  • Apps Script のカスタム関数: ドキュメント内の特定パターン(例:「title:」)を検索し、YAMLブロックを生成します。
  • Google ドキュメントのアドオン: 「Docs to Markdown」などの拡張機能を使えば、変換時にメタ情報を自動的に埋め込めます。
  • テンプレートを活用した手動抽出: ドキュメントの見出しや表を利用して、YAML要素を整理し、コピー&ペーストで連携します。

ADVERTISEMENT

なぜGoogle ドキュメントからYAMLメタ情報を抽出するのか

静的サイトジェネレーター(Hugo、Jekyll、Next.jsなど)では、各記事の先頭にYAMLフロントマターを記述するのが一般的です。タイトル、日付、タグ、カテゴリなどの情報をこの形式で管理することで、サイトの自動生成や一覧表示が簡単になります。しかし、Google ドキュメントで記事を執筆する場合、メタ情報を後から手動でMarkdownに追加する必要があり、手間とミスの原因となります。

そこで、ドキュメント内にメタ情報を埋め込んでおき、抽出・変換する仕組みを用意すれば、執筆から公開までの流れをスムーズにできます。特にチームで運用する場合、統一されたフォーマットでメタデータを管理できるメリットは大きいです。

Google ドキュメントからYAMLメタ情報を抽出する具体的な手順

方法1:Google Apps Script によるカスタム抽出

最も柔軟な方法は、Google Apps Script を使ってドキュメント内のテキストを解析し、YAMLメタ情報を生成することです。以下の手順で実装します。

  1. スクリプトエディタを開く
    Google ドキュメントを開き、メニューから「拡張機能」→「Apps Script」を選択します。スクリプトエディタが新しいタブで開きます。
  2. 関数を作成する
    エディタに以下のようなコードを記述します。この関数は、ドキュメントの最初の段落から「title:」「date:」など特定のキーワードを探し、YAML形式に整形します。function extractYaml() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var text = body.getText();
    var lines = text.split(‘\n’);
    var yaml = ”;
    for (var i = 0; i < lines.length; i++) { var line = lines[i]; if (line.match(/^(title|date|tags|category):/i)) { yaml += line + '\n'; } if (line.startsWith('---')) break; } return yaml; }
  3. カスタム関数をドキュメントで使う
    スクリプトを保存したら、ドキュメント上で「=extractYaml()」と入力すると、抽出されたYAMLメタ情報が表示されます。ただし、カスタム関数はリアルタイム更新されないため、手動で再計算が必要です。

方法2:アドオン「Docs to Markdown」を利用する

「Docs to Markdown」アドオンは、Google ドキュメントをMarkdownに変換する際、ドキュメントのプロパティ(タイトル、見出しなど)を自動的にYAMLフロントマターとして埋め込めます。

  1. アドオンをインストールする
    Google ドキュメントのメニューから「拡張機能」→「アドオン」→「アドオンを取得」を開き、「Docs to Markdown」を検索してインストールします。
  2. 変換設定を確認する
    アドオン起動後、設定画面で「Include YAML front matter」にチェックを入れます。抽出する項目(タイトル、日付など)をカスタマイズできます。
  3. 変換を実行する
    「Convert」ボタンをクリックすると、Markdownファイルが生成されます。このファイルにはドキュメントのメタ情報がYAML形式で先頭に挿入されています。

方法3:テンプレートを使った手動抽出

スクリプトを使わずに、あらかじめテンプレートを用意してメタ情報を入力する方法です。ドキュメントの先頭にYAML形式のプレースホルダーを用意しておき、執筆後にコピーして使います。

  1. テンプレートドキュメントを作成する
    新しいドキュメントに以下のようなテキストを入力します。—
    title: {{タイトル}}
    date: {{日付}}
    tags: [{{タグ}}]
    category: {{カテゴリ}}
  2. 記事執筆時にプレースホルダーを置き換える
    実際の記事を書くときは、このテンプレートをコピーして、{{ }}内を実際の値に置き換えます。
  3. 抽出してMarkdownファイルに貼り付ける
    完成したYAMLブロックをコピーし、Markdownエディタで記事本文の先頭に貼り付けます。この方法はスクリプト不要で、誰でもすぐに始められます。

抽出時の注意点とよくあるトラブル

抽出対象のテキストが正しく認識されない

Apps Script のパターンマッチが大文字小文字を区別するため、キーワードの表記が統一されていないと抽出漏れが発生します。必ず「Title:」や「title:」など、ドキュメント内で使用する表記を決めておきましょう。また、正規表現で /i フラグを使えば大文字小文字を区別しなくなります。

アドオンの変換結果に不要な情報が含まれる

「Docs to Markdown」はドキュメントのプロパティだけでなく、見出しや段落のスタイル情報も変換することがあります。設定画面で「Include YAML front matter」のみ有効にし、不要な項目はオフにしてください。

テンプレート方式で日付の形式がバラバラになる

日付の形式を「2025-03-28」のようにISO 8601形式に統一しないと、静的サイトジェネレーターでエラーになることがあります。テンプレート内に「date: {{日付}}」と書く代わりに、具体的な書式を例示しておくと安全です。

ADVERTISEMENT

3つの方法の比較

方法 自動化度 カスタマイズ性 導入のしやすさ
Apps Script 高い(完全自動) 非常に高い 中程度(プログラミング知識が必要)
Docs to Markdown 高い(変換時に自動抽出) 中程度(設定項目に依存) 簡単(アドオンインストールのみ)
テンプレート方式 低い(手動で置き換え) 高い(自由に書式を決められる) 最も簡単

まとめ

この記事では、Google ドキュメントからYAMLメタ情報を抽出して静的サイトに連携する3つの方法を紹介しました。Apps Script を使えば完全自動化でき、「Docs to Markdown」アドオンならノーコードで実現できます。テンプレート方式は最も簡単で、導入もすぐにできます。

まずはテンプレート方式から試して、作業の流れを把握してみてください。慣れてきたら、Apps Script で自動抽出に挑戦すると、さらに効率的になります。これらの方法を使えば、Google ドキュメントを使った記事作成から静的サイトへの公開まで、一貫したワークフローを構築できます。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

SPONSORED