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:vladi...@thecybershadow.net

Reply via email to