gnus: Advanced Formatting

 
 9.4.3 Advanced Formatting
 -------------------------
 
 It is frequently useful to post-process the fields in some way.
 Padding, limiting, cutting off parts and suppressing certain values can
 be achieved by using “tilde modifiers”.  A typical tilde spec might look
 like ‘%~(cut 3)~(ignore "0")y’.
 
    These are the valid modifiers:
 
 ‘pad’
 ‘pad-left’
      Pad the field to the left with spaces until it reaches the required
      length.
 
 ‘pad-right’
      Pad the field to the right with spaces until it reaches the
      required length.
 
 ‘max’
 ‘max-left’
      Cut off characters from the left until it reaches the specified
      length.
 
 ‘max-right’
      Cut off characters from the right until it reaches the specified
      length.
 
 ‘cut’
 ‘cut-left’
      Cut off the specified number of characters from the left.
 
 ‘cut-right’
      Cut off the specified number of characters from the right.
 
 ‘ignore’
      Return an empty string if the field is equal to the specified
      value.
 
 ‘form’
      Use the specified form as the field value when the ‘@’ spec is
      used.
 
      Here’s an example:
 
           "~(form (current-time-string))@"
 
    Let’s take an example.  The ‘%o’ spec in the summary mode lines will
 return a date in compact ISO8601 format—‘19960809T230410’.  This is
 quite a mouthful, so we want to shave off the century number and the
 time, leaving us with a six-character date.  That would be ‘%~(cut-left
 2)~(max-right 6)~(pad 6)o’.  (Cutting is done before maxing, and we need
 the padding to ensure that the date is never less than 6 characters to
 make it look nice in columns.)
 
    Ignoring is done first; then cutting; then maxing; and then as the
 very last operation, padding.