diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2014-10-07 18:17:06 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2014-10-07 18:17:06 +0000 |
commit | cc47bd85065f936fd5538a2ec67962fba1d8a11c (patch) | |
tree | eed247bbc71e00b2698a2f3e1439731fff900f44 /usr.bin/mandoc | |
parent | c93257ed0cff365d3ed12a56494d36f8808d24b1 (diff) |
Switch HTML output to polyglot HTML5; have only one single -Thml mode.
Replace hard-coded widths and alignments with a minimal embedded stylesheet.
Do not use <p> because it cannot appear inside block macros.
Remove the "summary" attribute because it is not HTML5.
Written by kristaps@ some months ago, finished during EuroBSDCon.
Diffstat (limited to 'usr.bin/mandoc')
-rw-r--r-- | usr.bin/mandoc/cgi.c | 9 | ||||
-rw-r--r-- | usr.bin/mandoc/html.c | 96 | ||||
-rw-r--r-- | usr.bin/mandoc/html.h | 20 | ||||
-rw-r--r-- | usr.bin/mandoc/man_html.c | 61 | ||||
-rw-r--r-- | usr.bin/mandoc/mandoc.1 | 27 | ||||
-rw-r--r-- | usr.bin/mandoc/mdoc_html.c | 60 |
6 files changed, 102 insertions, 171 deletions
diff --git a/usr.bin/mandoc/cgi.c b/usr.bin/mandoc/cgi.c index 5a3c0d528c8..04d9c71d2ef 100644 --- a/usr.bin/mandoc/cgi.c +++ b/usr.bin/mandoc/cgi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cgi.c,v 1.36 2014/09/14 19:44:20 schwarze Exp $ */ +/* $OpenBSD: cgi.c,v 1.37 2014/10/07 18:17:05 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2014 Ingo Schwarze <schwarze@usta.de> @@ -375,13 +375,10 @@ resp_begin_html(int code, const char *msg) resp_begin_http(code, msg); - printf("<!DOCTYPE HTML PUBLIC " - " \"-//W3C//DTD HTML 4.01//EN\"" - " \"http://www.w3.org/TR/html4/strict.dtd\">\n" + printf("<!DOCTYPE html>\n" "<HTML>\n" "<HEAD>\n" - "<META HTTP-EQUIV=\"Content-Type\"" - " CONTENT=\"text/html; charset=utf-8\">\n" + "<META CHARSET=\"UTF-8\" />\n" "<LINK REL=\"stylesheet\" HREF=\"%s/man-cgi.css\"" " TYPE=\"text/css\" media=\"all\">\n" "<LINK REL=\"stylesheet\" HREF=\"%s/man.css\"" diff --git a/usr.bin/mandoc/html.c b/usr.bin/mandoc/html.c index facd4db06ed..c5177130d2a 100644 --- a/usr.bin/mandoc/html.c +++ b/usr.bin/mandoc/html.c @@ -1,6 +1,6 @@ -/* $Id: html.c,v 1.41 2014/08/14 00:29:12 schwarze Exp $ */ +/* $Id: html.c,v 1.42 2014/10/07 18:17:05 schwarze Exp $ */ /* - * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any @@ -66,17 +66,15 @@ static const struct htmldata htmltags[TAG_MAX] = { {"dt", HTML_CLRLINE}, /* TAG_DT */ {"dd", HTML_CLRLINE}, /* TAG_DD */ {"blockquote", HTML_CLRLINE}, /* TAG_BLOCKQUOTE */ - {"p", HTML_CLRLINE | HTML_NOSTACK | HTML_AUTOCLOSE}, /* TAG_P */ {"pre", HTML_CLRLINE }, /* TAG_PRE */ {"b", 0 }, /* TAG_B */ {"i", 0 }, /* TAG_I */ {"code", 0 }, /* TAG_CODE */ {"small", 0 }, /* TAG_SMALL */ + {"style", HTML_CLRLINE}, /* TAG_STYLE */ }; static const char *const htmlattrs[ATTR_MAX] = { - "http-equiv", /* ATTR_HTTPEQUIV */ - "content", /* ATTR_CONTENT */ "name", /* ATTR_NAME */ "rel", /* ATTR_REL */ "href", /* ATTR_HREF */ @@ -84,11 +82,9 @@ static const char *const htmlattrs[ATTR_MAX] = { "media", /* ATTR_MEDIA */ "class", /* ATTR_CLASS */ "style", /* ATTR_STYLE */ - "width", /* ATTR_WIDTH */ "id", /* ATTR_ID */ - "summary", /* ATTR_SUMMARY */ - "align", /* ATTR_ALIGN */ "colspan", /* ATTR_COLSPAN */ + "charset", /* ATTR_CHARSET */ }; static const char *const roffscales[SCALE_MAX] = { @@ -110,11 +106,11 @@ static int print_escape(char); static int print_encode(struct html *, const char *, int); static void print_metaf(struct html *, enum mandoc_esc); static void print_attr(struct html *, const char *, const char *); -static void *ml_alloc(char *, enum htmltype); +static void *ml_alloc(char *); static void * -ml_alloc(char *outopts, enum htmltype type) +ml_alloc(char *outopts) { struct html *h; const char *toks[5]; @@ -128,7 +124,6 @@ ml_alloc(char *outopts, enum htmltype type) h = mandoc_calloc(1, sizeof(struct html)); - h->type = type; h->tags.head = NULL; h->symtab = mchars_alloc(); @@ -157,14 +152,14 @@ void * html_alloc(char *outopts) { - return(ml_alloc(outopts, HTML_HTML_4_01_STRICT)); + return(ml_alloc(outopts)); } void * xhtml_alloc(char *outopts) { - return(ml_alloc(outopts, HTML_XHTML_1_0_STRICT)); + return(ml_alloc(outopts)); } void @@ -190,18 +185,23 @@ void print_gen_head(struct html *h) { struct htmlpair tag[4]; + struct tag *t; - tag[0].key = ATTR_HTTPEQUIV; - tag[0].val = "Content-Type"; - tag[1].key = ATTR_CONTENT; - tag[1].val = "text/html; charset=utf-8"; - print_otag(h, TAG_META, 2, tag); + tag[0].key = ATTR_CHARSET; + tag[0].val = "utf-8"; + print_otag(h, TAG_META, 1, tag); - tag[0].key = ATTR_NAME; - tag[0].val = "resource-type"; - tag[1].key = ATTR_CONTENT; - tag[1].val = "document"; - print_otag(h, TAG_META, 2, tag); + /* + * Print a default style-sheet. + */ + t = print_otag(h, TAG_STYLE, 0, NULL); + print_text(h, "table.head, table.foot { width: 100%; }\n" + "td.head-rtitle, td.foot-os { text-align: right; }\n" + "td.head-vol { text-align: center; }\n" + "table.foot td { width: 50%; }\n" + "table.head td { width: 33%; }\n" + "div.spacer { margin: 1em 0; }\n"); + print_tagq(h, t); if (h->style) { tag[0].key = ATTR_REL; @@ -491,24 +491,10 @@ print_otag(struct html *h, enum htmltag tag, for (i = 0; i < sz; i++) print_attr(h, htmlattrs[p[i].key], p[i].val); - /* Add non-overridable attributes. */ - - if (TAG_HTML == tag && HTML_XHTML_1_0_STRICT == h->type) { - print_attr(h, "xmlns", "http://www.w3.org/1999/xhtml"); - print_attr(h, "xml:lang", "en"); - print_attr(h, "lang", "en"); - } - - /* Accommodate for XML "well-formed" singleton escaping. */ + /* Accommodate for "well-formed" singleton escaping. */ if (HTML_AUTOCLOSE & htmltags[tag].flags) - switch (h->type) { - case HTML_XHTML_1_0_STRICT: - putchar('/'); - break; - default: - break; - } + putchar('/'); putchar('>'); @@ -534,26 +520,8 @@ print_ctag(struct html *h, enum htmltag tag) void print_gen_decls(struct html *h) { - const char *doctype; - const char *dtd; - const char *name; - - switch (h->type) { - case HTML_HTML_4_01_STRICT: - name = "HTML"; - doctype = "-//W3C//DTD HTML 4.01//EN"; - dtd = "http://www.w3.org/TR/html4/strict.dtd"; - break; - default: - puts("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); - name = "html"; - doctype = "-//W3C//DTD XHTML 1.0 Strict//EN"; - dtd = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"; - break; - } - printf("<!DOCTYPE %s PUBLIC \"%s\" \"%s\">\n", - name, doctype, dtd); + puts("<!DOCTYPE html>"); } void @@ -646,6 +614,18 @@ print_stagq(struct html *h, const struct tag *suntil) } void +print_paragraph(struct html *h) +{ + struct tag *t; + struct htmlpair tag; + + PAIR_CLASS_INIT(&tag, "spacer"); + t = print_otag(h, TAG_DIV, 1, &tag); + print_tagq(h, t); +} + + +void bufinit(struct html *h) { diff --git a/usr.bin/mandoc/html.h b/usr.bin/mandoc/html.h index 2f7a874fdb1..784992c51dc 100644 --- a/usr.bin/mandoc/html.h +++ b/usr.bin/mandoc/html.h @@ -1,6 +1,6 @@ -/* $OpenBSD: html.h,v 1.24 2014/09/17 19:53:35 schwarze Exp $ */ +/* $OpenBSD: html.h,v 1.25 2014/10/07 18:17:05 schwarze Exp $ */ /* - * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -44,18 +44,16 @@ enum htmltag { TAG_DT, TAG_DD, TAG_BLOCKQUOTE, - TAG_P, TAG_PRE, TAG_B, TAG_I, TAG_CODE, TAG_SMALL, + TAG_STYLE, TAG_MAX }; enum htmlattr { - ATTR_HTTPEQUIV, - ATTR_CONTENT, ATTR_NAME, ATTR_REL, ATTR_HREF, @@ -63,11 +61,9 @@ enum htmlattr { ATTR_MEDIA, ATTR_CLASS, ATTR_STYLE, - ATTR_WIDTH, ATTR_ID, - ATTR_SUMMARY, - ATTR_ALIGN, ATTR_COLSPAN, + ATTR_CHARSET, ATTR_MAX }; @@ -103,12 +99,6 @@ struct htmlpair { #define PAIR_CLASS_INIT(p, v) PAIR_INIT(p, ATTR_CLASS, v) #define PAIR_HREF_INIT(p, v) PAIR_INIT(p, ATTR_HREF, v) #define PAIR_STYLE_INIT(p, h) PAIR_INIT(p, ATTR_STYLE, (h)->buf) -#define PAIR_SUMMARY_INIT(p, v) PAIR_INIT(p, ATTR_SUMMARY, v) - -enum htmltype { - HTML_HTML_4_01_STRICT, - HTML_XHTML_1_0_STRICT -}; struct html { int flags; @@ -133,7 +123,6 @@ struct html { struct tag *metaf; /* current open font scope */ enum htmlfont metal; /* last used font */ enum htmlfont metac; /* current font mode */ - enum htmltype type; /* output media type */ int oflags; /* output options */ #define HTML_FRAGMENT (1 << 0) /* don't emit HTML/HEAD/BODY */ }; @@ -148,6 +137,7 @@ void print_text(struct html *, const char *); void print_tblclose(struct html *); void print_tbl(struct html *, const struct tbl_span *); void print_eqn(struct html *, const struct eqn *); +void print_paragraph(struct html *); void bufcat_fmt(struct html *, const char *, ...); void bufcat(struct html *, const char *); diff --git a/usr.bin/mandoc/man_html.c b/usr.bin/mandoc/man_html.c index a7982edbfb1..a1c45f620da 100644 --- a/usr.bin/mandoc/man_html.c +++ b/usr.bin/mandoc/man_html.c @@ -1,6 +1,6 @@ -/* $Id: man_html.c,v 1.55 2014/08/08 16:00:23 schwarze Exp $ */ +/* $Id: man_html.c,v 1.56 2014/10/07 18:17:05 schwarze Exp $ */ /* - * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any @@ -140,7 +140,7 @@ print_bvspace(struct html *h, const struct man_node *n) if (NULL == n->prev) return; - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); } void @@ -217,7 +217,7 @@ print_man_node(MAN_ARGS) * before printing the line's data. */ if ('\0' == *n->string) { - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); return; } @@ -297,7 +297,7 @@ a2width(const struct man_node *n, struct roffsu *su) static void man_root_pre(MAN_ARGS) { - struct htmlpair tag[3]; + struct htmlpair tag; struct tag *t, *tt; char *title; @@ -305,34 +305,26 @@ man_root_pre(MAN_ARGS) assert(man->msec); mandoc_asprintf(&title, "%s(%s)", man->title, man->msec); - PAIR_SUMMARY_INIT(&tag[0], "Document Header"); - PAIR_CLASS_INIT(&tag[1], "head"); - PAIR_INIT(&tag[2], ATTR_WIDTH, "100%"); - t = print_otag(h, TAG_TABLE, 3, tag); - PAIR_INIT(&tag[0], ATTR_WIDTH, "30%"); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); + PAIR_CLASS_INIT(&tag, "head"); + t = print_otag(h, TAG_TABLE, 1, &tag); print_otag(h, TAG_TBODY, 0, NULL); tt = print_otag(h, TAG_TR, 0, NULL); - PAIR_CLASS_INIT(&tag[0], "head-ltitle"); - print_otag(h, TAG_TD, 1, tag); + PAIR_CLASS_INIT(&tag, "head-ltitle"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, title); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "head-vol"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "center"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "head-vol"); + print_otag(h, TAG_TD, 1, &tag); if (NULL != man->vol) print_text(h, man->vol); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "head-rtitle"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "right"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "head-rtitle"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, title); print_tagq(h, t); free(title); @@ -341,29 +333,23 @@ man_root_pre(MAN_ARGS) static void man_root_post(MAN_ARGS) { - struct htmlpair tag[3]; + struct htmlpair tag; struct tag *t, *tt; - PAIR_SUMMARY_INIT(&tag[0], "Document Footer"); - PAIR_CLASS_INIT(&tag[1], "foot"); - PAIR_INIT(&tag[2], ATTR_WIDTH, "100%"); - t = print_otag(h, TAG_TABLE, 3, tag); - PAIR_INIT(&tag[0], ATTR_WIDTH, "50%"); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); + PAIR_CLASS_INIT(&tag, "foot"); + t = print_otag(h, TAG_TABLE, 1, &tag); tt = print_otag(h, TAG_TR, 0, NULL); - PAIR_CLASS_INIT(&tag[0], "foot-date"); - print_otag(h, TAG_TD, 1, tag); + PAIR_CLASS_INIT(&tag, "foot-date"); + print_otag(h, TAG_TD, 1, &tag); assert(man->date); print_text(h, man->date); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "foot-os"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "right"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "foot-os"); + print_otag(h, TAG_TD, 1, &tag); if (man->source) print_text(h, man->source); @@ -550,7 +536,7 @@ man_IP_pre(MAN_ARGS) static int man_HP_pre(MAN_ARGS) { - struct htmlpair tag; + struct htmlpair tag[2]; struct roffsu su; const struct man_node *np; @@ -570,8 +556,9 @@ man_HP_pre(MAN_ARGS) bufcat_su(h, "margin-left", &su); su.scale = -su.scale; bufcat_su(h, "text-indent", &su); - PAIR_STYLE_INIT(&tag, h); - print_otag(h, TAG_P, 1, &tag); + PAIR_STYLE_INIT(&tag[0], h); + PAIR_CLASS_INIT(&tag[1], "spacer"); + print_otag(h, TAG_DIV, 2, tag); return(1); } diff --git a/usr.bin/mandoc/mandoc.1 b/usr.bin/mandoc/mandoc.1 index 66ea1f5577f..5c7f99c27db 100644 --- a/usr.bin/mandoc/mandoc.1 +++ b/usr.bin/mandoc/mandoc.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: mandoc.1,v 1.62 2014/09/03 05:17:08 schwarze Exp $ +.\" $OpenBSD: mandoc.1,v 1.63 2014/10/07 18:17:05 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> .\" Copyright (c) 2012, 2014 Ingo Schwarze <schwarze@openbsd.org> @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: September 3 2014 $ +.Dd $Mdocdate: October 7 2014 $ .Dt MANDOC 1 .Os .Sh NAME @@ -233,7 +233,7 @@ This is the default. See .Sx ASCII Output . .It Fl T Ns Cm html -Produce strict CSS1/HTML-4.01 output. +Produce CSS1/HTML5 output. See .Sx HTML Output . .It Fl T Ns Cm lint @@ -265,9 +265,8 @@ Encode output in the UTF\-8 multi-byte format. See .Sx UTF\-8 Output . .It Fl T Ns Cm xhtml -Produce strict CSS1/XHTML-1.0 output. -See -.Sx XHTML Output . +This is a synonym for +.Fl T Ns Cm html . .El .Pp If multiple input files are specified, these will be processed by the @@ -320,7 +319,7 @@ which will normalise to \(>=60. .Ss HTML Output Output produced by .Fl T Ns Cm html -conforms to HTML-4.01 strict. +conforms to HTML5 using optional self-closing tags. .Pp The .Pa example.style.css @@ -328,7 +327,8 @@ file documents style-sheet classes available for customising output. If a style-sheet is not specified with .Fl O Ns Ar style , .Fl T Ns Cm html -defaults to simple output readable in any graphical or text-based web +defaults to simple output (via an embedded style-sheet) +readable in any graphical or text-based web browser. .Pp Special characters are rendered in decimal-encoded UTF\-8. @@ -471,15 +471,6 @@ to force a UTF\-8 locale. See .Sx Locale Output for details and options. -.Ss XHTML Output -Output produced by -.Fl T Ns Cm xhtml -conforms to XHTML-1.0 strict. -.Pp -See -.Sx HTML Output -for details; beyond generating XHTML tags instead of HTML tags, these -output modes are identical. .Sh ENVIRONMENT .Bl -tag -width MANPAGER .It Ev MANPAGER @@ -670,7 +661,7 @@ has no effect. .It Words aren't hyphenated. .El -.Ss HTML/XHTML Compatibility +.Ss HTML Compatibility .Bl -bullet -compact .It The diff --git a/usr.bin/mandoc/mdoc_html.c b/usr.bin/mandoc/mdoc_html.c index d071aa05354..0d9dd16e6b0 100644 --- a/usr.bin/mandoc/mdoc_html.c +++ b/usr.bin/mandoc/mdoc_html.c @@ -1,6 +1,6 @@ -/* $OpenBSD: mdoc_html.c,v 1.82 2014/09/17 19:53:35 schwarze Exp $ */ +/* $OpenBSD: mdoc_html.c,v 1.83 2014/10/07 18:17:05 schwarze Exp $ */ /* - * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any @@ -312,11 +312,11 @@ synopsis_pre(struct html *h, const struct mdoc_node *n) case MDOC_In: /* FALLTHROUGH */ case MDOC_Vt: - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); break; case MDOC_Ft: if (MDOC_Fn != n->tok && MDOC_Fo != n->tok) { - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); break; } /* FALLTHROUGH */ @@ -482,29 +482,23 @@ print_mdoc_node(MDOC_ARGS) static void mdoc_root_post(MDOC_ARGS) { - struct htmlpair tag[3]; + struct htmlpair tag; struct tag *t, *tt; - PAIR_SUMMARY_INIT(&tag[0], "Document Footer"); - PAIR_CLASS_INIT(&tag[1], "foot"); - PAIR_INIT(&tag[2], ATTR_WIDTH, "100%"); - t = print_otag(h, TAG_TABLE, 3, tag); - PAIR_INIT(&tag[0], ATTR_WIDTH, "50%"); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); + PAIR_CLASS_INIT(&tag, "foot"); + t = print_otag(h, TAG_TABLE, 1, &tag); print_otag(h, TAG_TBODY, 0, NULL); tt = print_otag(h, TAG_TR, 0, NULL); - PAIR_CLASS_INIT(&tag[0], "foot-date"); - print_otag(h, TAG_TD, 1, tag); + PAIR_CLASS_INIT(&tag, "foot-date"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, meta->date); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "foot-os"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "right"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "foot-os"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, meta->os); print_tagq(h, t); } @@ -512,7 +506,7 @@ mdoc_root_post(MDOC_ARGS) static int mdoc_root_pre(MDOC_ARGS) { - struct htmlpair tag[3]; + struct htmlpair tag; struct tag *t, *tt; char *volume, *title; @@ -528,33 +522,25 @@ mdoc_root_pre(MDOC_ARGS) mandoc_asprintf(&title, "%s(%s)", meta->title, meta->msec); - PAIR_SUMMARY_INIT(&tag[0], "Document Header"); - PAIR_CLASS_INIT(&tag[1], "head"); - PAIR_INIT(&tag[2], ATTR_WIDTH, "100%"); - t = print_otag(h, TAG_TABLE, 3, tag); - PAIR_INIT(&tag[0], ATTR_WIDTH, "30%"); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); - print_otag(h, TAG_COL, 1, tag); + PAIR_CLASS_INIT(&tag, "head"); + t = print_otag(h, TAG_TABLE, 1, &tag); print_otag(h, TAG_TBODY, 0, NULL); tt = print_otag(h, TAG_TR, 0, NULL); - PAIR_CLASS_INIT(&tag[0], "head-ltitle"); - print_otag(h, TAG_TD, 1, tag); + PAIR_CLASS_INIT(&tag, "head-ltitle"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, title); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "head-vol"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "center"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "head-vol"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, volume); print_stagq(h, tt); - PAIR_CLASS_INIT(&tag[0], "head-rtitle"); - PAIR_INIT(&tag[1], ATTR_ALIGN, "right"); - print_otag(h, TAG_TD, 2, tag); + PAIR_CLASS_INIT(&tag, "head-rtitle"); + print_otag(h, TAG_TD, 1, &tag); print_text(h, title); print_tagq(h, t); @@ -1168,7 +1154,7 @@ mdoc_bd_pre(MDOC_ARGS) break; } if ( ! comp) - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); return(1); } @@ -1574,7 +1560,7 @@ static int mdoc_pp_pre(MDOC_ARGS) { - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); return(0); } @@ -1902,7 +1888,7 @@ mdoc_rs_pre(MDOC_ARGS) return(1); if (n->prev && SEC_SEE_ALSO == n->sec) - print_otag(h, TAG_P, 0, NULL); + print_paragraph(h); PAIR_CLASS_INIT(&tag, "ref"); print_otag(h, TAG_SPAN, 1, &tag); |