Merge pull request #7 from vacp2p/develop

Fix bugs with links in markdown
This commit is contained in:
Jimmy Debe 2024-10-13 21:02:36 -04:00 committed by GitHub
commit 5e42014be1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 35 additions and 29 deletions

View File

@ -53,7 +53,7 @@ function enhanceMarkdownWithBulletPointsCorrected(input) {
if (field.includes('\n')) { if (field.includes('\n')) {
const [label, ...values] = field.split('\n') const [label, ...values] = field.split('\n')
return `- ${label.charAt(0).toUpperCase() + return `- ${label.charAt(0).toUpperCase() +
label.slice(1)}:\n ${values.join('\n ')}` label.slice(1)}:\n ${values.join('\n ')}`
} else { } else {
return `- ${field.charAt(0).toUpperCase() + field.slice(1)}` return `- ${field.charAt(0).toUpperCase() + field.slice(1)}`
} }
@ -85,31 +85,31 @@ function parseSlugFromFrontmatter(content) {
function escapeHtmlTagSymbols(content) { function escapeHtmlTagSymbols(content) {
function replaceComparisonSymbol(text, symbol) { function replaceComparisonSymbol(text, symbol) {
// Regex to match everything, but we'll handle what to replace in the callback // Regex to match everything, but we'll handle what to replace in the callback
let regex = /(```[\s\S]+?```|`[^`]*`)|(<)/g; let regex = /(```[\s\S]+?```|`[^`]*`)|(<)/g
let replacementString = "&lt;"; let replacementString = '&lt;'
if (symbol === ">") { if (symbol === '>') {
regex = /(```[\s\S]+?```|`[^`]*`)|(>)/g; regex = /(```[\s\S]+?```|`[^`]*`)|(>)/g
replacementString = "&gt;"; replacementString = '&gt;'
} }
return text.replace(regex, function(match, code, lessThan) { return text.replace(regex, function(match, code, lessThan) {
if (code) { if (code) {
// It's a code segment, return it unchanged // It's a code segment, return it unchanged
return code; return code
} else if (lessThan) { } else if (lessThan) {
// It's a '<' outside of code blocks, replace with '&lt;' // It's a '<' outside of code blocks, replace with '&lt;'
return replacementString; return replacementString
} }
// Default return (though practically unused in this setup) // Default return (though practically unused in this setup)
return match; return match
}); })
} }
content = replaceComparisonSymbol(content, "<") content = replaceComparisonSymbol(content, '<')
content = replaceComparisonSymbol(content, ">") content = replaceComparisonSymbol(content, '>')
return content; return content
} }
function unescapeHtmlComments(htmlString) { function unescapeHtmlComments(htmlString) {
@ -118,9 +118,15 @@ function unescapeHtmlComments(htmlString) {
function updateMarkdownLinksToExcludeMD(content) { function updateMarkdownLinksToExcludeMD(content) {
function replaceLinks(match, p1, p2, p3) { function replaceLinks(match, p1, p2, p3) {
let url = p2.replace(/\.md$/, ''); // Remove .md extension from URL // Skip if the link is an external link (starts with 'http://' or 'https://')
let anchor = p3.replace(/^\//, ''); // Remove preceding '/' from anchor if exists if (match.includes('http://') || match.includes('https://')) {
return `[${p1}](${url}${anchor ? '#' + anchor : ''})`; return match
}
let url = p2.replace(/\.md$/, '') // Remove .md extension from URL
let anchor = p3.replace(/^\//, '') // Remove preceding '/' from anchor if exists
return `[${p1}](${url}${anchor ? '#' + anchor : ''})`
} }
const regex = /\[((?:(?!\]).)+)\]\(([^)]*?\.md)(?:\/#|\/#)?([^)]*)\)/g const regex = /\[((?:(?!\]).)+)\]\(([^)]*?\.md)(?:\/#|\/#)?([^)]*)\)/g
@ -129,7 +135,7 @@ function updateMarkdownLinksToExcludeMD(content) {
} }
export function vacMarkdownToDocusaurusMarkdown(fileContent) { export function vacMarkdownToDocusaurusMarkdown(fileContent) {
let convertedContent = fileContent; let convertedContent = fileContent
// Remove 'tags' line from frontmatter because the format is wrong // Remove 'tags' line from frontmatter because the format is wrong
convertedContent = convertedContent.replace(/tags:.*\n?/, '') convertedContent = convertedContent.replace(/tags:.*\n?/, '')
@ -151,7 +157,7 @@ export function vacMarkdownToDocusaurusMarkdown(fileContent) {
convertedContent = updateMarkdownLinksToExcludeMD(convertedContent) convertedContent = updateMarkdownLinksToExcludeMD(convertedContent)
return convertedContent; return convertedContent
} }
export function adjustPathForMarkdown(filePath) { export function adjustPathForMarkdown(filePath) {

View File

@ -17,7 +17,7 @@
"build:full": "yarn scrape && yarn build" "build:full": "yarn scrape && yarn build"
}, },
"dependencies": { "dependencies": {
"@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.174", "@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.181",
"@docusaurus/core": "2.4.1", "@docusaurus/core": "2.4.1",
"@docusaurus/preset-classic": "2.4.1", "@docusaurus/preset-classic": "2.4.1",
"@docusaurus/theme-mermaid": "^2.4.1", "@docusaurus/theme-mermaid": "^2.4.1",

View File

@ -19,14 +19,14 @@
satori "^0.10.1" satori "^0.10.1"
sharp "^0.32.1" sharp "^0.32.1"
"@acid-info/logos-docusaurus-preset@^1.0.0-alpha.174": "@acid-info/logos-docusaurus-preset@^1.0.0-alpha.181":
version "1.0.0-alpha.174" version "1.0.0-alpha.181"
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-preset/-/logos-docusaurus-preset-1.0.0-alpha.174.tgz#34b588a2b81c140e194c00eabd52d0d623f2477c" resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-preset/-/logos-docusaurus-preset-1.0.0-alpha.181.tgz#31e42de1b84f6e145368e5f252aafd42983b15a9"
integrity sha512-lz8Zm+x3tJF9DepSTfZkiBSKfhsTa1h1WnA5py5lXo5fqZiDmzlIyr0m3Tnxm9hFoejw0DMshgGJmwNNaNFFNA== integrity sha512-KvMyDGFwst7P5HzlWQ4G08Q6Ep9gPZ9mt35nBN7dksiVzu1heVj3hfY91of2u1EXZszHDmzztU1iqoGYNinOhg==
dependencies: dependencies:
"@acid-info/docusaurus-og" "^1.0.0-alpha.131" "@acid-info/docusaurus-og" "^1.0.0-alpha.131"
"@acid-info/logos-docusaurus-search-local" "^1.0.0-alpha.111" "@acid-info/logos-docusaurus-search-local" "^1.0.0-alpha.111"
"@acid-info/logos-docusaurus-theme" "^1.0.0-alpha.174" "@acid-info/logos-docusaurus-theme" "^1.0.0-alpha.181"
"@docusaurus/core" "^2.4.1" "@docusaurus/core" "^2.4.1"
"@docusaurus/module-type-aliases" "^2.4.1" "@docusaurus/module-type-aliases" "^2.4.1"
"@docusaurus/preset-classic" "^2.4.1" "@docusaurus/preset-classic" "^2.4.1"
@ -54,10 +54,10 @@
"@easyops-cn/docusaurus-search-local" "^0.33.6" "@easyops-cn/docusaurus-search-local" "^0.33.6"
lodash "^4.17.21" lodash "^4.17.21"
"@acid-info/logos-docusaurus-theme@^1.0.0-alpha.174": "@acid-info/logos-docusaurus-theme@^1.0.0-alpha.181":
version "1.0.0-alpha.174" version "1.0.0-alpha.181"
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-theme/-/logos-docusaurus-theme-1.0.0-alpha.174.tgz#6457c75645e88f2e30d1be691c8008bb33f145e9" resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-theme/-/logos-docusaurus-theme-1.0.0-alpha.181.tgz#c68946a3372700284f2b9d0d4fc8cd7fc576125c"
integrity sha512-IgoTGv5zGkZ2lUHnUF0fQiGAdboEbb1L4pR4Ov0wmTfWAQ4aH3vwsjD4ARJ3qLjVapwHG1mEcjzdOqId3wIy2g== integrity sha512-hKLClMNHMrVhoApz+uY096tLAswScKq/FXUGb3VeY675QO75P1OMaPAKdKLnFeLXTRs3lbU3TA6YpkwEZDiJAA==
dependencies: dependencies:
"@acid-info/docusaurus-og" "^1.0.0-alpha.131" "@acid-info/docusaurus-og" "^1.0.0-alpha.131"
"@acid-info/lsd-react" "^0.1.0-beta.3" "@acid-info/lsd-react" "^0.1.0-beta.3"