簡體   English   中英

在 Confluence API 中保留新行

[英]Preserve new lines in Confluence API

我有字典列表:

{'associations': [{'host1': ['v1','v2']}, {'host2': ['v2,v3']}, {'host3': ['v1', 'v7']}]}

我試圖通過使用 atlassian-python-api 模塊以 YAML 格式傳遞給合流頁面的字典列表:

confluence_data = yaml.safe_dump(confluence_data['associations'], encoding='utf-8', allow_unicode=True)

    confluence = Confluence(
        url='https://confluence-url',
        username='user',
        password='password')

    status = confluence.update_or_create(parent_id=someid, title='Test page', body=confluence_data, representation='storage')

但它的出版沒有關於匯合的新行。

我嘗試使用 pprint 添加新行,但它也沒有幫助,因為在這種情況下它發布了空頁面:

confluence_data = pprint.pprint(confluence_data, width=1)

我在這里做錯了什么?

我沒有資源直接用 Confluence 實例測試這個,但如果你省略 utf-8 編碼,你應該收到一個字符串。 atlassian-python-api 文檔中,我了解到您可以直接使用帶有字符串作為值的 body 參數。

試試這個:

confluence_data = yaml.safe_dump(confluence_data['associations'], allow_unicode=True)

如果這沒有幫助,因為 atlassian-python-api 可能無法正確處理 \\n,您可以嘗試通過將字符串的每一行放在以下 HTML 標記中來修改字符串,然后再將其移交給 confluence: <p>line</p>

例如(你可以使用列表理解來使這更簡潔):

new_confluence_data = ""
confluence_data_lines = confluence_data.splitlines()
for line in confluence_data_lines:
    line = "<p>" + line + "</p>"
    new_confluence_data += line

然后在你的調用中用 new_confluence_data 替換 confluence_data 變量:

status = confluence.update_or_create(parent_id=someid, title='Test page', body=new_confluence_data, representation='storage')

希望這會有所幫助,或者至少能讓您走上正軌!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM