John MacFarlane
87fa837569
Man reader: improved combining accents.
...
We now handle e.g. `\[A ho]`.
2018-10-22 15:49:54 -07:00
John MacFarlane
0327226d4c
Man reader: don't parse \[ul] as unicode escape.
2018-10-22 12:05:34 -07:00
John MacFarlane
7a111d2d33
Man reader: Support .EX/.EE macros.
2018-10-22 11:16:00 -07:00
John MacFarlane
44b1cd620d
Man reader: support .TQ macro.
2018-10-22 11:13:35 -07:00
John MacFarlane
22078a8690
Man reader: handle \~
for nonbreaking space.
2018-10-22 11:06:27 -07:00
John MacFarlane
70d2a1d9c1
Man reader: Hlint.
2018-10-22 11:03:14 -07:00
John MacFarlane
785fad7091
Man reader: fix source position output with --verbose.
...
We now encode SourcePos in the MMacro token.
Closes #5001 .
2018-10-22 10:51:17 -07:00
John MacFarlane
8f97c8e458
Man reader: fixed spurious newlines in code blocks.
...
These were caused by lines that just changed to typewriter font.
The lexer has been adjusted so these no longer show up as blank
lines.
Closes #5005 .
2018-10-22 10:42:47 -07:00
Yoan Blanc
9608fd0c4a
revealjs: typo in the socket.io javascript plugin ( #5006 )
2018-10-22 10:40:49 -07:00
Alexander Krotov
89bcd192a1
Muse reader internals: remove unnecessary "skipSpaces"
2018-10-22 15:56:23 +03:00
leungbk
a22e044b13
Add enclosedByPair1 and change relevant invocations.
2018-10-22 13:19:39 +02:00
leungbk
cba508c54b
Add space after brace.
2018-10-22 13:19:39 +02:00
Alexander Krotov
673734b589
Reduce code duplication in Muse writer
2018-10-22 12:35:29 +03:00
John MacFarlane
4625150f4c
Man reader: fix code block tests.
...
They incorporated a spurious newline which needs to be
removed.
2018-10-21 23:01:58 -07:00
John MacFarlane
07a0835824
Man reader: Fix spacing requirement for macro arguments.
...
This is allowed:
.BR "hello"x"hello".
2018-10-21 22:53:57 -07:00
John MacFarlane
8448eb3b69
Man reader: .IP can also be used for list continuations.
2018-10-21 22:20:47 -07:00
John MacFarlane
382763a7db
Man reader: support .ds, .ds1; also fix macro arguments.
...
Closes #4997 .
2018-10-21 22:00:50 -07:00
John MacFarlane
00f1f4a220
Man reader: add predefined strings (e.g. \*[R]
).
2018-10-21 21:27:05 -07:00
John MacFarlane
8523662f2f
Man reader: Remove handling of .HF.
2018-10-21 21:13:09 -07:00
John MacFarlane
8c97e9f071
Man reader: clarify comment.
2018-10-21 21:08:15 -07:00
John MacFarlane
15fa5455e2
Man reader: support .SY, .OP macros.
...
Closes #4994 .
2018-10-21 21:06:46 -07:00
Alexander Krotov
fe99001d9f
hlint Muse writer
2018-10-22 03:14:45 +03:00
Alexander Krotov
875e33ecf6
Muse reader: allow footnotes to start with empty line
...
A space character was required after footnote marker, now newline is allowed.
2018-10-22 03:05:17 +03:00
John MacFarlane
95b9d94092
Man reader: improved escaping code.
...
We're now set up to handle user string substitutions `\*(xy` better.
The present approach has some inefficient list concatenation,
but we can fix that later.
2018-10-21 16:18:30 -07:00
John MacFarlane
1561bf2ecb
Man reader: slightly improved handling of \*
escapes.
2018-10-21 15:10:37 -07:00
John MacFarlane
3fa9a838c0
Man reader: Support .so for include files.
...
Closes #4986 .
2018-10-21 13:10:42 -07:00
John MacFarlane
0ac43ab2a8
Man reader: moved all lexer functions to the front.
2018-10-21 12:57:57 -07:00
John MacFarlane
6b553c2e22
Man reader: Moved handling of P, PP, LP to parser phase.
2018-10-21 12:53:26 -07:00
John MacFarlane
f3a71d723b
Man reader: added type synonym for Arg.
2018-10-21 12:48:14 -07:00
John MacFarlane
1238a57456
Man reader: Moved handling of B, I, BI, IB, etc. to parsing phase.
...
Ultimately groff lexing should not handle man-specific macros.
This approach also gives more correct results for the test case.
2018-10-21 12:43:44 -07:00
John MacFarlane
e388dddefa
Man reader: Clean up inline parsing.
2018-10-21 12:18:53 -07:00
John MacFarlane
25248c7a37
Man reader: move macro resolution to lexer phase.
...
We also introduce a new type ManTokens (a sequence of tokens)
and remove MComment. This allows lexers to return empty strings
of tokens, or multiple tokens (as when macros are resolved).
One test still fails. This needs to be fixed by moving handling
of .BI, .I, etc. to the parsing phase.
2018-10-21 12:08:54 -07:00
Alexander Krotov
a98e2b7c42
Muse writer: use lightweight markup after </em> tag
2018-10-21 20:23:10 +03:00
John MacFarlane
3ec0b78343
Man reader: allow unescaped " in plain arguments.
2018-10-20 22:59:30 -07:00
John MacFarlane
9593b375d7
Man reader: support UR/UE, MT/ME for links.
...
Closes #4989 .
2018-10-20 22:55:20 -07:00
John MacFarlane
2b7a541dd0
Man reader: Fixed handling of nested fonts.
...
Closes #4978 .
2018-10-20 22:41:39 -07:00
Alexander Krotov
78bec0837d
Muse reader: make sure that the whole text is parsed
2018-10-21 06:42:17 +03:00
Alexander Krotov
8df59952bf
Muse reader: allow empty headers
...
Previously empty headers caused parser to terminate without parsing the rest of the document.
2018-10-21 06:42:00 +03:00
John MacFarlane
f202279902
Man reader: Fix .B, .I, .BR, etc.
2018-10-20 16:40:44 -07:00
John MacFarlane
a9fc71118f
Man reader: major restructuring, support macros.
...
- Improved support for custom macro definitions.
- LinePart type has been added. RoffStr is now one
constructor of LinePart (the other being MacroArg).
- MComment has lost its argument.
- MEndMacro has been removed.
- MStr has been removed (we now simply use LinePart).
- Macros now store a list of tokens.
- Each macro argument is a [LinePart], instead of a LinePart.
- .BR now behaves as documented in man (and doesn't create a link).
2018-10-20 15:57:34 -07:00
John MacFarlane
f3954553a4
Man reader: some support for custom macros.
2018-10-20 11:37:15 -07:00
John MacFarlane
3e23b472f2
Man reader: skip macro definitions for now.
2018-10-20 11:06:30 -07:00
John MacFarlane
446790e95b
Man reader: raise parse error if we don't get through whole input.
2018-10-20 10:55:16 -07:00
John MacFarlane
bccfb1177f
Man reader: support \*[lq]
, \*[rq]
.
2018-10-20 10:49:42 -07:00
John MacFarlane
08179695fa
Man reader: support '..' (end macro).
...
Also give feedback for unknown character codes,
and return a replacement character U+FFFD.
2018-10-20 10:46:08 -07:00
John MacFarlane
02b33a7d63
Man reader: handle lines with just one period.
2018-10-20 10:46:08 -07:00
Albert Krewinkel
916db81ade
Lua filters: iterate over AST element fields when using pairs
...
This makes it possible to iterate over all field names of an AST element
by using a generic `for` loop with `pairs`:
for field_name, field_content in pairs(element) do
…
end
Raw table fields of AST elements should be considered an implementation
detail and might change in the future. Accessing element properties
should always happen through the fields listed in the Lua filter docs.
Note that the iterator currently excludes the `t`/`tag` field.
2018-10-20 19:14:17 +02:00
John MacFarlane
8d4027da4d
Man reader: block quotes (using RS..RE).
2018-10-20 10:07:28 -07:00
John MacFarlane
1b19e79650
Man reader: parse TP as definition lists.
...
Closes #4981 .
2018-10-20 10:00:50 -07:00
John MacFarlane
62566c8182
Man reader: handle shift in list style.
...
Closes #4987 .
2018-10-20 09:30:37 -07:00