A new web newsreader

Vladimir Panteleev vladimir at thecybershadow.net
Thu Dec 8 02:55:44 PST 2011


As mentioned previously, I've been working on a web frontend for the  
DigitalMars NNTP server. I collected ideas and inspiration from the  
several threads on this topic in the last few weeks, and now I think that  
the result is ready for beta testing and general use.

The current (temporary) URL is:

http://dfeed.kimsufi.thecybershadow.net/discussion/

Here are the highlights:

* Written in D, pull requests are welcome.
   https://github.com/CyberShadow/DFeed

* It remembers which posts you've seen on an individual post basis.
   By default, read post history is stored in a compressed cookie.

* Optionally, you can register an account, which will store your  
preferences and read post history in the server database. There is no  
e-mail confirmation etc.

* You can choose any of three view modes:
   1) The default "basic" view, a forum-like view with paged linear threads  
(posts are chronologically-ordered).
   2) "Threaded", with threaded group index, and a thread overview under  
the single post display, similar to mailing list archives.
   3) "Horizontal-split" - a JavaScript-powered interface with a split view  
and keyboard shortcuts, similar to a mail or newsgroup client.

   There was also another view mode, "nested", which presented all messages  
in a thread in full, arranged in their hierarchical order (with replies  
being slightly indented from their parents). However, the idea is not  
compatible with paging and and it didn't look well at high nesting levels,  
so I removed it.

   For the sake of link consistency and preserving functionality of links  
between JavaScript and no-JavaScript users, the "horizontal-split" view  
mode requires support for the HTML5 history.pushState feature. This  
feature is present in all modern browsers except Internet Explorer.

* The URL scheme attempts to be simple and consistent. There is one way to  
link to an individual post: {site root}/post/{message-id stripped of angle  
brackets}. Post links will open in the user's selected view mode.

* Posted messages are screened for spam using several online services  
(incl. Akismet). A failed spam check, or an attempt to post within 1  
minute of another posting attempt, will trigger a CAPTCHA. Solving the  
CAPTCHA will bypass spam/flood checks (no messages will be silently  
discarded). The posting form should be protected against XSRF attacks.

* The posted message and quoted text formatters understand format=flowed  
and delsp=yes (RFC 2646, 3676). If all mail/news software did, there would  
be no problems with broken quote lines - I believe the current web  
interfaces on digitalmars.com are the most notorious offenders.

* Multipart messages and attachments are decoded and are viewable /  
downloadable, although there is currently no support for posting  
attachments.
   I have also added support for decoding inline uuencoded attachments,  
which can be often found in older posts.

* Page formatting is affected by the width of the browser window - in  
smaller viewports, the font becomes smaller and the left sidebar is hidden  
away. I don't expect this feature to be perfect due to the great variety  
of installed fonts, but I hope it will be helpful nevertheless.

* The web interface gets a perfect score of 100/100 on the Google Page  
Speed test, and generates valid HTML 4.01 Strict.

There are more ideas for possible future improvements (e.g. attachment  
posting support and full-text search), but I think these are beyond the  
scope of "version 1.0". I'm somewhat exhausted right now, and need to  
catch up on other projects, so, with your feedback, we can revisit future  
improvements a while later.

If there is interest to use DFeed as the main web interface (and thus make  
it available from a D-related domain), I think the best way to do this  
would be to redirect two subdomains to my server (a separate subdomain for  
attachments, for security). It would also be possible to replace the old  
web interfaces with working redirects to DFeed.

-- 
Best regards,
  Vladimir                            mailto:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list