使用Starlight创建项目
Starlight是Astro的文档模版。
启动服务。如果上面你选了Install dependencies=yes,就不用手动执行npm install,如果=no,你需要手动执行npm install。
理解Starlight
文件即路由
- 比如index.mdx对应的路由就是/
- 比如user.mdx对应的路由就是/user
- 比如/docs/user.mdx对应的路由就是/docs/user
支持的文件类型
参考Astro官方文档。
我一般喜欢
- 写文档推荐用mdx,原因是它可以和react、vue组件集成更方便。
- 写页面推荐用.js/.ts,原因是它react写的比较多。
Vercel发布
Vercel 是一个云服务平台,支持静态网站和动态网站的应用部署、预览和上线。Vercel 自身内置 CI(持续集成)/CD(持续发布),只要你将 Github 项目与 Vercel 关联,在 GitHub 项目进行代码推送,PR合并自动部署的目的,且你不需要考虑服务器部署问题。
Vercel 优势如下。
- 个人版永久免费,每个月 100G 带宽(别人访问你的项目所耗费的流量),个人项目部署完全够用,需要注意的是团队模式收费,所以要协作你只能付费。等你的项目需要付费了,你可能已经非常成功了。
- 内置 CI/CD,只需要将项目导入 Vercel ,一句命令自动部署。
- 因为内置构建流程,支持代码推送、PR 自动触发构建,不同分支唯一地址,方便测试。
支持本地、测试、生产三种环境部署,仅仅是命令区别,上手成本极低。
- 丰富的集成能力,项目部署自动监控,端到端自动化测试等等,当然这些并并属于 Vercel 自身的能力,但它可以为你提供集成入口,让这些成为你自动部署中自动进行的一步,比如构建生产后自动完成性能指标输出,自动化测试,以及后续项目监控等等。
登陆
我推荐用Github账户。
导入Github项目
再提交Github代码,就会自动触发Vercel的部署,非常方便。
一般我们会有test、pre、prod等环境,后面专门讲解。
绑定域名
1、域名,用a类接入
2、子域名,用cname接入
托管到vercel,所以vercel会自动检测
新增页面
和astro一样。
比如我在src/content/docs下新增空的fe.mdx,这时候编译会报错。
原因是title不存在,但它又是必须的。astro这个Hint提示还不错。
此时在fe.mdx里增加下面一段文本即可。
注意
更多配置项参考 https://starlight.astro.build/reference/frontmatter/。如果大家熟悉hugo等都是类似的,参考 https://gohugo.io/content-management/front-matter/。
使用内置组件
使用内置组件,文档 https://starlight.astro.build/guides/components/。内置组件都是平时写文档中我们最长使用的。
内置组件名单
- Tabs
- Cards
- Link Cards
- Asides
- Code
- File Tree
- Steps
- Icon
举个例子,本文档,最上面的代码即内置组件调用。
新增React组件
增加react支持,需要先安装react依赖的,此步骤必选。
官方文档里的组件用法,代码如下,它只是演示了如何应用.astro组件的用法。
.astro组件和react组件,其实没啥本质区别,唯一需要注意的就是组件加载声明周期控制,即使用client指令。
client:load
它的意思Load and hydrate the component JavaScript immediately on page load.
client:only={string}
回跳过HTML server-rendering, 并且只在client上渲染。
使用React组件,这里以评论为例
在src/components下新建Comment.jsx,这个评论服务,采用的是giscus,即基于github的discussions来实现的,数据存在github上,对于公开和面向开发的评论是比较友好的。
至于上面的配置,参考https://giscus.app/zh-CN。
这下面是演示的评论组件,也是可以真是用的。