-
-
Notifications
You must be signed in to change notification settings - Fork 143
Open
Description
When I reuse an registry
, in subsequent calls to convert()
, the registered extensions don't work.
See the sample code, which is based on an example from docs:
const asciidoctor = require("asciidoctor")();
const registry = asciidoctor.Extensions.create();
registry.block(function () {
var self = this;
self.named("shout");
self.onContext("paragraph");
self.process(function (parent, reader) {
var lines = reader.getLines().map(function (l) {
return l.toUpperCase();
});
return self.createBlock(parent, "paragraph", lines);
});
});
const text = `[shout]\
\nSay it loud.\
\nSay it proud.`;
// 1
const htmlA = asciidoctor.convert(text, {
extension_registry: registry,
});
// 2
const htmlB = asciidoctor.convert(text, {
extension_registry: registry,
});
console.log(`Converted first:
${htmlA}`);
console.log(" ");
console.log(`Converted second:
${htmlB}`);
// 🚨 Output from v3.0.2
// Converted first:
// <div class="paragraph">
// <p>SAY IT LOUD.
// SAY IT PROUD.</p>
// </div>
// Converted second:
// <div class="paragraph">
// <p>Say it loud.
// Say it proud.</p>
// </div>
// ✅ Output from v2.2.6
// Converted first:
// <div class="paragraph">
// <p>SAY IT LOUD.
// SAY IT PROUD.</p>
// </div>
// Converted second:
// <div class="paragraph">
// <p>SAY IT LOUD.
// SAY IT PROUD.</p>
// </div>
The same code works fine in v2.2.x.
Is this a bug, or am I doing something wrong?
I encountered this issue when I was trying to find a fix for saneef/eleventy-plugin-asciidoc#10.
tbroyer