更新ログ
2025/02/20
remark-breaksを追加して改行を有効化rehype-github-alertsを追加してalertブロックと引用ブロックを追加
2025/03/08
remark-youtubeで YouTube 埋め込みを追加remark-collapseで折りたたみを追加
テンプレート
このブログは、sub-tさんの個人ブログテンプレートをフォークしてデプロイしています。
GitHub - sub-t/blog-template: Next.js + markdown Blog Template
Next.js + markdown Blog Template. Contribute to sub-t/blog-template development by creating an account on GitHub.
追加した機能
デプロイして使う上で、いくつか追加したい機能があったのでいろいろと実装しました。
リンクカードを実装
remark-link-cardでリンクカードを実装remarkParseでパースした後、rlcでリンクカードを追加remarkRehypeとrehypeStringifyで変換時にallowDangerousHtmlを true にrlc.cssにリンクカードの CSS を配置
Google
世界中のあらゆる情報を検索するためのツールを提供しています。さまざまな検索機能を活用して、お探しの情報を見つけてください。
Github Flavored Markdown を有効化
remark-Gfmで Github Flavored Markdown を有効化
タスクリスト
- やること
- やり終わったこと
打消し線
チルダで囲むと打消し線
注釈
注釈とか1
URL, mailto の自動リンカー
www.example.com, https://example.com, [email protected].
コードブロックの拡張
rehype-code-titlesとrehype-prism-plusでコードブロックにタイトルとシンタックスハイライト・行番号を追加
src/lib/markdownToHtml.ts
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
import rehypeCodeTitles from 'rehype-code-titles';
import { rehypeGithubAlerts } from 'rehype-github-alerts';
import rehypePrism from 'rehype-prism-plus';
import rehypeSlug from 'rehype-slug';
import rehypeStringify from 'rehype-stringify';
import remarkBreaks from 'remark-breaks';
import remarkGfm from 'remark-gfm';
import rlc from 'remark-link-card';
import remarkParse from 'remark-parse';
import remarkRehype from 'remark-rehype';
import remarkYoutube from 'remark-youtube';
import { unified } from 'unified';
export default async function markdownToHtml(markdown: string) {
const result = await unified()
.use(remarkParse)
.use(remarkBreaks)
.use(remarkGfm)
.use(rlc)
.use(remarkYoutube)
.use(remarkRehype, { allowDangerousHtml: true })
.use(rehypeCodeTitles)
.use(rehypePrism, { ignoreMissing: true })
.use(rehypeAutolinkHeadings)
.use(rehypeStringify, { allowDangerousHtml: true })
.use(rehypeSlug)
.use(rehypeGithubAlerts, true)
.process(markdown);
return result.toString();
}
改行
remark-breaksを追加して改行を有効化しました。
これまでは markdown 通りの改行が出来ていませんでしたが、これで改行が出来るようになりました。
ここを
改行
アラートブロック
rehype-github-alertsを追加してalertブロックと引用ブロックを追加しました。
alert
> [!NOTE]
> ユーザーが流し読みしているときでも考慮すべき情報を強調します。
> [!TIP]
> コードをよりよくするための手法を強調します。
> [!IMPORTANT]
> 重要な部分を強調表示します。
> [!WARNING]
> 潜在的なリスクを含み、ユーザーの注意を必要とする重要な内容です。
> [!CAUTION]
> リスクを含み、するべきではないことを強調表示します。
note
> 引用です。
> > 二重引用もできます。
Note
Tip
Important
Warning
Caution
引用です。
二重引用もできます。
YouTube 埋め込み
[](https://www.youtube.com/watch?v=yrwoBOHiR2E)
埋め込みたいリンクをインラインリンク形式で書き、remark-link-cardの処理を回避
折りたたみ
開いてみる
見えた🎉🎉🎉その他
Google Analyticsでトラフィック解析を実装
Footnotes
-
見たな。 ↩
