Я пытаюсь обновить свой макрос для использования AsciidoctorJ 2.0.0
. У меня есть макрос, расширяющий InlineMacroProcessor
, который создает ссылку или текст в зависимости от конфигурации.
Чтобы создать ссылку, я могу сделать:
String linkUrl, linkText;
//TODO init the variables
// Define options for an 'anchor' element:
Map<String, Object> options = new HashMap<String, Object>();
options.put("type", ":link");
options.put("target", linkUrl);
// Create the 'anchor' node:
PhraseNode inline = createPhraseNode(parent, "anchor", linkText, attributes, options);
return inline;
Я хотел бы просто вставить текст в документ.
Вариант 1. возвращает только строку (как и в предыдущей версии AsciidoctorJ):
String linkText;
//TODO init the linkText variable.
return linkText;
Это работает, но я получаю эту запись в журнале:
INFO: expected substitution value for custom inline macro to be of type Inline; got String
Это означает, что я делаю что-то не так с новым API.
Вариант 2: Я попытался создать PhraseNode
типа "текст" (я изобрел это)
String linkText;
//TODO init the linkText variable.
PhraseNode inline = createPhraseNode(parent, "text", linkText, attributes, options);
return inline;
Но тогда я получаю:
org.asciidoctor.jruby.internal.AsciidoctorCoreException: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `convert_inline_text' for #<Asciidoctor::Converter::Html5Converter:0x10b4e7f8>
Did you mean? convert_inline_button
convert_inline_quoted
convert_inline_menu
convert_inline_image
convert_inline_break
convert_inline_kbd
Так, как правильно создать Inline, содержащий только строку?