diff --git a/config.toml b/config.toml index b1912d0..4e28c7a 100644 --- a/config.toml +++ b/config.toml @@ -13,7 +13,7 @@ images = ["img/scverse-social-card.png"] description = "Foundational tools for omics data in the life sciences" [outputs] -home = ["html", "rss", "entities"] +home = ["html", "rss", "entities", "llms"] [outputFormats.entities] mediaType = "application/json" @@ -24,6 +24,11 @@ notAlternative = true [markup.goldmark.renderer] unsafe= true +[outputFormats.llms] +mediaType = "text/plain" +baseName = "llms" +isPlainText = true + # The ecosystem registry rebuilds this site when packages.json changes, so a cached copy defeats the trigger. # Hugo caches remote resources forever by default, and on Netlify that cache survives between builds. [caches.getresource] diff --git a/layouts/index.llms.txt b/layouts/index.llms.txt new file mode 100644 index 0000000..e906bec --- /dev/null +++ b/layouts/index.llms.txt @@ -0,0 +1,62 @@ +# scverse + +> scverse is a consortium of foundational, interoperable open-source tools (mostly Python) for single-cell and spatial omics data analysis in the life sciences. + +scverse packages share common data structures (AnnData, MuData, SpatialData) to guarantee interoperability across the ecosystem. +Most package documentation lives on dedicated external sites, linked below. +This site (scverse.org) hosts the package index, tutorials, project governance, events, and the blog. + +## Core packages + +Foundational packages maintained by the scverse core team. +{{- $registryBase := "https://scverse.org/ecosystem-packages/" }} +{{- $pkgs := transform.Unmarshal (resources.GetRemote (printf "%spackages.json" $registryBase)).Content }} +{{- $core := slice }} +{{- $org := slice }} +{{- range $pkgs }} + {{- $entry := merge . (dict "sortkey" (lower .name)) }} + {{- if in (slice "core-datastructure" "core-framework") .category }} + {{- $core = $core | append $entry }} + {{- else if and (in (.project_home | default "") "github.com/scverse/") (ne .category "core-infrastructure") }} + {{- /* core-infrastructure is the scverse repos themselves, not packages. */}} + {{- $org = $org | append $entry }} + {{- end }} +{{- end }} +{{ range sort $core "sortkey" }} +{{- /* Registry descriptions carry markdown and hard line breaks; llms.txt wants one line each. */}} +{{- $desc := trim (.description | markdownify | plainify | htmlUnescape | replaceRE `\s+` " ") " " }} +- [{{ .name }}]({{ .documentation_home | default .project_home }}): {{ $desc }} +{{- end }} + +## More packages + +Other packages maintained in the scverse GitHub organization. The full index, including +community packages built on scverse standards, is at {{ absURL "packages/" }}. +{{ range sort $org "sortkey" }} +{{- $desc := trim (.description | markdownify | plainify | htmlUnescape | replaceRE `\s+` " ") " " }} +- [{{ .name }}]({{ .documentation_home | default .project_home }}): {{ $desc }} +{{- end }} + +## Learn +- [Tutorials]({{ absURL "learn/" }}): Getting-started tutorials for the core packages. +- [Package index]({{ absURL "packages/" }}): All core and ecosystem packages with links to docs, source, and distribution. +- [Single-cell best practices](https://www.sc-best-practices.org/): Community book on best practices for single-cell analysis. + +## About +- [Mission]({{ absURL "about/mission/" }}): What scverse is and why it exists. +- [Roles and governance]({{ absURL "about/roles/" }}): Core team, steering council, and how the project is run. +- [Code of conduct]({{ absURL "about/code_of_conduct/" }}): Community standards for participation. +- [AI policy]({{ absURL "about/ai_policy/" }}): Expectations for contributing AI-assisted code to scverse projects. + +## Community +- [GitHub](https://github.com/scverse): Source code for all scverse packages. +- [Discourse](https://discourse.scverse.org/): User forum for questions and discussion. +- [Zulip](https://scverse.zulipchat.com/): Developer chat. +- [Ecosystem packages](https://github.com/scverse/ecosystem-packages): Community packages built on scverse standards, and inclusion criteria. +- [cookiecutter-scverse](https://cookiecutter-scverse-instance.readthedocs.io/en/latest/): Project template for creating new scverse-compatible packages. + +## Optional +- [Blog]({{ absURL "blog/" }}): Announcements and release notes. +- [Events]({{ absURL "events/" }}): Conferences and hackathons. +- [People]({{ absURL "people/" }}): Contributors and core team. +- [YouTube](https://www.youtube.com/channel/UCpsvsIAW3R5OdftJKKuLNMA): Recorded talks and workshops.