このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

DoxygenのMarkdownサポート

doxygenでは、次の2つの部分でmarkdownが使える。

  1. ソースとは別な文書ファイルとして: 拡張子が.mdまたは.markdownであるファイルを、doxygenの処理対象ファイルに含めれば、それはmarkdown文書と解釈されて変換処理がされる。
  2. ソースコード内の文書コメントとして: 特に何もしなくても、文書コメント内のmarkdownマークアップが認識される。

文書コメント(doxygenでは特殊文書ブロックと呼ぶ)内では、もともとdoxygenコマンドが書けるので、次の3つの構文が混じることになる。

  1. doxygenコマンドを含むdoxygen構文。コマンドの先頭文字は\と@が許される。doxygenコマンドはJavaDocコマンドの上位互換らしい。
  2. markdownマークアップ
  3. HTMLタグがそのまま使える(これはmarkdownの仕様でもある)

混合構文なので、複雑怪奇になり得る。

doxygenによるmarkdown拡張

PHP Markdown Extraの仕様の一部を取り入れているらしい。

  • 見出しへのID付けと、見出しへのリンク : 「### 見出し2 ### {#section-id-2}」のように書けて、[リンクテキスト](#section-id-2) とフラグメントIDで参照するリンクを書ける。これは便利だが、互換性が、、、、
  • インデントなしのコードブロック : GitHubの```ではなくて、~~~(3つ以上の~)。ウーム、これは困った、pandocだと取り消し線になってしまう! コードの言語の指定も ~~~[.py] のように書く。これも、```py とは違う。

次はdoxygen独自らしいが、同様な拡張をしているmarkdown処理系もある。

  • [TOC] : 目次を生成する。便利だが、他のmarkdown処理系とは非互換になる。pandocは--tocオプションがあるが、これは記法ではなくて処理系側のオプション。

markdownでメインページを作る方法

文書コメント(特殊文書ブロック)内に \mainpage(@mainpageでも同じ)コマンドを使うと、そのブロック内容がメインページ内容として使われる。が、メインページを単独の文書ファイルとしたほうが便利だろう。

  1. メインページになるmarkdown文書を作成する。doxygenmarkdownだと認識できる拡張子にする。
  2. その文書の先頭にレベル1の見出し(「# タイトル」など)を付ける。例:README.md
  3. レベル1の見出し=タイトルに、{#index}または{#mainpage}というIDを付ける。

これは見出しにIDを付ける機能を流用して特別な用途に使っている。

注意事項やヒント

  • インラインのマークアップはあんまりうまく動かない。<em>とか<strong>とか、HTMLタグを使ったほうがいい。
  • 文書コメント内では、doxygenコマンドを使うのは問題ない。単独ファイル内では使わない。
  • コード範囲(インラインでのコード記述)の`...`は使えるが、コードブロックが困ったな。インデント方式なら互換性保って使えるが、メンドクサイ!
  • 複数段落からなる箇条書きが書ける。これはmarkdownオリジナル仕様か。
  • テーブルの右寄せ、中央、左寄せが出来る。これもmarkdownオリジナル仕様だったか?
  • エスケープ方式が不明、doxygen構文におけるエスケープは、\\と\@。

もうちょい使ってみないと、まだ分からない点が多い。