Closed paulathevalley closed 5 years ago
Hi, sorry about the long wait. Can you give me a simple test procedure / code ? I believe i've perhaps fixed this in master, but that would help me test this faster (i'm really busy these days).
Thanks !
Phew, it’s been awhile for me, too! We definitely worked around the missing methods, but unfortunately I don’t remember all the details.
I am currently struggling with including both markdown-it
and markdown-it-toc-and-anchor
libraries in a JSBin to send you a working sample, but in the meantime, perhaps you’ll be able to see something in our current method that we’re missing.
If not, that’s okay, too.
setMarkdownRenderer(currentPath) {
const md = new MarkdownIt({
html: true,
linkify: true,
typographer: true
});
md.use(markdownItTocAndAnchor, {
anchorLinkSymbol: "",
anchorClassName: "Anchor",
tocCallback: (tocMarkdown, tocArray) => {
this.props.updateTocArray(tocArray);
}
});
// store the original rule
const defaultRender = md.renderer.rules.link_open || function (tokens, idx, options, env, renderer) {
return renderer.renderToken(tokens, idx, options);
};
const basename = this.props.basename;
// Update links to include the basename
md.renderer.rules.link_open = function (tokens, idx, options, env, renderer) {
console.log("tokens[idx] token methods are undefined: ", tokens[idx]);
// (The workaround to using `attrIndex`)
const tokenAttrs = tokens[idx].attrs;
const hrefIdx = findIndex(tokenAttrs, (arr) => arr.indexOf("href") >= 0);
if (hrefIdx >= 0) {
const href = tokenAttrs[hrefIdx];
if (href.length > 1) {
if (href[1].indexOf("#") === 0) {
href[1] = `${basename}${currentPath}${href[1]}`;
tokenAttrs.push(["aria-hidden", "true"]);
}
}
}
return defaultRender(tokens, idx, options, env, renderer);
};
this.md = md;
}
Hi, it has been fixed in this commit, i'll cut a release with it today.
fixed in v4.2.0
Before I add
markdown-it-toc-and-anchor
, there are five class methods available for the tokens:After adding
markdown-it-toc-and-anchor
, they are undefined:This is as far as I’ve gotten in debugging, let me know if there’s more helpful information I can provide. I would love to use these class methods if possible.