Open duquewu opened 5 years ago
在 sequence 代码块内输入标签时,会自动在尾部闭合代码快内出现过的标签,如下所示。
Alice->Bob: 1. sendMessage(message:Message<T>) Bob->Coco: 2. sendMessage(message:Message<T>)
看了下 render.js 的源码,应该是 hexo 中标签插件 {% raw %}的默认行为。
{% raw %}
data.content += sequences.map(function (code, index) { var seqId = getId(index); var codeId = seqId + '-code'; var optionsId = seqId + '-options'; return '' + '{% raw %}' + '<textarea id="' + codeId + '" style="display: none">' + code + '</textarea>' + '<textarea id="' + optionsId + '" style="display: none">' + JSON.stringify(config.options) + '</textarea>' + '<script>' + ' var code = document.getElementById("' + codeId + '").value;' + ' var options = JSON.parse(decodeURIComponent(document.getElementById("' + optionsId + '").value));' + ' var diagram = Diagram.parse(code);' + ' diagram.drawSVG("' + seqId + '", options);' + '</script>' + '{% endraw %}'; }).join('');
解决思路:提前将sequence 代码块中的 < >符号替换为 <和 >,代码如下。
<
>
<
>
data.content += sequences.map(function (code, index) { var seqId = getId(index); var codeId = seqId + '-code'; var optionsId = seqId + '-options'; + code = code.replace(/</g,'<').replace(/>/g,'>'); return '' + '{% raw %}' + '<textarea id="' + codeId + '" style="display: none">' + code + '</textarea>' + '<textarea id="' + optionsId + '" style="display: none">' + JSON.stringify(config.options) + '</textarea>' + '<script>' + ' var code = document.getElementById("' + codeId + '").value;' + ' var options = JSON.parse(decodeURIComponent(document.getElementById("' + optionsId + '").value));' + ' var diagram = Diagram.parse(code);' + ' diagram.drawSVG("' + seqId + '", options);' + '</script>' + '{% endraw %}'; }).join('');
解决后的效果:
在 sequence 代码块内输入标签时,会自动在尾部闭合代码快内出现过的标签,如下所示。
看了下 render.js 的源码,应该是 hexo 中标签插件
{% raw %}
的默认行为。解决思路:提前将sequence 代码块中的
<
>
符号替换为<
和>
,代码如下。解决后的效果: