Webページの更新履歴をJSONで一元管理し、JavaScriptでHTMLに自動表示する方法

複数ページを運用する中で、更新履歴の管理が煩雑になっていませんか?
本記事では、更新履歴を外部 JSON ファイルで一元管理。JavaScript で HTML に自動表示する仕組みを紹介します。

なぜ外部JSONで管理するのか?

従来は各Webページに直接HTMLで更新履歴を記載していました。

1ページずつ更新する場合は問題ありません。複数ページをまとめて更新する際には、履歴の記載が大きな負担になります。

そこで、更新履歴を外部JSONファイルに集約。そして、JavaScriptでHTMLに自動出力する方法を採用しました。

この仕組みにより、履歴の記述作業を効率化でき、保守性も向上します。

更新履歴を管理する JSON の構造

Web ページごとに更新履歴を管理する JSON を作成しました。更新履歴の id,更新日時(ISO 形式)の date,更新内容を description としています。

[
    {
        "id": 1,
        "date": "2025-10-05",
        "description": "新規作成"
    },
    {
        "id": 2,
        "date": "2025-10-26",
        "description": "誤植を訂正"
    }
]

HTML を操作する JavaScript

jQuery(v3.7.1)を用いて、外部JSONを読み込み、HTMLの table に更新履歴を表示します。

  • 外部ファイルの JSON を読み込み
  • HTML の table フォーマットで出力
$(document).ready(function () {
    const $table = $("table[data-json-path]");
    const jsonPath = $table.data("json-path");

    if (!jsonPath) {
        console.warn("更新履歴の JSON パスが指定されていません。");
        return;
    }

    $.getJSON(jsonPath)
        .done(function (data) {
            const $tbody = $("#update-history-body");
            $tbody.empty();

            data.forEach((entry) => {
                const row = `
          <tr>
            <th scope="row">${entry.id}</th>
            <td><time datetime="${entry.date}">${entry.date}</time></td>
            <td>${entry.description}</td>
          </tr>
        `;
                $tbody.append(row);
            });
        })
        .fail(function () {
            $("#update-history-body").html('<tr><td colspan="3">更新履歴の読み込みに失敗しました。</td></tr>');
        });
});

HTML 部分

更新履歴は table 形式で形成しています。tbody 部分を先ほどの JavaScript で書き込んでいきます。

<table class="table table-striped" data-json-path="js/update-history.json">
    <thead>
        <tr class="table-primary">
            <th scope="col">#</th>
            <th scope="col">更新年月日</th>
            <th scope="col">更新内容</th>
        </tr>
    </thead>
    <tbody id="update-history-body">
        <tr>
            <td colspan="3">読み込み中...</td>
        </tr>
    </tbody>
</table>

まとめ

更新履歴を外部JSONで管理することで、Webページの保守性と作業効率が大幅に向上します。

今後は他の共通要素にもこの仕組みを応用し、よりスケーラブルなWeb運用を目指していきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です