3-минутная готовка: Мгновенный запуск блога или сайта с Lume CMS на Deno

Здравствуйте, я бездарь.
Я давно слежу за 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

Если теперь зайти по ссылке...


Это слишком быстро...
Однако, стандартная папка для загрузок находится в `./uploads` в директории, где была выполнена команда `deno task lume cms`, и если просто скопировать и вставить изображения в блог в формате 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 должно быть предостаточно. Хотя обычно я делаю это, когда чувствую прилив энергии.
На этом все.
Буду рад видеть вас снова.