aboutsummaryrefslogtreecommitdiff
path: root/README.x
diff options
context:
space:
mode:
Diffstat (limited to 'README.x')
-rw-r--r--README.x62
1 files changed, 62 insertions, 0 deletions
diff --git a/README.x b/README.x
new file mode 100644
index 0000000..ea6bfc0
--- /dev/null
+++ b/README.x
@@ -0,0 +1,62 @@
+<!-- -*- mode: xroff; mode: olivetti -*- -->
+
+
+<ss 12 0>
+<nr PI 0>
+<nr PD 0.5v>
+<if n .nr PD 1v>
+<de i>\\fI\\$*\\fR<.>
+<de bi>\\f(BI\\$*\\fB<.>
+<de cw>\\f(CW\\$*\\fR<.>
+<de cwb>\\f(CB\\$*\\fR<.>
+
+
+<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., <cw \<SH 1\>>. These symbols may be escaped with a backslash.*
+<IP 2.>Xroff requests may be used inline. The following works as expected: <cw "(\<ft B\>bold\<ft R\>)">.**
+<IP 3.>Xroff ignores empty lines.
+<IP 4.>Default troff syntax may be used between <cw \<![> and <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.<FE>
+
+<FS **>Before an inline request, <cw xroff> automatically inserts a <cw \\\\c> escape when appropriate.<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 <cw xroff> translates xroff source to troff source.
+
+
+<SH 1><cwb Xroff-mode>
+<PP>For Emacs users, there is a major mode named <cw xroff-mode> that provides syntax highlighting for xroff source. To further improve the writing experience, I also recommend <cw olivetti-mode>.
+
+
+<SH 1>Caveats
+<LP>Xroff does not treat indented lines specially. As such, indentation cannot be used to convey structure.