docs: generate typlite readme (#1868)
Some checks failed
tinymist::ci / Duplicate Actions Detection (push) Has been cancelled
tinymist::ci / Check Clippy, Formatting, Completion, Documentation, and Tests (Linux) (push) Has been cancelled
tinymist::ci / Check Minimum Rust version and Tests (Windows) (push) Has been cancelled
tinymist::ci / prepare-build (push) Has been cancelled
tinymist::gh_pages / build-gh-pages (push) Has been cancelled
tinymist::ci / E2E Tests (darwin-arm64 on macos-latest) (push) Has been cancelled
tinymist::ci / E2E Tests (linux-x64 on ubuntu-22.04) (push) Has been cancelled
tinymist::ci / E2E Tests (linux-x64 on ubuntu-latest) (push) Has been cancelled
tinymist::ci / E2E Tests (win32-x64 on windows-2022) (push) Has been cancelled
tinymist::ci / E2E Tests (win32-x64 on windows-latest) (push) Has been cancelled
tinymist::ci / build-binary (push) Has been cancelled
tinymist::ci / build-vsc-assets (push) Has been cancelled
tinymist::ci / build-vscode (push) Has been cancelled
tinymist::ci / build-vscode-others (push) Has been cancelled
tinymist::ci / publish-vscode (push) Has been cancelled

* docs: generate typltie readme

* dev(ci): add docs check

* fix: don't cache error

* dev(ci): install typst

* docs: update docs

* feat: mark shell scripts
This commit is contained in:
Myriad-Dreamin 2025-07-03 01:41:19 +08:00 committed by GitHub
parent 38a1d48a6f
commit 1478280a07
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 152 additions and 27 deletions

View file

@ -113,34 +113,77 @@ const maintainerMd = async () => {
await fs.promises.writeFile(outPath, outputContent);
};
const isCheck = process.argv.includes("--check");
const tasks = [
{
input: "docs/tinymist/introduction.typ",
output: "README.md",
title: "Tinymist",
},
{
input: "docs/tinymist/release-instruction.typ",
output: "docs/release-instruction.md",
title: "Release Instructions",
},
{
input: "docs/tinymist/crates/typlite.typ",
output: "crates/typlite/README.md",
title: "Typlite",
},
{
input: "docs/tinymist/frontend/emacs.typ",
output: "editors/emacs/README.md",
title: "Tinymist Emacs Support for Typst",
},
{
input: "docs/tinymist/frontend/helix.typ",
output: "editors/helix/README.md",
title: "Tinymist Helix Support for Typst",
},
{
input: "docs/tinymist/frontend/neovim.typ",
output: "editors/neovim/README.md",
title: "Tinymist Neovim Support for Typst",
},
{
input: "docs/tinymist/frontend/sublime-text.typ",
output: "editors/sublime-text/README.md",
title: "Tinymist Sublime Support for Typst",
},
{
input: "docs/tinymist/frontend/vscode.typ",
output: "editors/vscode/README.md",
title: "Tinymist Typst VS Code Extension",
},
{
input: "docs/tinymist/frontend/zed.typ",
output: "editors/zed/README.md",
title: "Tinymist Zed Support for Typst",
},
];
const main = async () => {
await Promise.all([
convert("docs/tinymist/introduction.typ", "README.md", {
before: "# Tinymist\n\n",
}),
convert("docs/tinymist/release-instruction.typ", "docs/release-instruction.md", {
before: "# Release Instructions\n\n",
}),
convert("docs/tinymist/frontend/emacs.typ", "editors/emacs/README.md", {
before: "# Tinymist Emacs Support for Typst\n\n",
}),
convert("docs/tinymist/frontend/helix.typ", "editors/helix/README.md", {
before: "# Tinymist Helix Support for Typst\n\n",
}),
convert("docs/tinymist/frontend/neovim.typ", "editors/neovim/README.md", {
before: "# Tinymist Neovim Support for Typst\n\n",
}),
convert("docs/tinymist/frontend/sublime-text.typ", "editors/sublime-text/README.md", {
before: "# Tinymist Sublime Support for Typst\n\n",
}),
convert("docs/tinymist/frontend/vscode.typ", "editors/vscode/README.md", {
before: "# Tinymist Typst VS Code Extension\n\n",
}),
convert("docs/tinymist/frontend/zed.typ", "editors/zed/README.md", {
before: "# Tinymist Zed Support for Typst\n\n",
}),
...tasks.map((task) => convert(task.input, task.output, { before: `# ${task.title}\n\n` })),
maintainerMd(),
]);
if (isCheck) {
// any dirty git files?
await Promise.all(
tasks.map(async (task) => {
const gitStatus = execSync(`git status --porcelain ${task.output}`, {
encoding: "utf-8",
}).trim();
if (gitStatus) {
throw new Error(
`The file ${task.output} is not up to date. Please run \`node scripts/link-docs.mjs\` to update it.`,
);
}
}),
);
}
};
main().catch(console.error);
main();