Exclude pages from the popular pages list
- Applies to:
- All MindTouch Versions
- Role required:
- Author
For example, you could use the steps in this tutorial to exclude your home page from the most popular pages list. Additionally, you can customize the appearance of the list using HTML and CSS and embed it in any Expert article.
Create your template
Start by creating a new Expert template where you can add the DekiScript to display your top popular pages. Use the following steps to create a new template:
- Navigate to Site tools > Dashboard > Site Administration > Template Directory (/Template:).
- Navigate to Template:Custom.
- Click New.
- Give your new page a title.
Do not modify or add any templates in Templates:Expert.
The following example assumes your template has the title Template:PopularPagesExcludedWidget.
Add the DekiScript
Add the DekiScript that displays the most popular pages and set the list of pages to exclude. Perform the following steps:
- Click in the editor window of the template you just created to put your cursor there.
- Select DekiScript from the Styles menu.
- Copy the code below, paste it into the DekiScript block, and click Save.
This code hides any pages titled "Home" and "Contact Us" from the popular pages list. To change which pages are hidden, replace Home and Contact Us with the titles of the pages you want to hide. You can also add additional pages by putting a comma after "Contact Us" and adding another page title on the next line.// Titles of pages to exclude. var popularPagesExcluded = [ "Home", "Contact Us" ]; // Number of pages to show in the list. var popularPagesNumber = 10; // Get the number of items to exclude. var excludesLength = #popularPagesExcluded; // Add the excluded items to the number of pages to show. var apiLimit = popularPagesNumber + excludesLength; // Build the popular pages API call. var uri = site.api & 'pages/popular' & { limit: apiLimit }; var api = wiki.api(uri); <div class="widget-popular"> <ul> // Loop through each page that the API returns. var count = 0; foreach (var pg in api['page']) { // Don't show more than requested. if (count >= popularPagesNumber) { break; } // Get the current page's title and check for excluded titles. var title = pg / 'title'; var found = false; foreach (var exclude in popularPagesExcluded) { if (exclude == title) { let found = true; break; } } // Show pages that aren't in the excluded list. if (found == false) { let count = count + 1; <li> web.link(pg / 'uri.ui', title); var viewcount = num.cast(pg / 'metrics/metric.views'); <span class="viewcount"> " ("; num.format(viewcount,"###,###,###"); " views)"; </span> </li> } } </ul> </div>
Customize the look and feel
Optionally, you can choose to add CSS to the Template to control how the popular pages list looks. Use the following steps to add CSS to the template:
- Edit the template you created.
- Click in the editor window below the DekiScript block.
(If the cursor appears inside the DekiScript block, press Shift+Enter to move the cursor outside the block.) - Select CSS from the Styles menu.
- Copy the CSS below and paste it into your CSS block and click Save.
(You can change the values for the color, font size, and margin. You can also add additional CSS to this block.).widget-popular .viewcount { color: #999999; font-size: 10px; margin: 0 0 0 10px; }
Add your template to a page
Finally, you must embed the template in the Expert article where you want the list of popular pages to appear. For example, you might embed this list on the home page of your site. Use the following steps to embed the template in an Expert article:
- Edit the article where you want to embed the template.
- Place your cursor where you want to add the popular pages list.
- Select DekiScript from the Styles menu.
- Copy the DekiScript below and paste it into your DekiScript block.
If you did not name your template PopularPagesExcludedWidget, then change the code to include the correct template name.template("PopularPagesExcludedWidget");
- Click Save.
Demo
The code from this tutorial appears below. Compare this list to the unfiltered popular pages list and notice that the Home and Contact Us pages do not appear.