move blog logic to own ns
							parent
							
								
									cd451f56ac
								
							
						
					
					
						commit
						f59cf5641b
					
				@ -0,0 +1,48 @@
 | 
			
		||||
(ns equilibrium.blog
 | 
			
		||||
  (:require [clojure.java.io :as io]
 | 
			
		||||
            [clojure.string :as string]))
 | 
			
		||||
 | 
			
		||||
(defn index-file [dir-name root]
 | 
			
		||||
  (io/file (str root "/blogs/" dir-name "/index.md")))
 | 
			
		||||
 | 
			
		||||
(defn sites-dir [dir-name root]
 | 
			
		||||
  (str root "/blogs/" dir-name "/entries"))
 | 
			
		||||
 | 
			
		||||
(defn analysed-blog-dir-name [dir-name]
 | 
			
		||||
  (let [name-parts (string/split dir-name #"\+")]
 | 
			
		||||
    (case (count name-parts)
 | 
			
		||||
      1 ["" (first name-parts)]
 | 
			
		||||
      2 [(first name-parts) (second name-parts)])))
 | 
			
		||||
 | 
			
		||||
(comment
 | 
			
		||||
  (analysed-blog-dir-name "hudel")
 | 
			
		||||
  (analysed-blog-dir-name "4711+wudel"))
 | 
			
		||||
 | 
			
		||||
(defn config [dir-name analysed-index]
 | 
			
		||||
  (let [[ix blog-dir-name] (analysed-blog-dir-name dir-name)]
 | 
			
		||||
    (merge {:ix ix
 | 
			
		||||
            :blog-dir-name blog-dir-name}
 | 
			
		||||
           (update-in analysed-index
 | 
			
		||||
                      [:metadata :page-size]
 | 
			
		||||
                      #(or % 10)))))
 | 
			
		||||
 | 
			
		||||
(comment
 | 
			
		||||
  (blog-index-file "datblag")
 | 
			
		||||
  (blog-config "datblag"))
 | 
			
		||||
 | 
			
		||||
(defn target-root [config root]
 | 
			
		||||
  (str root
 | 
			
		||||
       "/"
 | 
			
		||||
       (:blog-dir-name config)))
 | 
			
		||||
 | 
			
		||||
(comment
 | 
			
		||||
  (blog-target-root {:blog-dir-name "hudel"})
 | 
			
		||||
  (blog-sites-dir "datblag"))
 | 
			
		||||
 | 
			
		||||
(defn write-files [config output-root site-files fill-in-fn]
 | 
			
		||||
  (let [index-file (io/file (str (target-root config
 | 
			
		||||
                                              output-root)
 | 
			
		||||
                                 "/index.html"))]
 | 
			
		||||
    (io/make-parents index-file)
 | 
			
		||||
    (spit index-file
 | 
			
		||||
          (fill-in-fn config))))
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue