cpprefjp / site

cpprefjpサイトのMarkdownソース
https://cpprefjp.github.io/
368 stars 152 forks source link

数式ブロックのインデントを見直す #1284

Closed faithandbrave closed 3 weeks ago

faithandbrave commented 1 month ago

sukeya commented 15 hours ago こんばんは。 些細なことなのですが、LaTeXで書いた数式が左詰めになっているように見えてちょっと気になりました(例えばここ)。 個人的には引用くらいのスペースが前につくとより見やすくなると思いました(例えばここ)。

調べました。

MathJaxのこのへんの設定をいじれば、数式ブロック (displayMath) のインデントを変更できそうです。 https://github.com/cpprefjp/site_generator/commit/94b9dcb2a2f4b609adee36b9fcc50b4e60b1be29

設定のドキュメントはこちら。

私の手が空いたら着手しようと思いますが、どなたか引き取れそうだったら引き取ってください。

faithandbrave commented 1 month ago

@sukeya 直りました。 これくらいでどうでしょう?

sukeya commented 1 month ago

素早い対応ありがとうございます! 見やすくなり、良いと思います。

faithandbrave commented 1 month ago

ではこれで閉じますー

yumetodo commented 1 month ago

@faithandbrave すみません、 https://polyfill.io/v3/polyfill.min.js?features=es6って何目的で読み込んでいる感じでしょう?

akinomyoga commented 1 month ago

公式がそう指示しているから?

https://www.mathjax.org/#gettingstarted

じゃあ何故公式が polyfill を要求しているかというと MathJax v3 で ES6 の Promise を使いたくなったから:

https://github.com/mathjax/MathJax/issues/3162#issuecomment-1890465019

faithandbrave commented 1 month ago

はい、MathJax v3のドキュメントに従っています。

yumetodo commented 1 month ago

cpprefjpではIE11をサポートしていないので、 https://caniuse.com/promises を見る限り、不要なのではないかと思うわけです。

ref: https://github.com/cpprefjp/site/issues/477#issuecomment-343039905

faithandbrave commented 1 month ago

たしかにIE11用っぽいので、削除しちゃってよさそうな気がしますね https://docs.mathjax.org/en/latest/web/start.html#browser-compatibility

akinomyoga commented 1 month ago

後で見た時に「なぜ MathJax 標準ではないロードの仕方をしているんだ」という疑問が生じるので、何故 polyfill 入れないのかコメントを入れるならそれで良いと思います (削除すれば無駄な traffic 減らせますし)。あと、IE11 対応しないとしても、後続の MathJax で余計なエラーが出ない様に IE 除外 できませんか? こんな感じでしょうか:

<!--[if !IE]><!-->
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<!--<![endif]-->
faithandbrave commented 1 month ago

@yumetodo どうでしょう?

yumetodo commented 3 weeks ago

反応が遅れました。

477 が議論された2017年には、まだIEは無視できないシェアがあり、故に「エラーが出ても最低限表示できるようにする」という方針がとられたのは妥当だったと言えるでしょう。

しかしIE11を無効化するKBが配布されるようになった今、IE11が動作する環境は、WindowsのサーバーOSか、LTSC版を用意する必要があり、(仕事柄職場に検証環境はありますが)、私物の検証環境を作って維持するのは大変です。また多くのユーザーはIEを回避する選択肢を持ち合わせているはずです。

そういうわけで、このissueからは外れてきてしまいますが、そもそもIEのサポートを明示的に切っておきたいです。


それとは別に、 @akinomyoga さん提案の条件付きコメントですが、リンク先にも記載のある通り、こちらはIE5-IE9まででサポートされた記法であり、IE11では単なるコメントとして認識されます。その他のブラウザでも同様です。したがって、今回のケースでIEでのみ読み込ませることを目的として条件付きコメントを使うことはできません。どうしてもそういうことをするならUser-Agentを見て出し分けるWebサーバーが必要になるでしょう。


以上の2点から、単にpolyfillを除去しておく、あるいは

<!-- IEはサポートしないので https://polyfill.io/v3/polyfill.min.js?features=es6 は読み込まない -->

等としておくのがいいのではないでしょうか(この場合、templateエンジン向けのコメント記法があればそっちのほうがbetter)。

akinomyoga commented 3 weeks ago

IE を明示的に切るというと、IE で開いたら対応していませんページにジャンプするなどですか。

それとは別に、 @akinomyoga さん提案の条件付きコメントですが、リンク先にも記載のある通り、こちらはIE5-IE9まででサポートされた記法であり、IE11では単なるコメントとして認識されます。

本当ですね…見落としていました。

その他のブラウザでも同様です。したがって、今回のケースでIEでのみ読み込ませることを目的として条件付きコメントを使うことはできません。どうしてもそういうことをするならUser-Agentを見て出し分けるWebサーバーが必要になるでしょう。

GitHub Pages は対応していないような気がしますね。あるいは、userAgent 見て document.write(...) する (今どきはもっと良い方法がありそうですが…) こともできるかもしれませんが、それだと現行ブラウザでも余分の処理が走ることになるので嫌ですね。

等としておくのがいいのではないでしょうか

確かに現実的にはそんなところでしょうかね。

(この場合、templateエンジン向けのコメント記法があればそっちのほうがbetter)。

そうですね。

faithandbrave commented 3 weeks ago

Microsoftがサポートを終了しているブラウザですから、正しく動かないのはIEユーザーの自己責任として、yumetodoさん案のコメントアウトで対応としては十分な気がしますね。がんばりどころではない気がします。

<!-- IEはサポートしないので https://polyfill.io/v3/polyfill.min.js?features=es6 は読み込まない -->
yumetodo commented 3 weeks ago

IE を明示的に切るというと、IE で開いたら対応していませんページにジャンプするなどですか。

あ、いえ、IEで壊れるかどうかを以降cpprefjpにおいて検討しないという意味合いでした。

faithandbrave commented 3 weeks ago

5月のGoogle Analyticsのレポートを確認したところ、アクティブユーザー5.86万人のうち、IEユーザーは15人でした

faithandbrave commented 3 weeks ago

では、コメントアウトしますね

faithandbrave commented 3 weeks ago

polyfillの読み込みをコメントアウトしました。 https://cpprefjp.github.io/reference/cmath/cos.html 数式は問題なく動いてそうです。

これで閉じます。 問題あったらまたreopenしてください。