本自述文件仅记录了 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
包含 leiningen 模板和 deps-new 模板。
可以使用 Leiningen 从my-blog
目录启动 Web 服务器:
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,请在您创建的博客(例如my-blog
)中打开project.clj
,然后将:dependencies
中显示cryogen-flexmark
行更改为cryogen-asciidoc
(并确保版本正确)。编译器现在将在content/asc
目录中查找以.asc
结尾的文件,而不是在content/md
目录中查找以.md
结尾的文件。
Cryogen 模板在themes
夹中附带三个主题。要更改博客的主题,请更改config.edn
中:theme
键的值。请注意,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 等服务器的静态文件夹中,您的站点现在就可以使用了。
位于/etc/nginx/sites-available/default
中的 Nginx 配置示例如下所示:
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 库,通过使用外部命令/程序(例如 pandoc)向 Cryogen 核心编译器提供 Markdown 渲染。
版权所有 © 2014-2021 卡门拉
与 Clojure 相同,在 Eclipse 公共许可证下分发。