Open AmadeusW opened 1 month ago
@xoofx I'd appreciate your opinion how to best fix this, or how to override the behavior of LinkInlineParser
I would use /
instead of \ and you wouldn't have to change the parser:
[example link](../example.md)
[example link](/../example.md)
None of the CommonMark parser are supporting \ in that case and they all trim it in the same way here
While I do not recommend it - I pre-parsed markdown to rewrite the links to the standard, then passed that to this wonderful library. It's a pain, if you can get escaped unix style paths that's better.
I'm writing a Markdown renderer that formats user .md files into navigable .html pages. Some user documents contain relative paths to a parent directory, like these:
Currently,
LinkHelper.TryParseInlineLink
callsLinkHelper.TryParseInlineLink
, which callsLinkHelper.TryParseUrl
leavingisAutoLink
unset asfalse
. This means thatTryParseUrl
treats the slash as escape character and effectively removes it. The character is not recorded as a part of trivia, and there's no way to infer its presence by examining the AST.Setting
isAutoLink
to true seems to address this issue, but I don't know what auto link is, and whether this is an appropriate wokaround. I was thinking about a solution where we'd set a property onInlineProcessor
.MarkdownPaserContext
to influenceLinkInlineParser.TryProcessLinkOrImage
, but would like to get your opinion before making code changes.