Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

静的変換メタデータ共通化初回版 #1

Closed
saki7 opened this issue Nov 3, 2017 · 9 comments
Closed

静的変換メタデータ共通化初回版 #1

saki7 opened this issue Nov 3, 2017 · 9 comments
Assignees

Comments

@saki7
Copy link
Contributor

saki7 commented Nov 3, 2017

cc: @cpprefjp/design

データの中身は現行のものから変更無しで、ファイルの形式を標準化しています。

仕様についてはWiki→ https://github.com/cpprefjp/kunai_config/wiki

これを元に、 cpprefjp/site_generator の既存のコードを置き換えます。

JavaScriptのリファレンス実装はここ→ https://github.com/cpprefjp/crsearch/blob/master/js/crsearch/kunai-config.js

cpprefjpの本番にデプロイが完了したらこれを完了とみなし、closeします。仕様レベルでの問題があればここのコメント欄に書いてください。

@saki7 saki7 assigned melpon and saki7 Nov 3, 2017
@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

これは、もともと cpprefjp/site のようなリポジトリでまとめて管理していたものです。しかし、Gitにはファイル単位でのcloneなどが無く、純粋に開発の都合でリポジトリごと分離した方が楽という理由から今回の提案に至っています。

@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

複数のリポジトリ間でどうやって同期を取るのかという問題がありますが、一番レイヤーが高いのが site_generator なので site_generator がどういう管理をするのかによります。

  • 案1: kunai と site_generator で常に最新の submodule を持っておくことにして、バージョン違いは無視する(CIで検出して弾く)
  • 案2: site_generator が kunai を clone する時に kunai の submodule を見に行く

この点についても開発上の都合なので、今の site_generator のコードベースに一番詳しい @melpon に決定を委ねたいと思います。

@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

また、これは以下のように

  • cpprefjp/kunai_config
  • boostjp/kunai_config (まだない)

として管理することを想定しているので、cloneする時に名前を cpprefjp-kunai_config などに自前で指定しないとファイルがかぶります

@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

@melpon
Copy link
Member

melpon commented Nov 3, 2017

cloneする時に名前を cpprefjp-kunai_config などに自前で指定しないとファイルがかぶります

site_generator が元々 cpprefjp と boostjp の設定を持っていることを考えると、kunai_config に cpprefjp と boostjp 用のディレクトリを作って書くのでも良さそうです。

案1: kunai と site_generator で常に最新の submodule を持っておくことにして、バージョン違いは無視する(CIで検出して弾く)
案2: site_generator が kunai を clone する時に kunai の submodule を見に行く

二重にバージョンを管理とかしたくないので、案2にしましょう。

@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

cloneする時に名前を cpprefjp-kunai_config などに自前で指定しないとファイルがかぶります

site_generator が元々 cpprefjp と boostjp の設定を持っていることを考えると、kunai_config に cpprefjp と boostjp 用のディレクトリを作って書くのでも良さそうです。

site_generator + kunai + crsearch のインフラを(cpprefjp, boostjp以外の)別のドキュメンテーションに利用する可能性を考えて、 kunai_config は独立可能にしようかなと思っています。

案1: kunai と site_generator で常に最新の submodule を持っておくことにして、バージョン違いは無視する(CIで検出して弾く)
案2: site_generator が kunai を clone する時に kunai の submodule を見に行く

二重にバージョンを管理とかしたくないので、案2にしましょう。

cpprefjp/kunai@v1.2.0...v1.3.0

kunaiにsubmoduleで追加しておきました。site_generatorではこれを使い始めてOKです。

考えた末、 以下のような仕様にしようと思います。

  • site_generator はまず kunai を clone する
  • kunai/kunai_configs/cpprefjp が cpprefjp
  • kunai/kunai_configs/boostjp が boostjp (まだない)
  • kunai/kunai_configs/current →後述

kunaiにおけるcurrentの仕様

  • kunai_configs 以下の cpprefjp と boostjp はデフォルトでバンドルする
  • current が上記2つ以外を指している場合はそれも追加でバンドルする
  • cpprefjp / boostjp 以外のドキュメンテーションをビルドする場合は、 current を参照する
  • どのドキュメンテーションを対象にフロントエンドを構築するのかは現状では kunai::cpprefjp()kunai::boostjp() で判断している

@saki7
Copy link
Contributor Author

saki7 commented Nov 3, 2017

#1 (comment) の補足

つまり、 cpprefjp / boostjp 以外のドキュメンテーションにこのインフラを使う場合、 site_generator で kunai/kunai_configs/current のシンボリックリンクを張り替えて npm run build 再実行すれば良いはずです。今はこういう物は無いのでこの辺は何も考えなくても良いんですが、まあ、いずれ。

@saki7
Copy link
Contributor Author

saki7 commented Nov 6, 2017

フロントエンドではv2以降から完全にこれを使うようにしたので対応は完了

@saki7
Copy link
Contributor Author

saki7 commented Nov 6, 2017

バックエンドは cpprefjp/site_generator#43

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants