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