From f194c36ae3afcdb244508992a3748280d81d9724 Mon Sep 17 00:00:00 2001 From: DualFroz Date: Mon, 7 Sep 2026 15:42:24 +0200 Subject: [PATCH] fix: honor start="0" on ordered lists (#277) --- src/Converter/ListItemConverter.php | 4 ++-- tests/HtmlConverterTest.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Converter/ListItemConverter.php b/src/Converter/ListItemConverter.php index d71f601..a61b971 100644 --- a/src/Converter/ListItemConverter.php +++ b/src/Converter/ListItemConverter.php @@ -52,8 +52,8 @@ class ListItemConverter implements ConverterInterface, ConfigurationAwareInterfa return $prefix . $this->listItemStyle . ' ' . $value . "\n"; } - if ($listType === 'ol' && ($parent = $element->getParent()) && ($start = \intval($parent->getAttribute('start')))) { - $number = $start + $element->getSiblingPosition() - 1; + if ($listType === 'ol' && ($parent = $element->getParent()) && \is_numeric($start = $parent->getAttribute('start'))) { + $number = (int) $start + $element->getSiblingPosition() - 1; } else { $number = $element->getSiblingPosition(); } diff --git a/tests/HtmlConverterTest.php b/tests/HtmlConverterTest.php index 4b71832..e62247e 100644 --- a/tests/HtmlConverterTest.php +++ b/tests/HtmlConverterTest.php @@ -192,6 +192,7 @@ class HtmlConverterTest extends TestCase $this->assertHtmlGivesMarkdown('
  1. Item A
  2. Item B
', "1. Item A\n2. Item B"); $this->assertHtmlGivesMarkdown('
  1. Item A

    Description

  2. Item B
', "1. ### Item A\n \n Description\n2. Item B"); $this->assertHtmlGivesMarkdown('
  1. Item A
  2. Item B
', "120. Item A\n121. Item B"); + $this->assertHtmlGivesMarkdown('
  1. Item A
  2. Item B
', "0. Item A\n1. Item B"); $this->assertHtmlGivesMarkdown('', "- first item of first list\n- second item of first list\n\n* first item of second list", ['list_item_style_alternate' => '*']); }