1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-02-20 21:27:32 +00:00

nanorst: better inline formatting in tables

This commit is contained in:
Marian Beermann 2017-06-17 12:07:12 +02:00
parent 97089fe141
commit a04625cd13
2 changed files with 17 additions and 2 deletions

View file

@ -2449,16 +2449,21 @@ def define_common_options(add_common_option):
Encryption modes
++++++++++++++++
.. nanorst: inline-fill
+----------+---------------+------------------------+--------------------------+
| Hash/MAC | Not encrypted | Not encrypted, | Encrypted (AEAD w/ AES) |
| | no auth | but authenticated | and authenticated |
+----------+---------------+------------------------+--------------------------+
| SHA-256 | none | `authenticated` | repokey, keyfile |
| SHA-256 | none | `authenticated` | repokey |
| | | | keyfile |
+----------+---------------+------------------------+--------------------------+
| BLAKE2b | n/a | `authenticated-blake2` | `repokey-blake2`, |
| BLAKE2b | n/a | `authenticated-blake2` | `repokey-blake2` |
| | | | `keyfile-blake2` |
+----------+---------------+------------------------+--------------------------+
.. nanorst: inline-replace
`Marked modes` are new in Borg 1.1 and are not backwards-compatible with Borg 1.0.x.
On modern Intel/AMD CPUs (except very cheap ones), AES is usually

View file

@ -58,6 +58,7 @@ def rst_to_text(text, state_hook=None, references=None):
state_hook = state_hook or (lambda old_state, new_state, out: None)
references = references or {}
state = 'text'
inline_mode = 'replace'
text = TextPecker(text)
out = io.StringIO()
@ -117,17 +118,26 @@ def rst_to_text(text, state_hook=None, references=None):
directive, is_directive, arguments = text.readline().partition('::')
text.read(1)
if not is_directive:
# partition: if the separator is not in the text, the leftmost output is the entire input
if directive == 'nanorst: inline-fill':
inline_mode = 'fill'
elif directive == 'nanorst: inline-replace':
inline_mode = 'replace'
continue
process_directive(directive, arguments.strip(), out, state_hook)
continue
if state in inline_single and char == state:
state_hook(state, 'text', out)
state = 'text'
if inline_mode == 'fill':
out.write(2 * ' ')
continue
if state == '``' and char == next == '`':
state_hook(state, 'text', out)
state = 'text'
text.read(1)
if inline_mode == 'fill':
out.write(4 * ' ')
continue
if state == '**' and char == next == '*':
state_hook(state, 'text', out)