我正在尝试更新宏以使用AsciidoctorJ void ASTERISK (int number);
int main ()
{
std::cout << "Enter a number: " ;
int number;
std::cin >> number;
ASTERISK(number);
return 0;
}
void ASTERISK (int number){
for (int i=0; i!=number; i++){
std::cout << "* ";
}
}
。我有一个扩展2.0.0
的宏,该宏根据配置创建链接或文本。
要创建链接,我可以这样做:
InlineMacroProcessor
我只想在文档中插入一些文本。
选项1 。仅返回一个字符串(与先前版本的AsciidoctorJ一样):
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;
它可以工作,但是我得到以下日志条目:
String linkText;
//TODO init the linkText variable.
return linkText;
这暗示我在新API上做错了事。
选项2:我试图创建类型为“文本”的INFO: expected substitution value for custom inline macro to be of type Inline; got String
(我发明了这种方法)
PhraseNode
但是我得到:
String linkText;
//TODO init the linkText variable.
PhraseNode inline = createPhraseNode(parent, "text", linkText, attributes, options);
return inline;
那么创建仅包含字符串的内联的正确方法是什么?
答案 0 :(得分:0)
如果要返回字符串,可以使用:
PhraseNode inline = createPhraseNode(parent, "quoted", linkText, attributes, options);
return inline;