about summary refs log tree commit homepage
path: root/lib/PublicInbox/View.pm
DateCommit message (Collapse)
2016-06-30view: show more nearby messages in flat thread view
Context is important, but so is conserving precious screen space. Decisions :<
2016-06-30view: tweak thread/index header slightly
This makes the top permalink/raw as well as the In-Reply-To show up without search. While we're at it, try to make the links on the thread index from the "X siblings, Y replies" more obvious.
2016-06-30view: merge $state hash with existing $ctx
This reduces the level of indirection to reach certain objects within the hash and there are no namespace or lifetime conflicts anyways.
2016-06-30view: show thread context in the thread-aware flat view
This lets user have a small window of the context of the current message relative to other threads.
2016-06-30www: use WwwStream for dumping thread and search views
This allows us the HTTP server to react to backpressure from slow clients when writing. As a side effect, this also makes it easier for us to maintain a consistent header/footer across our HTML.
2016-06-30www: implement hybrid flat+thread conversation view
This should be more accessible to readers on narrow terminals (or giant fonts) while providing a chronological view which is also aware of message threading relationships.
2016-06-27view: HTML escape mailto: link
Oops, we cannot have bare '&' in mailto: links, either.
2016-06-27view: attribute in parent link for permalink message
Oops, but apparently this does not trigger errors?
2016-06-25view: safer and optional quoting for --in-reply-to arg
Angle brackets around the --in-reply-to= arg for git send-email has been optional since git v1.5.3.2, so strip them and make the command-line argument easier-to-type.
2016-06-25address: remove Address::from_name
Address::names is sufficient to handle what from_name did.
2016-06-25view: show To/Cc destinations in conversation view
It is important to show the decentralized nature of communication in our web views.
2016-06-23view: update git-send-email URL
I've setup my own mirror on https://git-htmldocs.bogomips.org/ since kernel.org is no longer updated, and I don't believe in endorsing commercial hosting sites or interests. Unfortunately, it still contains JavaScript and CSS, but it's generated by AsciiDoc. Oh well, it's all Free Software, at least. Junio C Hamano writes: > On Wed, Jun 22, 2016 at 12:00 PM, Eric Wong <e@80x24.org> wrote: > > Just wondering, who updates > > https://kernel.org/pub/software/scm/git/docs/ > > and why hasn't it been updated in a while? > > (currently it says Last updated 2015-06-06 at the bottom) > > Nobody. It is too cumbersome to use their upload tool to update many > files (it is geared towards updating a handful of tarballs at a time). ref: http://mid.gmane.org/20160622190018.GA786@dcvr.yhbt.net/ http://mid.gmane.org/CAPc5daUiUv-EEv7ouQ=K+Q8S64QVV5wn4H6+TuF0wLeo123K5Q@mail.gmail.com http://mid.gmane.org/20160622214811.GA19633@dcvr.yhbt.net
2016-06-22view: allow thread generation to EOF on errors
We want to ensure the actual message gets shown, and less important info does not destroy things.
2016-06-22view: fix topic threading when ghosts are present
This fixes a bug where a message replying to a ghost would accidentally be added to the wrong topic in the index/topic view. Before commit 76d8f68dc273e54809ad69cfe49e141003f790ef ("view: avoid recursion in topic index"), we would refuse to indent a topic which started with a ghost which hid the problem. Now we inform the user the thread started elsewhere.
2016-06-21view: support non-existent Subjects for permalink titles
Showing "(no subject)" seems like a common fallback for messages without a Subject header.
2016-06-21view: common thread walking interface
Since we have a common pattern, for walking threads, extract it into a function and reduce the amount of code we haev. This will make it easier to switch to an event-driven interface for getline, too.
2016-06-21view: avoid recursion in topic index
Recursion can cause problems, so do our best to avoid it even in the topic index.
2016-06-21view: remove recursion from expanded thread view
This should let us generate HTML for arbitrarily deep threads without blowing the stack. How it renders on the client side is another matter...
2016-06-21view: remove recursion from thread skeleton dump
This should help prevent OOM errors from arbitrarily deep threads and will make our streaming interface easier-to-implement.
2016-06-21view: remove dst parameter from thread skeleton dump
We can stuff this into the state hash to reduce stack size and hopefully improve readability.
2016-06-21view: remove upfx parameter from thread skeleton dump
This makes the string creation somewhat simpler hopefully makes the code easier-to-reason with.
2016-06-20www: improve topic view by scanning for ghosts
This should help avoid having too many fake top-level messages in the topic view since we only have a partial window for threading results.
2016-06-20feed: various object-orientation cleanups
Favor Inbox objects as our primary source of truth to simplify our code. This increases our coupling with PSGI to make it easier to write tests in the future. A lot of this code was originally designed to be usable standalone without PSGI or CGI at all; but that might increase development effort.
2016-06-18view: consolidate per-message newline handling
We don't want to blindly append a trailing newline if the message ends in quoted text leading to a <span>, as a newline is already added to a <span>...
2016-06-18view: minor tweaks to reduce long lines
Fold addressee fields to better delimit destinations, reduce horizontal rule <hr /> to reduce scrolling, and use spaces to indent "git send-email" example.
2016-06-18view: introduce WwwStream interface
This will allow us to commonalize HTML generation in the future and is the start of moving existing HTML generation to a "pull" streaming model (from the existing "push" one). Using the getline/close pull model is superior to the existing $fh->write streaming as it allows us to throttle response generation based on backpressure from slow clients.
2016-06-13view: msg_html uses getline body to reduce latency
We need to ensure we show the message body ASAP since the thread generation via Xapian could take a while and maybe even raise an exception or crash.
2016-06-07view: be sure reply text describes plain-text
While we may end up mirroring lists which allow HTML mail, encourage plain-text for compatibility since all current inboxes we host are text-only.
2016-06-07view: remove trailing whitespace from reply command
Oops, needless waste of space.
2016-06-07view: escape From name properly for title
Oops :x Add an additional test for live data for any unprintable characters, too, since this could be a dangerous source of HTML injection.
2016-06-05view: inline message reply into message view
This should reduce link following for replies and improve visibility. This should also reduce cache overhead/footprint for crawlers.
2016-05-30use utf8::{encode,decode} for in-place transforms
No need to duplicate the string when transforming it; learned from studying SpamAssassin 3.4.1
2016-05-25remove Email::Address dependency
git has stricter requirements for ident names (no '<>') which Email::Address allows. Even in 1.908, Email::Address also has an incomplete fix for CVE-2015-7686 with a DoS-able regexp for comments. Since we don't care for or need all the RFC compliance of Email::Address, avoiding it entirely may be preferable. Email::Address will still be installed as a requirement for Email::MIME, but it is only used by the Email::MIME::header_str_set which we do not use
2016-05-22www: avoid warnings on bad offsets for Xapian
The offset argument must be an integer for Xapian, however users (or bots) type the darndest things. AFAIK this has no security implications besides triggering a warning (which could lead to out-of-space-errors)
2016-05-19www: tighten up allowable filenames for attachments
Having a file start with '.' or '-' can be confusing and for users, so do not allow it.
2016-05-19view: reduce clutter for attachments w/o description
For attachments without a filename or description, reduce the amount of precious screen space required to display a link to it.
2016-05-19www: validate and check filenames in URLs
We shall ensure links continue working for this.
2016-05-19www: support downloading attachments
This can be useful for lists where the convention is to attach (rather than inline) patches into the message body.
2016-05-19switch read-only uses of walk_parts to msg_iter
msg_iter lets us know the index of the attachment, allow us to make more sensible labels and in a future commit, hyperlinks to download attachments.
2016-05-19view: rely on Email::MIME::body_str for decoding
Or is it "encoding"? Gah, Perl character set handling confuses me no matter how many times I RTFM :< This contains placeholders for attachment downloading which will be in a future commit.
2016-05-18view: avoid redirect to reply endpoint
Oops, but perhaps the "reply" endpoint should be embedded into the permalink message view itself to reduce URLs.
2016-05-18feed: inline feed entry generation
Remove unnecessary wrapper subroutines and constants which are only used once.
2016-05-17view: escape Message-ID for "next" link
Oops, we need to escape Message-IDs since they can contain bad characters such as '%' in them. '@' actually seems fine and does not need to be escaped; however, but we've been doing it forever.
2016-05-14rename most instances of "list" to "inbox"
A public-inbox is NOT necessarily a mailing list, but it could serve as an input point for zero, one, or infinite mailing lists :D
2016-05-02view: disable subject threading
Broken threads should be exposed to hopefully encourage people to use proper mail clients which set In-Reply-To headers.
2016-04-25www: add rel=next and rel=prev navigation hints
This can makes navigation easier with some browsers or or browser extensions. ref: https://www.w3.org/TR/html/links.html#sequential-link-types
2016-04-25view: fix link generation for replies in threads
Oops, gotta test this :x
2016-04-24view: add extra newline in flat thread view for lynx
This shouldn't show up in other browsers (tested with w3m, too), but the extra newline makes a difference for delineating messages when viewed with lynx.
2016-04-24view: more consistent prefixing for thread skeletons
This will allow potential tinkerers to switch away from the '` ' prefix more easily.
2016-04-16view: show flat thread view in chronological order
Allowing readers new to a topic to follow in chronological order probably makes the most sense. Reverse chronological order may reduce scrolling (e.g. log view); but nearly all non-threaded conversation displays seem to be chronological so perhaps there's a good reason for that.