diff --git a/src/Rules/OrderedListRule.php b/src/Rules/OrderedListRule.php index 33aeebe..588673b 100644 --- a/src/Rules/OrderedListRule.php +++ b/src/Rules/OrderedListRule.php @@ -39,7 +39,7 @@ public function shouldParse(Parser $parser): bool public function parse(Parser $parser): ?Token { - $parser->consumeWhile('0123456789'); + $number = $parser->consumeWhile('0123456789'); $parser->consumeIncluding('.'); $content = trim($parser->consumeUntil(Parser::NEW_LINE)); $parser->consumeWhile(Parser::NEW_LINE); @@ -68,6 +68,6 @@ public function parse(Parser $parser): ?Token return null; } - return new OrderedListToken([$item]); + return new OrderedListToken([$item], (int) $number); } } diff --git a/src/Tokens/OrderedListToken.php b/src/Tokens/OrderedListToken.php index d3ddbf0..429e1df 100644 --- a/src/Tokens/OrderedListToken.php +++ b/src/Tokens/OrderedListToken.php @@ -18,6 +18,9 @@ final class OrderedListToken implements Token public function __construct( /** @var \Tempest\Markdown\Tokens\ListItem[] */ public array $items = [], + + /** The number the list starts at, as written in the first item's marker. */ + public int $start = 1, ) {} public function parse(Parser $parser): string @@ -33,7 +36,9 @@ public function parse(Parser $parser): string new TextRule(), ]); - $list = '