1

私のdoxygenドキュメントには、各クラスメンバー関数のソースコードが示されています。私のソースコードには、関数間に複数の空白行が含まれていることがあります。

doxygenでこれらの複数の空白行を圧縮または削除するにはどうすればよいですか?(プレビューに表示する代わりに)

答え(下から)

以下の答えは私を正しい方向に向けました:INPUT_FILTER(doxygenドキュメント)

INPUT_FILTERタグを使用して、doxygenが各入力ファイルをフィルタリングするために呼び出すプログラムを指定できます。Doxygenは、次のコマンドを(popen()を介して)実行することにより、フィルタープログラムを呼び出します。

<filter> <input-file>

ここで、はINPUT_FILTERタグの値であり、は入力ファイルの名前です。Doxygenは、フィルタープログラムが標準出力に書き込む出力を使用します。

私はすぐに「コンパクト化」を行うPythonスクリプト(私はWin7を使用しています)を作成しました:

import re
import sys

if len(sys.argv) != 2:
  exit()

with open(sys.argv[1]) as f:
  original = f.read()
  compact = re.sub('\n\n\n+', '\n\n', original)
  print(compact)

次に、それをフィルターに追加しました。

INPUT_FILTER = "python ../DoxyCompact.py"

これはまた、doxygenがソースを読み取る前にソースを変更する可能性をたくさん開きます!

4

1 に答える 1

1

これを行うために私が考えることができる唯一の方法は、doxygenがドキュメントのソースコードを使用する前に、複数の空白行を削除するプリプロセッサを定義することです。ソースファイルに対して実行するアクション(またはフィルター)を定義するには、INPUT_FILTER構成ファイルオプションを使用します。

警告:以下はテストされていません。

質問からbashで複数の空の行を1つの空の行に置き換えるにはどうすればよいですか?使えるようです

sed /^$/d

複数の空白行を削除するには、構成ファイルで次のように設定します

INPUT_FILTER = sed /^$/d
于 2012-04-13T09:31:42.770 に答える