[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: inclusion of emacs-w3m

From: Thien-Thi Nguyen
Subject: Re: inclusion of emacs-w3m
Date: Tue, 11 Sep 2012 12:38:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

() Lars Ingebrigtsen <address@hidden>
() Wed, 05 Sep 2012 16:27:50 +0200

   Oh, and forms support.  And stuff.  It shouldn't take anybody more
   than a month to implement a full-featured Emacs browser.  (Well.  As
   full-featured as a totally non-JS browser will ever be.)

Don't forget decent table rendering (especially, nested tables), one of
w3m's distinguishing features.  From /usr/share/doc/w3m/STORY.html:

  Table rendering algorithm in w3m                                              
  HTML table rendering is difficult.  Tabular environment of LaTeX is not
  very difficult, which makes the width of a column either a specified
  value or the maximum width to put items into it.  On the other hand,
  HTML table renderer has to decide the width of a column so that the
  entire table can fit into the display appropriately, and fold the
  contents of the table according to the column width.  Inappropriate
  column width decision makes the table ugly.  Moreover, table can be
  nested, which makes the algorithm more complicated.
  1. First, calculate the maximum and minimum width of each column.  The
     maximum width is the width required to display the column without
     folding the contents.  Generally, it is the length of paragraph
     delimited by <BR> or <P>.  The minimum width is the lower limit to
     display the contents.  If the column contains the word
     `internationalization', the minimum width will be 20.  If the column
     contains <pre>..</pre>, the maximum width of the preformatted text
     will be the minimum width of the column.

  2. If the width of the column is specified by WIDTH attribute, fix the
     column width using that value.  If the specified width is smaller
     than the minimum width of the column, fix the column width to the
     minimum width.

  3. Calculate the sum of the maximum width (or fixed width) of each
     column and check if the sum exceeds the screen width.  If it is
     smaller than screen width, these values are used for width of each

  4. If the sum is larger than the screen width, determine the widths of
     each column according to the following steps.

     1. Let W be the screen width subtracted by the sum of widths of
        fixed-width columns.

     2. Distribute W into the columns whose width are not decided, in
        proportion to the logarithm of the maximum width of each column.

     3. If the distributed width of a column is smaller than the minimum
        width, then fix the width of the column to the minimum width,
        and do the distribution again.
So, maybe another week or two for the Inspired One...  who will it be?

[cc trimmed]
Thien-Thi Nguyen ..................................... GPG key: 4C807502
.                  NB: ttn at glug dot org is not me                   .
.                 (and has not been since 2007 or so)                  .
.                        ACCEPT NO SUBSTITUTES                         .
........... please send technical questions to mailing lists ...........

Attachment: pgpJNaEWk0wEX.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]