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