Pagic 是一个由 Deno + React 驱动的静态网站生成器。
特性
配置简单
Pagic 遵循约定优于配置的理念,尽可能的减少配置项,通过一些符合直觉的设计,降低用户的理解成本,而又不失灵活性。
支持 md 和 tsx
Pagic 不仅支持将 md/tsx
文件渲染成静态页面,而且还能运行 tsx
中的 Hooks,借助 React 组件的可编程性,极大的扩展了静态网站的能力。
值得注意的是,每一个由 Pagic 生成的页面都带有预渲染好的 HTML,也因此具有极致的加载性能和搜索引擎优化( SEO )。同时,一旦页面被加载,React 将接管这些静态内容,并将其转换成一个完整的单页应用( SPA ),其他的页面则会只在用户浏览到的时候才按需加载。
主题和插件
Pagic 拥有官方的 default, docs, blog 等主题,我们可以使用官方主题轻松的生成一个网站,也可以创建个性化的主题,甚至还可以扩展某个主题——这些能力都得益于 Pagic 符合直觉的 _layout.tsx
设计。
插件是 Pagic 最核心的功能之一。Pagic 将整个构建过程拆分为一个个内置插件,使得其他插件可以插入到构建过程中的任意位置,甚至可以通过替换内置插件完全的更改 Pagic 的构建过程,这给 Pagic 提供了无与伦比的灵活性。
Pagic 参考了 Deno 的设计,要求用户通过一个完整的 url 来引入第三方主题或插件。
以上节选自官网,请访问Pagic 官网了解更多。
前阵子完成了基本功能的开发,没想到 pagic.org
域名还没有人注册,于是赶紧注册后开始写文档。经历夜以继日的奋笔疾书,终于完成了网站的中文版!
不出意外的话,目前的 api 应该不会再改动了,欢迎大家来试用!
等 i18n 做好就会发布 1.0 版本。
写文档真的是一件很困难很麻烦很痛苦的事,要循序渐进,要统一术语,还要输出思想。
从 _layout.tsx 章节开始,我写了很多设计思想,欢迎大家一起来讨论一起来建设!
赞赞赞
应该再写个配套的 pagic-actions 或者 pagic-deploy
@justjavac @xcatliu CloudBase Framework 可以帮忙搞个自动检测部署这个 Pagic 应用,Pagic 应用有啥特征可以检测出来么
我们之前支持 VuePress 部署是这样实现的
{
name: "VuePress",
key: "vuepress",
detect: [
{
path: "package.json",
match: '"(dev)?(d|D)ependencies":\\s*{[^}]*"vuepress":\\s*".+?"[^}]*}',
},
],
plugin: "@cloudbase/framework-plugin-website",
config: {
buildCommand: {
value: "npm run build",
desc: "🔨 构建脚本",
},
outputPath: {
value: ".vuepress/dist",
desc: "📦 本地静态文件目录",
},
},
},
另外,CBF今天会发布一个版本支持 Deno 后端应用的一键部署 https://github.com/TencentCloudBase/cloudbase-framework/tree/master/packages/framework-plugin-deno
Tencent Cloud 已经支持 Deno 了啊,赞👍
@binggg 神速,赞👍一会儿加到部署章节去
Pagic 应用和 Deno 服务端应用已经都支持了~~ https://github.com/TencentCloudBase/cloudbase-framework/releases/tag/v0.9.0
我什么时候才能看懂大佬们的对话 呜呜呜