1

我在 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}

但这似乎没有任何效果。

4

2 回答 2

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}

不得不在一个查询中构建所有内容有点痛苦,但这会产生所需的结果。

于 2012-02-09T11:01:16.023 回答
1

恐怕Confluence SQL 插件不支持这方面的设想:

Confluence 宏或多或少是一个独立的单元(这有点简化,但应该说明手头的问题)。您正确地要求{sql-query}宏通过macros=true参数评估其他体现的宏,该参数只能适用于“单标签”宏(例如Cheese Macro)或完整的“双标签”宏(即需要具体内容的宏反过来,就像您尝试注入的面板宏一样)。

可以这样想:您要求{sql-query]宏渲染 a {panel},它缺少所需的结束标记,因为所有三个{sql-query]宏独立工作并且不相互通信以解析宏。因此,像往常一样,Confluence 只是将宏标签呈现为文本。

您希望的内容原则上可以实现,但可能超出{sql-query}当前设计的用例范围。

于 2012-02-08T17:29:45.617 回答