リストの書式設定が壊れています

例:* 1932.

これらは驚くほどうまく機能しています:* 1917-32.

  • 1917-32.

プラグインなしの最新の3.3.0.beta3-devを使用しています。

「いいね!」 2
    1. テスト
    1. 2行目のテスト

使用されているマークアップ

* 1932. テスト
* 1933. もう一度

はい、問題は確認できましたが、これは有効なMarkdownマークアップではないようです。上記のものを別のMarkdownエディタでテストしたところ、同様の問題が見られました。

数字の後のドットを省略することで、これを回避できます。たとえば、次のようになります。

  • 1932 - テスト
  • 1933 - 2行目のテスト

または、先頭の*を除外することで、次のようになります。

  1. テスト
  2. 2行目のテスト
1932. テスト
1933. 2行目のテスト
「いいね!」 1

しかし、これは連続した年でのみ機能します。

  1. first
  2. second
  3. third
2008. first
2014. second
2015. third

Markdown の代わりに HTML を使用することも代替案として機能するかもしれません。

  • 1997. first
  • 2000. second
  • 2015. third
<ul>
  <li> 1997. first</li>
  <li> 2000. second</li>
  <li> 2015. third</li>
</ul>
「いいね!」 1

それもMarkdownの制限です。Githubや他のいくつかのMarkdownエディタでテストしましたが、すべてデフォルトで連番リストになります。

「いいね!」 3

このマージンをCSSで削除すると、正規化されます。

li>ul, li>ol, .cooked li>ul, .cooked li>ol, .d-editor-preview li>ul, .d-editor-preview li>ol {
    margin: 0; /* これを削除 */
}
「いいね!」 1
12983298. one
2. test
  1. one
  2. test

はい、以前にもこの問題を見たことがあります。CSSで凝ったことをすると、外れ値のケースで視覚的に問題が発生することがあります。

これは悪用される可能性があるため、おそらく@awesomerobotが覚えていると思います。

「いいね!」 2

うーん、別のテストです。

- 12983298\. one
- 2\. test
  • 12983298. one
  • 2. test
* 12983298\. one
* 2\. test
  • 12983298. one
  • 2. test

明らかに、行の最初のトークンでなくても、ピリオドが続く数字は数値リストと見なされます。

「いいね!」 1

これは、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; (デフォルト):

image

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

image

したがって、あらゆる長さの順序付きリストを適切にサポートし、コンテンツの配置に影響を与えないようにするには、次のようなことを行う必要があります…マーカーの桁数を検出するためにJSを使用します(リストの最初の数値から開始し、すべてのリストアイテムを数えて長さを決定します)そして、最も大きな数に対応するのに十分なパディングを適用します。

「いいね!」 4

レポートありがとうございます。お役に立てると思われる回避策を提供しました。現時点では、すべてのエッジケースを修正することはできませんので、このレポートはこれで閉じさせていただきます。

「いいね!」 2