fixing gopher title - cl-yag - Common Lisp Yet Another website Generator
 (HTM) git clone git://bitreich.org/cl-yag/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/cl-yag/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0beb1a03cf6a8f8aa14c515b74938bddc7b33fbe
 (DIR) parent b0fb013bac0ad806bc90e487b552d3affa7f7413
 (HTM) Author: Solène Rapenne <solene@perso.pw>
       Date:   Fri, 24 Mar 2017 13:07:52 +0100
       
       fixing gopher title
       
       Diffstat:
         M generator.lisp                      |      30 ++++++++++++++++++++----------
       
       1 file changed, 20 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/generator.lisp b/generator.lisp
       @@ -186,16 +186,26 @@
                     (let ((output (load-file "template/gopher_head.tpl")))
                       (dolist (article *articles*)
                         (setf output
       -                       (concatenate 'string output
       -                                    (format nil "~a by ~a (~a) ~%0~a        /article-~d.txt        ~a        ~a~%~%"
       -                                            (getf article :date)
       -                                            (getf article :author (getf *config* :webmaster))
       -                                            (format nil "~{#~a ~}" (split-str (getf article :tag)))
       -                                            (getf article :title)
       -                                            (getf article :id)
       -                                            (getf *config* :gopher-server)
       -                                            (getf *config* :gopher-port)
       -                                            ))))
       +                       (string
       +                        (concatenate 'string output
       +                                     (format nil "0~a        ~a/article-~d.txt        ~a        ~a~%~%"
       +                                             
       +                                             ;; here we create a 80 width char string with title on the left
       +                                             ;; and date on the right
       +                                             ;; we truncate the article title if it's too large
       +                                             (let ((title (format nil "~80a"
       +                                                                  (if (< 80 (length (getf article :title)))
       +                                                                      (subseq (getf article :title) 0 80)
       +                                                                    (getf article :title)))))
       +                                               (replace title (getf article :date) :start1 (- (length title) (length (getf article :date)))))
       +                                             
       +                                             
       +                                             (getf *config* :gopher-path)
       +                                             (getf article :id)
       +                                             (getf *config* :gopher-server)
       +                                             (getf *config* :gopher-port)
       +                                             )))))
       +               
                       output))
          
          ;; produce each article file (only a copy/paste in fact)