diff options
Diffstat (limited to 'org')
-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))))) |