Skip to content

Commit 8b875b0

Browse files
fix: Correctly ignore invalid links
1 parent abbc08d commit 8b875b0

File tree

7 files changed

+38381
-38527
lines changed

7 files changed

+38381
-38527
lines changed

grammar.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const org_grammar = {
1515
$._stars,
1616
$._sectionend,
1717
$._eof, // Basically just '\0', but allows multiple to be matched
18+
$._link_open,
19+
$._inline_code,
1820
],
1921

2022
inline: $ => [
@@ -78,13 +80,13 @@ const org_grammar = {
7880
),
7981

8082
link: $ => seq(
81-
token('[['),
83+
alias($._link_open, '[['),
8284
field('url', repeat(alias($._expr_with_space, $.expr))),
8385
token(']]')
8486
),
8587

8688
link_desc: $ => seq(
87-
token('[['),
89+
alias($._link_open, '[['),
8890
field('url', repeat(alias($._expr_with_space, $.expr))),
8991
token(']['),
9092
field('desc', repeat(alias($._expr_with_space, $.expr))),
@@ -94,14 +96,23 @@ const org_grammar = {
9496
priority: _ => token(/\[#\w+\]/),
9597

9698
inline_code_block: $ => seq(
97-
field('open', alias($._inline_code_open, $.open)),
99+
field('open', alias($._inline_block_open, $.open)),
98100
field('contents', alias(repeat($.expr), $.contents)),
99101
field('close', alias(choice(token('}'), token.immediate('}')), $.close))
100102
),
101103

102-
_inline_code_open: $ => choice(
103-
token(/src_[^\s\[\{]+\{/),
104-
token(/src_[^\s\[\{]+\[[^\r\n\[\]]*\]\{/)
104+
_inline_block_open: $ => seq(
105+
$._inline_code,
106+
token('src_'),
107+
field('language', alias(token.immediate(/\w+/), $.language)),
108+
optional(
109+
seq(
110+
token.immediate('['),
111+
field('parameters', alias(repeat(alias(/[^\r\n\p{Z}\]]+/, $.expr)), $.parameters)),
112+
']',
113+
),
114+
),
115+
token.immediate('{'),
105116
),
106117

107118
// Can't have multiple in a row

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
"pre-build": "prebuild --all --strip --verbose",
4141
"pre-build:upload": "prebuild --upload-all",
4242
"generate": "tree-sitter generate",
43-
"parse": "tree-sitter parse",
44-
"test": "tree-sitter test",
43+
"parse": "npm run generate && tree-sitter parse",
44+
"test": "npm run generate && tree-sitter test",
4545
"test-windows": "tree-sitter test",
4646
"prebuildify": "prebuildify --napi --strip"
4747
},

src/grammar.json

Lines changed: 93 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-types.json

Lines changed: 45 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)