[JavaScript] Markdown形式をそのまま Webページとして表示する
戻る > エンジニア - Web開発
関連:[JavaScript] Markdown形式をそのまま Webページとして表示する
関連:[JavaScript] marked.js のコードブロックに色付けする
関連:[JavaScript/Node.js] marked のコードブロックを Prism
でプリレンダする
概要
Webサイトの作成には HTML が必須である
Wordpress
とかもいろいろあるが、結局は自分の手でやりたいというのがエンジニアの性である
・・・と思っている
しかし、HTMLを触っていくと、タグ打つのは面倒だし、
私なんかのようにサイトを何度も改装していると、サイトデザインに併せて書き換えするのも面倒になってくる
そこで標準化するために
Markdown
書式をHTML出力とすることで、今後の改装にも対応できるようにする
と考えた
もちろん、改装都度思想は変わるので、結局書き換えは必要かもしれないが・・・
実装
// CDNからインポート
import { marked } from 'https://cdn.jsdelivr.net/npm/marked/lib/marked.esm.js';
// Markdown形式の文字列
markdownText = "markdown texts...";
// id="html_markdown" となっている箇所に反映
document.getElementById('html_markdown').innerHTML = marked(markdownText)
たったこれだけである
markdownText
としているところには文字列が入ればいいので、当然ファイルからインポートにすれば編集の利便性は高くなる
fetch
を使った例は下記の通り
// Markdown形式の文字列 を ファイル「document.md」のものに
markdownText = await fetch(`/path/to/document.md`).then(res => res.text());
後はURLのクエリとかで読み込むファイルを変えれば、それで markdown 形式で編集できるwebサイトの完成である
問題点
この形式の問題点は、ページ読み込み時にちらつくこと
このサイト(2025/5/18時点) がちょうどそうである
なので、そこに何らかの工夫は必要となる
-
案1 : プリレンダしてアップロード
-
変換プログラムを作る必要がある
- ローカル実行で良いので、Node.js とかを使うことはできる
-
変換プログラムを作る必要がある
- 案2 : ちらつきをごまかすフェードイン/アウトを実装