#! /usr/bin/env sh exec guile -l bible-tools.scm -e '(@ (bible2latex) main)' -s bible2latex "$@" !# (define-module (bible2latex) #:use-module (bible-tools) #:use-module (srfi srfi-1) #:export (main)) (define (verse-to-latex v) (string-append (if (string=? (verse v) "1") (string-append (if (string=? (chapter v) "1") (string-append "\\section{" (book v) "}\n") "") "\\textbf{\\large{" (chapter v) "}}\n") "") "\\textsuperscript{" (verse v) "}" (text v))) (define (print-text text) (let ((result (string-append "\\documentclass{article}\n\n" "\\usepackage{fullpage}\n\n" "\\begin{document}\n\n" (string-join (map verse-to-latex text) "\n\n") "\n\\end{document}"))) (display result) (newline))) (define (help) (display "Usage: bible2latex [-b book] [-c chapter] [-h] [-v]\n") (display "\t-b book\t\texport the book to latex\n") (display "\t-c chapter\texport this chapter to latex\n") (display "\t-h\t\tdisplay this help message\n") (display "\t-v\t\tdisplay the current version\n")) (define (version) (display "bible2latex v1.0.0\n")) (define (print-book book) (lambda (bible) (print-text (get-book book bible)))) (define (print-chapter book chapter) (lambda (bible) (print-text (get-chapter (string->number chapter) (get-book book bible))))) (define (main args) (define (get-flag flag) (cadr (member flag args))) (define (flag? flag) (member flag args)) (with-bible "jantzen" (cond ((flag? "-h") (help)) ((flag? "-v") (version)) ((flag? "-b") (if (flag? "-c") (print-chapter (get-flag "-b") (get-flag "-c")) (print-book (get-flag "-b")))) (else print-text))))