< 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 CodeThis 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 HackAfter 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 > |