SMOLNET PORTAL home about changes
iAdd date in posts url - cl-yag - Common Lisp Yet Another website Generator	Err	bitreich.org	70
hgit clone git://bitreich.org/cl-yag/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/cl-yag/	URL:git://bitreich.org/cl-yag/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/cl-yag/	bitreich.org	70
1Log	/scm/cl-yag/log.gph	bitreich.org	70
1Files	/scm/cl-yag/files.gph	bitreich.org	70
1Refs	/scm/cl-yag/refs.gph	bitreich.org	70
1Tags	/scm/cl-yag/tag	bitreich.org	70
1README	/scm/cl-yag/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/cl-yag/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 76cfe4f9da795b24680eba4e8c940e042b1d6e11	/scm/cl-yag/commit/76cfe4f9da795b24680eba4e8c940e042b1d6e11.gph	bitreich.org	70
1parent fc0d8912469f5ce1e210ded72b2f52f49d307352	/scm/cl-yag/commit/fc0d8912469f5ce1e210ded72b2f52f49d307352.gph	bitreich.org	70
hAuthor: solene rapenne <solene@dataswamp.org>	URL:mailto:solene@dataswamp.org	bitreich.org	70
iDate:   Thu, 14 Dec 2017 00:23:40 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iAdd date in posts url	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M generator.lisp                      |      92 ++++++++++++++++++-------------	Err	bitreich.org	70
i  M templates/article.tpl               |       3 ++-	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 55 insertions(+), 40 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/generator.lisp b/generator.lisp	/scm/cl-yag/file/generator.lisp.gph	bitreich.org	70
i@@ -1,3 +1,5 @@	Err	bitreich.org	70
i+;;;; GLOBAL VARIABLES	Err	bitreich.org	70
i+	Err	bitreich.org	70
i (defparameter *articles* '())	Err	bitreich.org	70
i (defparameter *converters* '())	Err	bitreich.org	70
i (defparameter *days* '("Monday" "Tuesday" "Wednesday" "Thursday"	Err	bitreich.org	70
i@@ -7,36 +9,19 @@	Err	bitreich.org	70
i                          "October" "November" "December"))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; structure to store links	Err	bitreich.org	70
i-(defstruct article title tag date id tiny author)	Err	bitreich.org	70
i+(defstruct article title tag date id tiny author rawdate)	Err	bitreich.org	70
i (defstruct converter name command extension)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-(defun post(&optional &key title tag date id (tiny nil) (author nil))	Err	bitreich.org	70
i-  (push (make-article :title title	Err	bitreich.org	70
i-                      :tag tag	Err	bitreich.org	70
i-                      :date date	Err	bitreich.org	70
i-                      :tiny tiny	Err	bitreich.org	70
i-                      :author author	Err	bitreich.org	70
i-                      :id id)	Err	bitreich.org	70
i-        *articles*))	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-;; we add a converter to the list of the one availables	Err	bitreich.org	70
i-(defun converter(&optional &key name command extension)	Err	bitreich.org	70
i-  (push (make-converter :name name	Err	bitreich.org	70
i-                        :command command	Err	bitreich.org	70
i-                        :extension extension)	Err	bitreich.org	70
i-        *converters*))	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-(load "data/articles.lisp")	Err	bitreich.org	70
i-(setf *articles* (reverse *articles*))	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+;;;; FUNCTIONS	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; return the day of the week	Err	bitreich.org	70
i (defun get-day-of-week(day month year)	Err	bitreich.org	70
i   (multiple-value-bind	Err	bitreich.org	70
i-        (second minute hour date month year day-of-week dst-p tz)	Err	bitreich.org	70
i-      (decode-universal-time (encode-universal-time 0 0 0 day month year))	Err	bitreich.org	70
i-    (declare (ignore second minute hour date month year dst-p tz))	Err	bitreich.org	70
i-    day-of-week))	Err	bitreich.org	70
i+   (second minute hour date month year day-of-week dst-p tz)	Err	bitreich.org	70
i+   (decode-universal-time (encode-universal-time 0 0 0 day month year))	Err	bitreich.org	70
i+   (declare (ignore second minute hour date month year dst-p tz))	Err	bitreich.org	70
i+   day-of-week))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; parse the date to	Err	bitreich.org	70
i (defun date-parse(date)	Err	bitreich.org	70
i@@ -52,7 +37,28 @@	Err	bitreich.org	70
i          :monthname month	Err	bitreich.org	70
i          :monthnumber monthnum	Err	bitreich.org	70
i          :year year))	Err	bitreich.org	70
i-      nil))	Err	bitreich.org	70
i+    nil))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+(defun post(&optional &key title tag date id (tiny nil) (author nil))	Err	bitreich.org	70
i+  (push (make-article :title title	Err	bitreich.org	70
i+                      :tag tag	Err	bitreich.org	70
i+                      :date (date-parse date)	Err	bitreich.org	70
i+                      :rawdate date	Err	bitreich.org	70
i+                      :tiny tiny	Err	bitreich.org	70
i+                      :author author	Err	bitreich.org	70
i+                      :id id)	Err	bitreich.org	70
i+        *articles*))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+;; we add a converter to the list of the one availables	Err	bitreich.org	70
i+(defun converter(&optional &key name command extension)	Err	bitreich.org	70
i+  (push (make-converter :name name	Err	bitreich.org	70
i+                        :command command	Err	bitreich.org	70
i+                        :extension extension)	Err	bitreich.org	70
i+        *converters*))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+;; load data from metadata and load config	Err	bitreich.org	70
i+(load "data/articles.lisp")	Err	bitreich.org	70
i+(setf *articles* (reverse *articles*))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; common-lisp don't have a replace string function natively	Err	bitreich.org	70
i@@ -115,9 +121,9 @@	Err	bitreich.org	70
i (defun date-format(format date)	Err	bitreich.org	70
i   (let ((output format))	Err	bitreich.org	70
i     (template "%DayName"     (getf date :dayname))	Err	bitreich.org	70
i-    (template "%DayNumber"   (write-to-string (getf date :daynumber)))	Err	bitreich.org	70
i+    (template "%DayNumber"   (format nil "~2,'0d" (getf date :daynumber)))	Err	bitreich.org	70
i     (template "%MonthName"   (getf date :monthname))	Err	bitreich.org	70
i-    (template "%MonthNumber" (write-to-string (getf date :monthnumber)))	Err	bitreich.org	70
i+    (template "%MonthNumber" (format nil "~2,'0d" (getf date :monthnumber)))	Err	bitreich.org	70
i     (template "%Year"        (write-to-string (getf date :year )))	Err	bitreich.org	70
i     output))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -162,18 +168,20 @@	Err	bitreich.org	70
i                  (articles-by-tag))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-;; generates the html of one only article	Err	bitreich.org	70
i+;; generates the html of only one article	Err	bitreich.org	70
i ;; this is called in a loop to produce the homepage	Err	bitreich.org	70
i (defun create-article(article &optional &key (tiny t) (no-text nil))	Err	bitreich.org	70
i   (prepare "templates/article.tpl"	Err	bitreich.org	70
i            (template "%%Author%%" (let ((author (article-author article)))	Err	bitreich.org	70
i                                     (or author (getf *config* :webmaster))))	Err	bitreich.org	70
i            (template "%%Date%%"   (date-format (getf *config* :date-format)	Err	bitreich.org	70
i-                                               (date-parse (article-date article))))	Err	bitreich.org	70
i-           (template "%%Raw-Date%%" (article-date article))	Err	bitreich.org	70
i+                                               (article-date article)))	Err	bitreich.org	70
i+           (template "%%Raw-Date%%" (article-rawdate article))	Err	bitreich.org	70
i            (template "%%Title%%"  (article-title article))	Err	bitreich.org	70
i            (template "%%Id%%"     (article-id article))	Err	bitreich.org	70
i            (template "%%Tags%%"   (get-tag-list-article article))	Err	bitreich.org	70
i+           (template "%%Date-Url%%"  (date-format "%Year-%MonthNumber-%DayNumber"	Err	bitreich.org	70
i+                                                  (article-date article)))	Err	bitreich.org	70
i            (template "%%Text%%"   (if no-text	Err	bitreich.org	70
i                                       ""	Err	bitreich.org	70
i                                       (if (and tiny (article-tiny article))	Err	bitreich.org	70
i@@ -212,10 +220,11 @@	Err	bitreich.org	70
i               (prepare "templates/rss-item.tpl"	Err	bitreich.org	70
i                        (template "%%Title%%" (article-title article))	Err	bitreich.org	70
i                        (template "%%Description%%" (load-file (format nil "temp/data/~d.html" (article-id article))))	Err	bitreich.org	70
i-                       (let ((date (date-parse (article-date article))))	Err	bitreich.org	70
i-                         (template "%%Date%%" (format nil (date-format "~a, %DayNumber ~a %Year 00:00:00 GMT" date)	Err	bitreich.org	70
i-                                                      (subseq (getf date :dayname) 0 3)	Err	bitreich.org	70
i-                                                      (subseq (getf date :monthname) 0 3))))	Err	bitreich.org	70
i+                       (template "%%Date%%" (format nil	Err	bitreich.org	70
i+                                                    (date-format "~a, %DayNumber ~a %Year 00:00:00 GMT"	Err	bitreich.org	70
i+                                                                 (article-date article))	Err	bitreich.org	70
i+                                                    (subseq (getf (article-date article) :dayname) 0 3)	Err	bitreich.org	70
i+                                                    (subseq (getf (article-date article) :monthname) 0 3)))	Err	bitreich.org	70
i                        (template "%%Url%%"	Err	bitreich.org	70
i                                  (format nil "~darticle-~d.html"	Err	bitreich.org	70
i                                          (getf *config* :url)	Err	bitreich.org	70
i@@ -238,10 +247,14 @@	Err	bitreich.org	70
i   (generate "output/html/index-titles.html" (generate-semi-mainpage :no-text t))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i   ;; produce each article file	Err	bitreich.org	70
i-  (dolist (article *articles*)	Err	bitreich.org	70
i-    (generate (format nil "output/html/article-~d.html" (article-id article))	Err	bitreich.org	70
i-              (create-article article :tiny nil)	Err	bitreich.org	70
i-              :title (concatenate 'string (getf *config* :title) " : " (article-title article))))	Err	bitreich.org	70
i+  (loop for article in *articles*	Err	bitreich.org	70
i+        do	Err	bitreich.org	70
i+        (generate  (format nil "output/html/~d-~d.html"	Err	bitreich.org	70
i+                           (date-format "%Year-%MonthNumber-%DayNumber"	Err	bitreich.org	70
i+                                        (article-date article))	Err	bitreich.org	70
i+                           (article-id article))	Err	bitreich.org	70
i+                   (create-article article :tiny nil)	Err	bitreich.org	70
i+                   :title (concatenate 'string (getf *config* :title) " : " (article-title article))))	Err	bitreich.org	70
i   	Err	bitreich.org	70
i   ;; produce index file for each tag	Err	bitreich.org	70
i   (loop for tag in (articles-by-tag) do	Err	bitreich.org	70
i@@ -269,7 +282,7 @@	Err	bitreich.org	70
i                                                                   (if (< 80 (length (article-title article)))	Err	bitreich.org	70
i                                                                       (subseq (article-title article) 0 80)	Err	bitreich.org	70
i                                                                     (article-title article)))))	Err	bitreich.org	70
i-                                               (replace title (article-date article) :start1 (- (length title) (length (article-date article)))))	Err	bitreich.org	70
i+                                               (replace title (article-rawdate article) :start1 (- (length title) (length (article-rawdate article)))))	Err	bitreich.org	70
i                                              	Err	bitreich.org	70
i                                              	Err	bitreich.org	70
i                                              (getf *config* :gopher-path)	Err	bitreich.org	70
i@@ -296,6 +309,7 @@	Err	bitreich.org	70
i   (if (getf *config* :gopher)	Err	bitreich.org	70
i       (create-gopher-hole)))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+;;;; EXECUTION	Err	bitreich.org	70
i 	Err	bitreich.org	70
i (generate-site)	Err	bitreich.org	70
i 	Err	bitreich.org	70
1diff --git a/templates/article.tpl b/templates/article.tpl	/scm/cl-yag/file/templates/article.tpl.gph	bitreich.org	70
i@@ -1,7 +1,8 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i <article id="%%Raw-Date%%">	Err	bitreich.org	70
i   <header>	Err	bitreich.org	70
i-    <h1><a href="article-%%Id%%.html">%%Title%%</a></h1>	Err	bitreich.org	70
i+  	Err	bitreich.org	70
i+    <h1><a href="%%Date-Url%%-%%Id%%.html">%%Title%%</a></h1>	Err	bitreich.org	70
i     <p>Written by <em>%%Author%%</em>, on %%Date%%.<br/>Tags: %%Tags%%</p>	Err	bitreich.org	70
i   </header>	Err	bitreich.org	70
i   %%Text%%	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/cl-yag/commit/76cfe4f9da795b2...
Content-Typetext/plain; charset=utf-8