diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-09-24 09:20:02 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-09-24 09:20:02 +0000 |
commit | a9dec6b72054a997078fb8d026d5a990639857dd (patch) | |
tree | 34102df28ca683d5f43cda709a290ebe45bdbd26 | |
parent | 78764a32b1233bb84ddfcb5fcf897987c0814eca (diff) | |
download | mandoc-a9dec6b72054a997078fb8d026d5a990639857dd.tar.gz |
Many more macros added to -Thtml.
Minor space issues fixed in -Tascii.
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | example.style.css | 4 | ||||
-rw-r--r-- | mandoc_char.7 | 747 | ||||
-rw-r--r-- | mdoc_html.c | 234 | ||||
-rw-r--r-- | mdoc_term.c | 1 | ||||
-rw-r--r-- | style.css | 5 |
6 files changed, 623 insertions, 382 deletions
@@ -1,4 +1,4 @@ -.SUFFIXES: .html .xml .sgml .1 .3 .7 .md5 .tar.gz .1.html .3.html .7.html .1.txt .3.txt .7.txt +.SUFFIXES: .html .xml .sgml .1 .3 .7 .md5 .tar.gz .1.txt .3.txt .7.txt .1.sgml .3.sgml .7.sgml BINDIR = $(PREFIX)/bin INCLUDEDIR = $(PREFIX)/include @@ -52,7 +52,9 @@ DATAS = arch.in att.in lib.in msec.in st.in \ vol.in chars.in HEADS = mdoc.h libmdoc.h man.h libman.h term.h \ libmandoc.h html.h chars.h -SGMLS = index.sgml +GSGMLS = mandoc.1.sgml mdoc.3.sgml mdoc.7.sgml manuals.7.sgml \ + mandoc_char.7.sgml man.7.sgml man.3.sgml +SGMLS = index.sgml $(GSGMLS) XSLS = ChangeLog.xsl HTMLS = index.html ChangeLog.html mandoc.1.html mdoc.3.html \ man.3.html mdoc.7.html man.7.html mandoc_char.7.html \ @@ -68,7 +70,7 @@ MANS = mandoc.1 mdoc.3 mdoc.7 manuals.7 mandoc_char.7 \ man.7 man.3 BINS = mandoc CLEAN = $(BINS) $(LNS) $(LLNS) $(LIBS) $(OBJS) $(HTMLS) \ - $(TARGZS) tags $(MD5S) $(XMLS) $(TEXTS) + $(TARGZS) tags $(MD5S) $(XMLS) $(TEXTS) $(GSGMLS) INSTALL = $(SRCS) $(HEADS) Makefile $(MANS) $(SGMLS) $(STATICS) \ $(DATAS) $(XSLS) $(EXAMPLES) @@ -226,19 +228,19 @@ mandoc: $(MAINOBJS) libmdoc.a libman.a .1.1.txt: ./mandoc -Wall,error -fstrict $< | col -b > $@ -.1.1.html: +.1.1.sgml: ./mandoc -Thtml -ostyle=style.css -Wall,error -fstrict $< > $@ .3.3.txt: ./mandoc -Wall,error -fstrict $< | col -b > $@ -.3.3.html: +.3.3.sgml: ./mandoc -Thtml -ostyle=style.css -Wall,error -fstrict $< > $@ .7.7.txt: ./mandoc -Wall,error -fstrict $< | col -b > $@ -.7.7.html: +.7.7.sgml: ./mandoc -Thtml -ostyle=style.css -Wall,error -fstrict $< > $@ .tar.gz.md5: diff --git a/example.style.css b/example.style.css index df2a675e..ff7833df 100644 --- a/example.style.css +++ b/example.style.css @@ -13,6 +13,7 @@ div.ssec-block { } span.addr { text-decoration: underline; } /* Address (Ad). */ span.arg { font-style: italic; } /* Command argument (Ar). */ span.author { } /* Author name (An). */ +span.cmd { font-weight: bold; } /* Command (Cm). */ span.config { font-weight: bold; } /* Config statement (Cd). */ span.define { } /* Defines (Dv). */ span.desc { } /* Nd. After em-dash. */ @@ -21,14 +22,17 @@ span.emph { font-style: italic; } /* Emphasis (Em). */ span.env { } /* Environment variables (Ev). */ span.errno { } /* Error string (Er). */ span.farg { text-decoration: underline; } /* Function argument (Fa, Fn). */ +span.fname { text-decoration: underline; } /* Function name (Fa, Fn, Rv). */ span.file { font-style: italic; } /* File (Pa). */ span.flag { font-weight: bold; } /* Flag (Fl, Cm). */ +span.includes { font-weight: bold; } /* Header includes (In). */ span.macro { } /* Macro-ish thing (Fd). */ span.name { font-weight: bold; } /* Name of utility (Nm). */ span.opt { } /* Options (Op, Oo/Oc). */ span.type { font-style: italic; } /* Variable types (Vt, Ft, Fn). */ span.unix { } /* Unices (Ux, Ox, Nx, Fx, Bx, Bsx, Dx). */ span.utility { font-weight: bold; } /* Name of utility (Ex). */ +span.var { font-weight: bold; } /* Variables (Rv). */ a.link-man { } /* Manual links (Xr). */ a.link-sec { } /* Section links (Sx). */ diff --git a/mandoc_char.7 b/mandoc_char.7 index f9051f57..d940b57b 100644 --- a/mandoc_char.7 +++ b/mandoc_char.7 @@ -17,11 +17,13 @@ .Dd $Mdocdate$ .Dt MANDOC_CHAR 7 .Os -.\" SECTION +. +. .Sh NAME .Nm mandoc_char .Nd mandoc special characters -.\" SECTION +. +. .Sh DESCRIPTION This documents the special characters and predefined strings accepted by .Xr mandoc 1 @@ -29,12 +31,8 @@ to format .Xr mdoc 7 and .Xr man 7 -documents. Specific output devices of -.Xr mandoc 1 , -dictated by the -.Fl T Ns Ar output -argument, will properly render these sequences. -.\" PARAGRAPH +documents. +. .Pp Both .Xr mdoc 7 @@ -72,108 +70,114 @@ and .Sq \e*X as .Sq \e*[X] . -.\" SECTION +. +.Pp +Note that each output mode will have a different rendering of the +characters. It's guaranteed that each input symbol will correspond to a +(more or less) meaningful output rendering, regardless the mode. +. +. .Sh Special Characters These are the preferred input symbols for producing special characters. -.\" PARAGRAPH +. .Pp Spacing: -.Bl -compact -tag -width Ds -offset indent -.It \e~ -.Pq non-breaking, non-collapsing space -.It \e -.Pq breaking, non-collapsing n-width space -.It \e^ -.Pq zero-width space -.It \e% -.Pq zero-width space -.It \e& -.Pq zero-width space -.It \e| -.Pq zero-width space -.It \e0 -.Pq breaking, non-collapsing digit-width space +.Bl -compact -offset indent -column 10n 20n +.It Em Input Ta Em Description +.It \e~ Ta non-breaking, non-collapsing space +.It \e Ta breaking, non-collapsing n-width space +.It \e^ Ta zero-width space +.It \e% Ta zero-width space +.It \e& Ta zero-width space +.It \e| Ta zero-width space +.It \e0 Ta breaking, non-collapsing digit-width space .El -.\" PARAGRAPH +. .Pp Lines: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(ba Ta \(ba Ta bar -.It \e(br Ta \(br Ta box rule -.It \e(ul Ta \(ul Ta underscore -.It \e(rl Ta \(rl Ta overline -.It \e(bb Ta \(bb Ta broken bar -.It \e(sl Ta \(sl Ta forward slash -.It \e(rs Ta \(rs Ta backward slash +.It Em Input Ta Em Rendered Ta Em Description +.It \e(ba Ta \(ba Ta bar +.It \e(br Ta \(br Ta box rule +.It \e(ul Ta \(ul Ta underscore +.It \e(rl Ta \(rl Ta overline +.It \e(bb Ta \(bb Ta broken bar +.It \e(sl Ta \(sl Ta forward slash +.It \e(rs Ta \(rs Ta backward slash .El -.\" PARAGRAPH +. .Pp Text markers: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(ci Ta \(ci Ta circle -.It \e(bu Ta \(bu Ta bullet -.It \e(dd Ta \(dd Ta double dagger -.It \e(dg Ta \(dg Ta dagger -.It \e(lz Ta \(lz Ta lozenge -.It \e(sq Ta \(sq Ta white square -.It \e(ps Ta \(ps Ta paragraph -.It \e(sc Ta \(sc Ta section -.It \e(lh Ta \(lh Ta left hand -.It \e(rh Ta \(rh Ta right hand -.It \e(at Ta \(at Ta at -.It \e(sh Ta \(sh Ta hash (pound) -.It \e(CR Ta \(CR Ta carriage return -.It \e(OK Ta \(OK Ta check mark +.It Em Input Ta Em Rendered Ta Em Description +.It \e(ci Ta \(ci Ta circle +.It \e(bu Ta \(bu Ta bullet +.It \e(dd Ta \(dd Ta double dagger +.It \e(dg Ta \(dg Ta dagger +.It \e(lz Ta \(lz Ta lozenge +.It \e(sq Ta \(sq Ta white square +.It \e(ps Ta \(ps Ta paragraph +.It \e(sc Ta \(sc Ta section +.It \e(lh Ta \(lh Ta left hand +.It \e(rh Ta \(rh Ta right hand +.It \e(at Ta \(at Ta at +.It \e(sh Ta \(sh Ta hash (pound) +.It \e(CR Ta \(CR Ta carriage return +.It \e(OK Ta \(OK Ta check mark .El -.\" PARAGRAPH +. .Pp Legal symbols: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(co Ta \(co Ta copyright -.It \e(rg Ta \(rg Ta registered -.It \e(tm Ta \(tm Ta trademarked +.It Em Input Ta Em Rendered Ta Em Description +.It \e(co Ta \(co Ta copyright +.It \e(rg Ta \(rg Ta registered +.It \e(tm Ta \(tm Ta trademarked .El -.\" PARAGRAPH +. .Pp Punctuation: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(em Ta \(em Ta em-dash -.It \e(en Ta \(en Ta en-dash -.It \e(hy Ta \(hy Ta hyphen -.It \e\e Ta \\ Ta back-slash -.It \ee Ta \e Ta back-slash -.It \e. Ta \. Ta period -.It \e(r! Ta \(r! Ta upside-down exclamation -.It \e(r? Ta \(r? Ta upside-down question +.It Em Input Ta Em Rendered Ta Em Description +.It \e(em Ta \(em Ta em-dash +.It \e(en Ta \(en Ta en-dash +.It \e(hy Ta \(hy Ta hyphen +.It \e\e Ta \\ Ta back-slash +.It \ee Ta \e Ta back-slash +.It \e. Ta \. Ta period +.It \e(r! Ta \(r! Ta upside-down exclamation +.It \e(r? Ta \(r? Ta upside-down question .El -.\" PARAGRAPH +. .Pp Quotes: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(Bq Ta \(Bq Ta right low double-quote -.It \e(bq Ta \(bq Ta right low single-quote -.It \e(lq Ta \(lq Ta left double-quote -.It \e(rq Ta \(rq Ta right double-quote -.It \e(oq Ta \(oq Ta left single-quote -.It \e(cq Ta \(cq Ta right single-quote -.It \e(aq Ta \(aq Ta apostrophe quote (text) -.It \e(dq Ta \(dq Ta double quote (text) -.It \e(Fo Ta \(Fo Ta left guillemet -.It \e(Fc Ta \(Fc Ta right guillemet -.It \e(fo Ta \(fo Ta left single guillemet -.It \e(fc Ta \(fc Ta right single guillemet +.It Em Input Ta Em Rendered Ta Em Description +.It \e(Bq Ta \(Bq Ta right low double-quote +.It \e(bq Ta \(bq Ta right low single-quote +.It \e(lq Ta \(lq Ta left double-quote +.It \e(rq Ta \(rq Ta right double-quote +.It \e(oq Ta \(oq Ta left single-quote +.It \e(cq Ta \(cq Ta right single-quote +.It \e(aq Ta \(aq Ta apostrophe quote (text) +.It \e(dq Ta \(dq Ta double quote (text) +.It \e(Fo Ta \(Fo Ta left guillemet +.It \e(Fc Ta \(Fc Ta right guillemet +.It \e(fo Ta \(fo Ta left single guillemet +.It \e(fc Ta \(fc Ta right single guillemet .El -.\" PARAGRAPH +. .Pp Brackets: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(lB Ta \(lB Ta left bracket -.It \e(rB Ta \(rB Ta right bracket -.It \e(lC Ta \(lC Ta left brace -.It \e(rC Ta \(rC Ta right brace -.It \e(la Ta \(la Ta left angle -.It \e(ra Ta \(ra Ta right angle -.It \e(bv Ta \(bv Ta brace extension +.It Em Input Ta Em Rendered Ta Em Description +.It \e(lB Ta \(lB Ta left bracket +.It \e(rB Ta \(rB Ta right bracket +.It \e(lC Ta \(lC Ta left brace +.It \e(rC Ta \(rC Ta right brace +.It \e(la Ta \(la Ta left angle +.It \e(ra Ta \(ra Ta right angle +.It \e(bv Ta \(bv Ta brace extension .It \e[braceex] Ta \[braceex] Ta brace extension .It \e[bracketlefttp] Ta \[bracketlefttp] Ta top-left hooked bracket .It \e[bracketleftbp] Ta \[bracketleftbp] Ta bottom-left hooked bracket @@ -181,18 +185,18 @@ Brackets: .It \e[bracketrighttp] Ta \[bracketrighttp] Ta top-right hooked bracket .It \e[bracketrightbp] Ta \[bracketrightbp] Ta bottom-right hooked bracket .It \e[bracketrightex] Ta \[bracketrightex] Ta right hooked bracket extension -.It \e(lt Ta \(lt Ta top-left hooked brace +.It \e(lt Ta \(lt Ta top-left hooked brace .It \e[bracelefttp] Ta \[bracelefttp] Ta top-left hooked brace -.It \e(lk Ta \(lk Ta mid-left hooked brace +.It \e(lk Ta \(lk Ta mid-left hooked brace .It \e[braceleftmid] Ta \[braceleftmid] Ta mid-left hooked brace -.It \e(lb Ta \(lb Ta bottom-left hooked brace +.It \e(lb Ta \(lb Ta bottom-left hooked brace .It \e[braceleftbp] Ta \[braceleftbp] Ta bottom-left hooked brace .It \e[braceleftex] Ta \[braceleftex] Ta left hooked brace extension -.It \e(rt Ta \(rt Ta top-left hooked brace +.It \e(rt Ta \(rt Ta top-left hooked brace .It \e[bracerighttp] Ta \[bracerighttp] Ta top-right hooked brace -.It \e(rk Ta \(rk Ta mid-right hooked brace +.It \e(rk Ta \(rk Ta mid-right hooked brace .It \e[bracerightmid] Ta \[bracerightmid] Ta mid-right hooked brace -.It \e(rb Ta \(rb Ta bottom-right hooked brace +.It \e(rb Ta \(rb Ta bottom-right hooked brace .It \e[bracerightbp] Ta \[bracerightbp] Ta bottom-right hooked brace .It \e[bracerightex] Ta \[bracerightex] Ta right hooked brace extension .It \e[parenlefttp] Ta \[parenlefttp] Ta top-left hooked parenthesis @@ -202,333 +206,348 @@ Brackets: .It \e[parenrightbp] Ta \[parenrightbp] Ta bottom-right hooked parenthesis .It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension .El -.\" PARAGRAPH +. .Pp Arrows: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(<- Ta \(<- Ta left arrow -.It \e(-> Ta \(-> Ta right arrow -.It \e(<> Ta \(<> Ta left-right arrow -.It \e(da Ta \(da Ta down arrow -.It \e(ua Ta \(ua Ta up arrow -.It \e(va Ta \(va Ta up-down arrow -.It \e(lA Ta \(lA Ta left double-arrow -.It \e(rA Ta \(rA Ta right double-arrow -.It \e(hA Ta \(hA Ta left-right double-arrow -.It \e(uA Ta \(uA Ta up double-arrow -.It \e(dA Ta \(dA Ta down double-arrow -.It \e(vA Ta \(vA Ta up-down double-arrow +.It Em Input Ta Em Rendered Ta Em Description +.It \e(<- Ta \(<- Ta left arrow +.It \e(-> Ta \(-> Ta right arrow +.It \e(<> Ta \(<> Ta left-right arrow +.It \e(da Ta \(da Ta down arrow +.It \e(ua Ta \(ua Ta up arrow +.It \e(va Ta \(va Ta up-down arrow +.It \e(lA Ta \(lA Ta left double-arrow +.It \e(rA Ta \(rA Ta right double-arrow +.It \e(hA Ta \(hA Ta left-right double-arrow +.It \e(uA Ta \(uA Ta up double-arrow +.It \e(dA Ta \(dA Ta down double-arrow +.It \e(vA Ta \(vA Ta up-down double-arrow .El -.\" PARAGRAPH +. .Pp Logical: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(AN Ta \(AN Ta logical and -.It \e(OR Ta \(OR Ta logical or -.It \e(no Ta \(no Ta logical not -.It \e[tno] Ta \[tno] Ta logical not (text) -.It \e(te Ta \(te Ta existential quantifier -.It \e(fa Ta \(fa Ta universal quantifier -.It \e(st Ta \(st Ta such that -.It \e(tf Ta \(tf Ta therefore -.It \e(3d Ta \(3d Ta therefore -.It \e(or Ta \(or Ta bitwise or +.It Em Input Ta Em Rendered Ta Em Description +.It \e(AN Ta \(AN Ta logical and +.It \e(OR Ta \(OR Ta logical or +.It \e(no Ta \(no Ta logical not +.It \e[tno] Ta \[tno] Ta logical not (text) +.It \e(te Ta \(te Ta existential quantifier +.It \e(fa Ta \(fa Ta universal quantifier +.It \e(st Ta \(st Ta such that +.It \e(tf Ta \(tf Ta therefore +.It \e(3d Ta \(3d Ta therefore +.It \e(or Ta \(or Ta bitwise or .El -.\" PARAGRAPH +. .Pp Mathematical: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(pl Ta \(pl Ta plus -.It \e(mi Ta \(mi Ta minus -.It \e- Ta \- Ta minus (text) -.It \e(-+ Ta \(-+ Ta minus-plus -.It \e(+- Ta \(+- Ta plus-minus -.It \e[t+-] Ta \[t+-] Ta plus-minus (text) -.It \e(pc Ta \(pc Ta centre-dot -.It \e(mu Ta \(mu Ta multiply -.It \e[tmu] Ta \[tmu] Ta multiply (text) -.It \e(c* Ta \(c* Ta circle-multiply -.It \e(c+ Ta \(c+ Ta circle-plus -.It \e(di Ta \(di Ta divide -.It \e[tdi] Ta \[tdi] Ta divide (text) -.It \e(f/ Ta \(f/ Ta fraction -.It \e(** Ta \(** Ta asterisk -.It \e(<= Ta \(<= Ta less-than-equal -.It \e(>= Ta \(>= Ta greater-than-equal -.It \e(<< Ta \(<< Ta much less -.It \e(>> Ta \(>> Ta much greater -.It \e(eq Ta \(eq Ta equal -.It \e(!= Ta \(!= Ta not equal -.It \e(== Ta \(== Ta equivalent -.It \e(ne Ta \(ne Ta not equivalent -.It \e(=~ Ta \(=~ Ta congruent -.It \e(-~ Ta \(-~ Ta asymptotically congruent -.It \e(ap Ta \(ap Ta asymptotically similar -.It \e(~~ Ta \(~~ Ta approximately similar -.It \e(~= Ta \(~= Ta approximately equal -.It \e(pt Ta \(pt Ta proportionate -.It \e(es Ta \(es Ta empty set -.It \e(mo Ta \(mo Ta element -.It \e(nm Ta \(nm Ta not element -.It \e(sb Ta \(sb Ta proper subset -.It \e(nb Ta \(nb Ta not subset -.It \e(sp Ta \(sp Ta proper superset -.It \e(nc Ta \(nc Ta not superset -.It \e(ib Ta \(ib Ta reflexive subset -.It \e(ip Ta \(ip Ta reflexive superset -.It \e(ca Ta \(ca Ta intersection -.It \e(cu Ta \(cu Ta union -.It \e(/_ Ta \(/_ Ta angle -.It \e(pp Ta \(pp Ta perpendicular -.It \e(is Ta \(is Ta integral +.It Em Input Ta Em Rendered Ta Em Description +.It \e(pl Ta \(pl Ta plus +.It \e(mi Ta \(mi Ta minus +.It \e- Ta \- Ta minus (text) +.It \e(-+ Ta \(-+ Ta minus-plus +.It \e(+- Ta \(+- Ta plus-minus +.It \e[t+-] Ta \[t+-] Ta plus-minus (text) +.It \e(pc Ta \(pc Ta centre-dot +.It \e(mu Ta \(mu Ta multiply +.It \e[tmu] Ta \[tmu] Ta multiply (text) +.It \e(c* Ta \(c* Ta circle-multiply +.It \e(c+ Ta \(c+ Ta circle-plus +.It \e(di Ta \(di Ta divide +.It \e[tdi] Ta \[tdi] Ta divide (text) +.It \e(f/ Ta \(f/ Ta fraction +.It \e(** Ta \(** Ta asterisk +.It \e(<= Ta \(<= Ta less-than-equal +.It \e(>= Ta \(>= Ta greater-than-equal +.It \e(<< Ta \(<< Ta much less +.It \e(>> Ta \(>> Ta much greater +.It \e(eq Ta \(eq Ta equal +.It \e(!= Ta \(!= Ta not equal +.It \e(== Ta \(== Ta equivalent +.It \e(ne Ta \(ne Ta not equivalent +.It \e(=~ Ta \(=~ Ta congruent +.It \e(-~ Ta \(-~ Ta asymptotically congruent +.It \e(ap Ta \(ap Ta asymptotically similar +.It \e(~~ Ta \(~~ Ta approximately similar +.It \e(~= Ta \(~= Ta approximately equal +.It \e(pt Ta \(pt Ta proportionate +.It \e(es Ta \(es Ta empty set +.It \e(mo Ta \(mo Ta element +.It \e(nm Ta \(nm Ta not element +.It \e(sb Ta \(sb Ta proper subset +.It \e(nb Ta \(nb Ta not subset +.It \e(sp Ta \(sp Ta proper superset +.It \e(nc Ta \(nc Ta not superset +.It \e(ib Ta \(ib Ta reflexive subset +.It \e(ip Ta \(ip Ta reflexive superset +.It \e(ca Ta \(ca Ta intersection +.It \e(cu Ta \(cu Ta union +.It \e(/_ Ta \(/_ Ta angle +.It \e(pp Ta \(pp Ta perpendicular +.It \e(is Ta \(is Ta integral .It \e[integral] Ta \[integral] Ta integral .It \e[sum] Ta \[sum] Ta summation .It \e[product] Ta \[product] Ta product .It \e[coproduct] Ta \[coproduct] Ta coproduct -.It \e(gr Ta \(gr Ta gradient -.It \e(sr Ta \(sr Ta square root -.It \e[sqrt] Ta \[sqrt] Ta square root -.It \e(lc Ta \(lc Ta left-ceiling -.It \e(rc Ta \(rc Ta right-ceiling -.It \e(lf Ta \(lf Ta left-floor -.It \e(rf Ta \(rf Ta right-floor -.It \e(if Ta \(if Ta infinity -.It \e(Ah Ta \(Ah Ta aleph -.It \e(Im Ta \(Im Ta imaginary -.It \e(Re Ta \(Re Ta real -.It \e(pd Ta \(pd Ta partial differential -.It \e(-h Ta \(-h Ta Planck constant over 2\(*p +.It \e(gr Ta \(gr Ta gradient +.It \e(sr Ta \(sr Ta square root +.It \e[sqrt] Ta \[sqrt] Ta square root +.It \e(lc Ta \(lc Ta left-ceiling +.It \e(rc Ta \(rc Ta right-ceiling +.It \e(lf Ta \(lf Ta left-floor +.It \e(rf Ta \(rf Ta right-floor +.It \e(if Ta \(if Ta infinity +.It \e(Ah Ta \(Ah Ta aleph +.It \e(Im Ta \(Im Ta imaginary +.It \e(Re Ta \(Re Ta real +.It \e(pd Ta \(pd Ta partial differential +.It \e(-h Ta \(-h Ta Planck constant over 2\(*p .El -.\" PARAGRAPH +. .Pp Ligatures: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(ff Ta \(ff Ta ff ligature -.It \e(fi Ta \(fi Ta fi ligature -.It \e(fl Ta \(fl Ta fl ligature -.It \e(Fi Ta \(Fi Ta ffi ligature -.It \e(Fl Ta \(Fl Ta ffl ligature -.It \e(AE Ta \(AE Ta AE -.It \e(ae Ta \(ae Ta ae -.It \e(OE Ta \(OE Ta OE -.It \e(oe Ta \(oe Ta oe -.It \e(ss Ta \(ss Ta German eszett -.It \e(IJ Ta \(IJ Ta IJ ligature -.It \e(ij Ta \(ij Ta ij ligature +.It Em Input Ta Em Rendered Ta Em Description +.It \e(ff Ta \(ff Ta ff ligature +.It \e(fi Ta \(fi Ta fi ligature +.It \e(fl Ta \(fl Ta fl ligature +.It \e(Fi Ta \(Fi Ta ffi ligature +.It \e(Fl Ta \(Fl Ta ffl ligature +.It \e(AE Ta \(AE Ta AE +.It \e(ae Ta \(ae Ta ae +.It \e(OE Ta \(OE Ta OE +.It \e(oe Ta \(oe Ta oe +.It \e(ss Ta \(ss Ta German eszett +.It \e(IJ Ta \(IJ Ta IJ ligature +.It \e(ij Ta \(ij Ta ij ligature .El -.\" PARAGRAPH +. .Pp Accents: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(a" Ta \(a" Ta Hungarian umlaut -.It \e(a- Ta \(a- Ta macron -.It \e(a. Ta \(a. Ta dotted -.It \e(a^ Ta \(a^ Ta circumflex -.It \e(aa Ta \(aa Ta acute -.It \e' Ta \' Ta acute -.It \e(ga Ta \(ga Ta grave -.It \e` Ta \` Ta grave -.It \e(ab Ta \(ab Ta breve -.It \e(ac Ta \(ac Ta cedilla -.It \e(ad Ta \(ad Ta dieresis -.It \e(ah Ta \(ah Ta caron -.It \e(ao Ta \(ao Ta ring -.It \e(a~ Ta \(a~ Ta tilde -.It \e(ho Ta \(ho Ta ogonek -.It \e(ha Ta \(ha Ta hat (text) -.It \e(ti Ta \(ti Ta tilde (text) +.It Em Input Ta Em Rendered Ta Em Description +.It \e(a" Ta \(a" Ta Hungarian umlaut +.It \e(a- Ta \(a- Ta macron +.It \e(a. Ta \(a. Ta dotted +.It \e(a^ Ta \(a^ Ta circumflex +.It \e(aa Ta \(aa Ta acute +.It \e' Ta \' Ta acute +.It \e(ga Ta \(ga Ta grave +.It \e` Ta \` Ta grave +.It \e(ab Ta \(ab Ta breve +.It \e(ac Ta \(ac Ta cedilla +.It \e(ad Ta \(ad Ta dieresis +.It \e(ah Ta \(ah Ta caron +.It \e(ao Ta \(ao Ta ring +.It \e(a~ Ta \(a~ Ta tilde +.It \e(ho Ta \(ho Ta ogonek +.It \e(ha Ta \(ha Ta hat (text) +.It \e(ti Ta \(ti Ta tilde (text) .El -.\" PARAGRAPH +. .Pp Accented letters: .Bl -compact -offset indent -column 10n 10n 10n -.It \e('A Ta \('A Ta acute A -.It \e('E Ta \('E Ta acute E -.It \e('I Ta \('I Ta acute I -.It \e('O Ta \('O Ta acute O -.It \e('U Ta \('U Ta acute U -.It \e('a Ta \('a Ta acute a -.It \e('e Ta \('e Ta acute e -.It \e('i Ta \('i Ta acute i -.It \e('o Ta \('o Ta acute o -.It \e('u Ta \('u Ta acute u -.It \e(`A Ta \(`A Ta grave A -.It \e(`E Ta \(`E Ta grave E -.It \e(`I Ta \(`I Ta grave I -.It \e(`O Ta \(`O Ta grave O -.It \e(`U Ta \(`U Ta grave U -.It \e(`a Ta \(`a Ta grave a -.It \e(`e Ta \(`e Ta grave e -.It \e(`i Ta \(`i Ta grave i -.It \e(`o Ta \(`i Ta grave o -.It \e(`u Ta \(`u Ta grave u -.It \e(~A Ta \(~A Ta tilde A -.It \e(~N Ta \(~N Ta tilde N -.It \e(~O Ta \(~O Ta tilde O -.It \e(~a Ta \(~a Ta tilde a -.It \e(~n Ta \(~n Ta tilde n -.It \e(~o Ta \(~o Ta tilde o -.It \e(:A Ta \(:A Ta dieresis A -.It \e(:E Ta \(:E Ta dieresis E -.It \e(:I Ta \(:I Ta dieresis I -.It \e(:O Ta \(:O Ta dieresis O -.It \e(:U Ta \(:U Ta dieresis U -.It \e(:a Ta \(:a Ta dieresis a -.It \e(:e Ta \(:e Ta dieresis e -.It \e(:i Ta \(:i Ta dieresis i -.It \e(:o Ta \(:o Ta dieresis o -.It \e(:u Ta \(:u Ta dieresis u -.It \e(:y Ta \(:y Ta dieresis y -.It \e(^A Ta \(^A Ta circumflex A -.It \e(^E Ta \(^E Ta circumflex E -.It \e(^I Ta \(^I Ta circumflex I -.It \e(^O Ta \(^O Ta circumflex O -.It \e(^U Ta \(^U Ta circumflex U -.It \e(^a Ta \(^a Ta circumflex a -.It \e(^e Ta \(^e Ta circumflex e -.It \e(^i Ta \(^i Ta circumflex i -.It \e(^o Ta \(^o Ta circumflex o -.It \e(^u Ta \(^u Ta circumflex u -.It \e(,C Ta \(,C Ta cedilla C -.It \e(,c Ta \(,c Ta cedilla c -.It \e(/L Ta \(/L Ta stroke L -.It \e(/l Ta \(/l Ta stroke l -.It \e(/O Ta \(/O Ta stroke O -.It \e(/o Ta \(/o Ta stroke o -.It \e(oA Ta \(oA Ta ring A -.It \e(oa Ta \(oa Ta ring a +.It Em Input Ta Em Rendered Ta Em Description +.It \e('A Ta \('A Ta acute A +.It \e('E Ta \('E Ta acute E +.It \e('I Ta \('I Ta acute I +.It \e('O Ta \('O Ta acute O +.It \e('U Ta \('U Ta acute U +.It \e('a Ta \('a Ta acute a +.It \e('e Ta \('e Ta acute e +.It \e('i Ta \('i Ta acute i +.It \e('o Ta \('o Ta acute o +.It \e('u Ta \('u Ta acute u +.It \e(`A Ta \(`A Ta grave A +.It \e(`E Ta \(`E Ta grave E +.It \e(`I Ta \(`I Ta grave I +.It \e(`O Ta \(`O Ta grave O +.It \e(`U Ta \(`U Ta grave U +.It \e(`a Ta \(`a Ta grave a +.It \e(`e Ta \(`e Ta grave e +.It \e(`i Ta \(`i Ta grave i +.It \e(`o Ta \(`i Ta grave o +.It \e(`u Ta \(`u Ta grave u +.It \e(~A Ta \(~A Ta tilde A +.It \e(~N Ta \(~N Ta tilde N +.It \e(~O Ta \(~O Ta tilde O +.It \e(~a Ta \(~a Ta tilde a +.It \e(~n Ta \(~n Ta tilde n +.It \e(~o Ta \(~o Ta tilde o +.It \e(:A Ta \(:A Ta dieresis A +.It \e(:E Ta \(:E Ta dieresis E +.It \e(:I Ta \(:I Ta dieresis I +.It \e(:O Ta \(:O Ta dieresis O +.It \e(:U Ta \(:U Ta dieresis U +.It \e(:a Ta \(:a Ta dieresis a +.It \e(:e Ta \(:e Ta dieresis e +.It \e(:i Ta \(:i Ta dieresis i +.It \e(:o Ta \(:o Ta dieresis o +.It \e(:u Ta \(:u Ta dieresis u +.It \e(:y Ta \(:y Ta dieresis y +.It \e(^A Ta \(^A Ta circumflex A +.It \e(^E Ta \(^E Ta circumflex E +.It \e(^I Ta \(^I Ta circumflex I +.It \e(^O Ta \(^O Ta circumflex O +.It \e(^U Ta \(^U Ta circumflex U +.It \e(^a Ta \(^a Ta circumflex a +.It \e(^e Ta \(^e Ta circumflex e +.It \e(^i Ta \(^i Ta circumflex i +.It \e(^o Ta \(^o Ta circumflex o +.It \e(^u Ta \(^u Ta circumflex u +.It \e(,C Ta \(,C Ta cedilla C +.It \e(,c Ta \(,c Ta cedilla c +.It \e(/L Ta \(/L Ta stroke L +.It \e(/l Ta \(/l Ta stroke l +.It \e(/O Ta \(/O Ta stroke O +.It \e(/o Ta \(/o Ta stroke o +.It \e(oA Ta \(oA Ta ring A +.It \e(oa Ta \(oa Ta ring a .El -.\" PARAGRAPH +. .Pp Special letters: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(-D Ta \(-D Ta Eth -.It \e(Sd Ta \(Sd Ta eth -.It \e(TP Ta \(TP Ta Thorn -.It \e(Tp Ta \(Tp Ta thorn -.It \e(.i Ta \(.i Ta dotless i -.It \e(.j Ta \(.j Ta dotless j +.It Em Input Ta Em Rendered Ta Em Description +.It \e(-D Ta \(-D Ta Eth +.It \e(Sd Ta \(Sd Ta eth +.It \e(TP Ta \(TP Ta Thorn +.It \e(Tp Ta \(Tp Ta thorn +.It \e(.i Ta \(.i Ta dotless i +.It \e(.j Ta \(.j Ta dotless j .El -.\" PARAGRAPH +. .Pp Currency: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(Do Ta \(Do Ta dollar -.It \e(ct Ta \(ct Ta cent -.It \e(Eu Ta \(Eu Ta Euro symbol -.It \e(eu Ta \(eu Ta Euro symbol -.It \e(Ye Ta \(Ye Ta yen -.It \e(Po Ta \(Po Ta pound -.It \e(Cs Ta \(Cs Ta Scandinavian -.It \e(Fn Ta \(Fn Ta florin +.It Em Input Ta Em Rendered Ta Em Description +.It \e(Do Ta \(Do Ta dollar +.It \e(ct Ta \(ct Ta cent +.It \e(Eu Ta \(Eu Ta Euro symbol +.It \e(eu Ta \(eu Ta Euro symbol +.It \e(Ye Ta \(Ye Ta yen +.It \e(Po Ta \(Po Ta pound +.It \e(Cs Ta \(Cs Ta Scandinavian +.It \e(Fn Ta \(Fn Ta florin .El -.\" PARAGRAPH +. .Pp Units: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(de Ta \(de Ta degree -.It \e(%0 Ta \(%0 Ta per-thousand -.It \e(fm Ta \(fm Ta minute -.It \e(sd Ta \(sd Ta second -.It \e(mc Ta \(mc Ta micro +.It Em Input Ta Em Rendered Ta Em Description +.It \e(de Ta \(de Ta degree +.It \e(%0 Ta \(%0 Ta per-thousand +.It \e(fm Ta \(fm Ta minute +.It \e(sd Ta \(sd Ta second +.It \e(mc Ta \(mc Ta micro .El -.\" PARAGRAPH +. .Pp Greek letters: .Bl -compact -offset indent -column 10n 10n 10n -.It \e(*A Ta \(*A Ta Alpha -.It \e(*B Ta \(*B Ta Beta -.It \e(*G Ta \(*G Ta Gamma -.It \e(*D Ta \(*D Ta Delta -.It \e(*E Ta \(*E Ta Epsilon -.It \e(*Z Ta \(*Z Ta Zeta -.It \e(*Y Ta \(*Y Ta Eta -.It \e(*H Ta \(*H Ta Theta -.It \e(*I Ta \(*I Ta Iota -.It \e(*K Ta \(*K Ta Kappa -.It \e(*L Ta \(*L Ta Lambda -.It \e(*M Ta \(*M Ta Mu -.It \e(*N Ta \(*N Ta Nu -.It \e(*C Ta \(*C Ta Xi -.It \e(*O Ta \(*O Ta Omicron -.It \e(*P Ta \(*P Ta Pi -.It \e(*R Ta \(*R Ta Rho -.It \e(*S Ta \(*S Ta Sigma -.It \e(*T Ta \(*T Ta Tau -.It \e(*U Ta \(*U Ta Upsilon -.It \e(*F Ta \(*F Ta Phi -.It \e(*X Ta \(*X Ta Chi -.It \e(*Q Ta \(*Q Ta Psi -.It \e(*W Ta \(*W Ta Omega -.It \e(*a Ta \(*a Ta alpha -.It \e(*b Ta \(*b Ta beta -.It \e(*g Ta \(*g Ta gamma -.It \e(*d Ta \(*d Ta delta -.It \e(*e Ta \(*e Ta epsilon -.It \e(*z Ta \(*z Ta zeta -.It \e(*y Ta \(*y Ta eta -.It \e(*h Ta \(*h Ta theta -.It \e(*i Ta \(*i Ta iota -.It \e(*k Ta \(*k Ta kappa -.It \e(*l Ta \(*l Ta lambda -.It \e(*m Ta \(*m Ta mu -.It \e(*n Ta \(*n Ta nu -.It \e(*c Ta \(*c Ta xi -.It \e(*o Ta \(*o Ta omicron -.It \e(*p Ta \(*p Ta pi -.It \e(*r Ta \(*r Ta rho -.It \e(*s Ta \(*s Ta sigma -.It \e(*t Ta \(*t Ta tau -.It \e(*u Ta \(*u Ta upsilon -.It \e(*f Ta \(*f Ta phi -.It \e(*x Ta \(*x Ta chi -.It \e(*q Ta \(*q Ta psi -.It \e(*w Ta \(*w Ta omega -.It \e(+h Ta \(+h Ta theta variant -.It \e(+f Ta \(+f Ta phi variant -.It \e(+p Ta \(+p Ta pi variant -.It \e(+e Ta \(+e Ta epsilon variant -.It \e(ts Ta \(ts Ta sigma terminal +.It Em Input Ta Em Rendered Ta Em Description +.It \e(*A Ta \(*A Ta Alpha +.It \e(*B Ta \(*B Ta Beta +.It \e(*G Ta \(*G Ta Gamma +.It \e(*D Ta \(*D Ta Delta +.It \e(*E Ta \(*E Ta Epsilon +.It \e(*Z Ta \(*Z Ta Zeta +.It \e(*Y Ta \(*Y Ta Eta +.It \e(*H Ta \(*H Ta Theta +.It \e(*I Ta \(*I Ta Iota +.It \e(*K Ta \(*K Ta Kappa +.It \e(*L Ta \(*L Ta Lambda +.It \e(*M Ta \(*M Ta Mu +.It \e(*N Ta \(*N Ta Nu +.It \e(*C Ta \(*C Ta Xi +.It \e(*O Ta \(*O Ta Omicron +.It \e(*P Ta \(*P Ta Pi +.It \e(*R Ta \(*R Ta Rho +.It \e(*S Ta \(*S Ta Sigma +.It \e(*T Ta \(*T Ta Tau +.It \e(*U Ta \(*U Ta Upsilon +.It \e(*F Ta \(*F Ta Phi +.It \e(*X Ta \(*X Ta Chi +.It \e(*Q Ta \(*Q Ta Psi +.It \e(*W Ta \(*W Ta Omega +.It \e(*a Ta \(*a Ta alpha +.It \e(*b Ta \(*b Ta beta +.It \e(*g Ta \(*g Ta gamma +.It \e(*d Ta \(*d Ta delta +.It \e(*e Ta \(*e Ta epsilon +.It \e(*z Ta \(*z Ta zeta +.It \e(*y Ta \(*y Ta eta +.It \e(*h Ta \(*h Ta theta +.It \e(*i Ta \(*i Ta iota +.It \e(*k Ta \(*k Ta kappa +.It \e(*l Ta \(*l Ta lambda +.It \e(*m Ta \(*m Ta mu +.It \e(*n Ta \(*n Ta nu +.It \e(*c Ta \(*c Ta xi +.It \e(*o Ta \(*o Ta omicron +.It \e(*p Ta \(*p Ta pi +.It \e(*r Ta \(*r Ta rho +.It \e(*s Ta \(*s Ta sigma +.It \e(*t Ta \(*t Ta tau +.It \e(*u Ta \(*u Ta upsilon +.It \e(*f Ta \(*f Ta phi +.It \e(*x Ta \(*x Ta chi +.It \e(*q Ta \(*q Ta psi +.It \e(*w Ta \(*w Ta omega +.It \e(+h Ta \(+h Ta theta variant +.It \e(+f Ta \(+f Ta phi variant +.It \e(+p Ta \(+p Ta pi variant +.It \e(+e Ta \(+e Ta epsilon variant +.It \e(ts Ta \(ts Ta sigma terminal .El -.\" SECTION +. +. .Sh PREDEFINED STRINGS These are not recommended for use, as they differ across implementations: +. .Pp .Bl -compact -offset indent -column 10n 10n 10n -.It \e*(Ba Ta \*(Ba Ta vertical bar -.It \e*(Ne Ta \*(Ne Ta not equal -.It \e*(Ge Ta \*(Ge Ta greater-than-equal -.It \e*(Le Ta \*(Le Ta less-than-equal -.It \e*(Gt Ta \*(Gt Ta greater-than -.It \e*(Lt Ta \*(Lt Ta less-than -.It \e*(Pm Ta \*(Pm Ta plus-minus -.It \e*(If Ta \*(If Ta infinity -.It \e*(Pi Ta \*(Pi Ta pi -.It \e*(Na Ta \*(Na Ta NaN -.It \e*(Am Ta \*(Am Ta ampersand -.It \e*R Ta \*R Ta restricted mark -.It \e*(Tm Ta \*(Tm Ta trade mark -.It \e*q Ta \*q Ta double-quote -.It \e*(Rq Ta \*(Rq Ta right-double-quote -.It \e*(Lq Ta \*(Lq Ta left-double-quote -.It \e*(lp Ta \*(lp Ta right-parenthesis -.It \e*(rp Ta \*(rp Ta left-parenthesis -.It \e*(lq Ta \*(lq Ta left double-quote -.It \e*(rq Ta \*(rq Ta right double-quote -.It \e*(ua Ta \*(ua Ta up arrow -.It \e*(va Ta \*(va Ta up-down arrow -.It \e*(<= Ta \*(<= Ta less-than-equal -.It \e*(>= Ta \*(>= Ta greater-than-equal -.It \e*(aa Ta \*(aa Ta acute -.It \e*(ga Ta \*(ga Ta grave +.It Em Input Ta Em Rendered Ta Em Description +.It \e*(Ba Ta \*(Ba Ta vertical bar +.It \e*(Ne Ta \*(Ne Ta not equal +.It \e*(Ge Ta \*(Ge Ta greater-than-equal +.It \e*(Le Ta \*(Le Ta less-than-equal +.It \e*(Gt Ta \*(Gt Ta greater-than +.It \e*(Lt Ta \*(Lt Ta less-than +.It \e*(Pm Ta \*(Pm Ta plus-minus +.It \e*(If Ta \*(If Ta infinity +.It \e*(Pi Ta \*(Pi Ta pi +.It \e*(Na Ta \*(Na Ta NaN +.It \e*(Am Ta \*(Am Ta ampersand +.It \e*R Ta \*R Ta restricted mark +.It \e*(Tm Ta \*(Tm Ta trade mark +.It \e*q Ta \*q Ta double-quote +.It \e*(Rq Ta \*(Rq Ta right-double-quote +.It \e*(Lq Ta \*(Lq Ta left-double-quote +.It \e*(lp Ta \*(lp Ta right-parenthesis +.It \e*(rp Ta \*(rp Ta left-parenthesis +.It \e*(lq Ta \*(lq Ta left double-quote +.It \e*(rq Ta \*(rq Ta right double-quote +.It \e*(ua Ta \*(ua Ta up arrow +.It \e*(va Ta \*(va Ta up-down arrow +.It \e*(<= Ta \*(<= Ta less-than-equal +.It \e*(>= Ta \*(>= Ta greater-than-equal +.It \e*(aa Ta \*(aa Ta acute +.It \e*(ga Ta \*(ga Ta grave .El -.\" SECTION +. +. .Sh COMPATIBILITY This section documents compatibility of .Nm with older or existing versions of .Xr groff 1 . +. .Pp The following render differently in .Fl T Ns Ar ascii @@ -537,6 +556,7 @@ output mode: \e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], \e[coproduct], \e(gr, \e(-h, \e(a. .Ed +. .Pp The following render differently in .Fl T Ns Ar html @@ -544,16 +564,19 @@ output mode: .Bd -ragged -offset indent \e(~=, \e(nb, \e(nc .Ed +. .Pp Finally, the following have been omitted by being poorly documented or having no known representation: .Bd -ragged -offset indent \e[radicalex], \e[sqrtex], \e(ru .Ed -.\" SECTION +. +. .Sh SEE ALSO .Xr mandoc 1 -.\" SECTION +. +. .Sh AUTHORS The .Nm diff --git a/mdoc_html.c b/mdoc_html.c index 6840445d..87f12262 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -67,8 +67,11 @@ static int mdoc_ar_pre(MDOC_ARGS); static int mdoc_bd_pre(MDOC_ARGS); static void mdoc_bl_post(MDOC_ARGS); static int mdoc_bl_pre(MDOC_ARGS); +static void mdoc_bq_post(MDOC_ARGS); +static int mdoc_bq_pre(MDOC_ARGS); static void mdoc_brq_post(MDOC_ARGS); static int mdoc_brq_pre(MDOC_ARGS); +static int mdoc_bx_pre(MDOC_ARGS); static int mdoc_cd_pre(MDOC_ARGS); static int mdoc_d1_pre(MDOC_ARGS); static void mdoc_dq_post(MDOC_ARGS); @@ -83,6 +86,10 @@ static int mdoc_em_pre(MDOC_ARGS); static int mdoc_er_pre(MDOC_ARGS); static int mdoc_ev_pre(MDOC_ARGS); static int mdoc_ex_pre(MDOC_ARGS); +static void mdoc_fo_post(MDOC_ARGS); +static int mdoc_fo_pre(MDOC_ARGS); +static int mdoc_ic_pre(MDOC_ARGS); +static int mdoc_in_pre(MDOC_ARGS); static int mdoc_it_pre(MDOC_ARGS); static int mdoc_lk_pre(MDOC_ARGS); static int mdoc_mt_pre(MDOC_ARGS); @@ -96,12 +103,14 @@ static void mdoc_pq_post(MDOC_ARGS); static int mdoc_pq_pre(MDOC_ARGS); static void mdoc_qq_post(MDOC_ARGS); static int mdoc_qq_pre(MDOC_ARGS); +static int mdoc_rv_pre(MDOC_ARGS); static int mdoc_sh_pre(MDOC_ARGS); static int mdoc_sp_pre(MDOC_ARGS); static void mdoc_sq_post(MDOC_ARGS); static int mdoc_sq_pre(MDOC_ARGS); static int mdoc_ss_pre(MDOC_ARGS); static int mdoc_sx_pre(MDOC_ARGS); +static int mdoc_va_pre(MDOC_ARGS); static int mdoc_vt_pre(MDOC_ARGS); static int mdoc_xr_pre(MDOC_ARGS); static int mdoc_xx_pre(MDOC_ARGS); @@ -140,17 +149,17 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = { {mdoc_fl_pre, NULL}, /* Fl */ {mdoc_fn_pre, NULL}, /* Fn */ {mdoc_ft_pre, NULL}, /* Ft */ - {NULL, NULL}, /* Ic */ - {NULL, NULL}, /* In */ + {mdoc_ic_pre, NULL}, /* Ic */ + {mdoc_in_pre, NULL}, /* In */ {NULL, NULL}, /* Li */ {mdoc_nd_pre, NULL}, /* Nd */ {mdoc_nm_pre, NULL}, /* Nm */ {mdoc_op_pre, mdoc_op_post}, /* Op */ {NULL, NULL}, /* Ot */ {mdoc_pa_pre, NULL}, /* Pa */ - {NULL, NULL}, /* Rv */ + {mdoc_rv_pre, NULL}, /* Rv */ {NULL, NULL}, /* St */ - {NULL, NULL}, /* Va */ + {mdoc_va_pre, NULL}, /* Va */ {mdoc_vt_pre, NULL}, /* Vt */ {mdoc_xr_pre, NULL}, /* Xr */ {NULL, NULL}, /* %A */ @@ -170,13 +179,13 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = { {NULL, NULL}, /* At */ {NULL, NULL}, /* Bc */ {NULL, NULL}, /* Bf */ - {NULL, NULL}, /* Bo */ - {NULL, NULL}, /* Bq */ + {mdoc_bq_pre, mdoc_bq_post}, /* Bo */ + {mdoc_bq_pre, mdoc_bq_post}, /* Bq */ {mdoc_xx_pre, NULL}, /* Bsx */ - {NULL, NULL}, /* Bx */ + {mdoc_bx_pre, NULL}, /* Bx */ {NULL, NULL}, /* Db */ {NULL, NULL}, /* Dc */ - {NULL, NULL}, /* Do */ + {mdoc_dq_pre, mdoc_dq_post}, /* Do */ {mdoc_dq_pre, mdoc_dq_post}, /* Dq */ {NULL, NULL}, /* Ec */ {NULL, NULL}, /* Ef */ @@ -193,7 +202,7 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = { {mdoc_pq_pre, mdoc_pq_post}, /* Po */ {mdoc_pq_pre, mdoc_pq_post}, /* Pq */ {NULL, NULL}, /* Qc */ - {NULL, NULL}, /* Ql */ + {mdoc_sq_pre, mdoc_sq_post}, /* Ql */ {mdoc_qq_pre, mdoc_qq_post}, /* Qo */ {mdoc_qq_pre, mdoc_qq_post}, /* Qq */ {NULL, NULL}, /* Re */ @@ -208,9 +217,9 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = { {mdoc_xx_pre, NULL}, /* Ux */ {NULL, NULL}, /* Xc */ {NULL, NULL}, /* Xo */ - {NULL, NULL}, /* Fo */ + {mdoc_fo_pre, mdoc_fo_post}, /* Fo */ {NULL, NULL}, /* Fc */ - {NULL, NULL}, /* Oo */ + {mdoc_op_pre, mdoc_op_post}, /* Oo */ {NULL, NULL}, /* Oc */ {NULL, NULL}, /* Bk */ {NULL, NULL}, /* Ek */ @@ -827,6 +836,29 @@ mdoc_xx_pre(MDOC_ARGS) /* ARGSUSED */ static int +mdoc_bx_pre(MDOC_ARGS) +{ + const struct mdoc_node *nn; + struct htmlpair tag; + + tag.key = ATTR_CLASS; + tag.val = "unix"; + + print_otag(h, TAG_SPAN, 1, &tag); + + for (nn = n->child; nn; nn = nn->next) + print_mdoc_node(m, nn, h); + + if (n->child) + h->flags |= HTML_NOSPACE; + + print_text(h, "BSD"); + return(0); +} + + +/* ARGSUSED */ +static int mdoc_tbl_block_pre(MDOC_ARGS, int t, int w, int o, int c) { struct htmlpair tag; @@ -892,7 +924,8 @@ mdoc_tbl_head_pre(MDOC_ARGS, int t, int w) print_otag(h, TAG_DIV, 1, &tag); break; default: - buffmt("margin-left: -%dem; width: %dem;", w, w); + buffmt("margin-left: -%dem; min-width: %dem;", + w, w ? w - 1 : 0); bufcat("clear: left;"); if (n->next && n->next->child) bufcat("float: left;"); @@ -920,7 +953,7 @@ mdoc_tbl_head_pre(MDOC_ARGS, int t, int w) print_text(h, "\\(en"); return(0); case (MDOC_Hyphen): - print_text(h, "\\-"); + print_text(h, "\\(hy"); return(0); case (MDOC_Bullet): print_text(h, "\\(bu"); @@ -1536,7 +1569,7 @@ mdoc_ft_pre(MDOC_ARGS) if (SEC_SYNOPSIS == n->sec) { if (n->prev && MDOC_Fo == n->prev->tok) { tag.key = ATTR_STYLE; - tag.val = "magin-bottom: 1em;"; + tag.val = "margin-top: 1em;"; print_otag(h, TAG_DIV, 1, &tag); } else print_otag(h, TAG_DIV, 0, NULL); @@ -1569,6 +1602,8 @@ mdoc_fn_pre(MDOC_ARGS) tag.key = ATTR_CLASS; tag.val = "type"; + /* FIXME: can be "type funcname" "type varname"... */ + t = print_otag(h, TAG_SPAN, 1, &tag); print_text(h, n->child->string); print_tagq(h, t); @@ -1700,3 +1735,174 @@ mdoc_mt_pre(MDOC_ARGS) return(0); } + + +/* ARGSUSED */ +static int +mdoc_fo_pre(MDOC_ARGS) +{ + struct htmlpair tag; + + if (MDOC_BODY == n->type) { + h->flags |= HTML_NOSPACE; + print_text(h, "("); + h->flags |= HTML_NOSPACE; + return(1); + } else if (MDOC_BLOCK == n->type) + return(1); + + tag.key = ATTR_CLASS; + tag.val = "fname"; + print_otag(h, TAG_SPAN, 1, &tag); + return(1); +} + + +/* ARGSUSED */ +static void +mdoc_fo_post(MDOC_ARGS) +{ + if (MDOC_BODY != n->type) + return; + h->flags |= HTML_NOSPACE; + print_text(h, ")"); + h->flags |= HTML_NOSPACE; + print_text(h, ";"); +} + + +/* ARGSUSED */ +static int +mdoc_in_pre(MDOC_ARGS) +{ + const struct mdoc_node *nn; + struct htmlpair tag; + + if (SEC_SYNOPSIS == n->sec) { + if (n->next && MDOC_In != n->next->tok) { + tag.key = ATTR_STYLE; + tag.val = "margin-bottom: 1em;"; + print_otag(h, TAG_DIV, 1, &tag); + } else + print_otag(h, TAG_DIV, 0, NULL); + } + + tag.key = ATTR_CLASS; + tag.val = "includes"; + + print_otag(h, TAG_SPAN, 1, &tag); + + if (SEC_SYNOPSIS == n->sec) + print_text(h, "#include"); + + print_text(h, "<"); + h->flags |= HTML_NOSPACE; + + /* XXX -- see warning in termp_in_post(). */ + + for (nn = n->child; nn; nn = nn->next) + print_mdoc_node(m, nn, h); + + h->flags |= HTML_NOSPACE; + print_text(h, ">"); + + return(0); +} + + +/* ARGSUSED */ +static int +mdoc_ic_pre(MDOC_ARGS) +{ + struct htmlpair tag; + + tag.key = ATTR_CLASS; + tag.val = "cmd"; + + print_otag(h, TAG_SPAN, 1, &tag); + return(1); +} + + +/* ARGSUSED */ +static int +mdoc_rv_pre(MDOC_ARGS) +{ + const struct mdoc_node *nn; + struct htmlpair tag; + struct tag *t; + + print_otag(h, TAG_DIV, 0, NULL); + + print_text(h, "The"); + + for (nn = n->child; nn; nn = nn->next) { + tag.key = ATTR_CLASS; + tag.val = "fname"; + t = print_otag(h, TAG_SPAN, 1, &tag); + print_text(h, nn->string); + print_tagq(h, t); + + h->flags |= HTML_NOSPACE; + if (nn->next && NULL == nn->next->next) + print_text(h, "(), and"); + else if (nn->next) + print_text(h, "(),"); + else + print_text(h, "()"); + } + + if (n->child->next) + print_text(h, "functions return"); + else + print_text(h, "function returns"); + + print_text(h, "the value 0 if successful; otherwise the value " + "-1 is returned and the global variable"); + + tag.key = ATTR_CLASS; + tag.val = "var"; + t = print_otag(h, TAG_SPAN, 1, &tag); + print_text(h, "errno"); + print_tagq(h, t); + print_text(h, "is set to indicate the error."); + return(0); +} + + +/* ARGSUSED */ +static int +mdoc_va_pre(MDOC_ARGS) +{ + struct htmlpair tag; + + tag.key = ATTR_CLASS; + tag.val = "var"; + print_otag(h, TAG_SPAN, 1, &tag); + return(1); +} + + +/* ARGSUSED */ +static int +mdoc_bq_pre(MDOC_ARGS) +{ + + if (MDOC_BODY != n->type) + return(1); + print_text(h, "\\(lB"); + h->flags |= HTML_NOSPACE; + return(1); +} + + +/* ARGSUSED */ +static void +mdoc_bq_post(MDOC_ARGS) +{ + + if (MDOC_BODY != n->type) + return; + h->flags |= HTML_NOSPACE; + print_text(h, "\\(rB"); +} diff --git a/mdoc_term.c b/mdoc_term.c index 0b270fa3..bef0329d 100644 --- a/mdoc_term.c +++ b/mdoc_term.c @@ -1842,6 +1842,7 @@ termp_in_post(DECL_ARGS) { p->bold++; + p->flags |= TERMP_NOSPACE; term_word(p, ">"); p->bold--; @@ -7,15 +7,20 @@ span.sec-head { font-weight: bold; color: blue; } span.ssec-head { font-weight: bold; color: blue; } span.addr { text-decoration: underline; } span.arg { font-style: italic; } +span.cmd { font-weight: bold; } span.config { font-weight: bold; } span.diag { font-weight: bold; } span.emph { font-style: italic; } span.farg { text-decoration: underline; } +span.fname { font-style: italic; } span.file { font-style: italic; } span.flag { font-weight: bold; } +span.includes { font-weight: bold; } span.name { font-weight: bold; } span.type { font-style: italic; } span.utility { font-weight: bold; } +span.var { font-weight: bold; } + table.header { border-bottom: 1px dotted #cccccc; } table.footer { border-top: 1px dotted #cccccc; } |