Skip to content
blog.sunasand.dev
Go back

description listを使う

Markdownを書いていて、文章構造をどう表すかに悩むことがそれなりにある。

説明するのも面倒なので具体例を挙げる。 これはGeminiとの過去のチャットから持ってきた。

- **TLC (Triple-Level Cell):** 一般的なノートPCや自作PCから、データセンターのサーバー用途まで、現在のストレージの主役です。初期は耐久性が懸念されていましたが、フラッシュメモリを垂直に重ねる「3D NAND技術」の成熟とコントローラーの進化により、かつてのMLCに匹敵する耐久性と速度を確保できるようになったため、市場をほぼ制覇しています。
- **QLC (Quad-Level Cell):** コンシューマー向けの安価な大容量SSDや、データセンターにおける「読み込みメイン(Read Intensive)」の用途で実用化が完了しています。書き込み寿命(TBW)が短く、連続書き込み時の速度低下が激しいという弱点はありますが、大容量データを保存する用途においてHDDを完全に置き換える存在としてシェアを伸ばしています。
- **SLCキャッシュ技術としての活用:** SLC自体はメインストレージから消えましたが、技術としては生き残っています。現在のTLC/QLC搭載SSDは、空き容量の一部を擬似的に「SLC(1セルあたり1ビット)」として高速に動作させ、書き込みバッファとして利用する「SLCキャッシュアルゴリズム」を実装することで、見かけ上のパフォーマンスを維持しています。

こういう文章はheadingとして分けるのも箇条書きとして書くのも微妙に感じて、あまりよい書き方を見つけられていなかった。

ちなみにClaudeはこういう書き方をよく使う。

**TLC (Triple-Level Cell):**
一般的なノートPCや自作PCから、データセンターのサーバー用途まで、現在のストレージの主役です。初期は耐久性が懸念されていましたが、フラッシュメモリを垂直に重ねる「3D NAND技術」の成熟とコントローラーの進化により、かつてのMLCに匹敵する耐久性と速度を確保できるようになったため、市場をほぼ制覇しています。

**QLC (Quad-Level Cell):**
コンシューマー向けの安価な大容量SSDや、データセンターにおける「読み込みメイン(Read Intensive)」の用途で実用化が完了しています。書き込み寿命(TBW)が短く、連続書き込み時の速度低下が激しいという弱点はありますが、大容量データを保存する用途においてHDDを完全に置き換える存在としてシェアを伸ばしています。

**SLCキャッシュ技術としての活用:**
SLC自体はメインストレージから消えましたが、技術としては生き残っています。現在のTLC/QLC搭載SSDは、空き容量の一部を擬似的に「SLC(1セルあたり1ビット)」として高速に動作させ、書き込みバッファとして利用する「SLCキャッシュアルゴリズム」を実装することで、見かけ上のパフォーマンスを維持しています。

見た目としてはこっちのほうが好きだが、意味論的にどうなのという気持ちにはなる。

description list

<dl>知ってますか?自分は知りませんでした。

当初はdefinition listという名前だったのが、HTML5でdescription listに変わったらしい。 definition listとは用語リストのことで、description listに変わったのはより幅広い用途を想定してのことだとAIは主張しているが、ちゃんと調べてはいない。

標準のMarkdownには存在しないので、多くの処理系では拡張機能などを用いる必要がある。一般的には以下の記法が使われている。

title
: description

このブログではこんな感じの見た目になるようにしている。


TLC (Triple-Level Cell)
一般的なノートPCや自作PCから、データセンターのサーバー用途まで、現在のストレージの主役です。初期は耐久性が懸念されていましたが、フラッシュメモリを垂直に重ねる「3D NAND技術」の成熟とコントローラーの進化により、かつてのMLCに匹敵する耐久性と速度を確保できるようになったため、市場をほぼ制覇しています。
QLC (Quad-Level Cell)
コンシューマー向けの安価な大容量SSDや、データセンターにおける「読み込みメイン(Read Intensive)」の用途で実用化が完了しています。書き込み寿命(TBW)が短く、連続書き込み時の速度低下が激しいという弱点はありますが、大容量データを保存する用途においてHDDを完全に置き換える存在としてシェアを伸ばしています。
SLCキャッシュ技術としての活用
SLC自体はメインストレージから消えましたが、技術としては生き残っています。現在のTLC/QLC搭載SSDは、空き容量の一部を擬似的に「SLC(1セルあたり1ビット)」として高速に動作させ、書き込みバッファとして利用する「SLCキャッシュアルゴリズム」を実装することで、見かけ上のパフォーマンスを維持しています。

Obsidianでdescription listを使う

拡張機能で記法を導入する。

デフォルトでは用語リストっぽい見た目をしているのでCSSスニペットで調整する。 ライブプレビューとリーディングモードで構造が違うため、それぞれでCSSを書く必要がある。

上記の拡張機能だとそれぞれこんな感じだった。devtoolsで確認できる。

ライブプレビュー

<div class="dl-dt">...</div>
<div class="dl-dd-reg">...</div>
<div class="dl-dt">...</div>
<div class="dl-dd-reg">...</div>live_preview.html

リーディングモード

<dl>
  <dt>...</dt>
  <dd>...</dd>
</dl>
<dl>
  <dt>...</dt>
  <dd>...</dd>
</dl>reading.html

Quartzでdescription listを使う

remark用のdefinition listプラグインを利用した。

具体的なことはCodexが調査してやってくれたので、ログを貼り付けておく。

今回やったことは、Quartz に definition list を足すための local plugin を作り、その挙動を Obsidian 寄りに調整した、という内容です。最初に確認したのは、Quartz がremark系のパイプラインで Markdown を処理していることでした。そのため、既存 parser を差し替えるのではなく、Quartz の transformer plugin としてremark-definition-listを差し込む方針にしました。 実装としては、repo 内に local path で読める最小構成の plugin を追加しました。plugin ではremark-definition-listを組み込み、definition list 用の独自ノードが最終的にdl / dt / ddとして HTML に変換されるよう補助を入れています。あわせて、Quartz の設定側にもこの local plugin を追加して、有効化しました。 その後、Obsidian に近い書き味に合わせるため、definition list の各項目の間に空行がなくても解釈できるよう調整しました。これは parser を大きくいじるのではなく、plugin の前処理でテキストを軽く正規化する方法を取りました。具体的には、「definition list 項目が連続している」と判断できる箇所にだけ空行を補ってから、既存のremark-definition-listに渡しています。これにより、1行記法までは広げずに、必要だった「項目間の空行不要」だけを実現しています。



Next Post
Quartz v5によるブログ環境