Merge branch 'one-among-us:main' into Meowbot233

pull/215/head
Amika 2024-04-06 02:12:08 +08:00 committed by GitHub
commit 0b97fd3bd0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 30 additions and 10 deletions

View File

@ -1,3 +0,0 @@
[
"tdor"
]

View File

@ -1 +0,0 @@
[]

7
data/hdata.json Normal file
View File

@ -0,0 +1,7 @@
{
"commentOnly": [
"tdor"
],
"exclude": [],
"notShowOnHome": []
}

View File

@ -0,0 +1 @@
{"id":17100,"content":"晚安","submitter":"Catht","date":"Apr 5, 2024"}

View File

@ -8,7 +8,7 @@ import metadataParser from 'markdown-yaml-metadata-parser';
import { renderMdx } from "./mdx.js";
import moment from "moment";
import { Icon } from "./icon.js";
import { Icon, backSVG } from "./icon.js";
const PUBLIC_DIR = "public";
@ -27,8 +27,16 @@ const people = fs.readdirSync(peopleDir).map(person => ({
distPath: path.join(projectRoot, DIST_DIR, PEOPLE_DIR, person)
}));
const commentOnlyList = JSON.parse(fs.readFileSync(path.join(projectRoot, DATA_DIR, "comment-only.json")).toString()) as String[];
const excludeList = commentOnlyList.concat(JSON.parse(fs.readFileSync(path.join(projectRoot, DATA_DIR, 'exclude.json')).toString()) as String[]);
interface HData {
commentOnly: string[]
exclude: string[]
notShowOnHome: string[]
}
const hdata = JSON.parse(fs.readFileSync(path.join(projectRoot, DATA_DIR, "hdata.json")).toString()) as HData;
const commentOnlyList = hdata.commentOnly;
const excludeList = commentOnlyList.concat(hdata.exclude);
const notShowOnHomeList = hdata.notShowOnHome;
interface PeopleMeta {
id: string
@ -49,6 +57,7 @@ function buildPeopleInfoAndList() {
// Compiled meta of list of people for the front page (contains keys id, name, profileUrl)
const peopleList: PeopleMeta[] = [];
const peopleHomeList: PeopleMeta[] = [];
// For each person
for (const { dirname, srcPath, distPath } of people) {
@ -110,14 +119,19 @@ function buildPeopleInfoAndList() {
} as PeopleMeta;
// Add meta to people list
if (peopleList.filter(it => it.id == peopleMeta.id).length == 0)
if (peopleList.filter(it => it.id == peopleMeta.id).length == 0) {
peopleList.push(peopleMeta);
if (!notShowOnHomeList.includes(peopleMeta.id))
peopleHomeList.push(peopleMeta)
}
}
peopleList.sort((a, b) => b.sortKey.localeCompare(a.sortKey))
peopleHomeList.sort((a, b) => b.sortKey.localeCompare(a.sortKey))
// Write people-list.json
fs.writeFileSync(path.join(projectRoot, DIST_DIR, `people-list${lang}.json`), JSON.stringify(peopleList));
fs.writeFileSync(path.join(projectRoot, DIST_DIR, `people-home-list${lang}.json`), JSON.stringify(peopleHomeList));
}
}
@ -157,7 +171,7 @@ function handleFootnote(md: string) {
// 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>` :
`<li id="footnote-${id}">${text}<a href="#footnote-ref-${id}">${backSVG}</a></li>` :
// Footnote reference
`<sup><a href="#footnote-${id}" id="footnote-ref-${id}">${id}</a></sup>`
)

View File

@ -9,3 +9,5 @@ export const Icon = {
TransFlag: `<svg style="display: inline-block; overflow: visible !important; vertical-align: sub; margin-right: 10px;" viewBox="0 0 32 32" width="16" height="16" aria-hidden="true"><path fill="#5BCEFA" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-1.3H0V27z"/><path fill="#F5A9B8" d="M.026 20.5L0 25.8h36v-5.3z"/><path fill="#EEE" d="M0 15.3h36v5.3H0z"/><path fill="#F5A9B8" d="M0 9.902h36V15.4H0z"/><path fill="#5BCEFA" d="M36 9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v1.2h36V9z"/></svg>`,
Pride: `<svg style="display: inline-block; overflow: visible !important; vertical-align: sub; margin-right: 10px;" viewBox="0 0 32 32" width="16" height="16" aria-hidden="true"><path fill="#880082" d="M0 27a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4v-.5H0v.5z"/><path fill="#3558A0" d="M0 22.07h36v4.6H0z"/><path fill="#138F3E" d="M0 17.83h36v4.5H0z"/><path fill="#FAD220" d="M0 13.5h36V18H0z"/><path fill="#FF7300" d="M0 9.17h36v4.5H0z"/><path fill="#FF000E" d="M32 5H4a4 4 0 0 0-4 4v.33h36V9a4 4 0 0 0-4-4z"/></svg>`,
};
export const backSVG = `<svg width="16" height="16"viewBox="0 0 16 16" version="1.1" id="svg1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="defs1" /> <path style="opacity:1;fill:#fff9f9;fill-opacity:0.0199483;stroke:#ff8373;stroke-width:0.839;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 10,4.0031 c 0,0 4.003714,0.3021906 4.001025,4.1458036 C 13.998336,11.992517 10,12.004973 10,12.004973 l -8,-0.0267" id="path1" /> <path style="opacity:1;fill:#fff9f9;fill-opacity:0.0199483;stroke:#ff8373;stroke-width:0.839;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="M 3.3112984,10.696288 2,11.978273 3.2812828,13.265655" id="path2" /></svg>`