diff --git a/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php b/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php index 2919f13..8b96b77 100644 --- a/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php +++ b/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php @@ -106,7 +106,7 @@ class Processor implements DocumentProcessorInterface } } - $text = 'page_' . DauxHelper::slug(trim($text)); + $text = 'page_' . urlencode(trim($text)); // TODO :: check for uniqueness $node->data['attributes']['id'] = $text; diff --git a/tests/Format/HTML/TableOfContentsTest.php b/tests/Format/HTML/TableOfContentsTest.php new file mode 100644 index 0000000..5203595 --- /dev/null +++ b/tests/Format/HTML/TableOfContentsTest.php @@ -0,0 +1,49 @@ + new MainConfig]); + + $this->assertEquals("

Test

\n", $converter->convertToHtml('# Test')); + } + + function testTOCToken() { + $converter = new CommonMarkConverter(['daux' => new MainConfig]); + + $source = "[TOC]\n# Title"; + $expected = << +
  • +

    Title

    +
  • + +

    Title

    + +EXPECTED; + + $this->assertEquals($expected, $converter->convertToHtml($source)); + } + + function testUnicodeTOC() { + $converter = new CommonMarkConverter(['daux' => new MainConfig]); + + $source = "[TOC]\n# 基础操作"; + $expected = << +
  • +

    基础操作

    +
  • + +

    基础操作

    + +EXPECTED; + + $this->assertEquals($expected, $converter->convertToHtml($source)); + } +} + +