[PR] Merge pull request #195 from LS-KR/main

[O] Handle footnote
pull/197/head
Elihuso Quigley 2024-02-28 19:50:02 -08:00 committed by GitHub
commit ef97ae8bca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 18 additions and 0 deletions

View File

@ -120,6 +120,9 @@ function buildPeoplePages() {
// Read markdown page and remove markdown meta // Read markdown page and remove markdown meta
let markdown = metadataParser(fs.readFileSync(path.join(srcPath, `page${lang}.md`), "utf-8")).content.replaceAll("<!--", "{/* ").replaceAll("-->", " */}"); let markdown = metadataParser(fs.readFileSync(path.join(srcPath, `page${lang}.md`), "utf-8")).content.replaceAll("<!--", "{/* ").replaceAll("-->", " */}");
// Handle Footnote
markdown = handleFootnote(markdown)
// Autocorrect markdown // Autocorrect markdown
markdown = autocorrect.formatFor(markdown, 'markdown') markdown = autocorrect.formatFor(markdown, 'markdown')
@ -133,6 +136,21 @@ function buildPeoplePages() {
} }
} }
function handleFootnote(md: string) {
if (!md.includes('[^')) return md
// Replace footnote references with HTML superscript tags
return md.replace(/\[\^(\d+)\](?::\s*(.*))?/g, (match, id, text) => text ?
// Footnote definition
`<li id="footnote-${id}">${text}<a href="#footnote-ref-${id}">↩</a></li>` :
// Footnote reference
`<sup><a href="#footnote-${id}" id="footnote-ref-${id}">${id}</a></sup>`
)
// Wrap the footnote definitions in an ordered list
.replace(/(<li id="footnote.*<\/li>)/gs, '<ol>\n$1\n</ol>')
}
// Copy `people/${dirname}/photos` to `dist/people/${dirname}/`. // Copy `people/${dirname}/photos` to `dist/people/${dirname}/`.
function copyPeopleAssets() { function copyPeopleAssets() {
const PEOPLE_ASSETS = ["photos", "backup", "page.md"]; const PEOPLE_ASSETS = ["photos", "backup", "page.md"];