
多年前写过一个静态网站生成器,取名为 Pagic,如今有一些新的想法,正好赶上 Deno 发布,于是用 Deno 重写了一番,并添加了一些新 Feature 。
欢迎大家来试用~
# Install deno https://deno.land/#installation curl -fsSL https://deno.land/x/install/install.sh | sh # Install pagic deno install --unstable --allow-read --allow-write --allow-net https://raw.githubusercontent.com/xcatliu/pagic/master/pagic.ts 目录结构如下:
docs/ ├── public/ └── src/ ├── _layout.tsx └── index.md src/_layout.tsx 是一个简单的 React 组件:
// @deno-types="https://deno.land/x/types/react/v16.13.1/react.d.ts" import React from 'https://dev.jspm.io/[email protected]'; import { PagicLayout } from 'https://raw.githubusercontent.com/xcatliu/pagic/master/pagic.ts'; const Layout: PagicLayout = ({ title, content }) => ( <html> <head> <title>{title}</title> <meta charSet="utf-8" /> </head> <body>{content}</body> </html> ); export default Layout; src/index.md 是一个简单的 markdown 文件
# Pagic The easiest way to generate static html page from markdown, built with Deno! 运行:
pagic build 我们将会得到一个 public/index.html 文件:
docs/ ├── public/ | └── index.html └── src/ ├── _layout.tsx └── index.md 它的内容是:
<html> <head> <title>Pagic</title> <meta charset="utf-8" /> </head> <body> <article> <h1 id="pagic">Pagic</h1> <p>The easiest way to generate static html page from markdown, built with Deno! </p> </article> </body> </html> 其他特性请到 GitHub 上查看。
Deno 本身很好用,但生态十分缺失,我踩了无数个坑才完成了第一个版本,以后再写个文章细说。
1 myd 2020 年 5 月 21 日 赞一个,继续加油 |
2 mathzhaoliang 2020 年 5 月 21 日 支持调用 pandoc 外部渲染吗 |
3 ares586 2020 年 5 月 22 日 冲着敢用 Deno,赞一个 |
4 xcatliu OP @mathzhaoliang 没用过,不太清楚 |
5 mathzhaoliang 2020 年 5 月 22 日 @xcatliu 要是不支持 pandoc 渲染的话,mathjax 就几乎没法用,这个主题就只能写写日记了。 |
6 xcatliu OP @mathzhaoliang 支持 plugins,可以随意修改构建流程,目前有三个 plugins - md: 解析 *.md 文件,content 设置为一个 ReactElement - tsx: 解析 *.tsx 文件,content 设置为一个 ReactElement - layout: 将 content 包装一层 <Layout> 可以随意组装、删除、添加 plugins 所以应该能支持,不过可能得自己写 plugin |
7 longjiahui 2020 年 5 月 23 日 deno logo 过于可爱 |
8 cai314494687 2020 年 5 月 24 日 没有 demo ? |
9 F7ionsy 2020 年 5 月 27 日 via iPhone 写了好几个 hexo 主题,已经不想迁移了,成本太高 |
10 xcatliu OP |