about summary refs log tree commit homepage
DateCommit message (Collapse)
2015-12-25view: favor whitespace wrap in <head>
If we bite the bullet and rely on inline CSS, we might as well only specify it once per page instead of inline in every <pre> tag which may handle UGC. So this actually saves us a small amount of bandwith on most pages which have multiple <pre> start tags.
2015-12-25examples/public-inbox.psgi: make output chunky by default
HTTP/1.1 clients will want persistent connections and need to know response terminations.
2015-12-25view: fixup ghost message errors from threading tweaks
Ghost message links didn't show up too well after commit bc067a7562a586bed92401fe1084bbe423b9451a ("view: move thread info near top of single view") Additionally, attribution lacked a space when subjects changed mid-thread.
2015-12-25extmsg: fixup comparison for unknown message types
Fixes commit 4c2c2325d2948ec5340e2fcafbee798cf568f5fd ("rename 'GitCatFile' package to 'Git'")
2015-12-25view: move thread info near top of single view
Most framed mail viewing software has message ancestry information near the top instead of bottom (mutt, gmane, sylpheed, thunderbird) as it can help improve context. Traditional netiquette also favors writing replies below quoted (older) text for this reason; so move the thread summary to the top of the message for context. Since threads may be long, add a "skip" anchor link to jump to the message body quickly, and align the date to the left column so it's easier to tell the relative age of messages. While we're at it, remove quotes from "id" attributes to improve ease-of-grep-ability.
2015-12-24view: fix wording for empty topics display
Users may be iterating through lists and come up with nothing
2015-12-22rename 'GitCatFile' package to 'Git'
We'll be using it for more than just cat-file. Adding a `popen' API for internal use allows us to save a bunch of code in other places.
2015-12-22git: cat-file wrapper enhancements
The "cat_file" sub now allows a block to be passed for partial processing. Additionally, a new "check" method is added to retrieve only object metadata: (SHA-1 identifier, type, size)
2015-12-22hval: move PRE constant for wrapping UGC here
User-generated content (UGC) may have excessively long lines which screw up rendering. This is the only bit of CSS we use.
2015-12-22config: hoist out common functions
These will be reused elsewhere.
2015-12-08extmsg: try to fixup common errors
Sometimes users (me :x) blindly append "raw" to a /t/ URL...
2015-12-06view: fix message truncation logic
Avoid truncating messages if we requested the root anchor. This regression appeared in commit 62ee3cb36dd08f17e444e96dc80108464ee10cba ("view: do not shorten top-level messages in thread view") Also, make the "More..." link more prominent, as readers should be made aware they're not reading the full message.
2015-12-05*view: avoid leading zero in time display of the hour
Avoid the visual noise entirely by using a space instead. I sometimes have difficulty distinguishing '0' from '8' while other users may mistake it for an 'O' character. Most digital clocks I've seen will omit displaying a leading zero for the hour, too. This may also save transfer time by allowing better compression (since there is a space between the date and time anyways) and perhaps reduce client rendering time on some displays. We'll leave the leading zero for minutes since that seems pretty standard for digital clocks.
2015-12-04view: avoid truncating topic at 30 chars
It's potentially unsafe (leading to hidden messages) at any level.
2015-12-02view: consistent links for per-message views
Just because a message is currently alone does not mean the links won't be valid in the future when more messages show up.
2015-12-02view: don't kill topic summarization for level==0
Unlinked threads with similar (but not identical) subjects could be hidden as a result.
2015-11-21config: allow underscore in section names
Apparently git allows them, and they're definitely alright in email addresses.
2015-11-20various internal documentation updates
Hopefully this gives new hackers a better overview of how the components relate to each other.
2015-11-18nntp: fix printf warnings
Error messages and request lines may contain '%' which would throw off Perl printf.
2015-11-18feed: capitalize "Atom" consistently
This is the official name of the spec, so refer to it as such despite the file extension being lower-cased
2015-11-18view: further reduce size of attribution/timestamp
The "by" on the message page and "-" in the index are unnecessary and readers should have no trouble figuring out what the attribution/timestamp line means.
2015-11-18TODO: updates for done stuff, and add item for message threading
Of course, we need to figure out if RFC 4685 is supported anywhere, first.
2015-11-18view: remove "created" and "updated" noise words
They increase HTML size and add to visual noise without telling enough useful information.
2015-10-15filter: fix handling of bad attachments
Improve error messages and use a better regexp for detecting printable characters in attachments.
2015-10-08view: fixup bad comparison
Oops, there is no longer a 3rd element. Fixes: 759efc037728a766ee80f1b0d3c1fd7b8c76a05f ("view: remove attribution for topics in top-level view")
2015-10-08view: remove attribution for topics in top-level view
It clutters up the page unnecessarily, as identity of the topic starter/updater probably doesn't matter if there's no exact message to attribute the message to.
2015-10-05README: add OpenSSL exception
Network connections may use OpenSSL for TLS (as other libraries, such as GNUTLS do not appear well-supported under Perl). So give this exception in case somebody needs TLS support for NNTP.
2015-10-04mbox: generate Archived-At, List-Post, List-Archive headers
Downloaded mboxen can be archived/stored indefinitely, try to make it easy for future archaelogists to find the online archive location.
2015-10-04mbox: kill Bytes meta-header, too
It may be present in messages imported from NNTP.
2015-10-04view: add links for mbox and atom feeds in homepage
Having per-thread Atom feeds and downloadable mboxen is powerful and should be more easily visible/accessible to casual readers.
2015-10-03mda: support a 'filter=scrub' option for external lists
For list where we are not the primary archival entry point, defaulting to filter=scrub makes sense since their list conventions may be more tolerant of HTML and other crap than we are.
2015-10-03drop Message-IDs longer than 244 bytes
Xapian has this limit for terms, and there are likely no legitimate Message-IDs (or single header lines) this long; so there's no need to workaround this limit.
2015-10-02rename mid_compress to id_compress
We use it as a general compressor for identifiers such as subject paths, so using the "mid_" prefix probably is not appropriate.
2015-10-02nntpd: executable permission
Ensure we are executable for consistency and documentation. MakeMaker already makes this executable, but we might as well do the same...
2015-10-02Msgmap: pass ReadOnly DBI flag for non-writable opens
This doesn't seem to do anything on my older system, but maybe it will in newer or future versions of DBD::SQLite. Anyways it can be helpful for documentation purposes, too.
2015-10-01searchidx: subject is not a term
Sometimes subjects are excessively long and hit Xapian's 245-byte term limit. We can still perform subject-only searches with a probabilistic prefix.
2015-10-01nntp: better delimit error message
It may be hard to tell what command triggered an error, otherwise.
2015-10-01nntp: remove reference to non-existent function
Oops
2015-10-01nntp: implement idle time expiration
We don't want to waste precious server memory on clients which have been idle for longer than 3 minutes.
2015-10-01filter: more consistent labeling of rejections
While we're at it, reject non-plain-text top-level messages, too. They probably do not exist in practice, but we cannot afford to scrub given policies implemented by overzealous mail providers. While we're at it, update the comment for strip_multipart.
2015-10-01searchview: fix syntax error
Oops, I forgot to run the syntax check for this.
2015-10-01filter: do not strip Reply-To
It's often part of idiotic policies to prevent mailing lists from working at all.
2015-10-01mda: keep DKIM crap
This is probably unsafe
2015-10-01view: correctly pick latest in index anchor links
The last message in a thread _display_ is not necessarily the latest message in the thread. We must go by the Date: header on the messages themselves as a best-guess. Of course Date: headers may lie, but most mail clients trust them by default, so we will, too.
2015-09-30README: document NNTP access
That's right, we now have our NNTP server running and are self-hosting a read-only news gateway at: nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
2015-09-30view: use '+' instead of '%20' to escape spaces in mailto:
'+' is more shoter and more readable in query parameters than '%20'
2015-09-30t/nntpd.t: additional tests for XHDR/HDR
More testing is good, especially since clients I use don't implement all the commands.
2015-09-30t/nntpd.t: simplify condition for response termination
Multiline responses must end with "\r\n.\r\n", so we won't break out early in case the OS doesn't support MSG_MORE.
2015-09-30nntp: implement OVER/XOVER summary in search document
The document data of a search message already contains a good chunk of the information needed to respond to OVER/XOVER commands quickly. Expand on that and use the document data to implement OVER/XOVER quickly. This adds a dependency on Xapian being available for nntpd usage, but is probably alright since nntpd is esoteric enough that anybody willing to run nntpd will also want search functionality offered by Xapian. This also speeds up XHDR/HDR with the To: and Cc: headers and :bytes/:lines article metadata used by some clients for header displays and marking messages as read/unread.
2015-09-30nntp: implement LIST HEADERS
We shall remove slow, unoptimized headers in XHDR/HDR to avoid becoming an easy DoS target.