如何为Confluence创建文本文件,然后将其作为Confluence维基页面导入?

时间:2013-01-29 14:35:44

标签: wiki markup confluence

这是我想要完成的事情:

  1. 我正在编写一个脚本来解析一些源代码,提取一些我希望它提取的注释,然后我将这个文本存储在一个文本文件中。

  2. 我想编写另一个脚本,使用此文本文件的内容以编程方式转换为Confluence维基页面。

  3. 请告诉我最好的方法。我已经看到了this

    我觉得我可以改变上面例子中的输入来从文本文件中获取输入并更新Confluence页面的内容。但是,我不确定它将如何格式化。如果我必须格式化,我需要做什么?

    提前致谢!

3 个答案:

答案 0 :(得分:5)

作为XML-RPC的替代方案,您可以使用集成的WebDAV plugin

  1. 编写一个在所选空间中创建目录的脚本。 目录名称将是页面名称。创建目录后,将在保存页面内容的目录中创建具有相同名称(扩展名为.txt)的文本文件
  2. 让您的脚本编辑此文件,插入文本文件的内容。
  3. 有关插件用法的信息:

答案 1 :(得分:3)

我也看到了你所指的代码。我调整了一下,产生了以下代码,我可以帮助你解决问题的第二部分。

我的代码会在插入先前创建的空间的文本文件中创建一个新空间和一个新页面。

import sys
import xmlrpc.client
import os
import re

# Connects to confluence server with username and password
site_URL = "YOUR_URL"
server = xmlrpc.client.ServerProxy(site_URL + "/rpc/xmlrpc")

username = "YOUR_USERNAME"
pwd = "YOUR_PASSWORD" 
token = server.confluence2.login(username, pwd)

# The space you want to add a page to
spacekey = "YOUR_SPACENAME"

# Retrives text from a file
f = open('FileName.txt', 'r')
content = f.read()
f.close()

# Creates a new page to insert in the new space from text file content
newpage = {"title":"NEW_PAGENAME", "space":spacekey, "content":content}
server.confluence2.storePage(token, newpage)

server.confluence2.logout(token)

对于你的格式问题,支持html,但我还没有弄清楚如何使用除内联之外的CSS样式(其他似乎不起作用)。

当您使用Confluence中的HTML宏编写它们时,这些样式会起作用,但是从远程API看,它的行为似乎不一样。

更新: 您可以使用{html}宏来包含您的html:

content = server.confluence2.convertWikiToStorageFormat(token, content)

您还可以在全局CSS样式表中指定CSS。 另一个选择是开发一个包含CSS资源的插件: https://developer.atlassian.com/display/CONFDEV/Creating+a+Stylesheet+Theme

答案 2 :(得分:1)

我尝试过这种方式,对我来说效果不错:

  1. 我使用Java程序创建了一个程序化客户端来创建动态内容。这从我的纯文本中创建了一个HTML文档。
  2. 我使用连接到Confluence的RPC客户端将其上传为新页面。
  3. 您的HTML将被保留。但是如果你想在你的html上添加CSS或JS / JQuery等,你需要创建一个宏并为特殊页面启用它。 Confluence OnDemand中不提供此功能。