diff options
-rw-r--r-- | module/texinfo/plain-text.scm | 13 | ||||
-rw-r--r-- | test-suite/tests/texinfo.plain-text.test | 20 |
2 files changed, 31 insertions, 2 deletions
diff --git a/module/texinfo/plain-text.scm b/module/texinfo/plain-text.scm index 6b7885ada..5ea99c86b 100644 --- a/module/texinfo/plain-text.scm +++ b/module/texinfo/plain-text.scm @@ -198,6 +198,16 @@ (define (var tag . body) (string-upcase (stexi->plain-text body))) +(define (acronym tag . elts) + (match elts + ((('% ('acronym text))) + (stexi->plain-text text)) + ((('% ('acronym text) ('meaning . body))) + (string-append (stexi->plain-text text) + " (" + (string-concatenate (map stexi->plain-text body)) + ")")))) + (define (passthrough tag . body) (stexi->plain-text body)) @@ -246,7 +256,8 @@ (url ,code) (dfn ,(make-surrounder "\"")) (cite ,(make-surrounder "\"")) - (acro ,passthrough) + (acro ,acronym) ;XXX: useless? + (acronym ,acronym) (email ,key) (emph ,(make-surrounder "_")) (sc ,var) diff --git a/test-suite/tests/texinfo.plain-text.test b/test-suite/tests/texinfo.plain-text.test index 565da8c7d..4315cdbb1 100644 --- a/test-suite/tests/texinfo.plain-text.test +++ b/test-suite/tests/texinfo.plain-text.test @@ -31,4 +31,22 @@ "This is another sentence.\nThat too.\n\n" (with-fluids ((*line-width* 26)) (stexi->plain-text - '(*fragment* (para "This is another sentence. That too.")))))) + '(*fragment* (para "This is another sentence. That too."))))) + + (pass-if-equal "acronym" + "What's GNU (GNU's Not Unix)?\n\n" + (stexi->plain-text + '(*fragment* (para "What's " + (acronym (% (acronym "GNU") + (meaning "GNU's Not Unix"))) + "?")))) + + (pass-if-equal "recursive acronym" + "What's GNU (GNU's Not Unix)?\n\n" + (stexi->plain-text + '(*fragment* (para "What's " + (acronym (% (acronym "GNU") + (meaning (acronym + (% (acronym "GNU"))) + "'s Not Unix"))) + "?"))))) |