Revert previous, as requested by kristaps@.
authorschwarze <schwarze@openbsd.org>
Thu, 14 Aug 2014 00:29:12 +0000 (00:29 +0000)
committerschwarze <schwarze@openbsd.org>
Thu, 14 Aug 2014 00:29:12 +0000 (00:29 +0000)
The .Bf block can contain subblocks, so it has to render as an
element that can contain flow content.  But <em> cannot contain
flow content, only phrasing content.  Rendering .Em and .Bf differently
would by unfortunate, and closing out .Bf before subblocks and
re-opening it afterwards would merely complicate both the C code
of the program and the generated HTML code.  Besides, converting
.Em to semantic HTML markup would require some content to be put
into <em> and some into <i>, but we cannot automatically distinguish
which is which, so strictly speaking, we can't use semantic HTML
here but have to fall back to physical markup.  Wonders of HTML...

usr.bin/mandoc/html.c
usr.bin/mandoc/html.h
usr.bin/mandoc/mdoc_html.c

index 27a0a09..facd4db 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: html.c,v 1.40 2014/08/13 22:09:28 schwarze Exp $ */
+/*     $Id: html.c,v 1.41 2014/08/14 00:29:12 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -72,7 +72,6 @@ static        const struct htmldata htmltags[TAG_MAX] = {
        {"i",           0 }, /* TAG_I */
        {"code",        0 }, /* TAG_CODE */
        {"small",       0 }, /* TAG_SMALL */
-       {"em",          0 }, /* TAG_EM */
 };
 
 static const char      *const htmlattrs[ATTR_MAX] = {
index ffa6675..bbbd474 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: html.h,v 1.22 2014/08/13 15:19:24 schwarze Exp $ */
+/*     $Id: html.h,v 1.23 2014/08/14 00:29:12 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -50,7 +50,6 @@ enum  htmltag {
        TAG_I,
        TAG_CODE,
        TAG_SMALL,
-       TAG_EM,
        TAG_MAX
 };
 
index 6e754e0..bad1872 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_html.c,v 1.79 2014/08/13 15:19:24 schwarze Exp $ */
+/*     $Id: mdoc_html.c,v 1.80 2014/08/14 00:29:12 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -1081,8 +1081,10 @@ mdoc_ex_pre(MDOC_ARGS)
 static int
 mdoc_em_pre(MDOC_ARGS)
 {
+       struct htmlpair tag;
 
-       print_otag(h, TAG_EM, 0, NULL);
+       PAIR_CLASS_INIT(&tag, "emph");
+       print_otag(h, TAG_SPAN, 1, &tag);
        return(1);
 }
 
@@ -1818,7 +1820,9 @@ mdoc_bf_pre(MDOC_ARGS)
        else if (MDOC_BODY != n->type)
                return(1);
 
-       if (FONT_Sy == n->norm->Bf.font)
+       if (FONT_Em == n->norm->Bf.font)
+               PAIR_CLASS_INIT(&tag[0], "emph");
+       else if (FONT_Sy == n->norm->Bf.font)
                PAIR_CLASS_INIT(&tag[0], "symb");
        else if (FONT_Li == n->norm->Bf.font)
                PAIR_CLASS_INIT(&tag[0], "lit");
@@ -1836,8 +1840,6 @@ mdoc_bf_pre(MDOC_ARGS)
        bufcat_su(h, "margin-left", &su);
        PAIR_STYLE_INIT(&tag[1], h);
        print_otag(h, TAG_DIV, 2, tag);
-       if (FONT_Em == n->norm->Bf.font)
-               print_otag(h, TAG_EM, 0, NULL);
        return(1);
 }