Hack 82. Automatically Link to Printer-Friendly Versions

 < Day Day Up > 

Get the content without the cruft by changing selected article links to "printer-friendly" versions.

Most online news sites offer printer-friendly versions of their articles. Such pages usually contain the entire article text in one page, instead of forcing you to click through to read multiple pages. They also leave out the site's global navigation bar. They might also have fewer ads, or no ads at all.

Well, that all sounds appealing to me; why isn't that the default? This hack makes it the default, by changing links to selected news sites to point to the printer-friendly article instead.

9.7.1. The Code

This user script runs on all pages. It uses regular expressions to find specific patterns in link URLs and then performs site-specific alterations to change the link to point to the associated printer-friendly page instead. Of course, it works only on links to the sites it knows about, but it can easily be extended with knowledge of how other sites associate normal article pages and printer-friendly pages.

Save the following user script as bstopthepresses.user.js:

 // ==UserScript== // @name   Stop The Presses! // @namespace   http://diveintomark.org/projects/greasemonkey/ // @description   make links point to printer-friendly versions // @include       * // ==/UserScript== var urlPage = window.location.href; for (var i = document.links.length - 1; i >= 0; i--) {     var elmLink = document.links[i];     var urlHref = elmLink.href; // Yahoo News if ((urlHref.match(/\/\/(story\.)?news\.yahoo\.com\//i)) && ((urlHref.match(/sid=/i)) || (urlHref.match(/tmpl=story/i))) && (!urlHref.match(/printer=1/i))) { if (urlHref.match(/\?/i)) { urlHref += '&printer=1'; } else {     urlHref += '?printer=1'; } } // NYTimes if ((urlHref.match(/nytimes\.com\/2/i)) &&     (!urlHref.match(/pagewanted=/i))) { if (urlHref.match(/\?/i)) { urlHref += '&pagewanted=print'; } else { urlHref += '?pagewanted=print'; } } // CNET if (((urlHref.match(/com\.com\//i)) ||  (urlHref.match(/cnet\.com\//i)) ||  (urlPage.match(/com\.com\//i)) ||  (urlPage.match(/cnet\.com\//i))) && (urlHref != elmLink.textContent)) { urlHref = urlHref.replace(/2100-/g, '2102-'); urlHref = urlHref.replace(/2008-/g, '2102-'); } // Washington Post if ((urlHref.match(/washingtonpost\.com\/wp\-dyn\/content\/article/i)) &&    (!urlHref.match(/_pf\./i))) {     urlHref = urlHref.replace(/.html/g, '_pf.html'); } if (urlHref != elmLink.href) { elmLink.href = urlHref; elmLink.addEventListener('click', function(event) {     window.top.location.href = urlHref; event.stopPropagation(); event.preventDefault(); return false; }, true); } } 

9.7.2. Running the Hack

After installing the user script (Tools Install This User Script), go to http://news.com.com. (Yes, there are really two Figure 9-10. News.com printer-friendly page


As printer-friendly pages have become more popular, news sites have begun adding advertisements and other clutter to them, but they are still an improvement over the original article pages.

     < Day Day Up > 


    Greasemonkey Hacks
    Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox
    ISBN: 0596101651
    EAN: 2147483647
    Year: 2005
    Pages: 168
    Authors: Mark Pilgrim

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net