pub fn link_contexts(markdown: &str) -> HashMap<String, LinkContext>
从正文 Markdown 里找出每个链接(去掉 fragment 的绝对地址)的锚文本和上下文。 导航栏等不在正文里的链接没有上下文,调用方用 DOM 里的锚文本代替。同一链接取第一次出现。