groff
[Top][All Lists]
Advanced

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

Re: [Groff] grohtml and indentation


From: Gaius Mulley
Subject: Re: [Groff] grohtml and indentation
Date: 18 Aug 2006 10:52:35 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Louis Guillaume <address@hidden> writes:

> Hi Everyone,
> 
> Just a thought. I was looking at the code for this today and I think
> it's not something I'd know how to fix. Anyway...
> 
> I wonder why it is that paragraphs inside a -ms .RS/.RE block get
> turned into a table by grohtml.
> 
> The same happens with .IP. (maybe other requests too.)
> 
> Wouldn't it be better if a <div> were generated with an indentation?
> And an unordered list for .IPs?
> 
> For example...
> 
> 
> .RS
> .IP \(bu
> sun is shining
> .IP \(bu
> the weather is sweet
> .IP \(bu
> make you wanna move
> .IP \(bu
> your dancin' feet
> .RE
> 
> ...would produce...
> 
> <div style="margin-left: +2cm">
>    <ul style="list-style: none">
>      <li>&bull; sun is shining</li>
>      <li>&bull; the weather is sweet</li>
>      <li>&bull; make you wanna move</li>
>      <li>&bull; your dancin' feet</li>
>    </ul>
> </div>
> 
> 
> The only issue I see is, "how do you know where to put the
> </ul>?". Probably on processing the next paragraph-like request.
> 
> In my opinion, using tables for lists and indents seems clunky and
> doesn't really look so good in the context of a web browser. It also
> makes the HTML hard to read for debugging...
> 
> Louis

Hi Louis,

thanks for the email and comments on improvements to grohtml.
Basically gtroff produces a list of meta-tags within the ditroff
output which are translated into html tags by grohtml.  So in
your example we can see that gtroff produces:

groff -Thtml -Z -ms louis.n 

  ...
F /home/gaius/opt/share/groff/1.19.3/tmac/html-end.tmac
p1
V280
H240
DFd
h1440
n40 0
F -
F ./louis.n
V400
H120
x X devtag:.fi 1
x X devtag:.rj 0
x X devtag:.sp 8
x X devtag:.in 240
x X devtag:.ll 1440
x X devtag:.po 0
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440
x X devtag:.ti 120
x X devtag:.ce 0
x X devtag:.br
x X devtag:.col 1
V400
H120
x X devtag:.fi 0
x X devtag:.ll 1560
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440 L 1560
x font 1 R
f1
s10
V400
H120
md
Cbu
h120
x X devtag:.fi 1
x X devtag:.ll 1440
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440
x X devtag:.col 2
V400
H240
tsun
wh24
tis
wh24
tshining
n40 0
V480
H120
x X devtag:.sp 1
x X devtag:.ti 120
x X devtag:.br
x X devtag:.col 1
V480
H120
x X devtag:.fi 0
x X devtag:.ll 1560
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440 L 1560
V480
H120
Cbu
h120
x X devtag:.fi 1
x X devtag:.ll 1440
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440
x X devtag:.col 2
V480
H240
tthe
wh24
tweather
wh24
tis
wh24
tsweet
n40 0
V560
H120
x X devtag:.sp 1
x X devtag:.ti 120
x X devtag:.br
x X devtag:.col 1
V560
H120
x X devtag:.fi 0
x X devtag:.ll 1560
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440 L 1560
V560
H120
Cbu
h120
x X devtag:.fi 1
x X devtag:.ll 1440
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440
x X devtag:.col 2
V560
H240
tmake
wh24
tyou
wh24
twanna
wh24
tmove
n40 0
V640
H120
x X devtag:.sp 1
x X devtag:.ti 120
x X devtag:.br
x X devtag:.col 1
V640
H120
x X devtag:.fi 0
x X devtag:.ll 1560
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440 L 1560
V640
H120
Cbu
h120
x X devtag:.fi 1
x X devtag:.ll 1440
x X devtag:.ta  L 120 L 240 L 360 L 480 L 600 L 720 L 840 L 960 L 1080 L 1200 L 
1320 L 1440
x X devtag:.col 2
V640
H240
tyour
wh24
tdancin'
wh24
tfeet
n40 0
V680
H0
x X devtag:.in 0
x X devtag:.br
V680
H0
tsome
wh24
tmore
wh24
ttext
n40 0
V23999680
H1680
n40 0
x trailer
V23999760
x stop


it correctly identifies that the \(bu is in column 1 and the
associated text is in column 2.  As you suggest it would be possible
to modify grohtml to detect the presence of, say, a two column table
with a single character in column 1 (\(bu) and produce <div> html tags
with <ul> <li> combination as you mentioned, rather than a <table>.

I added "some more text" to the end of your example and we see that
gtroff resets the indent and forces a line break (which indicates
where the </ul> should be placed).

hope this helps,
Gaius




reply via email to

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