Этот README документирует только часть функций Cryogen. Дополнительную документацию можно найти на сайте криогенной техники.
Вы можете создать новый веб-сайт, используя один из leiningen
, clj-new
или deps-new
.
Вам понадобится установленная версия Leiningen 2.5.0 или выше.
Новый сайт можно создать с использованием шаблона Cryogen leiningen следующим образом:
lein new cryogen my-blog
В качестве альтернативы используйте clj-new as a tool
:
clojure -Ttools install com.github.seancorfield/clj-new ' {:git/tag "v1.2.362"} ' :as clj-new # update to latest!
clojure -Tclj-new create :template cryogen :name myname/myblog :force true
cd myname/myblog/
В качестве альтернативы используйте deps-new as a tool
:
clojure -Ttools install io.github.seancorfield/deps-new ' {:git/tag "v0.4.0"} ' :as new
clojure -Sdeps ' {:deps {io.github.cryogen-project/cryogen {:git/tag "0.6.6" :git/sha "fcb2833"}}} ' -Tnew create :template org.cryogenweb/new :name myname/myblog
cd myname/myblog/
Артефактный cryogen/lein-template
содержит как шаблон Лейнингена, так и шаблон deps-new.
Веб-сервер можно запустить из каталога my-blog
используя Leiningen:
lein serve # or lein serve:fast
или инструменты-депы:
clojure -X:serve # or clojure -X:serve:fast
Сервер будет отслеживать изменения в папках content
и themes
и автоматически перекомпилировать контент. Варианты *:fast
выполняют быструю, но частичную компиляцию только измененной страницы/публикации.
Вы также можете генерировать контент без подключения сервера одним из следующих способов:
lein run
или через:
clojure -M:build
Файл конфигурации сайта находится по адресу content/config.edn
. Этот файл выглядит следующим образом:
{ :site-title " My Awesome Blog "
:author " Bob Bobbert "
:description " This blog is awesome "
:site-url " http://blogawesome.com/ "
:post-root " posts "
:page-root " pages "
:post-root-uri " posts-output "
:page-root-uri " pages-output "
:tag-root-uri " tags-output "
:author-root-uri " authors-output "
:public-dest " public "
:blog-prefix " /blog "
:rss-name " feed.xml "
:rss-filters [ " cryogen " ]
:recent-posts 3
:post-date-format " yyyy-MM-dd "
:archive-group-format " yyyy MMMM "
:sass-src []
:sass-path " sass "
:theme " blue "
:resources [ " img " ]
:keep-files [ " .git " ]
:disqus? false
:disqus-shortname " "
:ignored-files [ #" . #.*" #".* . swp$" ]
:previews? false
:posts-per-page 5
:blocks-per-preview 2
:clean-urls :trailing-slash
:collapse-subdirs? false
:hide-future-posts? true
:klipse {}
:description-include-elements #{ :p :h1 :h2 :h3 :h4 :h5 :h6 }
:debug? false }
Информацию о каждом ключе см. в разделе «Конфигурация» сайта документации Cryogen.
Cryogen по умолчанию поставляется с поддержкой Markdown. Если вместо этого вы хотите использовать AsciiDoc, откройте файл project.clj
в созданном вами блоге (например, my-blog
) и измените строку в :dependencies
, в которой написано cryogen-flexmark
на cryogen-asciidoc
(и убедитесь, что выбрана правильная версия). Вместо поиска файлов, заканчивающихся на .md
в каталоге content/md
, компилятор теперь будет искать файлы, заканчивающиеся на .asc
в каталоге content/asc
.
Шаблон Cryogen поставляется с тремя темами в папке themes
. Чтобы изменить тему вашего блога, измените значение ключа :theme
в config.edn
. Обратите внимание, что тема Nucleus получена с сайта downloadwebsitetemplates.co.uk, поэтому вам необходимо сохранить нижний колонтитул, если вы не сделаете пожертвование на их веб-сайте.
Cryogen использует шаблонизатор Selmer для макетов. Пожалуйста, обратитесь к его документации, чтобы увидеть поддерживаемые теги и фильтры для макетов.
Макеты содержатся в папке themes/{theme}/html
проекта. По умолчанию макет base.html
используется для предоставления общего макета сайта. Здесь вы можете добавить статические ресурсы, такие как ресурсы CSS и JavaScript, а также определить верхние и нижние колонтитулы вашего сайта.
Каждый макет страницы должен иметь имя, соответствующее ключу :layout
в метаданных страницы, и заканчиваться на .html
. Макеты страниц расширяют базовый макет и должны содержать только контент, относящийся к странице внутри блока content
. Например, макет tag
находится в tag.html
и выглядит следующим образом:
{% extends "/html/base.html" %}
{% block content %}
< div id = " posts-by-tag " >
< h2 >Posts tagged {{name}}</ h2 >
< ul >
{% for post in posts %}
< li >
< a href = " {{post.uri}} " >{{post.title}}</ a >
</ li >
{% endfor %}
</ ul >
</ div >
{% endblock %}
Cryogen использует Highlight.js для подсветки синтаксиса кода. Вы можете добавить больше языков, заменив themes/{theme}/js/highlight.pack.js
на индивидуальный пакет отсюда.
Функция initHighlightingOnLoad
вызывается в themes/{theme}/html/base.html
.
< script >hljs.initHighlightingOnLoad();</ script >
Сгенерированный статический контент будет найден в public
папке. Просто скопируйте содержимое в статическую папку на сервере, например Nginx или Apache, и ваш сайт готов к работе.
Пример конфигурации Nginx, помещенной в /etc/nginx/sites-available/default
можно увидеть ниже:
server {
listen 80 default_server ;
listen [ :: ] : 80 default_server ipv6only = on ;
server_name localhost < yoursite . com > < www . yoursite . com > ;
access_log /var/log/blog_access.log;
error_log /var/log/blog_error.log;
location / {
alias / var / blog / ;
error_page 404 = / 404.html;
}
}
Просто установите yoursite.com
в качестве домена вашего сайта в приведенной выше конфигурации и убедитесь, что статический контент доступен в /var/blog/
. Наконец, поместите собственную страницу ошибок в файл /var/blog/404.html
.
Более подробную информацию о развертывании можно найти здесь.
Библиотека Clojure, обеспечивающая рендеринг Markdown для компилятора криогенного ядра с помощью внешней команды/программы, такой как pandoc.
Copyright © 2014-2021 Кармен Ла
Распространяется по публичной лицензии Eclipse, как и Clojure.