diff --git a/harper-core/src/parsers/markdown.rs b/harper-core/src/parsers/markdown.rs index 89ed098b0..fe0f8ed29 100644 --- a/harper-core/src/parsers/markdown.rs +++ b/harper-core/src/parsers/markdown.rs @@ -202,9 +202,14 @@ impl Parser for Markdown { }); continue; } - + if matches!(tag, Tag::Link { .. }) { + tokens.push(Token { + span: Span::new_with_len(traversed_chars, text.chars().count()), + kind: TokenKind::Unlintable, + }); + continue; + } if !(matches!(tag, Tag::Paragraph) - || matches!(tag, Tag::Link { .. }) || matches!(tag, Tag::Heading { .. }) || matches!(tag, Tag::Item) || matches!(tag, Tag::TableCell) @@ -369,4 +374,15 @@ mod tests { let tokens = Markdown.parse_str(source); assert_eq!(tokens.iter_unlintables().count(), 1); } + + #[test] + fn link_title_unlintable() { + let source = r#"[elijah-potter/harper](https://github.com/elijah-potter/harper)"#; + let tokens = Markdown.parse_str(source); + let token_kinds = tokens.iter().map(|t| t.kind).collect::>(); + + dbg!(&token_kinds); + + assert!(matches!(token_kinds.as_slice(), &[TokenKind::Unlintable])) + } }