diff options
Diffstat (limited to 'org/blog')
| -rwxr-xr-x | org/blog/generate-html.scm | 8 | ||||
| -rwxr-xr-x | org/blog/generate-phlog.scm | 19 | 
2 files changed, 22 insertions, 5 deletions
diff --git a/org/blog/generate-html.scm b/org/blog/generate-html.scm index 0241437..c461aba 100755 --- a/org/blog/generate-html.scm +++ b/org/blog/generate-html.scm @@ -11,10 +11,10 @@        (letrec ((read-characters                  (lambda (fp)                    (let ((character (read-char fp))) -                    (cond -                     ((eof-object? character) "") -                     (else (string-append (string character) -                                          (read-characters fp)))))))) +                    (if (eof-object? character) +                        "" +                        (string-append (string character) +                                       (read-characters fp)))))))          (read-characters fp)))))  ;; Make a link for the article diff --git a/org/blog/generate-phlog.scm b/org/blog/generate-phlog.scm index 17f0778..3b24da5 100755 --- a/org/blog/generate-phlog.scm +++ b/org/blog/generate-phlog.scm @@ -4,13 +4,27 @@  (use-modules (sxml simple)) +(define (format-gophermap-filename file) +  (let ((file-length (string-length file))) +    (string-append (substring file +                              0 +                              (- file-length 4)) +                   ".txt"))) + +(define (get-gophermap-item article) +  (let ((title (cadr (list-ref article 0))) +        (pub-date (cadr (list-ref article 4))) +        (file (cadr (list-ref article 6)))) +    (string-append "0" pub-date " - " title "\t" file))) +  (define (make-gophermap articles)    (call-with-output-file "phlog/gophermap"      (lambda (fp)        (for-each         (lambda (article)           (if (list? article) -             (display article))) +             (display (get-gophermap-item (cddr article)) fp) +             (newline fp)))         (cdr (cadr articles))))))  (define (make-blogs articles) @@ -20,6 +34,9 @@    (call-with-input-file "articles.xml"      (lambda (fp)        (let ((articles (xml->sxml fp))) +        (unless (file-exists? "phlog") +          (mkdir "phlog") +          (mkdir "phlog/articles"))          (make-gophermap articles)          (make-blogs articles)))))  | 
