Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Description

This describes how to add some standard text to the beginning or end of a bunch of Confluence pages. This assumes you have access to the Confluence database for running a read only query to select the pages that you are interested in updating. 

Jira Legacy
serverJIRA (bobswift.atlassian.net)
serverId729d679a-302c-339f-958b-015e107badcd
keyCSOAP-137
 will provide an improvement to this soon.

Tip
titleTest carefully

Test on a few pages first to make sure the result is what you want!

Steps using version 2.6.0 or above

Construct a SQL query that selects the pages you are interested in. Test against your database.

...

select '--id ' || contentid from content where content.title like '%title 1%' and contenttype = 'PAGE' and content.spaceid = (select spaceid from spaces where spacekey = 'zconfluencecli2')

...

Put it all together in a single command: 

No Format
confluence -a runFromSql --common "-a modifyPage --content \"before existing content\" " --database confluence-3.5.13 --driver postgresql --sql "select '--id ' || contentid from content where content.title like '%title 1%' and contenttype = 'PAGE' and content.spaceid = (select spaceid from spaces where spacekey = 'zconfluencecli2')"
Tip
titleUse find and replace support to modify existing content

--findReplace and/or --findReplaceRegex can be used to modify the contents with or without adding additional content. Watch out for unintended substitutions - choose your find string/regex carefully.

No Format
titleExample
--action modifyPage --id 12345678 --findReplace "xxx:yyy"

 

 

Tip
titleAlternatives

runFromPageList and runFromList or similar can also be used to accomplish similar things without SQL.

 

Steps before version 2.6.0

...

Create a text file appendPage.txt similar to the following: 

No Format
titleExample
-a getPageSource --space @space@ --title "@title@" --file temp-page-source.txt
-a storePage --space @space@ --title "@title@" --file temp-page-source.txt --content "Stuff to add before current page. \n " --content2 " \n Stuff to add after current page."

The page content on storePage is determined by content (if provided), followed by file content (if provided), followed by content2 (if provided).

 

Construct a SQL query that selects the pages you are interested in. Test against your database.

...

select '--findReplace \"@title@:''' || content.title || ''',@space@:' || spaces.spacekey || '\"' from content, spaces where content.title like '%title 1%' and content.spaceid = spaces.spaceid"

...

Put it all together in a single command: 

No Format
confluence -a runFromSql --common "-a run --file appendPage.txt" --database confluence-3.5.13 --driver postgresql --sql "select '--findReplace \"@title@:''' || content.title || ''',@space@:' || spaces.spacekey || '\"' from content, spaces where content.title like '%title 1%' and content.spaceid = spaces.spaceid"

...

titleTrouble with titles

...

Include Page
SUPPORTS:How to automate adding text to Confluence pages
SUPPORTS:How to automate adding text to Confluence pages