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

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Screenshot_20240620_011217.png

Здравствуйте, я бездарь.

Я давно слежу за Deno и искал простую в реализации и легкую CMS, и наткнулся на LumeCMS.

https://lume.land

Итак, предполагая, что 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 должно быть предостаточно. Хотя обычно я делаю это, когда чувствую прилив энергии.

На этом все.

Буду рад видеть вас снова.

Related Posts