#!/usr/bin/env gosh (use gauche.charconv) (use srfi-1) (use sxml.ssax) (use sxml.sxpath) (define *trac-output-encoding* "EUC-JP") (define *trac-namespace* '()) (define entry->title (compose second fourth)) (define entry->link (compose second second)) (define (entry->memo project entry oport) (define (f str . params) (apply format oport (string-append str "\n") params)) (let ((title (entry->title entry)) (link (entry->link entry))) (f "= [~a] ~a <~a>" project title link) )) (define (xml->howm iport oport project) (let* ((proc (sxpath '(// item))) (tree (ssax:xml->sxml iport *trac-namespace*)) (entries (proc tree))) (for-each (cut entry->memo project <> oport) entries) )) (define (main args) (call-with-input-conversion (current-input-port) (lambda (iport) (call-with-output-conversion (current-output-port) (lambda (oport) (xml->howm iport oport (cadr args))) :encoding *trac-output-encoding*)) :encoding "*JP") 0)