Open tubo28 opened 5 years ago
ブラウザでの閲覧とエディタにコピペするような使われ方を想定すると、あると良さそうな機能として
などが考えられますが、それぞれどうやって実現しましょう? 下に色々書いてみましたが Doxygen (使ったこと無い) 等の既存のツールでできるものがあるなら教えてほしいです。
generate-docs.py
でやっているので HTML に整形すればよさそうです。
とりあえず一覧に対してブラウザの Ctrl-F 機能を使えばできます。検索ボックスを組み込むライブラリも探せばありそうです。
クライアントサイド (higilight.js)?サーバーサイド (pygmentize)? 経験上 pyementize を使う場合はキャッシュしないと重いです。
AtCoder や yukicoder を参考にすればできると思います。
ファイルの冒頭に書かれたコメントを HTML に表示するくらいならできそうです。
ここまで来ると Python で自作パーサーを作るのは辛くなってきます。
どのように実現するのが良いのでしょう?
@require [filename]
のようなノーテーションを定義し、トポロジカルソートすればできそうではあります。
サイト全体の全文検索としてまずはグーグル検索使うのもありなんじゃないかって思ってますが、どうでしょう
@requireという特殊なアノテーションよりは、#includeをそのまま置き換える方が、ローカルでの分割ファイル状態でのコンパイルとかを考えたときに良かったりしませんかね?
僕は実はdoxygen知らなくてjavadocしか知らないんですがドキュメントはソースコード中に書いたらそれが自動でリファレンスになるdoxygen的なやつが、メンテナンス性も利便性も高いと思います
@requireという特殊なアノテーションよりは、#includeをそのまま置き換える方が、ローカルでの分割ファイル状態でのコンパイルとかを考えたときに良かったりしませんかね?
多言語対応したときにこういうやつで統一したくなりそう,という経緯です
依存するファイルを解決して 1 つのテキストにまとめる
どのように実現するのが良いのでしょう?
@require [filename]
のようなノーテーションを定義し、トポロジカルソートすればできそうではありあます。
./bin/preprocessor.py [filename]
でできます
doxygen やってみました 良さげなページが出力されています (私のサーバーにIPアドレスが残っても気にならない人は→ https://tubo28.me/public/doxygen/html/) 今後適切に Doxyfile を設定して CI に生成コマンドを追加したいです
ところで、上にも書きましたが依存を全て解決した上でクリップボードにコピーするようなボタンが欲しく、 doxygen でそれを実現するよい方法って何なんでしょうか?
preprocessor.py
で依存を解決したファイルを用意しておくdoxygen -w html ...
で任意のヘッダーを流し込めるようなので JavaScript でファイルへのリンクやコピーボタンを追加するくらいならできますが筋はあまり良くないような
複数のファイルを使いたいとき,それぞれにプリプロセサをかけてから結合すると,重複ができてしまう可能性があります.なので,preprocessor.py が複数のファイルを引数にとれるようにしたいです.
サーバーを立てて動的に生成するということですか?
7 ではたたき台として Python を使って列挙するようにしてもらった。
使えるところまで持っていくにあたり何がほしいか?方法とその手間はどのくらいか?