all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Thien-Thi Nguyen <ttn@gnuvola.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: emacs devel <emacs-devel@gnu.org>
Subject: Re: inclusion of emacs-w3m
Date: Tue, 11 Sep 2012 12:38:40 +0200	[thread overview]
Message-ID: <87ehm87sjz.fsf@zigzag.favinet> (raw)
In-Reply-To: <87d320a6jd.fsf@gnus.org> (Lars Ingebrigtsen's message of "Wed, 05 Sep 2012 16:27:50 +0200")

[-- Attachment #1: Type: text/plain, Size: 3348 bytes --]

() Lars Ingebrigtsen <larsi@gnus.org>
() 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
     column.

  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 #2: Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2012-09-11 10:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-11 10:43 inclusion of emacs-w3m Ivan Kanis
2012-09-04 15:30 ` Lars Ingebrigtsen
2012-09-04 18:55   ` Ivan Kanis
2012-09-04 20:06     ` Óscar Fuentes
2012-09-05 14:27     ` Lars Ingebrigtsen
2012-09-05 21:44       ` Andrey Kotlarski
2012-09-05 22:25         ` Tim Cross
2012-09-11 10:38       ` Thien-Thi Nguyen [this message]
2012-09-11 16:59         ` chad
2012-09-11 17:14           ` Andreas Schwab
2012-09-11 17:24             ` chad
2012-09-11 19:33               ` Wojciech Meyer
2012-09-27 21:31         ` Lars Magne Ingebrigtsen
2012-09-27 21:47           ` Tekk
2012-09-27 21:55             ` Lars Magne Ingebrigtsen
2012-09-28  6:26               ` Stephen J. Turnbull
2012-09-28  8:49           ` Thien-Thi Nguyen
2012-09-06 12:30   ` joakim
2012-12-21 11:06     ` Ted Zlatanov
2012-09-05 13:30 ` Stefan Monnier
2012-09-06 13:27   ` Ivan Kanis
  -- strict thread matches above, loose matches on Subject: below --
2012-09-06  8:33 Stefan Schlee
2012-09-06  9:09 ` Tim Cross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ehm87sjz.fsf@zigzag.favinet \
    --to=ttn@gnuvola.org \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.