3分钟烹饪,用 Deno 的 Lume CMS 快速搭建博客或网站

你好,我是无能。
我一直在关注 Deno,并且一直在寻找一个可以在简单环境中实现且易于使用的 CMS,然后我遇到了 LumeCMS。
因此,假设 Deno 已经安装,我们来创建一个目录。
mkdir newsite
然后,安装 Lume。
deno run -A https://deno.land/x/lume/init.ts

现在,我想使用一个主题,所以选择 'Install a theme',然后选择 _config.ts。

然后选择 'Simple Blog'。

好的,就这样完成了。那么,让我们实际运行一下吧。
deno task lume cms

然后访问它...


哇,太快了...
但是,标准的上传文件夹位于执行 deno task lume cms 的目录 ./uploads 中,如果直接在博客中以 Markdown 格式复制粘贴,它会变成 ./_site/uploads,导致图片路径不正确,图片无法显示。
我认为这是因为它的设计理念是让 LumeCMS 也能在其他 SSG(如 Hugo)等环境中使用。

因此,打开 _config.ts 文件。
vim _config.ts
import lume from "lume/mod.ts";
import blog from "blog/mod.ts";
const site = lume();
site.use(blog());
// 在这里复制到 uploads 文件夹
site.copy("uploads", "uploads");
export default site;
这样,上传到 ./uploads 的图片就会被复制到 ./_site/uploads 文件夹,可以正常查看。我之所以这样做,是想着如果原始文件保留在 ./uploads 中,那么对于复制到 ./_site/uploads 的图片,就可以更容易地进行修改(例如格式转换)。
创建一篇测试文章后的目录结构如下:
├── 404.md
├── _cms.ts
├── _config.ts
├── _data.yml
├── _site
│ ├── 404.html
│ ├── archive
│ │ └── index.html
│ ├── favicon.png
│ ├── feed.json
│ ├── feed.xml
│ ├── index.html
│ ├── js
│ │ ├── comments.js
│ │ └── main.js
│ ├── pagefind
│ │ ├── fragment
│ │ │ └── en_3551ff1.pf_fragment
│ │ ├── index
│ │ │ └── en_8fc6f26.pf_index
│ │ ├── pagefind-entry.json
│ │ ├── pagefind-highlight.js
│ │ ├── pagefind-modular-ui.css
│ │ ├── pagefind-modular-ui.js
│ │ ├── pagefind-ui.css
│ │ ├── pagefind-ui.js
│ │ ├── pagefind.en_7625ba4347.pf_meta
│ │ ├── pagefind.js
│ │ ├── wasm.en.pagefind
│ │ └── wasm.unknown.pagefind
│ ├── robots.txt
│ ├── sitemap.xml
│ ├── styles.css
│ ├── test
│ │ └── index.html
│ └── uploads
│ └── images-(2)-(9).jpeg
├── deno.json
├── deno.lock
├── favicon.png
├── posts
│ └── test.md
└── uploads
└── images-(2)-(9).jpeg
文章创建页面是这样的。

SSG 的弱点是无法从智能手机等设备发布(虽然不是完全不可能),Markdown 编写起来非常方便,但从智能手机上操作会很困难。现在,仅仅通过这个,就变得非常容易实现了。
对我来说,这正是我所寻找的,所以我希望能够将网站迁移过来。
关于从 WP 迁移到 SSG 的文章应该有很多。话虽如此,我通常只在有动力的时候才会去做。
那么。
下次再见。