iAdd support for differents converters - 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 a8dfa314e9911295a3c52318d4702e4761093e2f /scm/cl-yag/commit/a8dfa314e9911295a3c52318d4702e4761093e2f.gph bitreich.org 70 1parent 5e3abb608d7259d1c4acdd5be13a711fe4b49160 /scm/cl-yag/commit/5e3abb608d7259d1c4acdd5be13a711fe4b49160.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Tue, 27 Aug 2019 09:10:20 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdd support for differents converters Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M generator.lisp | 45 +++++++++++++++++--------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 24 insertions(+), 21 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@@ -129,24 +129,27 @@ Err bitreich.org 70 i Err bitreich.org 70 i ;; generate the html file from the source file Err bitreich.org 70 i ;; using the converter associated with the post Err bitreich.org 70 i-(defun use-converter-to-html(article) Err bitreich.org 70 i- (with-converter Err bitreich.org 70 i- (let ((output (converter-command converter-object))) Err bitreich.org 70 i- (let* ((src-file (format nil "~a~a" (article-id article) (converter-extension converter-object))) Err bitreich.org 70 i- (dst-file (format nil "temp/data/~a.html" (article-id article) )) Err bitreich.org 70 i- (full-src-file (format nil "data/~a" src-file))) Err bitreich.org 70 i- ;; skip generating if the destination exists Err bitreich.org 70 i- ;; and is more recent than source Err bitreich.org 70 i- (unless (and Err bitreich.org 70 i- (probe-file dst-file) Err bitreich.org 70 i- (>= Err bitreich.org 70 i- (file-write-date dst-file) Err bitreich.org 70 i- (file-write-date full-src-file))) Err bitreich.org 70 i- (ensure-directories-exist "temp/data/") Err bitreich.org 70 i- (template "%IN" src-file) Err bitreich.org 70 i- (template "%OUT" dst-file) Err bitreich.org 70 i- (format t "~a~%" output) Err bitreich.org 70 i- (uiop:run-program output)))))) Err bitreich.org 70 i+(defun use-converter-to-html(filename &optional (converter-name nil)) Err bitreich.org 70 i+ (let* ((converter-object (getf *converters* Err bitreich.org 70 i+ (or converter-name Err bitreich.org 70 i+ converter-name Err bitreich.org 70 i+ (getf *config* :default-converter)))) Err bitreich.org 70 i+ (output (converter-command converter-object)) Err bitreich.org 70 i+ (src-file (format nil "~a~a" filename (converter-extension converter-object))) Err bitreich.org 70 i+ (dst-file (format nil "temp/data/~a.html" filename )) Err bitreich.org 70 i+ (full-src-file (format nil "data/~a" src-file))) Err bitreich.org 70 i+ ;; skip generating if the destination exists Err bitreich.org 70 i+ ;; and is more recent than source Err bitreich.org 70 i+ (unless (and Err bitreich.org 70 i+ (probe-file dst-file) Err bitreich.org 70 i+ (>= Err bitreich.org 70 i+ (file-write-date dst-file) Err bitreich.org 70 i+ (file-write-date full-src-file))) Err bitreich.org 70 i+ (ensure-directories-exist "temp/data/") Err bitreich.org 70 i+ (template "%IN" src-file) Err bitreich.org 70 i+ (template "%OUT" dst-file) Err bitreich.org 70 i+ (format t "~a~%" output) Err bitreich.org 70 i+ (uiop:run-program output)))) Err bitreich.org 70 i Err bitreich.org 70 i ;; format the date Err bitreich.org 70 i (defun date-format(format date) Err bitreich.org 70 i@@ -307,9 +310,9 @@ Err bitreich.org 70 i Err bitreich.org 70 i ;; produce each article file Err bitreich.org 70 i (loop for article in *articles* Err bitreich.org 70 i- do Err bitreich.org 70 i- ;; use the article's converter to get html code of it Err bitreich.org 70 i- (use-converter-to-html article) Err bitreich.org 70 i+ do Err bitreich.org 70 i+ ;; use the article's converter to get html code of it Err bitreich.org 70 i+ (use-converter-to-html (article-id article) (article-converter article)) Err bitreich.org 70 i 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 .