使用 Confluence 4.0 在用户宏中添加 Wiki 标记

发布于 2024-12-05 06:17:36 字数 180 浏览 0 评论 0原文

使用 Confluence 4.0 时,如何在用户宏(或在用户宏编辑器中完成的生成动态输出的其他内容)中使用 wiki 标记。 在 Confluence 3.5.3 中,我有一个包含以下内容的宏,我想迁移它:

{info:title=Table of content}
{toc}
{info}

how can I use wiki markup in a usermacro (or something else which produces the dynamic output, done in the user macro editor), when using Confluence 4.0.
In Confluence 3.5.3 I had a macro with the following content, which I want to migrate:

{info:title=Table of content}
{toc}
{info}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

闻呓 2024-12-12 06:17:36

好的,我知道如何解决这个问题。你必须编写 XHTML,下面显示了上面的示例在 XHTML 中的样子:

## @noparams
<ac:macro ac:name="info">
    <ac:parameter ac:name="title">Table of content</ac:parameter>
    <ac:rich-text-body>
        <ac:macro ac:name="toc" />
    </ac:rich-text-body>
</ac:macro>

我发现的另一个肮脏的方法是使用转换标记(将来可能会过时):

## @noparams
<ac:macro ac:name="unmigrated-inline-wiki-markup">
    <ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter>
    <ac:plain-text-body><![CDATA[
        {info}Here you can write wiki markup the old way, until Atlassian removes this transition markup (unmigrated-inline-wiki-markup){info}
    ]]></ac:plain-text-body>
</ac:macro>

Ok, I found out how to solve this. You have to write XHTML, the following shows how the example above would look like in XHTML:

## @noparams
<ac:macro ac:name="info">
    <ac:parameter ac:name="title">Table of content</ac:parameter>
    <ac:rich-text-body>
        <ac:macro ac:name="toc" />
    </ac:rich-text-body>
</ac:macro>

Another dirty approach I found is to use the transition markup (may become obsolete in the future):

## @noparams
<ac:macro ac:name="unmigrated-inline-wiki-markup">
    <ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter>
    <ac:plain-text-body><![CDATA[
        {info}Here you can write wiki markup the old way, until Atlassian removes this transition markup (unmigrated-inline-wiki-markup){info}
    ]]></ac:plain-text-body>
</ac:macro>
忆梦 2024-12-12 06:17:36

要获取需要为宏编写的 XHTML,请按照下列步骤操作: 使用

  1. 所需的宏创建一个新页面并保存它。
  2. 如果您是 Confluence 管理员或在开发模式下运行,请打开“工具”>“Confluence 管理员”。 查看存储格式页面。
  3. 该页面现在将以新的存储格式显示原始输出。

如果您无权访问查看存储格式选项,则解决方法是:

  1. 打开页面“信息”(“工具”>“信息”),记下中的 pageId=网址。
  2. 打开一个新的浏览器窗口并输入以下 URL,替换 confluence root 和 page id 变量。

http://{your-confluence-root}/plugins/viewstorage/viewpagestorage.action?pageId={your-page-id}

参考文献:
Confluence 4.0 编辑器常见问题解答

To get the XHTML that you need to write for your macro, follow these steps:

  1. Create a new page with the macro you want and save it.
  2. If you are an Confluence Administrator or running in development mode, open the Tools > View Storage Format page.
  3. The page will now show the raw output in the new storage format.

If you don't have access the View Storage Format option, then a workaround is:

  1. Open the page Info (Tools > Info), take note of the pageId= in the URL.
  2. Open a new browser window and enter the following URL, replacing the confluence root and page id variables.

http://{your-confluence-root}/plugins/viewstorage/viewpagestorage.action?pageId={your-page-id}

References:
Confluence 4.0 Editor FAQ

耶耶耶 2024-12-12 06:17:36

您应该在用户宏中将 wiki 标记动态渲染为 xhtml!这是一些代码:

## @noparams
#set($globalHelper = $action.getHelper())
#set($renderedhtml = $globalHelper.renderConfluenceMacro("{info}test{info}"))
$renderedhtml

You should just render the wiki markup into xhtml dynamically in your user macro! Here's some code:

## @noparams
#set($globalHelper = $action.getHelper())
#set($renderedhtml = $globalHelper.renderConfluenceMacro("{info}test{info}"))
$renderedhtml
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文