summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/texinfo/plain-text.scm13
-rw-r--r--test-suite/tests/texinfo.plain-text.test20
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")))
+ "?")))))