On 2011-Dec-08 10:55:51+00:00, Vladimir Panteleev wrote:
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.
BTW, on Firefox 3.6.24, it says that pushState is not supported,
nevertheless the horizontal-split works fine and I like it very
much. I would like to be able to resize the left window, though,
as with deeply nested dicussions, I'm affraid we might run out of
space (although I haven't seen it in the last 40 pages or so of
discussions).