From ea6e2479b98ebcc6920f3a3ee51ce31821dec937 Mon Sep 17 00:00:00 2001 From: Dima Shevtsov Date: Tue, 24 Mar 2026 10:50:24 -0500 Subject: [PATCH 1/2] Replace HeroSimple component with SuperHero in index.md --- src/pages/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/index.md b/src/pages/index.md index 2e88ad0..5d1052d 100644 --- a/src/pages/index.md +++ b/src/pages/index.md @@ -6,7 +6,7 @@ keywords: - Tools --- - + ![Commerce Cloud Docker](_images/banner-hex-violet.png) From 83ce4dc4e60dbebf3e67a3596ea2626a2d2cdd15 Mon Sep 17 00:00:00 2001 From: Dima Shevtsov Date: Tue, 24 Mar 2026 10:59:37 -0500 Subject: [PATCH 2/2] Update linters --- .markdownlint-cli2.jsonc | 12 ++++++++++++ .markdownlint.yml | 15 +++++++++++++-- tests/config.test.js | 12 ++++++++---- 3 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 .markdownlint-cli2.jsonc diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 0000000..ee4126d --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,12 @@ +{ + // Ignore files referenced by .gitignore (only valid at root) + "gitignore": true, + + // Define glob expressions to ignore + "ignores": [ + "node_modules/", + "coverage/", + ".github/", + "src/pages/config.md" + ] +} diff --git a/.markdownlint.yml b/.markdownlint.yml index 381baec..7f6d70c 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -18,8 +18,7 @@ MD007: false MD013: false # MD024/no-duplicate-heading - Multiple headings with the same content -MD024: - siblings_only: true +MD024: false # MD025/single-title/single-h1 - Multiple top-level headings in the same document MD025: @@ -35,6 +34,12 @@ MD033: - Resources - DiscoverBlock - InlineAlert + - Edition + - SuperHero + - CodeBlock + - Fragment + - Cards + - HorizontalLine # MD034/no-bare-urls - Bare URL used MD034: false @@ -64,3 +69,9 @@ MD049: false MD050: style: asterisk +# MD055/table-pipe-style - Require leading and trailing pipes (matches AM023) +MD055: + style: leading_and_trailing + +# MD060/table-column-style - Table column style (disabled for flexible formatting) +MD060: false diff --git a/tests/config.test.js b/tests/config.test.js index 51a46b0..aa06b68 100644 --- a/tests/config.test.js +++ b/tests/config.test.js @@ -25,6 +25,7 @@ const LINK_REGEX = /\]\((.+)\)$/; * Helper functions to reduce duplication */ const isExternalUrl = (url) => url.startsWith('http://') || url.startsWith('https://'); +const isAnchorLink = (url) => url.startsWith('#'); const extractTitle = (entry) => { const match = entry.match(TITLE_REGEX); @@ -246,7 +247,7 @@ describe('Config.md Navigation Tests', () => { test('internal page links should point to existing files', () => { configData.pages.forEach((page) => { const link = extractLink(page); - if (link && !isExternalUrl(link)) { + if (link && !isExternalUrl(link) && !isAnchorLink(link)) { const filePath = path.join(PAGES_DIR, link); expect(fs.existsSync(filePath)).toBe(true); } @@ -281,14 +282,14 @@ describe('Config.md Navigation Tests', () => { test('internal subPage links should point to existing files', () => { configData.subPages.forEach((item) => { const parentLink = extractLink(item.parent); - if (parentLink && !isExternalUrl(parentLink)) { + if (parentLink && !isExternalUrl(parentLink) && !isAnchorLink(parentLink)) { const filePath = path.join(PAGES_DIR, parentLink); expect(fs.existsSync(filePath)).toBe(true); } item.children.forEach((child) => { const childLink = extractLink(child); - if (childLink && !isExternalUrl(childLink)) { + if (childLink && !isExternalUrl(childLink) && !isAnchorLink(childLink)) { const filePath = path.join(PAGES_DIR, childLink); expect(fs.existsSync(filePath)).toBe(true); } @@ -308,7 +309,10 @@ describe('Config.md Navigation Tests', () => { test('internal links should use .md extension', () => { const links = getAllLinks(configData, true); links.forEach((link) => { - expect(link).toMatch(/\.md$/); + // Skip anchor links as they don't need .md extension + if (!isAnchorLink(link)) { + expect(link).toMatch(/\.md$/); + } }); });