SMOLNET PORTAL home about changes
iadd support for tags in articles + improve code - 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 e94fc554f9a4f95d8b8df4ea8629a330ef129d13	/scm/cl-yag/commit/e94fc554f9a4f95d8b8df4ea8629a330ef129d13.gph	bitreich.org	70
1parent 2031387fa4e3079bf8d57e7b3e009b3305ec4c5a	/scm/cl-yag/commit/2031387fa4e3079bf8d57e7b3e009b3305ec4c5a.gph	bitreich.org	70
hAuthor: solene rapenne <solene@dataswamp.org>	URL:mailto:solene@dataswamp.org	bitreich.org	70
iDate:   Tue,  3 May 2016 14:58:53 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iadd support for tags in articles + improve code	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M generator.lisp                      |      64 +++++++++++++++++++------------	Err	bitreich.org	70
i  M template/article.tpl                |       2 +-	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 41 insertions(+), 25 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@@ -37,6 +37,11 @@	Err	bitreich.org	70
i                      data))	Err	bitreich.org	70
i    "~" "~~"))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+;; we have to remove the quotes	Err	bitreich.org	70
i+;; when using collect in a loop	Err	bitreich.org	70
i+(defun strip-quotes(input)	Err	bitreich.org	70
i+  (format nil "~{~d~}" input))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i ;; save a string in a file	Err	bitreich.org	70
i (defun save-file(path data)	Err	bitreich.org	70
i   (with-open-file (stream (concatenate 'string "output/" path) :direction :output :if-exists :supersede)	Err	bitreich.org	70
i@@ -61,7 +66,7 @@	Err	bitreich.org	70
i                 (generate-layout ,@data))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; generate the list of tags	Err	bitreich.org	70
i-(defun the-tags()	Err	bitreich.org	70
i+(defun articles-by-tag()	Err	bitreich.org	70
i   (let ((tag-list))	Err	bitreich.org	70
i     (loop for article in *articles* do	Err	bitreich.org	70
i           (if (getf article :tag nil) ;; we don't want an error if no tag	Err	bitreich.org	70
i@@ -73,8 +78,21 @@	Err	bitreich.org	70
i     (loop for i from 1 to (length tag-list) by 2 collect ;; removing the keywords	Err	bitreich.org	70
i           (nth i tag-list))))	Err	bitreich.org	70
i     	Err	bitreich.org	70
i-    	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+;; generates the html of the list of tags for an article	Err	bitreich.org	70
i+(defun get-tag-list-article(&optional article)	Err	bitreich.org	70
i+  (strip-quotes	Err	bitreich.org	70
i+   (mapcar #'(lambda (item)	Err	bitreich.org	70
i+               (prepare "template/one-tag.tpl" (template "%%Name%%" item)))	Err	bitreich.org	70
i+           (split-str (getf article :tag)))))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+;; generates the html of the whole list of tags	Err	bitreich.org	70
i+(defun get-tag-list()	Err	bitreich.org	70
i+  (strip-quotes	Err	bitreich.org	70
i+   (mapcar #'(lambda (item)	Err	bitreich.org	70
i+               (prepare "template/one-tag.tpl"	Err	bitreich.org	70
i+                        (template "%%Name%%" (getf item :name))))	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 ;; this is called in a loop to produce the homepage	Err	bitreich.org	70
i@@ -84,6 +102,7 @@	Err	bitreich.org	70
i            (template "%%Date%%" (getf article :date))	Err	bitreich.org	70
i            (template "%%Title%%" (getf article :title))	Err	bitreich.org	70
i            (template "%%Id%%" (getf article :id))	Err	bitreich.org	70
i+           (template "%%Tags%%" (get-tag-list-article article))	Err	bitreich.org	70
i            (template "%%Text%%" (if (and tiny (member :tiny article))	Err	bitreich.org	70
i                                     (getf article :tiny) (load-file (format nil "data/~d.txt" (getf article :id)))))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -92,38 +111,35 @@	Err	bitreich.org	70
i (defun generate-layout(body)	Err	bitreich.org	70
i   (prepare "template/layout.tpl"	Err	bitreich.org	70
i            (template "%%Title%%" (getf *config* :title))	Err	bitreich.org	70
i-           (template "%%Tags%%"	Err	bitreich.org	70
i-                     (format nil "~{~d~}" (loop for tag in (the-tags) collect	Err	bitreich.org	70
i-                                                (prepare "template/one-tag.tpl"	Err	bitreich.org	70
i-                                                         (template "%%Name%%" (getf tag :name))))))	Err	bitreich.org	70
i+           (template "%%Tags%%" (get-tag-list))	Err	bitreich.org	70
i            (template "%%Body%%" body)	Err	bitreich.org	70
i            output))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; html generation of index homepage	Err	bitreich.org	70
i (defun generate-semi-mainpage()	Err	bitreich.org	70
i-  (format nil "~{~d~}"	Err	bitreich.org	70
i-          (loop for article in *articles* collect	Err	bitreich.org	70
i-                (create-article article :tiny t))))	Err	bitreich.org	70
i+  (strip-quotes	Err	bitreich.org	70
i+   (loop for article in *articles* collect	Err	bitreich.org	70
i+         (create-article article :tiny t))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; html generation of a tag homepage	Err	bitreich.org	70
i (defun generate-tag-mainpage(articles-in-tag)	Err	bitreich.org	70
i-  (format nil "~{~d~}" 	Err	bitreich.org	70
i-          (loop for article in *articles* 	Err	bitreich.org	70
i-                when (member (getf article :id) articles-in-tag :test #'equal)	Err	bitreich.org	70
i-                collect (create-article article :tiny t))))	Err	bitreich.org	70
i+  (strip-quotes	Err	bitreich.org	70
i+   (loop for article in *articles* 	Err	bitreich.org	70
i+         when (member (getf article :id) articles-in-tag :test #'equal)	Err	bitreich.org	70
i+         collect (create-article article :tiny t))))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i ;; xml generation of the items for the rss	Err	bitreich.org	70
i (defun generate-rss-item()	Err	bitreich.org	70
i-  (format nil "~{~d~}"	Err	bitreich.org	70
i-          (loop for article in *articles* collect	Err	bitreich.org	70
i-                (prepare "template/rss-item.tpl"	Err	bitreich.org	70
i-                         (template "%%Title%%" (getf article :title))	Err	bitreich.org	70
i-                         (template "%%Description%%" (getf article :short ""))	Err	bitreich.org	70
i-                         (template "%%Url%%"	Err	bitreich.org	70
i-                                   (format nil "~d/article-~d.html"	Err	bitreich.org	70
i-                                           (getf *config* :url)	Err	bitreich.org	70
i-                                           (getf article :id)))))))	Err	bitreich.org	70
i+  (strip-quotes	Err	bitreich.org	70
i+   (loop for article in *articles* collect	Err	bitreich.org	70
i+         (prepare "template/rss-item.tpl"	Err	bitreich.org	70
i+                  (template "%%Title%%" (getf article :title))	Err	bitreich.org	70
i+                  (template "%%Description%%" (getf article :short ""))	Err	bitreich.org	70
i+                  (template "%%Url%%"	Err	bitreich.org	70
i+                            (format nil "~d/article-~d.html"	Err	bitreich.org	70
i+                                    (getf *config* :url)	Err	bitreich.org	70
i+                                    (getf article :id)))))))	Err	bitreich.org	70
i   	Err	bitreich.org	70
i ;; Generate the rss xml data	Err	bitreich.org	70
i (defun generate-rss()	Err	bitreich.org	70
i@@ -147,7 +163,7 @@	Err	bitreich.org	70
i               (create-article article :tiny nil)))	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 (the-tags) do	Err	bitreich.org	70
i+  (loop for tag in (articles-by-tag) do	Err	bitreich.org	70
i         (generate (format nil"tag-~d.html" (getf tag :NAME))	Err	bitreich.org	70
i                   (generate-tag-mainpage (getf tag :VALUE))))	Err	bitreich.org	70
i   	Err	bitreich.org	70
1diff --git a/template/article.tpl b/template/article.tpl	/scm/cl-yag/file/template/article.tpl.gph	bitreich.org	70
i@@ -1,6 +1,6 @@	Err	bitreich.org	70
i <div class="article">	Err	bitreich.org	70
i   <div class="informations">	Err	bitreich.org	70
i-    <b><a href="article-%%Id%%.html"><em>%%Author%%</em> wrote "%%Title%%" on %%Date%%</a></b>	Err	bitreich.org	70
i+    <b><a href="article-%%Id%%.html"><em>%%Author%%</em> wrote "%%Title%%" on %%Date%%</a></b>Tags : %%Tags%%	Err	bitreich.org	70
i   </div>	Err	bitreich.org	70
i   <p>%%Text%%</p>	Err	bitreich.org	70
i </div>	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/cl-yag/commit/e94fc554f9a4f95...
Content-Typetext/plain; charset=utf-8