From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from scc-mailout-kit-02.scc.kit.edu (scc-mailout-kit-02.scc.kit.edu [129.13.231.82]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTP id bc9e73e5 for ; Sat, 24 Nov 2018 18:15:21 -0500 (EST) Received: from asta-nat.asta.uni-karlsruhe.de ([172.22.63.82] helo=hekate.usta.de) by scc-mailout-kit-02.scc.kit.edu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (envelope-from ) id 1gQh8x-0006bX-NS; Sun, 25 Nov 2018 00:15:20 +0100 Received: from donnerwolke.usta.de ([172.24.96.3]) by hekate.usta.de with esmtp (Exim 4.77) (envelope-from ) id 1gQh8w-0002ze-Dw; Sun, 25 Nov 2018 00:15:18 +0100 Received: from athene.usta.de ([172.24.96.10]) by donnerwolke.usta.de with esmtp (Exim 4.84_2) (envelope-from ) id 1gQh8w-0001kQ-B2; Sun, 25 Nov 2018 00:15:18 +0100 Received: from localhost (athene.usta.de [local]) by athene.usta.de (OpenSMTPD) with ESMTPA id 1f46f19d; Sun, 25 Nov 2018 00:15:18 +0100 (CET) Date: Sun, 25 Nov 2018 00:15:18 +0100 From: Ingo Schwarze To: Pali Rohar Cc: discuss@mandoc.bsd.lv Subject: Re: Broken tables in HTML output Message-ID: <20181124231518.GE16061@athene.usta.de> References: <20180716110335.uusqzhscwdgp5qaa@pali> <20180716152919.GB85992@athene.usta.de> X-Mailinglist: mandoc-discuss Reply-To: discuss@mandoc.bsd.lv MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180716152919.GB85992@athene.usta.de> User-Agent: Mutt/1.8.0 (2017-02-23) Hi, Ingo Schwarze wrote on Mon, Jul 16, 2018 at 05:29:19PM +0200: > Pali Rohar wrote on Mon, Jul 16, 2018 at 01:03:35PM +0200: >> It seems that mandoc is not able to format tables in HTML output >> correctly. Output is rather ugly which makes it less readable. I just implemented the first one of the many missing features you reported. Please bear with me, as i said, getting this all done will not happen quickly. [...] >> text is not aligned at all. > I added an entry to the TODO file, priority is relatively high: > > - implement horizontal and vertical alignment in HTML output > pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200 > loc * exist * algo * size * imp *** I think this is fixed by the commit below (not handling spanned cells yet). Yours, Ingo Log Message: ----------- Implement horizontal and vertical alignment of tbl(7) cell content in -T html output. This does not handle spanned cells yet. Missing feature reported by Pali dot Rohar at gmail dot com. Modified Files: -------------- mandoc: TODO mandoc.css tbl_html.c Revision Data ------------- Index: mandoc.css =================================================================== RCS file: /home/cvs/mandoc/mandoc/mandoc.css,v retrieving revision 1.37 retrieving revision 1.38 diff -Lmandoc.css -Lmandoc.css -u -p -r1.37 -r1.38 --- mandoc.css +++ mandoc.css @@ -9,7 +9,7 @@ html { max-width: 65em; } body { font-family: Helvetica,Arial,sans-serif; } table { margin-top: 0em; margin-bottom: 0em; } -td { vertical-align: top; } +td { vertical-align: middle; } ul, ol, dl { margin-top: 0em; margin-bottom: 0em; } li, dt { margin-top: 1em; } Index: tbl_html.c =================================================================== RCS file: /home/cvs/mandoc/mandoc/tbl_html.c,v retrieving revision 1.24 retrieving revision 1.25 diff -Ltbl_html.c -Ltbl_html.c -u -p -r1.24 -r1.25 --- tbl_html.c +++ tbl_html.c @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2011 Kristaps Dzonsons - * Copyright (c) 2014, 2015, 2017 Ingo Schwarze + * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -103,6 +103,7 @@ print_tbl(struct html *h, const struct t { const struct tbl_dat *dp; struct tag *tt; + const char *halign, *valign; int ic; /* Inhibit printing of spaces: we do padding ourselves. */ @@ -126,10 +127,40 @@ print_tbl(struct html *h, const struct t dp = sp->first; for (ic = 0; ic < sp->opts->cols; ic++) { print_stagq(h, tt); - print_otag(h, TAG_TD, ""); - - if (dp == NULL || dp->layout->col > ic) + if (dp == NULL || dp->layout->col > ic) { + print_otag(h, TAG_TD, ""); continue; + } + switch (dp->layout->pos) { + case TBL_CELL_CENTRE: + halign = "center"; + break; + case TBL_CELL_RIGHT: + case TBL_CELL_NUMBER: + halign = "right"; + break; + default: + halign = NULL; + break; + } + if (dp->layout->flags & TBL_CELL_TALIGN) + valign = "top"; + else if (dp->layout->flags & TBL_CELL_BALIGN) + valign = "bottom"; + else + valign = NULL; + if (halign == NULL && valign == NULL) + print_otag(h, TAG_TD, ""); + else if (halign == NULL) + print_otag(h, TAG_TD, "s", + "vertical-align", valign); + else if (valign == NULL) + print_otag(h, TAG_TD, "s", + "text-align", halign); + else + print_otag(h, TAG_TD, "ss", + "vertical-align", valign, + "text-align", halign); if (dp->layout->pos != TBL_CELL_DOWN) if (dp->string != NULL) print_text(h, dp->string); @@ -148,5 +179,4 @@ print_tbl(struct html *h, const struct t h->tbl.cols = NULL; print_tblclose(h); } - } Index: TODO =================================================================== RCS file: /home/cvs/mandoc/mandoc/TODO,v retrieving revision 1.274 retrieving revision 1.275 diff -LTODO -LTODO -u -p -r1.274 -r1.275 --- TODO +++ TODO @@ -195,10 +195,6 @@ are mere guesses, and some may be wrong. suggested by bentley@ Tue, 14 Oct 2014 04:10:55 -0600 loc * exist ** algo * size * imp ** -- implement horizontal and vertical alignment in HTML output - pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200 - loc * exist * algo * size * imp *** - - implement cell spanning in HTML output pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200 loc * exist * algo ** size ** imp ** -- To unsubscribe send an email to discuss+unsubscribe@mandoc.bsd.lv