about summary refs log tree commit homepage
DateCommit message (Collapse)
2015-08-23mbox: clarify our use of the the mboxrd variant
Commenting it in the From: line seems appropriate and reduces compatibility problems in case a MUA cannot handle trailing comments after the timestamp.
2015-08-23mbox: use mboxrd quoting rules
This redundantly quotes >From from to prevent losing information as described by qmail
2015-08-23.txt links return an mbox instead
This improves compatibility and allows individual messages to be concatenated into an existing mbox without further modifications. "git format-patch" does something similar (but does not do "From " line escaping(!))
2015-08-22view: wire up mbox.gz links
To reduce clutter, we will not link to uncompressed versions. Users should be able to download entire threads for offline reading, enable this feature for them.
2015-08-22mbox: support uncompressed mbox
Some folks may want to view the mbox inline as a string of raw text, when guessing URLs. Let them do this...
2015-08-22search: consistently pass options and flags
Most of our special query functions require exact matches, so none of the flags we normally use are necessary for query parsing.
2015-08-22view: reference total followups
In case there's huge threads, readers should know about them even though we currently lack the navigation to display them.
2015-08-22view: misc cleanups and simplifications
Less code should be easier-to-read.
2015-08-22search: split search indexing to a separate file
This makes organization easier and reduces the amount of code loaded for a PSGI, mod_perl or CGI instance.
2015-08-22view: prevent 'once' warnings for sub ref
Perl seems to incorrectly warn for this, workaround it.
2015-08-22remove XML::Atom::SimpleFeed dependency
We will attempt to generate Atom feeds "by hand" as the XML::Atom::SimpleFeed API does not support streaming output. Since email is large and servers are small, this should prevent wasting memory when we generate larger feeds. Of course, we hope clients use SAX parsers capable of handling large streams without slurping.
2015-08-22www: enable and expand preload from mod_perl2
Hopefully this saves us some memory with CoW on *nix.
2015-08-22INSTALL: document IO::Compress::Gzip dependency
Otherwise folks won't get downloadable mboxes
2015-08-22cgi: remove static file generation support for now
We may not support this after all, CGI.pm is already legacy-enough and far more powerful.
2015-08-22stream HTML views as much as possible
This should allow progressive rendering on the client and reduce memory usage on the server. Unfortunately XML::Atom::SimpleFeed does not yet support streaming, so we may not use it in the future.
2015-08-21search: s/count/total/ for results
This is hopefully less ambiguous, as the word "count" confused me, too.
2015-08-21mbox: drop unnecessary imports
These are not necessary, anymore
2015-08-21switch to gzipped mboxes
Mboxes may be huge, so only support downloading gzipped mboxes to save bandwidth and to get free checksumming. Streaming output means we should not be wasting too much memory on this unless the chosen server sucks.
2015-08-21mbox: stream entire thread, regardless of size
Since mbox is usually downloaded, support fetching infinitely large responses via streaming.
2015-08-21support dumping thread as an mbox
Some folks may not want to download and install Perl code like ssoma, so allow downloading an mbox containing the entire thread.
2015-08-21view: "next" link in thread view goes to next Subject line
It's a bit disconcerting to jump to the authorship line.
2015-08-21view: cleanup and reduce duplication
This also avoids incorrectly incrementing $part_nr when we skip a part due to bad Content-Type.
2015-08-20feed: fix extra, unnecessary quote
Oops!
2015-08-20search: preserve References: order in document data
We need proper ordering of References to thread messages correctly. We would lose this order if we load the terms from the database, so set it directly document data. Do not bother with a separate In-Reply-To, since Mail::Thread just merges the IRT into References. This bumps our schema version once again.
2015-08-20avoid using header_raw for Message-ID retrieval
This is for consistency with ssoma. I doubt it makes a difference in practice, but in case somebody decides any of the Message-ID-containing headers should have strange characters, we'll decode and attempt to thread them. This isn't an attack vector, just a way to make messages thread improperly which is pointless...
2015-08-20view: simplify message threading dumpers
2015-08-20dead code cleanup
We may not be using subject_path after all.
2015-08-20www: remove useless no-op assignment statement
Oops
2015-08-20misc documentation updates
Threading in Xapian is mostly supported by now; so start documenting things.
2015-08-20replace references to lynx
Table rendering in lynx is crap compared to w3m and links. However, we still use it for filtering HTML since the renderer is otherwise nice...
2015-08-20search: index_sync allows specifying alternate HEAD
This should allow us to sync the index to a temporary head to update the Xapian index before we update the real HEAD index.
2015-08-20view: do not fold top-level messages in thread
This hopefully reduces clicking. We may drop folding entirely since we can use Xapian to make searching easier.
2015-08-20index: layout fix + title and Atom feed links at top
Add some spacing between topics to improve readability when scanning or in case a subject gets too long. The title and Atom feed may not be highly-visible otherwise. While we're at it, use the proper "Atom feed" terminology since some folks may not understand just what "atom" means.
2015-08-20search: bump schema version to 5 for subject_path
In "index: simplify main landing page if search-enabled", subject normalization went a little farther to drop trailing '.' characters, so we will need to re-index.
2015-08-20view: reduce memory usage when displaying large threads
We want to minimize the time any large objects or strings are referenced. We can do threading entirely from the mini_mime-generated messages and lazilly load full messages when rendering the display.
2015-08-20search: reject ghosts in all cases
We do not need ghost messages in any of our thread views
2015-08-20search: avoid needless decode
Email::MIME should handle everything for us and make things work nicely with Xapian (assuming I understand how encoding works in Perl). While we're at it, reduce temporary strings and arrays by using destructive operations and clobbering parts as we iterate through them.
2015-08-20index: simplify main landing page if search-enabled
We can display /t/$MESSAGE_ID.html easily with a Xapian search index, so rely on it instead of trying to display messages inline.
2015-08-20view: avoid nesting <a> tags from auto-linkification
It is wrong HTML to have <a> tags nested due to auto-linkification.
2015-08-20use tables for rendering comment nesting
This is more space efficient since we don't need to place padding bytes in front of every line. While this unfortunately does not render well on lynx; w3m, links, elinks can all render tables sanely. Tables are also superior for long lines which require wrapping inside <pre> containers.
2015-08-20feed: move timestamp parsing to view
We don't need share duplicate logic across both files.
2015-08-20feed: remove threading from index
We'll be making the index smarter for people with search support enabled. Otherwise, it'll be chronological and a bit dumb. At least it'll use less memory.
2015-08-19www: redirect /f/$MESSAGE_ID.txt links to /m/$MESSAGE_ID.txt
Some people (e.g. myself :p) may try to guess URLs and hit a 404. Redirect to the /m/ version. Note: we prefer to redirect to canonical URLs to improve caching.
2015-08-19view: return empty string to avoid undefined values
Sometimes we have filter bugs and let HTML slip through...
2015-08-19view: fix spacing on missing ghosts
We must not prematurely indent if we have no message header to display.
2015-08-18view: close anchor tag correctly before starting another
Noticed by tidy
2015-08-18public-inbox-index: exit with usage if not given an arg
I often forget how to use this myself :x
2015-08-18thread: another workaround for a Mail::Thread bug
Yay for monkey patching! ref: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795913 ref: https://rt.cpan.org/Ticket/Display.html?id=106498
2015-08-18search: bump SCHEMA_VERSION to 4
The following two commits affect indexing behavior, so change the schema version to avoid compatibility problems or missing messages: search: common Subject: normalization for Re: prefixes search: avoid creating ghosts for circular References
2015-08-18search: expose $PublicInbox::Search::LANG variable
This makes it easier to reconfigure for non-English users