提问者:小点点

通过API上传包含{code}宏的Confluence页面内容


我试图实现的是上传包含代码示例的Confluence页面内容,我希望这些代码示例使用{code}宏插件,该插件在查看页面时提供语法突出显示。

我发现代码宏在Confluence上存储了两种格式,分别用于body.storagebody. view

<ac:structured-macro ac:name="code" ac:schema-version="1" ac:macro- id="37fecf11-d435-452a-90c7-da19f3821b4c">
  <ac:parameter ac:name="language">bash</ac:parameter>
  <ac:parameter ac:name="linenumbers">true</ac:parameter>
  <ac:plain-text-body><![CDATA[ // code goes here ]]></ac:plain-text-body>
</ac:structured-macro>

<div class="code panel pdl" style="border-width: 1px;">
   <div class="codeContent panelContent pdl">
     <pre class="syntaxhighlighter-pre">
     // code goes here
     </pre>
   </div>
</div>

我尝试使用API将两者上传到Confluence,但是每次,代码块都呈现为简单的

感谢任何帮助。

注意:这是我通过API更新内容的方式:https://docs.atlassian.com/atlassian-confluence/REST/latest-server/#content-update通常:

HTML = '<div class="code panel pdl" style="border-width: 1px;">
   <div class="codeContent panelContent pdl">
     <pre class="syntaxhighlighter-pre">
     $ DIST=`cat /etc/*release`
     $ echo $DIST
     </pre>
   </div>
</div>'

data = json.dumps(
    {
        'id': '%d' % PAGEID,
        'type': 'page',
        'title': TITLE,
        'space': {
            'key': SPACE
        },
        'version': {
            'number': VERSION +1
        },
        'body': {
            'storage': {
                'representation': 'storage',
                'value': HTML
            }
        }
    }   
)
rPut = requests.put(
    url,
    data = data,
    auth = (USER, PWD),
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
)

感谢任何帮助,


共2个答案

匿名用户

当我获取存储格式的内容时,一个语法高亮的代码块,如下所示

<div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;">
    <div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;">
        <b>SANITIZED CODE HEADER</b>
    </div>
    <div class="codeContent panelContent pdl">
        <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; first-line: 1; theme: DJango" data-theme="DJango">
        SANITIZED CODE CONTENT
        </pre>
    </div>
</div>

匿名用户

您可以按如下方式使用存储格式的代码宏:

<ac:structured-macro ac:name="code">
  <ac:parameter ac:name="title">This is my title</ac:parameter>
  <ac:parameter ac:name="theme">FadeToGrey</ac:parameter>
  <ac:parameter ac:name="linenumbers">true</ac:parameter>
  <ac:parameter ac:name="language">xml</ac:parameter>
  <ac:parameter ac:name="firstline">0001</ac:parameter>
  <ac:parameter ac:name="collapse">true</ac:parameter>
  <ac:plain-text-body><![CDATA[<b>This is my code</b>]]></ac:plain-text-body>
</ac:structured-macro>

参考:宏的https://www.cwiki.us/display/CONF54/Confluence存储格式#ConfluenceStorageFormatforMacros-CodeBlock宏