【发布时间】:2017-04-10 10:34:24
【问题描述】:
我可以成功地创建和更新内容简单的 Confluence wiki 页面。但是,当我尝试使用不仅仅是一个字符串进行更新时出现错误。
我在 git 存储库中有一组以 Markdown 格式格式化的文档。由于遗留需求,我使用 pandoc 将这些转换为 word 以部署在文档系统中。我们正在迁移到 Confluence,因此我想将更新部署为 wiki 页面。
我有页面 ID、版本和标题
echo "update page ${title} - ${pagid}/${pagver}"
content=$(pandoc -t HTML ${file})
json="{"
json+='"id":"'${pagid}'","title":"'${title}'","type":"page",'
json+='"space":{"key":"'${SPACE}'"},'
json+='"version":{"number":"'${pagver}'"},'
json+='"body":{"storage":{"value":"'${content}'","representation":"storage"}}'
json+="}"
${curlcmd} -n -X PUT -H 'Content-Type: application/json' --data-raw "${json}" ${apilb}/content/${pagid} 2>/dev/null
如果我将内容设置为 <p>this is test content</p> 它工作正常。然而复杂的 html 得到这个错误:
{"statusCode":500,"message":"org.codehaus.jackson.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value\n at [Source: org.apache.catalina.connector.CoyoteInputStream@22ae1ec8; line: 1, column: 157]"}
有没有更好的方法来发送文件输出来更新 Confluence wiki 页面?
【问题讨论】:
标签: bash curl confluence