例:* 1932.
これらは驚くほどうまく機能しています:* 1917-32.
- 1917-32.
プラグインなしの最新の3.3.0.beta3-devを使用しています。
使用されているマークアップ
* 1932. テスト
* 1933. もう一度
はい、問題は確認できましたが、これは有効なMarkdownマークアップではないようです。上記のものを別のMarkdownエディタでテストしたところ、同様の問題が見られました。
数字の後のドットを省略することで、これを回避できます。たとえば、次のようになります。
または、先頭の*を除外することで、次のようになります。
1932. テスト
1933. 2行目のテスト
しかし、これは連続した年でのみ機能します。
2008. first
2014. second
2015. third
Markdown の代わりに HTML を使用することも代替案として機能するかもしれません。
<ul>
<li> 1997. first</li>
<li> 2000. second</li>
<li> 2015. third</li>
</ul>
それもMarkdownの制限です。Githubや他のいくつかのMarkdownエディタでテストしましたが、すべてデフォルトで連番リストになります。
このマージンをCSSで削除すると、正規化されます。
li>ul, li>ol, .cooked li>ul, .cooked li>ol, .d-editor-preview li>ul, .d-editor-preview li>ol {
margin: 0; /* これを削除 */
}
12983298. one
2. test
はい、以前にもこの問題を見たことがあります。CSSで凝ったことをすると、外れ値のケースで視覚的に問題が発生することがあります。
これは悪用される可能性があるため、おそらく@awesomerobotが覚えていると思います。
うーん、別のテストです。
- 12983298\. one
- 2\. test
* 12983298\. one
* 2\. test
明らかに、行の最初のトークンでなくても、ピリオドが続く数字は数値リストと見なされます。
これは、Markdownで数値の後に . を付けると、順序付きリストと見なされるためです。
そのため、* 1932. のようなフォーマットを使用すると、次のHTMLが生成されます。
<ul>
<li>
<ol start="1932">
<li><!-- item content --></li>
</ol>
</li>
<li>
<ol start="1933">
<li><!-- item content --></li>
</ol>
</li>
</ul>
技術的には有効ですが、奇妙で意図しないものです。
これは、- を導入すると、もはや連続した数値ではなくなるため、順序付きリストではなくなり、. は無視されるためです。
これを回避するには、理想的には次のいずれかを使用します。
* 1932 (数値が連続していない場合は順序なしリスト)
または
1932. (数値が連続している場合は順序付きリスト)
. が必要で、順序付きリストではない場合は、次のように \ でエスケープできます。
* 1932\.
これは別の問題であり、デフォルトのブラウザCSSでも発生します。
HTMLリストのアイテムマーカーは、パディング/マージンが考慮される前に配置される疑似要素であるため、常にコンテンツの「ボックス」の外側に表示されます。リストのマージン/パディングを削除しても、マーカーはオーバーフローします。
たとえば、リストの左側のマージン/パディングを削除し、親コンテナに overflow: hidden を適用すると、リストマーカーはまったく表示されません。
したがって、リストの左側に適用されるパディングは静的な値であり、リストマーカーはパディング内に収まるように配置されるため、ある時点で数値がオーバーフローします。
当社のCSSは、リストをデフォルトよりも水平方向に少しコンパクトにし、左マージンとパディングの両方があります…しかし、結果は基本的に同じです。
list-style-position: inside というCSSがあり、マーカーの配置を上書きできます。これにより、マーカーがコンテンツボックスの内側に配置されます。しかし、これは数値の配置が整わなくなることを意味します。
list-style-position: outside; (デフォルト):

list-style-position: inside; (リストマーカーがコンテンツスペースを占有します)

したがって、あらゆる長さの順序付きリストを適切にサポートし、コンテンツの配置に影響を与えないようにするには、次のようなことを行う必要があります…マーカーの桁数を検出するためにJSを使用します(リストの最初の数値から開始し、すべてのリストアイテムを数えて長さを決定します)そして、最も大きな数に対応するのに十分なパディングを適用します。
レポートありがとうございます。お役に立てると思われる回避策を提供しました。現時点では、すべてのエッジケースを修正することはできませんので、このレポートはこれで閉じさせていただきます。