Skip to content

Commit 6c41888

Browse files
committed
Handle in-word underscores
1 parent ef64405 commit 6c41888

3 files changed

Lines changed: 14 additions & 2 deletions

File tree

parser/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = 'rst_parser'
3-
version = '0.3.1'
3+
version = '0.3.2'
44
authors = ['Philipp A. <flying-sheep@web.de>']
55
edition = '2018'
66
description = 'a reStructuredText parser'

parser/src/rst.pest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ literal = { (!("`"|" ") ~ inline_nested)+ ~ (" "+ ~ (!("`"|" ") ~ inline_
148148
// inline links
149149
reference = { reference_target | reference_explicit | reference_auto }
150150

151-
reference_target = { reference_target_uq ~ "_" | reference_target_qu }
151+
reference_target = { (reference_target_uq ~ "_" | reference_target_qu) ~ !(LETTER|NUMBER) }
152152
reference_target_uq = { (!("_"|":"|"`") ~ nonspacechar)+ }
153153
reference_target_qu = { ( !("`"? ~ "`_") ~ "`" ~ !"``" ) ~ reference_text? ~ ("<" ~ reference_bracketed ~ ">")? ~ ( "`" ~ !"``" ) ~ "_" }
154154
reference_text = { !"<" ~ ( !("`"|"<") ~ ANY )+ }

parser/src/tests.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,18 @@ fn two_targets() {
104104
};
105105
}
106106

107+
#[test]
108+
fn inline_code_literal_with_underscore() {
109+
parses_to! {
110+
parser: RstParser,
111+
input: "``NAME_WITH_UNDERSCORE``",
112+
rule: Rule::inline,
113+
tokens: [
114+
literal(2, 22, [str_nested(2, 22)]),
115+
]
116+
};
117+
}
118+
107119
#[allow(clippy::cognitive_complexity)]
108120
#[test]
109121
fn admonitions() {

0 commit comments

Comments
 (0)