Closed
Description
Hi all,
Thanks a lot for the awesome work done on docsify, love it !
I'm having troubles with 2 mermaid graphs on two separate pages.
When I access each of these pages synchronously, each graph renders correctly.
But when I try to navigate from one page to the other, the second one asynchronously loaded doesn't have any graph rendered.
On click, it does go through the following snippet :
<script>
mermaid.initialize({ startOnLoad: false });
window.$docsify = {
name: 'COP Front',
coverpage: true,
loadSidebar: true,
subMaxLevel: 3,
auto2top: true,
themeColor: '#4e93a5',
markdown: {
renderer: {
code: function(code, lang) {
if (lang === "mermaid") {
return (
'<div class="mermaid">' + mermaid.render(lang, code) + "</div>"
);
}
return this.origin.code.apply(this, arguments);
}
}
}
}
</script>
Mermaid seems to generate the proper svg graph based on raw text.
But when the destination page is rendered it looks like it didn't replace raw text by svg graph in place resulting in the page rendered without any graph.
I guess i'm missing something, thanks for your help.
Activity
sprungknoedl commentedon Oct 25, 2018
Hi,
This seems to be caused by the variable
lang
being used as an ID for mermaid. If you generate a random ID for the first parameter of mermaid.render it works:jfmou commentedon Nov 5, 2018
Well thank you very much, it did solve my case. I didn't notice mermaid #render method took an id as first param wasn't obvious for me while reading the demo and/or doc.
Thank you very much !
upupming commentedon Nov 5, 2018
Thanks a lot, I have encountered this problem too after following docsify's documentation.
This is the problem:
I see the element tab on Chrome, there are several graphs with same id
mermaid
, so this is the root of this problem:But could anyone explain the reason why this happens?
docs: mermaid duplicated id, see #504 (#685)
docs: mermaid duplicated id, see #504 (#685)