How to automate adding text to Confluence pages
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.
Test carefully
Test on a few pages first to make sure the result is what you want!
Steps
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')
- Figure out the runFromSql parameters for accessing your database.
Put it all together in a single command:Â
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')"
Use 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.
--action modifyPage --id 12345678 --findReplace "xxx:yyy"
Alternatives
runFromPageList and runFromList or similar can also be used to accomplish similar things without SQL