diff --git a/scripts/build.ts b/scripts/build.ts index 1c19dd26..9d5c55ab 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -120,6 +120,9 @@ function buildPeoplePages() { // Read markdown page and remove markdown meta let markdown = metadataParser(fs.readFileSync(path.join(srcPath, `page${lang}.md`), "utf-8")).content.replaceAll("", " */}"); + // Handle Footnote + markdown = handleFootnote(markdown) + // Autocorrect markdown markdown = autocorrect.formatFor(markdown, 'markdown') @@ -133,6 +136,50 @@ function buildPeoplePages() { } } +function handleFootnote(md: string) { + const data = md.split('') + let result = '' + let footnote = false + let ol = false + + for (let i = 0; i < data.length; i += 1) { + if ((data[i] == '[') && (i != data.length - 1)) { + if (data[i + 1] == '^') { + footnote = true; + i += 1 + let id = '' + while (data[++i] != ']') id += data[i] + if (data[i + 1] == ':') { + if (!ol) { + ol = !ol; + result += '
    \n' + } + //
  1. message
  2. + result += `
  3. ` + let message = '' + while (data[i] != '\n') { + if (i < data.length - 1) ++i + else break + message += data[i] + } + result += message + result += `
  4. ` + } + else { + //1 + result += `${id}` + } + } + else result += data[i] + } + else result += data[i] + } + + if (footnote) result += '\n
\n' + + return result +} + // Copy `people/${dirname}/photos` to `dist/people/${dirname}/`. function copyPeopleAssets() { const PEOPLE_ASSETS = ["photos", "backup", "page.md"];