From 879265b93f5a06cd9d45366514abcf6b28372fe8 Mon Sep 17 00:00:00 2001 From: Jimmy Tanagra Date: Sat, 11 Jul 2026 14:38:51 +1000 Subject: [PATCH] Ignore frontmatter in MarkdownCheck Signed-off-by: Jimmy Tanagra --- .../checkstyle/readme/MarkdownCheck.java | 3 +++ .../checkstyle/test/MarkdownCheckTest.java | 5 +++++ .../testFrontMatterIgnored/README.md | 16 ++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 custom-checks/checkstyle/src/test/resources/checkstyle/markdownCheckTest/testFrontMatterIgnored/README.md diff --git a/custom-checks/checkstyle/src/main/java/org/openhab/tools/analysis/checkstyle/readme/MarkdownCheck.java b/custom-checks/checkstyle/src/main/java/org/openhab/tools/analysis/checkstyle/readme/MarkdownCheck.java index 6944f57b..a8f5535a 100644 --- a/custom-checks/checkstyle/src/main/java/org/openhab/tools/analysis/checkstyle/readme/MarkdownCheck.java +++ b/custom-checks/checkstyle/src/main/java/org/openhab/tools/analysis/checkstyle/readme/MarkdownCheck.java @@ -15,11 +15,13 @@ import static org.openhab.tools.analysis.checkstyle.api.CheckConstants.*; import java.io.File; +import java.util.List; import org.openhab.tools.analysis.checkstyle.api.AbstractStaticCheck; import com.puppycrawl.tools.checkstyle.api.CheckstyleException; import com.puppycrawl.tools.checkstyle.api.FileText; +import com.vladsch.flexmark.ext.yaml.front.matter.YamlFrontMatterExtension; import com.vladsch.flexmark.parser.Parser; import com.vladsch.flexmark.util.ast.Node; import com.vladsch.flexmark.util.data.MutableDataSet; @@ -54,6 +56,7 @@ private void checkReadMe(FileText fileText) { MutableDataSet options = new MutableDataSet(); // By setting this option to true, the parser provides line numbers in the original markdown text for each node options.set(Parser.TRACK_DOCUMENT_LINES, true); + options.set(Parser.EXTENSIONS, List.of(YamlFrontMatterExtension.create())); Node readmeMarkdownNode = parseMarkdown(fileText, options); // CallBack is used in order to use the protected log method of the AbstractStaticCheck in the Visitor diff --git a/custom-checks/checkstyle/src/test/java/org/openhab/tools/analysis/checkstyle/test/MarkdownCheckTest.java b/custom-checks/checkstyle/src/test/java/org/openhab/tools/analysis/checkstyle/test/MarkdownCheckTest.java index e84341cb..453d4eb1 100644 --- a/custom-checks/checkstyle/src/test/java/org/openhab/tools/analysis/checkstyle/test/MarkdownCheckTest.java +++ b/custom-checks/checkstyle/src/test/java/org/openhab/tools/analysis/checkstyle/test/MarkdownCheckTest.java @@ -249,6 +249,11 @@ public void testDocFolderWrong() throws Exception { verifyMarkDownFile("testDocFolderWrong", expectedMessages); } + @Test + public void testFrontMatterIgnored() throws Exception { + verifyMarkDownFile("testFrontMatterIgnored", noMessagesExpected()); + } + private void createValidConfig() { config = createModuleConfig(MarkdownCheck.class); } diff --git a/custom-checks/checkstyle/src/test/resources/checkstyle/markdownCheckTest/testFrontMatterIgnored/README.md b/custom-checks/checkstyle/src/test/resources/checkstyle/markdownCheckTest/testFrontMatterIgnored/README.md new file mode 100644 index 00000000..1cc102ab --- /dev/null +++ b/custom-checks/checkstyle/src/test/resources/checkstyle/markdownCheckTest/testFrontMatterIgnored/README.md @@ -0,0 +1,16 @@ +--- +title: Sample document +description: | + # not a header + * not a list + ``` + not code formatting + ``` +children: + - ["doc/test1", "Test1"] + - ["doc/test2", "Test2"] +--- + +# Actual Header + +Body text.