docs: add sponsoring section to readme (#1620)

* docs: add sponsoring section to readme

* build: generate readme

* docs: wording

* docs: wording also mention contributors

* docs: wording also mention contributors
This commit is contained in:
Myriad-Dreamin 2025-04-02 15:20:53 +08:00 committed by GitHub
parent 59fda809d5
commit d7424abed8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 135 additions and 4 deletions

56
MAINTAINERS.md Normal file
View file

@ -0,0 +1,56 @@
<!-- This file is generated by scripts/link-docs.mjs. Do not edit manually. -->
# Tinymist Maintainers
Tinymist [ˈtaɪni mɪst] is an integrated language service for [Typst](https://typst.app/) [taɪpst].
This page is generated from [./MAINTAINERS.typ](./MAINTAINERS.typ) and renders information of [maintainers](#maintainers) and [features.](#features)
## Maintainers
- [**Myriad-Dreamin**](https://github.com/Myriad-Dreamin)
- Email: camiyoru@gmail.com
- Maintains: *[Editor Integration](#editor-integration)*, *[Language Service](#language-service)*, *[Document Previewing](#document-previewing)*, *[VS Code Client-Side Support](#vs-code-client-side-support)*, and *[Nightly Releases](#nightly-releases)*
- [**Enter-tainer**](https://github.com/Enter-tainer)
- Email: mgt@oi-wiki.org
- Maintains: *[Editor Integration](#editor-integration)*, *[Language Service](#language-service)*, *[Document Previewing](#document-previewing)*, and *[VS Code Client-Side Support](#vs-code-client-side-support)*
- [**ParaN3xus**](https://github.com/ParaN3xus)
- Email: paran3xus007@gmail.com
- Maintains: *[Nightly Releases](#nightly-releases)*
- [**Max397**](https://github.com/max397574)
- Email: undefined
- Maintains: *[Editor Integration](#editor-integration)*
- [**Ericoolen**](https://github.com/Eric-Song-Nop)
- Email: EricYFSong@gmail.com
- Maintains: *[Language Service](#language-service)*
- [**Caleb Maclennan**](https://github.com/alerque)
- Email: caleb@alerque.com
- Maintains: *[Editor Integration](#editor-integration)*
- [**SylvanFranklin**](https://github.com/SylvanFranklin)
- Email: sylvanfranklin@icloud.com
- Maintains: *[Editor Integration](#editor-integration)*, and *[Document Previewing](#document-previewing)*
## Features
### Editor Integration
Integrate tinymist server with popular editors like VS Code, Neovim, etc.
- Scope: [`crates/tinymist/`](./crates/tinymist/), [`editors/`](./editors/)
### Language Service
Perform code analysis and provide language support for Typst.
- Scope: [`crates/tinymist/`](./crates/tinymist/), [`crates/tinymist-analysis/`](./crates/tinymist-analysis/), [`crates/tinymist-query/`](./crates/tinymist-query/)
### Document Previewing
Provide instant preview of the document being edited.
- Scope: [`crates/tinymist/`](./crates/tinymist/), [`crates/typst-preview/`](./crates/typst-preview/), [`contrib/typst-preview/`](./contrib/typst-preview/), [`tools/typst-dom/`](./tools/typst-dom/), [`tools/typst-preview-frontend/`](./tools/typst-preview-frontend/)
### VS Code Client-Side Support
Enrich the VS Code features with the client-side extension.
- Scope: [`crates/tinymist/`](./crates/tinymist/), [`editors/vscode/`](./editors/vscode/), [`tools/editor-tools/`](./tools/editor-tools/)
### Nightly Releases
Build and Publish nightly releases of tinymist. The nightly releases are built upon the main branches of both tinymist and typst.
- Scope: [`crates/tinymist/`](./crates/tinymist/), [`crates/typst-shim/`](./crates/typst-shim/)

View file

@ -71,7 +71,7 @@
Integrate tinymist server with popular editors like VS Code, Neovim, etc. Integrate tinymist server with popular editors like VS Code, Neovim, etc.
] ]
- #language-service - #language-service
- #scope("crates/tinymist/", "crates/tinymist-query/") - #scope("crates/tinymist/", "crates/tinymist-analysis/", "crates/tinymist-query/")
- #description[ - #description[
Perform code analysis and provide language support for Typst. Perform code analysis and provide language support for Typst.
] ]
@ -92,7 +92,7 @@
Enrich the VS Code features with the client-side extension. Enrich the VS Code features with the client-side extension.
] ]
- #nightly-releases - #nightly-releases
- #scope("crates/tinymist/", "typst-shim/") - #scope("crates/tinymist/", "crates/typst-shim/")
- #description[ - #description[
Build and Publish nightly releases of tinymist. The nightly releases are built upon the main branches of both tinymist and typst. Build and Publish nightly releases of tinymist. The nightly releases are built upon the main branches of both tinymist and typst.
] ]

View file

@ -175,13 +175,17 @@ Tinymist is localized in multiple languages. You can contribute to the localizat
## Maintainers ## Maintainers
Get list of maintainers from [MAINTAINERS.typ](https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.typ). Or programmatically by `yarn maintainers` Get list of maintainers from [Maintainers Page](https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.md). Or programmatically by `yarn maintainers`
> [!NOTE] > [!NOTE]
> >
> You can add extra arguments for specific information. For example, `yarn maintainers --input="action=maintainers"`. > You can add extra arguments for specific information. For example, `yarn maintainers --input="action=maintainers"`.
## Sponsoring
Tinymist thrives on community love and remains proudly independent. While we don't accept direct project funding, we warmly welcome support for our maintainers' personal efforts. Please go to [Maintainers Page](https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.md) and [Contributors Page](https://github.com/Myriad-Dreamin/tinymist/graphs/contributors) and find their personal pages for more information. It is also welcomed to directly ask questions about sponsoring on the [GitHub Issues](https://github.com/Myriad-Dreamin/tinymist/issues/new).
## Acknowledgements ## Acknowledgements
- Partially code is inherited from [typst-lsp](https://github.com/nvarner/typst-lsp) - Partially code is inherited from [typst-lsp](https://github.com/nvarner/typst-lsp)

View file

@ -125,12 +125,16 @@ Tinymist is localized in multiple languages. You can contribute to the localizat
== Maintainers == Maintainers
Get list of maintainers from #link("https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.typ")[MAINTAINERS.typ]. Or programmatically by `yarn maintainers` Get list of maintainers from #link("https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.md")[Maintainers Page]. Or programmatically by `yarn maintainers`
#note-box[ #note-box[
You can add extra arguments for specific information. For example, `yarn maintainers --input="action=maintainers"`. You can add extra arguments for specific information. For example, `yarn maintainers --input="action=maintainers"`.
] ]
== Sponsoring
Tinymist thrives on community love and remains proudly independent. While we don't accept direct project funding, we warmly welcome support for our maintainers' personal efforts. Please go to #link("https://github.com/Myriad-Dreamin/tinymist/blob/main/MAINTAINERS.md")[Maintainers Page] and #link("https://github.com/Myriad-Dreamin/tinymist/graphs/contributors")[Contributors Page] and find their personal pages for more information. It is also welcomed to directly ask questions about sponsoring on the #link("https://github.com/Myriad-Dreamin/tinymist/issues/new")[GitHub Issues].
== Acknowledgements == Acknowledgements
- Partially code is inherited from #link("https://github.com/nvarner/typst-lsp")[typst-lsp] - Partially code is inherited from #link("https://github.com/nvarner/typst-lsp")[typst-lsp]

View file

@ -63,6 +63,72 @@ const convert = async (inp, out, opts) => {
await fs.promises.writeFile(output, outputContent); await fs.promises.writeFile(output, outputContent);
}; };
// todo: generate me using typlite.
const maintainerMd = async () => {
const maintainers = JSON.parse(yarn(`--silent maintainers --input=action=maintainers`, "pipe"));
const features = JSON.parse(yarn(`--silent maintainers --input=action=features`, "pipe"));
const output = [];
output.push("<!-- This file is generated by scripts/link-docs.mjs. Do not edit manually. -->\n");
output.push("# Tinymist Maintainers\n\n");
output.push(
"Tinymist [ˈtaɪni mɪst] is an integrated language service for [Typst](https://typst.app/) [taɪpst].",
);
output.push(
"\nThis page is generated from [./MAINTAINERS.typ](./MAINTAINERS.typ) and renders information of [maintainers](#maintainers) and [features.](#features)\n",
);
output.push("## Maintainers\n");
const italicIt = (it) => `*${it}*`;
const featureLink = (it) => {
const feature = features.find((f) => f.name === it);
if (feature) {
return `[${it}](#${it.replace(/\s+/g, "-").toLowerCase()})`;
}
return it;
};
const fsPath = (it) => {
if (!fs.existsSync(it)) {
throw new Error(`Path ${it} does not exist!`);
}
return `[\`${it}\`](./${it})`;
};
for (const maintainer of maintainers) {
output.push(`- [**${maintainer["name"]}**](https://github.com/${maintainer["github-name"]})`);
output.push(` - Email: ${maintainer.email}`);
if (maintainer.maintains.length > 0) {
const rendered = maintainer.maintains.map(featureLink).map(italicIt);
if (rendered.length > 1) {
const last = rendered.pop();
output.push(` - Maintains: ${rendered.join(", ")}, and ${last}`);
} else {
output.push(` - Maintains: ${rendered.join(", ")}`);
}
}
output.push("");
}
output.push("## Features\n");
for (const feature of features) {
output.push(`### ${feature.name}`);
output.push(`${feature.description}`);
output.push(`- Scope: ${feature.scope.map(fsPath).join(", ")}`);
}
const outPath = resolve(root, "MAINTAINERS.md");
const outputContent = output.join("\n");
if (dry) {
console.log(content);
return;
}
await fs.promises.writeFile(outPath, outputContent);
};
const main = async () => { const main = async () => {
await Promise.all([ await Promise.all([
convert("docs/tinymist/introduction.typ", "README.md", { convert("docs/tinymist/introduction.typ", "README.md", {
@ -89,6 +155,7 @@ const main = async () => {
convert("docs/tinymist/frontend/zed.typ", "editors/zed/README.md", { convert("docs/tinymist/frontend/zed.typ", "editors/zed/README.md", {
before: "# Tinymist Zed Support for Typst\n\n", before: "# Tinymist Zed Support for Typst\n\n",
}), }),
maintainerMd(),
]); ]);
}; };