diff options
-rw-r--r-- | html.c | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -590,7 +590,15 @@ print_otag(struct html *h, enum htmltag tag, const char *fmt, ...) assert((htmltags[t->tag].flags & HTML_TOPHRASE) == 0); break; } - } + + /* + * Always wrap phrasing elements in a paragraph + * unless already contained in some flow container; + * never put them directly into a section. + */ + + } else if (tflags & HTML_TOPHRASE && h->tag->tag == TAG_SECTION) + print_otag(h, TAG_P, "c", "Pp"); /* Push this tag onto the stack of open scopes. */ @@ -796,6 +804,16 @@ print_gen_comment(struct html *h, struct roff_node *n) void print_text(struct html *h, const char *word) { + /* + * Always wrap text in a paragraph unless already contained in + * some flow container; never put it directly into a section. + */ + + if (h->tag->tag == TAG_SECTION) + print_otag(h, TAG_P, "c", "Pp"); + + /* Output whitespace before this text? */ + if (h->col && (h->flags & HTML_NOSPACE) == 0) { if ( ! (HTML_KEEP & h->flags)) { if (HTML_PREKEEP & h->flags) @@ -805,6 +823,11 @@ print_text(struct html *h, const char *word) print_word(h, " "); } + /* + * Print the text, optionally surrounded by HTML whitespace, + * optionally manually switching fonts before and after. + */ + assert(h->metaf == NULL); print_metaf(h); print_indent(h); |