10 ポイント 投稿者 GN⁺ 2025-11-24 | 7件のコメント | WhatsAppで共有
  • 開発ドキュメント作成で広く使われる Markdown は、単純さとアクセシビリティのおかげで人気が高いが、構造的な表現力の不足により大規模な技術文書には限界がある
  • Markdown は 暗黙的な型システム のように機能するため、一貫性やスキーマ検証が不可能で、さまざまな Markdown 方言 (flavor) 間の互換性問題も存在する
  • MDX などの拡張構文は表現力を高めるが、システム間の 移植性と標準化の不足 によって、かえって複雑さを増している
  • reStructuredTextAsciiDocDocBookDITA などは明示的な構造と セマンティックマークアップ (semantic markup) を提供し、再利用性と機械可読性を強化する
  • 小規模な文書には Markdown で十分だが、大規模・マルチチャネル文書管理 には構造化フォーマットへの移行が必要である

Markdownの構造的限界

  • Markdown は 人が読みやすい単純な文法 により、GitHub や静的サイトで見栄えのよい文書を作れる
    • しかしコンテンツの意味を記述できないため、機械が理解できる構造情報 が不足している
  • 検索エンジン、LLM、IDE、AI エージェントなどは文書の セマンティック構造 を活用するが、Markdown が生成するのは限定的な HTML タグにとどまる
  • Markdown は プラットフォームごとの文法差 により、再利用やコンテンツ統合の際に不整合が生じる
  • 結果として Markdown は 最小公倍数レベルのフォーマット であり、複雑な文書管理には不向きである

Markdownの暗黙的な型の問題

  • Markdown は 明示的なスキーマや型定義のないフォーマット であり、同じ見出しやリストでも文脈によって異なる意味を持ちうる
  • さまざまな Markdown 方言 (flavor) が存在するため、ツール間でレンダリング差異 が発生する
    • 例: あるツールは脚注をサポートするが、別のツールでは無視される
  • MDX は React コンポーネントを埋め込んで表現力を拡張するが、システム間の互換性の問題から 移植性が低い
  • こうした拡張は Markdown の限界を補おうとする試みではあるが、標準化されていない場当たり的な解決策 にすぎない

セマンティックマークアップの重要性

  • セマンティックマークアップは、コンテンツの 形ではなく意味 を記述する
    • 例: 「ステップ (step)」と「リスト項目」は見た目が同じでも意味は異なる
  • HTML5 は <section><article><aside> などの 意味ベースのタグ を導入し、構造表現を強化した
  • セマンティックマークアップの主な利点
    • 変換と再利用: 同一コンテンツを HTML、PDF、ePub などさまざまな形式に変換できる
    • 機械可読性: LLM やエージェントが構造を明確に認識し、より正確な応答を提供できる
  • Markdown はこのような構造情報を提供できないため、後処理や変換時に情報損失 が発生する

代替フォーマット比較

  • reStructuredText
    • Python エコシステムの Sphinx で使われるフォーマットで、ディレクティブ (directive)ロール (role) によって構造的意味を表現する
    • コードブロック、注記 (note)、相互参照 (:ref:) など 明示的な構造要素 をサポート
    • 大規模な技術文書に適しており、HTML および PDF 生成をサポート
  • AsciiDoc
    • 属性 (attribute)条件付きコンテンツinclude 機能を提供する セマンティックなテキストフォーマット
    • NOTEWARNING のような注意文や UI 要素、ショートカット表記など 技術文書に特化した表現 をサポート
    • AsciiDoctor を通じて HTML、PDF、ePub、DocBook などに変換可能
  • DocBook (XML)
    • 技術出版向けの XML ベースモデル で、<command><note><xref> など 意味のあるタグ体系 を提供
    • 用語集、索引、UI 要素、関数名など専門文書に必要なタグを含む
    • XSLT スタイルシート によってさまざまな出力形式へ変換可能
    • 大規模文書の構造検証と索引生成 に有利
  • DITA (Darwin Information Typing Architecture)
    • 企業向け技術文書の標準として使われる モジュール型 XML ベース構造
    • トピックベースの XML アーキテクチャ として、<task><step> などの手順構造を明確に定義する
    • コンテンツ再利用 (conref)、フィルタリング、マルチチャネル出版など 企業向け文書管理の標準 として活用される
    • DITA Open Toolkit により、レンダリングと変換の自動化をサポート

XMLが不便に見えても必要な理由

  • Markdown は軽量だが、構造・標準・一貫性を欠いた暫定的な解決策 である
  • Markdown に MDX・プラグイン・カスタムスクリプトで複雑さを加えているなら、
    構造化フォーマットを最初から採用するほうが長期的にはより安定的 である

ではどうすべきか?

  • README や単発の文書など 小規模文書 には Markdown で十分だが、
    大規模・再利用・マルチチャネル文書 には reStructuredText、AsciiDoc、DocBook、DITA のほうが適している
  • 企画文書・開発者文書・再利用・大規模管理が必要なら reST/AsciiDoc → DocBook/DITA の順で検討するとよい
  • 最も豊かな構造を持つフォーマットをソースとして使い、必要に応じて Markdown に変換するアプローチが望ましい
  • Markdown は 出力用フォーマット としては有用だが、原本 (source of truth) として使うと構造拡張が難しい
  • 原本は 意味構造が豊富なフォーマット に置き、Markdown は ダウンストリーム出力用 として使うのが最適である

7件のコメント

 
savvykang 2025-11-24

XMLベースのフォーマットの現実と選定基準
READMEや単発のドキュメントなど小規模な文書にはMarkdownで十分ですが、
大規模・再利用・マルチチャネルの文書にはreStructuredText、AsciiDoc、DocBook、DITAのほうが適しています。

rstはXMLベースのフォーマットなんですか? 初めて聞きましたが。要約がおかしいです

 
xguru 2025-11-24

要約を見る限り、他のXMLフォーマットとまとめて選定基準について述べているので、そのようなタイトルになっていたようですね。
原文に合わせて修正しておきました。

 
jjw9512151 2025-11-24

必要なら Markdown に HTML を書いて、そこに mermaid を貼ればだいたい何とかなるけど……それ以上になると、文書のための文書作業、作業のための作業になってしまう気がする

 
ahwjdekf 2025-11-24

AIより人間が先だ。私が書いたものを盗むな。セマンティックとかふざけたことを言うな

 
slowandsnow 2025-11-24

特別な文法を使うことになるなら、別の学習コストに加えて、専用のパーサー、ビューア、エディタなど、すべてが円滑に対応して初めて成り立つ……。あの程度なら、むしろたいていのAIサービスとスムーズに連携できる Google Docs や Notion を使うほうがいいのかもしれない

 
GN⁺ 2025-11-24
Hacker Newsの意見
  • Markdownの核心は、他の言語にはない幅広いサポートにある ほとんどの代替手段は別途ツールが必要で、Markdownがすでにサポートされている環境では使えない Google Docsでさえ隠し機能としてMarkdownの貼り付けをサポートしている 完璧でなくても、「どこでも使える」ことが利点だ HTMLがSGMLより単純だったが、ブラウザが対応したことで標準になったように、Markdownも時間とともに発展しうる 標準化の曖昧さ、機能不足、互換性の問題などはHTML4時代と似た状況だ 完全に置き換えるよりも、段階的な進化のほうが現実的な道だと思う

    • Markdownのもう一つの利点は、誰でも5分で学べることだ 以前、新聞社の記者たちに導入したが、1日でMS Wordより使いやすいと感じていた 複雑な書式なしに、入力したとおりの結果が出る点が魅力だった 技術の専門家でなくても簡単に習得できるフォーマットだ
    • Markdownはすでに事実上の勝者だと思う クライアントがWordやPDFを望むならそう送るが、結局フォーマットを決めるのは受信者だ コードブロックはバックティックで十分で、複雑な表や図はHTMLで補える
    • Markdownの重要な特性は、プレーンテキストとしても読みやすいことだ LaTeXやHTMLよりずっと可読性が高い 高水準マークアップ言語として、HTMLにコンパイルされるものだと考えている 必要ならHTMLを直接混ぜて使うこともできる
    • Markdownが広く使われているのは事実だが、他の言語を阻む技術的理由はない ただし社会的要因によって拡張は遅れている HTMLのような体系的な文法がないため、拡張しにくい すでに数多くのMarkdown方言が存在するが、その多くは少数のツールに限られている CommonMarkがいちばん標準に近い 拡張システムを導入しても、文法衝突の問題で成功の可能性は低いと思う
    • Markdownが発展する可能性はあるが、中央権威がない CommonMarkはあるが、これは規範ではなく技術的説明レベルだ
  • MarkdownにはどこでもHTMLタグを含められる 公式ドキュメントにも明記されている だから著者が述べた制約は実際には存在しない

    • HTMLを入れられるのは周知の事実だ しかしMarkdownを使う理由は、HTMLを直接打たないためだ のようなタグをずっと書き続けるなら、Markdownを使う理由がない 結局「HTMLを使えばいい」という答えなら、Markdownの存在意義が消える
    • 実際にはHTMLとMarkdownを自由に混在させることはできない HTMLブロックが入るとMarkdown構文は無効化される AsciiDocはこの点ではるかに柔軟だ
    • 自分もPandocとMarkdownを使っているが、AsciiDocやLaTeXに戻るつもりはない 脚注や目次もたいていサポートされており、一般的なテキストベースの作業には十分だ 数式やボタンのようなものは必要ない
    • RedditやGitHubのように、セキュリティ上HTMLを禁止するプラットフォームもある 信頼されていないユーザーがHTMLを書けると危険だからだ
    • 自分はMarkdown文書にインタラクティブ要素を入れることもある 今はコンテンツ作成用としてのみMarkdownを使っている
  • 大学時代、物理学専攻でLaTeXで論文を書いていた 化学科はWordを使っていて、分野ごとに標準が違う TeXのバージョンは、目標完成度をπの値に近づける形で表している 現在のバージョンは3.141592653で、47年間安定して維持されている TeX WikiPiバージョンの説明 参照 CLIツールにはmanpage形式も有用だ

    • 学部のときにLaTeXで文書作成を学んだが、今ならTypstのほうを勧める LaTeXの後継として最も有望だと思う
    • 文書作成は摩擦が少ないべきだ LaTeXは参入障壁が高く、文書というより組版用フォーマットなので非効率だ 文書は見た目より内容中心であるべきだ
    • 自分は唯一Wordで論文を書いた LaTeXフォントを使い、PDFのバグを修正するのに苦労したが問題なかった 研究によるとLaTeX利用者はより多くの時間をかけるが、プロセスの満足度は高い 「作る楽しさを味わう人たち」のためのツールのようだ
  • Markdownは**最小機能製品(MVP)**のような存在だ 学びやすく、レンダリングされなくても読みやすい PDF作成はAsciiDocからTypstに移行したが、アクセシビリティの問題を解決してくれる しかし、どんなマークアップ言語でも文章の質そのものを高めてはくれない ペンを替えても文章が良くなるわけではない

    • 著者は二つの用途を混同していると思う Markdownは素早くコンテンツを作る人のためのものだ 構造的な完成度を追求する人には向いていない 両方の目的を満たす言語は存在しない気がする
    • DjotというMarkdown代替も興味深い GitHubリンク 参照
    • LaTeXは段落ごとに注釈を付けることで、文章をより深く考えさせる
    • Typstは興味深そうだが、現時点ではWebエディタとVSCodeプラグインしかなく、エコシステムが限られている
  • この記事の論調は、「MarkdownがLLMの発展を妨げる」という主張だ しかし、意味論的な豊かさを自動的に得られるという前提は非現実的だ チーム内ではそんな作業をする時間もなく、Markdownで十分だ セマンティックWebの議論と同様、結局は誰がデータを管理するかの問題だ

  • 自分はブログをOrg-mode + Emacsで書いている コードブロックをつないで文書内で実行できる機能がとくに気に入っている Blorgitlazyblorg のようなプラットフォームも使ったが、設定が面倒で、自分でHTMLに書き出してrsyncでサーバーに上げている Rubyスクリプトでインデックスを付けて配布している Markdownよりはるかに表現力が豊かで自然

    • Org-modeがEmacsに縛られていなければ、デフォルトフォーマットになっていたと思う
    • Ox-Hugoを使ったことがあるか聞きたい OrgファイルをHugoブログにエクスポートする素晴らしいシステムだ
    • Org-modeはEmacsに密着しすぎていて移植が難しい LSPができれば他の環境でも使えるようになるかもしれない
  • 「Markdownは構造が不足している」という主張には部分的に同意するが、二項対立的なアプローチが惜しい フォーマットを選ぶ前に、必要な構造を先に理解すべきだった だから少し不快でもあり、同意しにくい

  • DITAをMarkdown代替として提示したのは完全に的外れな主張だ DITAは大規模企業向けのXMLシステムで、Markdownとは目的がまったく違う 5,000人以上、多言語の製品ラインのような環境でのみ適している Markdownを使う状況なら、DITAは決して合わない どちらも時間の無駄だ

    • DITAを知らなかったが、「Markdownが複雑ならXMLを使え」という話があまりにもおかしかった
    • DITAとそのツールチェーンの失敗事例をもっと聞いてみたい
  • Markdownを10年以上使ってきたが、今でも十分うまく動いている 記事の主張もまったくの間違いではないが、Markdownユーザーが感じる問題ではない 必要なら別のものを使えばいい それでもタイトルが良かったので5分ほど読んでみた

  • MySTをMarkdownの一形態として挙げ、そのうえで再びreStructuredText(rST)を例に出したのは奇妙だ MySTの目的は、まさにrSTの代替であることだ 構文はMarkdown風だが、構造的意味やdirective、roleなどをすべてサポートしている Sphinxのissueでも関連する議論がある

 
mstorm 2025-11-24

最近はこういう類いの文章をよく見かけますね。

テキストファイル、Markdown、より構造化されたフォーマット。
そうやって変わっていく中で、何かが正解というわけではなく、適切なときに適切なフォーマットを使えばいいのです。

そして、いつも1つのファイルですべてをやろうとすると問題が生じるので、テーマに合わせて分類し、体系化していくことが必然的ですね.