Hi All,
Is it possible to get the list of pages which are using a certain Macro in confluence.
Thanks,
Hi Tarun,
do a search for
macroName: name_of_macro*
where name_of_macro is the name of the macro you are searching for. note: the capitalization and the space after the colon are both important!
You can find the macro names either under the Plugin Modules, or you can view the Source of a page that has the macro on it. Most of the macro names are fairly intuitive, but some of them can have a different reference name.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I use this all the time ... but I don't think the space after the colon matters (it works with or without it). And the '*' is unnecessary, unless you are looking for several macros that start with the same letters (like 'contentbylabel' and 'contentbyuser'). (I'm am using Confluence 5.5)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is a user macro that I have created for this. Just put it on a page and it should give you a report of all of the macros and user macros that are being used in your instance. This requires at least Confluence 5.5 as the MacroBrowserManager.getMacroSummaries() method was added in 5.5.
## Developed by: Davin Studer ## Date created: 12/17/2014 ## @noparams #set($containerManagerClass = $content.class.forName('com.atlassian.spring.container.ContainerManager')) #set($getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null)) #set($containerManager = $getInstanceMethod.invoke(null,null)) #set($containerContext = $containerManager.containerContext) #set($macroBrowserManager = $containerContext.getComponent('macroBrowserManager')) #set($allMacros = $macroBrowserManager.getMacroSummaries()) ######################################################################################### ## This is used for getting around velocity issues when writing jQuery. ## ######################################################################################### #set( $d = '$' ) ######################################################################################### ## Populate the macro information into a string that we will use as a JS object array. ## ######################################################################################### #set ($i = 0) #set($macroObjects = "") #foreach($macro in $allMacros) #if($i != 0) #set($macroObjects = $macroObjects + ",") #end #set($macroObjects = $macroObjects + "{title:'" + $macro.getTitle().getKey().replace("'","\'") + "', name:'" + $macro.getMacroName().replace("'","\'") + "'}") #set ($i = $i + 1) #end <script type="text/javascript"> var queue = { macros: [$macroObjects], current: 0, start: function () { this.macros.sort(compare); this.current = 0; this.next(); }, next: function () { if (this.current >= this.macros.length) { AJS.$('#queryStatus span').removeClass('aui-lozenge-current'); AJS.$('#queryStatus span').addClass('aui-lozenge-success'); AJS.$('#queryStatus span').text('Report Complete'); AJS.tablessortable.setTableSortable(AJS.$('#macroUsageReport table')); return null; } else { this.current += 1; lookupMacro(this.macros[this.current - 1]); } } }; function lookupMacro(macro) { var html = ''; var searchURL = ''; AJS.$('#queryStatus span').text('Getting counts for macro: ' + macro.title); searchURL = '/rest/searchv3/1.0/search?where=conf_all&spaceSearch=true&queryString=macroName:' + encodeURIComponent(macro.name); AJS.${d}.ajax( { type: 'GET', url: searchURL, dataType: "json", success: function(data) { if(data.total > 0) { html = '<tr>'; html += ' <td class="confluenceTd">' + macro.title + '</td>'; html += ' <td class="confluenceTd">' + macro.name + '</td>'; html += ' <td class="confluenceTd">' + data.total + '</td>'; html += ' <td class="confluenceTd"><a href="/dosearchsite.action?where=conf_all&spaceSearch=true&queryString=macroName:' + encodeURIComponent(macro.name) + '" target="_blank">macro usage</a></td>'; html += '</tr>'; } AJS.$('#macroUsageReport table tbody').append(html); queue.next(); }, error: function (x, y, z) { AJS.$('#queryStatus span').removeClass('aui-lozenge-current'); AJS.$('#queryStatus span').addClass('aui-lozenge-error'); AJS.$('#queryStatus span').text('Error getting counts for macro:' + macro.title); } } ); } function compare(a, b) { if (a.title < b.title) { return -1; } if (a.title > b.title) { return 1; } return 0; } AJS.toInit(function(){ queue.start(); }); </script> <div id="queryStatus"> <span class="status-macro aui-lozenge aui-lozenge-current"></span> </div> <div id="macroUsageReport"> <table class="confluenceTable"> <thead> <tr> <th>Macro Title</th> <th>Macro Name</th> <th>Times Used</th> <th>Pages Used On</th> </tr> </thead> <tbody> </tbody> </table> </div>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You can also try the SpaceAuditor, https://marketplace.atlassian.com/plugins/com.vertuna.confluence.plugins.spaceauditor plugin (free).
It shows a lot of interesting stats about Confluence spaces (usage, contributors, etc), also there is a section that shows statistics on plugins being used and pages where those plugins/macros have been used
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.