GOOGLE ADS

viernes, 22 de abril de 2022

Cargue el contenido de la página de Confluence que contenga {code} macros a través de la API

Lo que estoy tratando de lograr es cargar un contenido de página de Confluence que contenga ejemplos de código, y me gustaría que estos ejemplos de código usen el complemento de macro {code} que proporciona resaltado de sintaxis al ver la página.

Descubrí que la macro de código almacena 2 formatos en Confluence, respectivamente para body.storagey body.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>

y

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

Intenté subir ambos a Confluence usando la API, pero cada vez, el bloque de código se representa como un <pre/>elemento simple y el resaltado de sintaxis no se representa.

Cualquier ayuda apreciada.

Nota: así es como actualizo el contenido a través de la API: https://docs.atlassian.com/atlassian-confluence/REST/latest-server/#content-update
Normalmente:

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'
}
)

Cualquier ayuda apreciada,


Solución del problema

cuando obtengo contenido en formato de almacenamiento, un bloque de código resaltado por sintaxis, se parece al siguiente

<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>

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...