内部リンクを相対リンクで生成する機能 with settings.USE_RELATIVE_LINK = True#78
Conversation
開発用repoとdeploy用repoが別なので難しいのではないでしょうか |
うーん。どういうことですか。あー…上で書いたのは「cpprefjp/image にあるデータもサイト (cpprefjp/cpprefjp.github.io) の中に含めるべきでは」ということでした (そういうことじゃないかもですが)。 現状 site, kunai, crsearch の出力結果を cpprefjp.github.io に全部くっつけて入れているのだから、image のデータも deploy 時に cpprefjp.github.io の中に入れて良いのではないかということです (実際 Web ページの画像を開発用 repository の一つである cpprefjp/image から raw.githubusercontent.com を通して直接持ってくるのは何か変な感じがする)。 |
|
課題について改めて今の考えを書いておきますね。
これは、相対リンクで参照するのが枠組み上不可能ならば、base64 で直接埋め込むという手もあるなぁと思っています。画像サイズは 512x512 10 kB 追記: → data スキームによる埋込に対応しました。cpprefjp/static/static/original-icons/cpprefjp-icon-v1.1.svgにSVGがあったので、それを data スキームで埋め込んでみました。
現状のPRではローカルファイル (file:///~) からは直接 https://cpprefjp.github.io から XHR で取得していますが、オフラインで閲覧できるためには、閲覧者がブラウザのセキュリティ設定をoffにするか、 追記: 対応しました。
現状のPRでは 追記 → これは取り敢えずは残しておいて良いかなと思っています。 |
|
あー! すみません! こっちの PR じゃなくてこっち #79 です! |
|
ええと、どうしましょうか。相対リンクに関する機能は markdown_to_html の別ブランチにあるので、この状態で |
|
すいません、一旦PRをrevertしました…。 |
|
承知です。 |
|
マージしちゃったからreopenできない…。 |
|
うーん。調べてみたのですけれど方法なさそうですね。。 https://stackoverflow.com/questions/12674304/github-reopening-a-merged-pull-request Revert の revert の PR にするということで宜しいでしょうか…と思ったけれどそれもできないっぽい あとで手許で revert の revert commit を作って conflict resolution してから PR をまた作りますね。 |
|
すいません…よろしくお願いします。 |
|
こちらこそすみません。元はと言えばこちらが #79 を Draft PR にしたまま忘れていたために混乱させてしまったのが原因のように思うのでお気になさらないで下さい。 |
|
今更なんですが直ちにforce pushするほうが丸かったのかも・・・ |
|
た、確かに…。このリポジトリは一般ユーザーがクローンして使うものじゃないですし、cpprefjp 編集者も普通は弄らないですしね。 |

cpprefjp/site#917 (comment) で言及されたものです。現在 site_generator, markdown_to_html, crsearch, kunai に変更があります。
背景
現状では
site_generatorで生成されるコンテンツはトップレベル/に置かれるという想定でリンクが生成されています。このためローカルで閲覧しようとすると毎回新しいWebサーバーを立ち上げる必要が出てきます (特にリモートのマシン上で変換しているとファイヤーウォールやSELinuxやプロキシなどの設定もしなければならずとても面倒)。内部のリンクを相対リンクにすればローカルで単にブラウザで開いて閲覧することができるので便利。また、単に設定済みの Web サーバーのサブディレクトリに配置すれば閲覧できるようになることを期待。未だ簡単なテストのみしかしていません。
変更 (2022-06-06 09:03 更新)
relative_link(diff)relative_link(diff)relative_link(diff)relative_link(diff)relative_link(diff)relative_link(diff)relative_link(diff)relative_link(diff)現状の課題
navbar.cssのbackground-image: url(.../cpprefjp-icon-v1.1-transparent.png)→試しに相対リンクにしてみたら
./kunai/docker.sh run buildが失敗します。以下エラーメッセージです。どうしたら良いかすぐ分からず。現状の様に https://cpprefjp.github.io から直接取得していても (インターネットに繋がっている限りは) 取り敢えずは動く。追記: ローカルで閲覧しようとすると crsearch.json の読み込みで CORS (Cross-origin resource sharing) エラー
結局Webサーバーは必要になってしまう?
https://cpprefjp.github.io/static/crsearch/crsearch.jsonを読ませれば動くが…。→現状は取り敢えず、ローカルで動いているとき (file:///.... のとき) は https://cpprefjp.github.io/ から crsearch.json を取得するようにしています (852c5074 @ kunai)。
根本的に解決するためには XHR ではなく
<script>で取得 (JSONP) するなど???追記:
crsearch.json/run.pyにハードコードされているbase_urlを何とかするsite_generator/crsearch.json/run.py
Line 429 in af55908
そもそも
crsearch.jsonにbase_urlを格納する必要性はあるのだろうか?→相対リンクにするとそもそも
base_urlはファイルによって.だったり..だったり../..だったりで動的に変わるので、crsearch.jsonに含めても仕方がない。CRSearch の初期化オプションで base_url を動的に指定できるようにすることにしています (d1eb6a47 @ crsearch, 852c5074 @ kunai)。追記: raw.githubusercontent.com/cpprefjp/image にあるデータもサイトの中に含めるべきでは
そうでないとオフラインで閉じて閲覧できるようにはならない。