我在Confluence中有以下内容:
{panel}
Hello World 1
{panel}
{sql-query:datasource=DS|output=wiki|table=false|macros=true}
select '\{panel\}\\' from dual
{sql-query}
{sql-query:datasource=DS|output=wiki|table=false|macros=true}
select 'Hello World 2\\' from dual
{sql-query}
{sql-query:datasource=DS|output=wiki|table=false|macros=true}
select '\{panel\}' from dual
{sql-query}
第一个面板(Hello World 1)正确显示。第二个面板(Hello World 2)没有。见下面的输出。
如何让Confluence评估从SQL返回的数据中的wiki标记?
我已尝试将所有内容封闭在运行宏中,例如
{run:hideParameters=true|hideRun=true|autoRun=true}
...
{run}
但这似乎没有任何效果。
答案 0 :(得分:2)
经过一些头发拉动,部分由于@ Steffen的回答中提供的信息,我找到了以下解决方案:
{sql-query:datasource=DS|table=false|output=wiki}
select macroline from
(
select 10 as seq, '{panel}' as macroline from dual
union
select 20 as seq, 'Hello World 2' as macroline from dual
union
select 30 as seq, '{panel}' as macroline from dual
)
order by seq
{sql-query}
在一个查询中必须构造所有内容有点痛苦,但这会产生所需的结果。
答案 1 :(得分:1)
我担心Confluence SQL Plugin不支持这个设想:
Confluence Macro或多或少是一个自包含单位(这有点简化,但应说明手头的问题)。您正确地要求{sql-query}
宏通过macros=true
参数评估其他具体的宏,该参数只能用于“单个标记”宏(例如Cheese Macro)或< em>完整的'双标签'宏(即需要具体内容的宏,就像你想要的Panel Macro一样。)
以这种方式思考:您要求{sql-query]
宏呈现{panel}
,它缺少必需的结束标记,因为所有三个{sql-query]
宏都独立工作并且不能t彼此通信以解决宏。像往常一样,Confluence只是将宏标记渲染为文本。
您希望的内容原则上可以实现,但可能超出了当前为{sql-query}
设计的用例的范围。