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'
- }
- //- message ↩
- result += `- `
- let message = ''
- while (data[i] != '\n') {
- if (i < data.length - 1) ++i
- else break
- message += data[i]
- }
- result += message
- result += `↩
`
- }
- 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
+ `` :
+ // Footnote reference
+ ``
+ )
- if (footnote) result += '\n
\n'
-
- return result
+ // Wrap the footnote definitions in an ordered list
+ return md.replace(/(