aboutsummaryrefslogtreecommitdiff
path: root/README.t
diff options
context:
space:
mode:
Diffstat (limited to 'README.t')
-rw-r--r--README.t93
1 files changed, 93 insertions, 0 deletions
diff --git a/README.t b/README.t
new file mode 100644
index 0000000..7bc4f4a
--- /dev/null
+++ b/README.t
@@ -0,0 +1,93 @@
+.ss 12 0
+.nr PI 0
+.nr PD 0.5v
+.if n .nr PD 1v
+.de i
+\\fI\\$*\\fR\c
+..
+.de bi
+\\f(BI\\$*\\fB\c
+..
+.de cw
+\\f(CW\\$*\\fR\c
+..
+.de cwb
+\\f(CB\\$*\\fR\c
+..
+.TL
+.bi Xroff
+, an alternative troff syntax
+.AU
+John Ankarström
+.DA 10 June 2022
+.SH 1
+Introduction
+.LP
+.i Xroff
+ is an alternative syntax for troff, visually inspired by SGML/XML. It differs from troff's default syntax in the following ways:
+.IP 1. 3
+Xroff requests begin with a less-than sign and end with a greater-than sign, e.g., \c
+.cw \<SH 1>
+\&. These symbols may be escaped with a backslash.*
+.IP 2.
+Xroff requests may be used inline. The following works as expected: \c
+.cw "(\<ft B>bold\<ft R>)"
+\&.**
+.IP 3.
+Xroff ignores empty lines.
+.IP 4.
+Default troff syntax may be used between \c
+.cw \<![
+ and \c
+.cw ]>
+\&.
+.LP
+The similarities with XML end at the visual level. Unlike XML, xroff is unstructured and imperative. There is no concept of closing tags.
+.FS *
+For comparison, default troff requests begin with a newline and a control character, usually a period or an apostrophe, and end with another newline.\c
+.FE
+.FS **
+Before an inline request, \c
+.cw xroff
+ automatically inserts a \c
+.cw \\\\c
+ escape when appropriate.\c
+.FE
+.SH 1
+Example
+.IP "" 3
+.nf
+.eo
+<de b>\\fB\\$*\\fR<.>
+
+<TL>Example document
+<AU>John Doe
+
+<AB>Pellentesque dapibus suscipit ligula. Donec posuere augue in quam.
+Etiam vel tortor sodales tellus ultricies commodo. Suspendisse
+potenti. Aenean in sem ac leo mollis blandit. Donec neque quam,
+dignissim in, mollis nec, sagittis eu, wisi.<AE>
+
+<SH 1>Introduction
+<LP><b Nullam eu ante> vel est convallis dignissim. Fusce suscipit,
+wisi nec facilisis facilisis, est dui fermentum leo, quis tempor
+ligula erat quis odio. Nunc porta vulputate tellus.
+.ec
+.SH 1
+.cwb Xroff
+.PP
+The program \c
+.cw xroff
+ translates xroff source to troff source.
+.SH 1
+.cwb Xroff-mode
+.PP
+For Emacs users, there is a major mode named \c
+.cw xroff-mode
+ that provides syntax highlighting for xroff source. To further improve the writing experience, I also recommend \c
+.cw olivetti-mode
+\&.
+.SH 1
+Caveats
+.LP
+Xroff does not treat indented lines specially. As such, indentation cannot be used to convey structure.