Adaptavist Add a macro to the top of every page within a Confluence space

Created by Lee Wonnacott last modified
 * This script provides an example of how you can add a single macro to every page within a specified space
 * All right, title and interest in this code snippet shall remain the exclusive intellectual property of Adaptavist Group Ltd and its affiliates. Customers with a valid ScriptRunner 
 * license shall be granted a  non-exclusive, non-transferable, freely revocable right to use this code snippet only within their own instance of Atlassian products. This licensing notice cannot be removed
 * or amended and must be included in any circumstances where the code snippet is shared by You or a third party." 

import com.atlassian.confluence.pages.PageManager
import com.atlassian.confluence.spaces.SpaceManager
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.confluence.core.DefaultSaveContext

def spaceManager = ComponentLocator.getComponent(SpaceManager)
def pageManager = ComponentLocator.getComponent(PageManager)

def cheeseMacro = """<ac:structured-macro ac:name="cheese" ac:schema-version="1"/>"""

def targetSpace = spaceManager.getSpace('L1')

def spacePages = pageManager.getPages(targetSpace, true) 

spacePages.each{ page ->
    def oldVersion = page.clone() as Page
	def pageBody = page.getBodyAsString()
	pageBody = cheeseMacro + pageBody
	pageManager.saveContentEntity(page, oldVersion,DefaultSaveContext.DEFAULT)

Comments (0)


You can clone a snippet to your computer for local editing. Learn more.