diff --git a/scripts/build.ts b/scripts/build.ts index 9d5c55ab..6db2a149 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -137,47 +137,18 @@ function buildPeoplePages() { } function handleFootnote(md: string) { - const data = md.split('') - let result = '' - let footnote = false - let ol = false + if (!md.includes('[^')) return md - 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] - } + // Replace footnote references with HTML superscript tags + md = md.replace(/\[\^(\d+)\](?::\s*(.*))?/g, (match, id, text) => text ? + // Footnote definition + `
  5. ${text}
  6. ` : + // Footnote reference + `${id}` + ) - if (footnote) result += '\n
\n' - - return result + // Wrap the footnote definitions in an ordered list + return md.replace(/(