From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 3ff84b98 for ; Sat, 24 Nov 2018 18:03:48 -0500 (EST) Date: Sat, 24 Nov 2018 18:03:48 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: mandoc: Implement horizontal and vertical alignment of tbl(7) cell X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-Id: <381d74719b72b2f2@fantadrom.bsd.lv> 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 source+unsubscribe@mandoc.bsd.lv