Macro registry - List of wiki pages using a certain macro.
Asked by Tarun Sapra:

Hi All,

Is it possible to get the list of pages which are using a certain Macro in confluence.

Thanks,


Answers:
author: Stephen Deutsch
body: 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!

comments: author: Chris Solgat
body: 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.


author: Fred Bunting
body: 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)


author: Davin Studer
body: 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 &lt;script type="text/javascript"&gt;var queue = {    macros: [$macroObjects],    current: 0,    start: function () {        this.macros.sort(compare);        this.current = 0;        this.next();    },    next: function () {        if (this.current &gt;= 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&amp;spaceSearch=true&amp;queryString=macroName:' + encodeURIComponent(macro.name);    AJS.${d}.ajax(        {            type: 'GET',            url: searchURL,            dataType: "json",            success: function(data) {                if(data.total &gt; 0) {                    html = '&lt;tr&gt;';                    html += '   &lt;td class="confluenceTd"&gt;' + macro.title + '&lt;/td&gt;';                    html += '   &lt;td class="confluenceTd"&gt;' + macro.name + '&lt;/td&gt;';                    html += '   &lt;td class="confluenceTd"&gt;' + data.total + '&lt;/td&gt;';                    html += '   &lt;td class="confluenceTd"&gt;&lt;a href="/dosearchsite.action?where=conf_all&amp;spaceSearch=true&amp;queryString=macroName:' + encodeURIComponent(macro.name) + '" target="_blank"&gt;macro usage&lt;/a&gt;&lt;/td&gt;';                    html += '&lt;/tr&gt;';                }                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 &lt; b.title) {        return -1;    }    if (a.title &gt; b.title) {        return 1;    }    return 0;} AJS.toInit(function(){    queue.start();   });&lt;/script&gt; &lt;div id="queryStatus"&gt;    &lt;span class="status-macro aui-lozenge aui-lozenge-current"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="macroUsageReport"&gt;    &lt;table class="confluenceTable"&gt;        &lt;thead&gt;            &lt;tr&gt;                &lt;th&gt;Macro Title&lt;/th&gt;                &lt;th&gt;Macro Name&lt;/th&gt;                &lt;th&gt;Times Used&lt;/th&gt;                &lt;th&gt;Pages Used On&lt;/th&gt;            &lt;/tr&gt;        &lt;/thead&gt;        &lt;tbody&gt;        &lt;/tbody&gt;    &lt;/table&gt;&lt;/div&gt;
```


author: Alex Medved _ConfiForms_
body: 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


Tags: confluence-administration