Closed kusunosetoru closed 1 year ago
報告ありがとうございます。
これはMarkdownコンバーターの実装の問題ではありますが、今回のところは<code>
タグを使用して問題を回避しようと思います。
と思ったのですが、これでも直らないですね…。htmlだけ手元に持ってくるとスペースが表示されるので、CSSの問題かな…
https://developer.mozilla.org/ja/docs/Web/CSS/white-space
を見るとデフォルト(white-space: normal;
)では要素内の行末の空白は除去されるようなので、code
要素に対してCSSで white-space: pre;
を指定すれば正しく表示できそうに思いました。
シンプルなHTMLで試してみた所、デフォルトでは code
要素の行末のスペースは表示されるようでした。
cpprefjpのcode
要素には display: inline-block;
が指定されていて、これがあると行末のスペースが除去されてしまうようです。
なので、次のどちらかを行うと表示が変わるのではないかと思います。
display: inline-block;
をやめるwhite-space: pre;
を追加するすみません。C++23言語機能の実装状況にも同じ表記があるんですが、報告から漏れていました。
ありがとうございます。 手元でHTMLサーバーを動かしてやってみます。
実装状況の方も同様に修正しておきます。
<code>
タグにwhite-space: pre;
をつけて直りました!
@kusunosetoru さん、 @kenichiice さん、ご協力ありがとうございました。
C++23のページで言語機能「行末スペースを無視するよう規定」(P2223R2 Trimming whitespaces before line splicing)の説明で「行末が
\
でおわっていた場合に」とありますが、正しくは「行末が\
でおわっていた場合に」と\
記号のあとに空白文字がある必要があります。なお、ソースコードでは「行末が`\ `でおわっていた場合に」と空白文字が入っており、Github上でのプレビューでは正しく表示されています。
site_generatorが使用しているPython-Markdownは開始のバックティックの直後および終了のバックティックの直前の連続する空白文字を除去する(参考:Python-Markdown/markdown#321)のに対し、CommonMarkのCode spansの仕様では「` a`」のように一方にだけ空白文字がある場合には除去しないという仕様の違いがあるようです。