diff options
author | Andrew Gallant <jamslam@gmail.com> | 2018-11-06 06:57:16 -0500 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2018-11-06 06:57:16 -0500 |
commit | b41e5963279d5a7c633514d4a6afcb480c6c6915 (patch) | |
tree | 9c344801b0832147c6468496066a3e9904f0b6c9 | |
parent | fb622666206089cf7092ae116612898ac358c91c (diff) |
doc: escape braces in AsciiDoc
This commit fixes a bug where AsciiDoc would drop any line containing a
'{foo}' because it interpreted it as an undefined attribute reference:
> Simple attribute references take the form {<name>}. If the attribute name
> is defined its text value is substituted otherwise the line containing the
> reference is dropped from the output.
See: https://www.methods.co.nz/asciidoc/chunked/ch30.html
We fix this by simply replacing all occurrences of '{' and '}' with
their escaped forms: '{' and '}'.
Fixes #1101
-rw-r--r-- | build.rs | 7 | ||||
-rw-r--r-- | src/app.rs | 10 |
2 files changed, 11 insertions, 6 deletions
@@ -168,7 +168,12 @@ fn formatted_arg(arg: &RGArg) -> io::Result<String> { } fn formatted_doc_txt(arg: &RGArg) -> io::Result<String> { - let paragraphs: Vec<&str> = arg.doc_long.split("\n\n").collect(); + let paragraphs: Vec<String> = arg.doc_long + .replace("{", "{") + .replace("}", r"}") + .split("\n\n") + .map(|s| s.to_string()) + .collect(); if paragraphs.is_empty() { return Err(ioerr(format!("missing docs for --{}", arg.name))); } @@ -788,17 +788,17 @@ to one of eight choices: red, blue, green, cyan, magenta, yellow, white and black. Styles are limited to nobold, bold, nointense, intense, nounderline or underline. -The format of the flag is `{type}:{attribute}:{value}`. `{type}` should be -one of path, line, column or match. `{attribute}` can be fg, bg or style. -`{value}` is either a color (for fg and bg) or a text style. A special format, -`{type}:none`, will clear all color settings for `{type}`. +The format of the flag is '{type}:{attribute}:{value}'. '{type}' should be +one of path, line, column or match. '{attribute}' can be fg, bg or style. +'{value}' is either a color (for fg and bg) or a text style. A special format, +'{type}:none', will clear all color settings for '{type}'. For example, the following command will change the match color to magenta and the background color for line numbers to yellow: rg --colors 'match:fg:magenta' --colors 'line:bg:yellow' foo. -Extended colors can be used for `{value}` when the terminal supports ANSI color +Extended colors can be used for '{value}' when the terminal supports ANSI color sequences. These are specified as either 'x' (256-color) or 'x,x,x' (24-bit truecolor) where x is a number between 0 and 255 inclusive. x may be given as a normal decimal number or a hexadecimal number, which is prefixed by `0x`. |