-
Notifications
You must be signed in to change notification settings - Fork 5
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
Redo "内部リンクを相対リンクで生成する機能 with settings.USE_RELATIVE_LINK = True
"
#81
base: master
Are you sure you want to change the base?
Conversation
改めまして
これ改めて考えるとrepoの肥大化を防ごうとした説ないですかね で、今となってはsubmoduleとして画像置けばいいのではないかって思います。 |
コメントありがとうございます。
そう。その説は私も頭を過ったのですが、実際のところ画像は一回追加したら基本的に変更されないし、それよりはキャッシュ防止の為の URL hash (cachebust) の方が断然サイズを食っている (例えば cpprefjp/cpprefjp.github.io@b06298b を見て下さい! (フリーズ注意。スマホでは開かない方が良いかも)) ので、画像サイズ程度は気にすることではないなぁと思いました。
うーん。今の話は生成結果に images のデータを含めるということであって、site などのリポジトリの中に画像を含めるという話ではない…と思うのですがそういうことではない? 別の言い方をすれば、現状ではユーザーがページを閲覧した時に https://cpprefjp.github.io/ のサイト外から画像を読み込む形になっているが、画像も https://cpprefjp.github.io/ の下に配置したいという話です。 追記 あぁ。なるほど。GitHub Pages で submodule を使うことができるんですね。。 でも今回はローカルで生成した時にも反映させたいので gh-pages 特有の効果には頼りたくないというのと、GitHub のリポジトリの内容が含まれる .zip のリンク (例 https://github.com/akinomyoga/cpprefjp-site/archive/refs/heads/gh-pages.zip) からダウンロードしたものを直接閲覧できたらいいな、というのもあるのでやはり cpprefjp.github.io に含めたいなぁと思っています。 |
f0106e8
to
0a5d099
Compare
だいぶ塩漬けにしてしまいました。これなんだっけと思い出すところから・・・
そもそもWebさーばーごとき、立ち上げればいいし、リモートのものをっていうならssh portforwardingないしはVSCode Serverのport forwardで間に合ってるのでうーんってなったんですが、
これ言われてなるほどなと思いました。 cpprefjp/site#917 でそういう需要は言われてましたもんね・・・。とかいたところで、そもそもこの話が cpprefjp/site#917 から来ていたことを思い出しました。 モチベーションについては理解しました。同時に
に対する懸念点もなくなりました。 |
@akinomyoga あと課題点ってなんでしたっけ |
特に個人的に残っている課題点はなくもう満足してます。 |
それでは自分は基本設計としては異論ないので実装を眺めることにします |
ありがとうございます |
@akinomyoga 説明欄のdiffのリンク先にキーワード自動リンクの差分が混ざっていたり、レビュー記録が残し辛いので各repoでPRを切っていただきたいです。 |
OK. これは diff のリンクが昔の commit との比較になっているからですね。元々完全に棄却されるかもしれないと思ってPRを無駄に開かないようにしてましたが、それぞれ PR にします |
手元にDockerがいなかったので適当なLinux VPS環境で実施しました。 この後デグレがないか、boostjpの動作確認など検査することになります。 確認した観点は以下です。他の検証観点があれば教えてください。
|
御指摘ありがとうございます。これは対応いたします。ただ、今忙しいので2週間程待っていただくことになるかもしれません。 |
@yumetodo 2週間ではなく2年間経ちましたが (すみません)… akinomyoga/cpprefjp-kunai@5fc7bab と akinomyoga/cpprefjp-crsearch@91b3583 で対応しました。 追記: もし手元に以前の環境を未だお持ちでしたら差分更新は "たぶん" ↓で行けます (駄目だったらすみません)。もし以前の環境がなければ $ cd /path/to/crsearch
$ npm pack
$ cd /path/to/site_generator/kunai
$ npm install <path/to/cresarch-3.0.23.tar.gz generated by the above npm pack>
$ cd /path/to/site_generator
$ ./kunai/docker.sh install
$ ./kunai/docker.sh dist
$ ./crsearch.json/docker.sh run
$ ./docker.sh run settings.cpprefjp_relative
$ ls cpprefjp/cpprefjp.relative 追記: 一から構築する時は README に追記している追加手順 が必要でした。 |
テストする側で生成環境を整えるのも大変だと思いますので、生成結果を以下に添付します。Zip を使う場合はローカルで展開して
留意事項上で既に言及していますが今来た人のために。
|
ありがとうございます。いい感じですね。 |
取り敢えず一区切りはついています! ただし、 @yumetodo さんが今週末に見たいということを Twitter で言及されていました。 あと、この機能は機能として実装しただけで、既存の cpprefjp/site#917 にあるような物を提供するには、更に CI の生成を |
Google 検索の |
とくに不都合がなければ |
お返事遅くなりすみません。
|
Googleアナリティクスだけが問題なら、埋め込んでしまいましょう。 |
ありがとうございます。ではそのようにしましょう。この PR の中でそれも処理してしまいますか。その場合には上記の 方法1 と 方法2 のどちらが良いでしょうか。 |
でよいかと思います。 |
ありがとうございます! では今晩 |
69881c0 既定で相対リンクを使うようにしました。また、これに伴って新しいファイル |
対応ありがとうございます! |
取り敢えず問題ありません! よろしくおねがいいたします! |
これを見落として2時間位 ようやく理解したのでビルド開始・・・ |
#80 で一旦 revert された #78 をやり直し。
cpprefjp/site#917 (comment) で言及されたものです。これも複数のリポジトリに変更があります。cpprefjp/site#977 のデモとして御覧頂いた https://akinomyoga.github.io/cpprefjp-site/ はこの PR の実証も兼ねていました (従来だとそもそも cpprefjp はサイトのトップレベル以外に配置できなかったことに注意)。取り敢えずのところ私的に一通り気になるところは対応しました。
背景
現状では
site_generator
で生成されるコンテンツはトップレベル/
に置かれるという想定でリンクが生成されています。このためローカルで閲覧しようとすると毎回新しいWebサーバーを立ち上げる必要が出てきます (特にリモートのマシン上で変換しているとファイヤーウォールやSELinuxやプロキシなどの設定もしなければならずとても面倒)。内部のリンクを相対リンクにすればローカルで単にブラウザで開いて閲覧することができるので便利。また、単に設定済みの Web サーバーのサブディレクトリに配置すれば閲覧できるようになることを期待。未だ簡単なテストのみしかしていません。
変更 (2022-10-10 更新)
settings.USE_RELATIVE_LINK = True
" #81 (このPR)現状の課題
対応済:
navbar.css
のbackground-image: url(.../cpprefjp-icon-v1.1-transparent.png)
→ data スキームによる埋込に対応しました。cpprefjp/static/static/original-icons/cpprefjp-icon-v1.1.svgにSVGがあったので、それを data スキームで埋め込んでみました。
対応済: ローカルで閲覧しようとすると crsearch.json の読み込みで CORS (Cross-origin resource sharing) エラー
今は
file://
の時に (JSON through XHR の代わりに) JSONP through<script>
を使うようにしています。対応済:
crsearch.json/run.py
にハードコードされているbase_url
を何とかする→現状は取り敢えずハードコートされている
base_url
はデフォルトのbase_url
と思うことにして、それとは別に CRSearch の初期化オプションで base_url を動的に指定できるように拡張しています (d1eb6a47 @ crsearch, 852c5074 @ kunai)。対応済: raw.githubusercontent.com/cpprefjp/image にあるデータもサイトの中に含めるべきでは
これでインターネットに繋がっていない環境でもローカルの cpprefjp で図が見られます。
あと、images の中の図に対するリンクの指定も標準化しています。
対応済: manifest.json の位置指定が変
これは元々あった問題ですがリンク関係ということでこのPRに含めてしまっています b99a8c2