이 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
leiningen 템플릿과 deps-new 템플릿이 모두 포함되어 있습니다.
웹 서버는 Leiningen을 사용하여 my-blog
디렉토리에서 시작할 수 있습니다:
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/md
디렉터리에서 .md
로 끝나는 파일을 찾는 대신, 컴파일러는 이제 content/asc
디렉터리에서 .asc
로 끝나는 파일을 찾습니다.
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
파일에 배치하세요.
배포에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
pandoc와 같은 외부 명령/프로그램을 사용하여 극저온 코어 컴파일러에 Markdown 렌더링을 제공하는 Clojure 라이브러리입니다.
저작권 © 2014-2021 카르멘 라
Clojure와 마찬가지로 Eclipse Public License에 따라 배포됩니다.