Fork me on GitHub

Default structure

root/
  |
  +- template/
  |   |
  |   +- posts/
  |   |   |
  |   |   +-  YYYY-MM-DD-posttitle.html.clj
  |   |
  |   +- layouts/
  |   |   |
  |   |   +- default.clj
  |   |
  |   +- index.html.clj
  |
  +- public/
  |   |
  |   +- css/
  |   |
  |   +- js/
  |
  +- _config.clj

root/

All public static files such as JavaScripts and StyleSheets are here. Compiled templates are also put here.

template/

Template root directory.

template/posts/

Blog posts data directory. All post files should be named YYYY-MM-DD-posttitle.html.clj as same as Jekyll filename format. This naming format can be configured _config.clj

template/layouts/

All layout files are here.

template/index.html.clj

Template file. When misaki compile templates, last extension(.clj in this case) is removed.
To edit templates, See Edit Template.

index.html.clj => COMPILE => index.html

public/

Public root directory. Static files are here.

_config.clj

Configuration file for misaki.

{
 ;; directory setting
 :public-dir   "public/"
 :tag-out-dir  "tag/"
 :template-dir "template/"
 :post-dir     "posts/"
 :layout-dir   "layouts/"

 ;; posts and tags url setting
 ;;   default value: "/"
 ;;   ex)
 ;;     "/"    => "/YYYY-MM/POST.html"
 ;;     "/foo" => "/foo/YYYY-MM/POST.html"
 :url-base     "/"

 ;; dev server port
 ;;   default value: 8080
 :port 8080

 ;; site language
 ;;   default value: "en"
 :lang "en"

 ;; default site data
 :site {:site-title "misaki"
        :twitter    "uochan"
        :css        ["http://fonts.googleapis.com/css?family=Josefin+Sans"
                     "/css/main.css"]
        :device-css ["/css/smartphone.css"]
        :js         ["/js/main.js"]}

 ;; post file compile hook
 :compile-with-post ["index.html.clj" "atom.xml.clj"]

 ;; tag setting
 :tag-layout "tag"

 ;; post setting
 ;;   default value: #"(\d{4})[-_](\d{1,2})[-_](\d{1,2})[-_](.+)$"
 :post-filename-regexp #"(\d{4})[-_](\d{1,2})[-_](\d{1,2})[-_](.+)$"
 :post-filename-format "$(year)-$(month)/$(filename)"

 ;; post sort type (:date :name :title :date-desc :name-desc :title-desc)
 ;;   default value: :date-desc
 :post-sort-type :date-desc

 ;; clojurescript compile options
 ;; src-dir base is `:template-dir`
 ;; output-dir base is `:public-dir`
 ;:cljs {:src-dir       "cljs"
 ;       :output-to     "js/main.js"
 ;       :optimizations :whitespace
 ;       :pretty-print true}

 ;; highlight setting
 :code-highlight {:CLJ "lang-clj", :CLOJURE "lang-clj"}

 ;; flag for detailed log
 ;;   default value: false
 :detailed-log false

 ;; flag for error notification
 ;;   default value: false
 :notify? false

 ;; notify setting(OPTIONAL)
 :notify-setting {;; title for fixing notification
                  ;;  default value: "$(filename)"
                  :fixed-title  "$(filename)"
                  ;; message for fixing notication
                  ;;   default value: "FIXED"
                  :fixed        "FIXED"
                  ;; title for failing notification
                  ;;   default value: "$(filename) : $(line)"
                  :failed-title "$(filename) : $(line)"
                  ;; message for failing notification
                  ;;   default value: $(message)
                  :failed       "$(message)"}

 ;; compiler setting
 ;;   default value: "default"
 :compiler "default"
 }
  • >= 0.2.6, Growl notify only support GNTP. If you want to use Growl notification with UDP, please checkout <= 0.2.5 version.
  • See Highlight Setting about code highlight setting.

See also..

« Getting Started  |  Top Page  |  Edit Template »