システムとしての方針

  1. できるだけ普通のプログラミング概念を使う。新規概念は最小に。
  2. したがって、プロジェクトとかパッケージとかリポジトリは既存の常識的な意味。
  3. パッケージとその配布はNPMエコシステムをそのまま使う。お作法も何もかも“そのまま”。
  4. Markdownファイルをドキュメンテーションと考えるか? ソースコードと考えるか?Webサイトのページと考えるか? それは思案中。
  5. ディレクトリの候補は ./doc/ or ./docs/, ./src, ./src/pages/ 。
  6. package.json のトップレベルプロパティ tenjin に設定を書けるのがよいか、別ファイルにするか?
  7. おそらく、./tenjin-config.json とかで指定したほうがいい。しかし、なんにしろデフォルト規約は必要。
  8. 他の目的のディレクトリとしては、./scripts/, ./test/ など。
  9. タスクランナーのタスクは ./scripts/ より ./tasks/ 。
  10. データベースはキャッシュ用途。データベースファイルはなくなっても問題ないし、バージョン管理不要。
  11. 使う拡張子は、.md, .json, .jsonl に限定。余計なフォーマットは定義しない。しかし、フローグラフ定義にはDSLが必要かも -- 人が直接書かないならJSONで十分なんだが、たぶん辛すぎる。できるだけ MathEDL と共通文法にしたい。
  12. *.md 以外のファイルは、Tags.jsonl(タグ&ロール空間の構造定義), Topics.jsonl(トピック空間の構造定義)。
  13. ファイルの在処は、package.json のfilesに頼るのがよさそう。
  14. index.* を目印にする規約は使えないな。

[追記]package.jsonと別なtenjin-config.jsonを用意して、そこにディレクトリ/ファイルの指定を書いたほうがいい気がしてきた。必要な項目〈プロパティ〉は:

  • sourceDir : 原稿ファイルを入れているディレクトリ、デフォルトは "."
  • ignore : 原稿ファイルとはしないファイルのパターン記述。.gitignore と同じパターン構文。

[/追記]