Thursday, May 03, 2007

Multi-Column Article View Greasemonkey Script

I'm finally ready to reveal to the world my procrastination tool of the past few weeks, a Greasemonkey script that creates a multi-column, multi-page view of long articles. A screenshot will probably do much more than that description:

The view is obviously inspired by the New York Times Reader (which I've previously written about). Usage should be fairly straightforward. For most sites, using the script simply requires navigating to the printer-friendly version of an article (the original article is modified for sites like nybooks.com that don't provide printer-friendly pages). The pages can be navigated with the left and right arrow keys or with the buttons.

Some aspects of the script are not entirely debugged. In particular, sometimes the text alignment on a page is slightly off. I've found that slightly resizing the window often fixes this problem. If there are any Javascript experts out there, I'd welcome a patch to make the script more robust. Also note that I've primarily used the script along with Adblock, and it's possible that if ads are present the viewer will misbehave.

The viewer works on the printer-friendly version of an article, or the main article if no printer-friendly view exists. The following sites are currently supported:I also welcome patches to support more sites; hopefully it shouldn't be too difficult. You can get the script from this page on userscripts.org. Let me know if you like it or if you have problems / suggestions.

Update (5/22): I updated the screen shot to show the aesthetic changes in version 0.1.3 contributed by Dave.

Update (6/27): Instead of updating things in two places, I'm only going to keep the userscripts.org page up-to-date with a complete list of supported sites and a change log from now on. So go there to see the latest news.

22 comments:

Anonymous said...

wow, this is so nifty.

Unknown said...

i edited the aesthetics here to be a bit more pleasing -

http://files-upload.com/240706/multicolumnarticles.user.js.html

i removed the double border, added some padding, centered the columns on the page and stretched it to the width of the browser.

Unknown said...

Thanks, Dave! I really like your changes, and I'll incorporate them into the released script. If you'd like to be credited, send me an email at rakingleaves at gmail.

Unknown said...

hey, you did all the script work; i just spruced up the lawn. thanks for the mention!

Anonymous said...

Fantastic tool, thanks so much!

I've added support for Mercury News (leaving everything else alone) -- available at files-upload.com

Apologies for the rename; this was my first use of files-upload.com, and I'd assumed it would let me rename back to what Dave used -- though it should probably be called "staggeringly-more-readable.user.js"!

Unknown said...

Thanks for the contribution, Tracy! I released a new version of the script with your changes and a small bug fix.

Anonymous said...

Well if anyone is finishing generous with their time and skill Slate would be a pretty awesome inclusion to this script. Great work btw.

Ed West said...

Great idea. However, it isn't working for me. Tried WPost & NYTimes. Restarted Firefox & still no go. Loaded fine in Greasemonkey. Ideas?

Unknown said...

Anon: Slate doesn't look too hard; I'll try to add support for it soon.

Ed: Are you navigating to the printer-friendly versions of the articles on NYTimes and Wash. Post? I'm using Firefox 2.0.0.4 with Greasemonkey 0.7.20070607.0 on Windows and Linux, with no problems.

Ed West said...

rakingleaves said...
Ed: Are you navigating to the printer-friendly versions of the articles on NYTimes and Wash. Post?

Actually, I don't see a link for the printer-friendly versions at either paper. Mayhaps me going blind:~ )

Anonymous said...

Can you make one for the Seattle Times?

Unknown said...

I've added support for Slate and The Seattle Times, as requested. The only annoying thing about Slate is that the printer-friendly article version pops up in a small new window, which you then have to resize. This problem occurs for New York Magazine also. Does anyone know a general solution for this issue? Anyway, the new version is up on userscripts.org. Enjoy!

Unknown said...

Ed: For New York Times articles, there is a box at the top of the article text with links labeled "E-MAIL", "PRINT", "REPRINTS", etc. Click on the "PRINT" link to get the printer-friendly version of an article. For the Washington Post, click the link to the left of the article headline labeled "Print This Article".

Anonymous said...

i've made a version that includes wired.com:
here



(srry for the preceding comment: i had the wrong URL)

Unknown said...

Thanks, Liam! I've incorporated your Wired support (with a couple of minor changes) and released version 0.1.6.

Anonymous said...

Re: Slate pop-ups

You can go directly to a nice version of the page if you can figure out a way to use greasemonkey to alter the url of the print link on the article page to point to

http://www.slate.com/toolbar.aspx?action=print&id=[articleidhere]

articleid being the 7 digit number at the end of the url for any given article.

Unknown said...

I wrote a separate Greasemonkey script to make Slate printer-friendly versions show up in the same window rather than a popup. It's available at http://userscripts.org/scripts/show/10761. Enjoy!

Anonymous said...

Boy, do I love this script. But I've tried to make it work for Salon.com using the following entry in "Included Pages" field:

http://*.salon.com/*print*

An example of a URL of a print-formatted page in Salon is:
http://www.salon.com/opinion/
feature/2007/12/06/
romney_ohehir/print.html

Alas, no luck. Any suggestions?

Anonymous said...

Why not use sth like this? Will do it for most pages.

...
} else {
return getTextDefault();
}
}

function getTextDefault() {
return addChildrenToNewDiv(document.body);
}

Anonymous said...

This is a great Script. Thanks!

I would love to have a Salon version. Their regular layout is way too wide and doesn't resize in FF.

Thanks,
~g

Jasper Moelker said...

Truly interesting script. I was wondering whether it's possible to set a fixed height rather than a fixed amount of columns. For instance I would like short columns of 300px and would like this to result in many columns through which I could then scroll horizontally rather than vertically. Is this possible in the current script or something you are planning to include in future versions perhaps?

Thanks in advance!

Unknown said...

Hey Jasper, sorry for the very slow response. I haven't had much time at all lately to work on / maintain the script. The fixed height columns should be very doable, but it would require hacking the Javascript, which I don't have time to do right now. As an alternative, you can just shrink your Firefox window height to the desired size.