Starlight 0.35

作者
Chris Swithinbank

🌟 Starlight 0.35 希望成为您的夏季标志,此版本使您的文档自定义变得前所未有的简单。

让我们深入了解此版本的亮点

要升级现有的 Starlight 站点,请使用自动化的 @astrojs/upgrade CLI 工具。这将更新 Starlight、Astro 和您正在使用的任何其他集成。

npx @astrojs/upgrade

附注中的自定义图标

Starlight 的附注让您可以轻松地为文档页面添加带样式的注释、警告及其他类型的提示框。Starlight 0.35 更进一步,允许您覆盖附注的图标。

在您的附注中添加 icon 属性来自定义图标,支持 Markdown、MDX 和 Markdoc 页面。

example.md
:::tip{icon="heart"}
Show your love with a heart icon.
:::
example.mdx
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip" icon="heart">
Show your love with a heart icon.
</Aside>
example.mdoc
{% aside type="tip" icon="heart" %}
Show your love with a heart icon.
{% /aside %}

目前,附注可以使用Starlight 的内置图标进行样式设置,但我们计划在未来的版本中将其扩展为包含自定义图标支持

感谢Shubham Padia贡献此功能!

Starlight 0.35 增加了对自动生成的侧边栏组中所有链接应用自定义 HTML 属性的支持。这使得为侧边栏部分中的所有链接添加自定义样式或行为变得更加容易。

在您的侧边栏配置中使用新的autogenerate.attrs选项添加自定义属性。例如,您可以决定将特定自动生成组中的所有链接设置为斜体。

starlight({
title: 'My docs',
sidebar: [
{
label: 'Constellations',
autogenerate: {
// Autogenerate a group of links for the 'constellations' directory.
directory: 'constellations',
// Italicize all link labels in this group.
attrs: { style: 'font-style: italic' },
},
},
],
}),

自定义页面 slug 处理

现在可以更轻松地自定义文档文件名如何映射到 URL。

默认情况下,Astro 使用流行的 github-slugger 包来标准化内容文件名。例如,Example.File.md 中的内容将在 /examplefile 提供服务。这确保了与许多常见平台的一致输出和 URL 兼容性。

但是,如果您需要自定义此标准化,现在可以在内容配置中将 generateId 选项传递给 Starlight 的 docsLoader()。以下示例避免了所有标准化,只是从内容文件中删除了文件扩展名。

src/content.config.ts
import { defineCollection } from 'astro:content';
import { docsLoader } from '@astrojs/starlight/loaders';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({
loader: docsLoader({
// Remove the `.md` or `.mdx` extension, but otherwise don’t process filenames.
generateId: ({ entry }) => entry.split('.').slice(0, -1).join('.'),
}),
schema: docsSchema(),
}),
};

错误修复及更多内容

一如既往,我们一直在努力修复问题并扩展现有功能。Starlight 更新日志列出了所有详细信息,包括针对重大更改的迁移指南。

以下是 0.35 版本中一些较大的更改

Markdown 插件现在仅限于文档内容

Starlight 的 src/content/docs/ 集合之外的 Markdown 内容不再由 Starlight 的默认 remark 和 rehype 插件处理。这提高了与在非 Starlight 页面中使用 Markdown 内容的站点的兼容性。

如果您依赖以前的行为,我们很乐意听取您的意见!请打开一个GitHub 讨论,让我们了解您的用例。

使用 Starlight 的 banner frontmatter 属性添加的内容不再由我们的默认搜索提供商 Pagefind 索引。这修复了搜索模态框中的一些意外行为。

社区

Astro 核心团队成员是

Alexander Niebuhr , Ben Holmes , Caleb Jasik , Chris Swithinbank , Emanuele Stoppa , Erika , Florian Lefebvre , Fred Schott , Fuzzy , HiDeoo , Luiz Ferraz , Matt Kane , Matthew Phillips , Nate Moore , Reuben Tier , Sarah Rainsberger , 和 Yan Thomas

感谢所有通过 PR 和评论为我们近期版本做出贡献的人,包括 Alvin BryanArmand PhilippotBohdan KhodakivskyiBugoCarlos Jorge RodriguezCyprien AVICODeaM8NEveeifyeveFelix SchneiderFrostyBeeHappydevheisenberg0924Jose SebastianJosh GoldbergJunseong ParkKevinKianliruifengvLouis EscherMalcolm NihlénMartin TrappMathiasBuusMatouš KučeraNelson-5553Nguyen Long NhatNiall O’Brienpppwawrandomguy-2650Randy88-artRealRedRenildo PereiraSaad KhanSgal CheungShubham PadiatechfgThomas Bonnet

我们期待看到您使用 Starlight 构建的作品!如果您有任何问题、意见,或者只是想打个招呼,请访问Astro Discord