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 b0cea2ed for ; Mon, 21 Jan 2019 08:16:41 -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 1glZRO-0006E8-I1; Mon, 21 Jan 2019 14:16:40 +0100 Received: from donnerwolke.usta.de ([172.24.96.3]) by hekate.usta.de with esmtp (Exim 4.77) (envelope-from ) id 1glZRN-0005R6-8q; Mon, 21 Jan 2019 14:16:37 +0100 Received: from athene.usta.de ([172.24.96.10]) by donnerwolke.usta.de with esmtp (Exim 4.84_2) (envelope-from ) id 1glZRN-0001ba-5V; Mon, 21 Jan 2019 14:16:37 +0100 Received: from localhost (athene.usta.de [local]) by athene.usta.de (OpenSMTPD) with ESMTPA id df045067; Mon, 21 Jan 2019 14:16:37 +0100 (CET) Date: Mon, 21 Jan 2019 14:16:37 +0100 From: Ingo Schwarze To: Pali Rohar Cc: discuss@mandoc.bsd.lv Subject: Re: Broken tables in HTML output Message-ID: <20190121131637.GC77160@athene.usta.de> References: <20181126220133.bf7siow6e5mxahhv@pali> <20181126220516.nrflslyvxufb7xnk@pali> <20181201172057.GD89021@athene.usta.de> <20181203220142.zj5yxqdmgizsmckp@pali> <20181203221454.GD92067@athene.usta.de> <20181203222045.ramwyfizw4lkk4il@pali> <20181203223743.GE92067@athene.usta.de> <20181204164414.bm4rdirdfcz3aveg@pali> <20181204180457.GA33770@athene.usta.de> <20190121093909.bs3voomg7vonpiah@pali> 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: <20190121093909.bs3voomg7vonpiah@pali> User-Agent: Mutt/1.8.0 (2017-02-23) Hi Pali, i'm leaving the complete quotations intact because the context is important here - even though it is long. Pali Rohar wrote on Mon, Jan 21, 2019 at 10:39:09AM +0100: > On Tuesday 04 December 2018 19:04:57 Ingo Schwarze wrote: >> Pali Rohar wrote on Tue, Dec 04, 2018 at 05:44:14PM +0100: >>> On Monday 03 December 2018 23:37:43 Ingo Schwarze wrote: >>>> Pali Rohar wrote on Mon, Dec 03, 2018 at 11:20:45PM +0100: >>>>> On Monday 03 December 2018 23:14:54 Ingo Schwarze wrote: >>>>>> Pali Rohar wrote on Mon, Dec 03, 2018 at 11:01:42PM +0100: >>>>>>> Seems that it is needed to put "border-bottom-style: solid" >>>>>>> for rowspanned td element. At least this is working in chrome. >>>>>> That would further degrade the quality of the HTML code written by >>>>>> mandoc. As a rule, "style=" attributes should be avoided and CSS >>>>>> should instead by used. Unfortunately, that's not possible here >>>>>> because the hard-coded presentational decisions like "draw a border >>>>>> right here" are already contained in the tbl(7) input, and there >>>>>> is no way to convert those purely presentational decisions of the >>>>>> author into semantic or structural markup that could be handled >>>>>> with CSS. >>>>>> >>>>>> But at least the amount of "style=" attributes written should be >>>>>> minimized. Only those "style=" attributes should be written that >>>>>> are required to correctly express the author's intent. >>>>> This suggestion is to move border style definition from tr do td. >>>> That would mean writing more "style=" attributes. >>>> If a row intersects N cells, N times more. >>>> That is not good. >>> You can avoid all style= attributes in tables, by declaring class= >>> attributes instead of them and then in CSS defines border styles for >>> defined classes. >> Sure, i could write >> >> >> >> >> >> and then in mandoc.css >> >> .border-left-double { border-left-style: "double"; } >> .border-bottom { border-bottom-style: "solid"; } >> .border-right { border-right-style: "solid"; } >> >> But is that better than >> >> >> >> >> >> and if it is better, why? >> >> It is almost the same amount of attribute text, with only a minor >> difference in syntax, and it doesn't add any information about >> meaning or structure. Also, there is no point for the user to >> modify ".border-left-double { }" in the stylesheet - what should >> it be mapped to as a personal style? Mapping it to, say, >> >> .border-left-double { border-top-style: solid; } >> >> just wouldn't make sense. Classes only make sense to me if they >> tell something about meaning or structure. If they are merely >> other names for physical style attributes, they seem pointless >> to me. Or am i wrong - and if so, why? > I was thinking about it... I can say there are two arguments why > to use classes instead of inline style=. > > 1) Separate style logic (semantics) outside of html text (syntax). In general and in theory, yes. But that argument does not apply to the specific class attribute we are discussing: class="border-left-double" would still be specifying styling and not semantics. It would abuse the class= attribute for physical styling. Using class= (which is *supposed* to be semantic, but wouldn't be semantic in this case) does not make "border-left-double" a statement about logic; "border-left-double" remains a styling instruction no matter what. It can't be helped because the document author specified the physical styling, without stating for which logical reasons it was chosen. > 2) Ability to correctly set style via custom css file. > If somebody wants to use custom css file, then inlined style= > attributes can cause problems. In general and in theory, yes. But that argument does not apply to the case at hand. Suppose i would put a class="border-left-double" attribute in there, and the user wanted to do CSS customization. Then all they can do is, say, replace all left double borders with top dotted borders, or something like that. Customization just doesn't make sense to me in this case. > With you are saying use this specific style. But with > you are saying that it belongs to specific class and > make abstraction how styles are used. For me it looks like a "proper" > way how to implement different things, by usage of layering abstraction. In general and in theory, yes. But in the specific case, i see no practical advantage whatsoever, and abusing class= for physical styling seems even worse to me than at least being honest and admitting that we have to do hard-coded styling because that's what the document author requested, and because we don't have the slightest idea what the intended *menaing* of these borders might be. Or what am i missing? Yours, Ingo -- To unsubscribe send an email to discuss+unsubscribe@mandoc.bsd.lv