* Aligning Columns in HTML Export Tables
@ 2010-10-20 16:42 Jeff Horn
2010-10-20 17:16 ` Bernt Hansen
0 siblings, 1 reply; 38+ messages in thread
From: Jeff Horn @ 2010-10-20 16:42 UTC (permalink / raw)
To: Org-mode ml
Hi all,
Is there a way to specify a particular column in org-mode that will be
exported right-aligned in HTML?
| A | B | C |
| 1 | 2 | 3 |
For the table above, I would like column C right aligned when I export
to HTML, but the other column aligned in the default way (left
aligned?).
Thanks in advance,
Jeff
--
Jeffrey Horn
Graduate Lecturer and PhD Student in Economics
George Mason University
(704) 271-4797
jhorn@gmu.edu
jrhorn424@gmail.com
http://www.failuretorefrain.com/jeff/
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Aligning Columns in HTML Export Tables
2010-10-20 16:42 Aligning Columns in HTML Export Tables Jeff Horn
@ 2010-10-20 17:16 ` Bernt Hansen
2010-10-20 19:04 ` Christian Moe
` (2 more replies)
0 siblings, 3 replies; 38+ messages in thread
From: Bernt Hansen @ 2010-10-20 17:16 UTC (permalink / raw)
To: Jeff Horn; +Cc: Org-mode ml
Jeff Horn <jrhorn424@gmail.com> writes:
> Is there a way to specify a particular column in org-mode that will be
> exported right-aligned in HTML?
>
> | A | B | C |
> | 1 | 2 | 3 |
>
> For the table above, I would like column C right aligned when I export
> to HTML, but the other column aligned in the default way (left
> aligned?).
I think this is supposed to work but it seems the exporters do not
honour the alignment details.
| <l> | <l> | <r> |
| A | B | C |
| 1 | 2 | 3 |
| 12 | 13 | 300 |
| 9 | 11 | 4 |
Regards,
Bernt
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-20 17:16 ` Bernt Hansen
@ 2010-10-20 19:04 ` Christian Moe
2010-10-20 20:11 ` Jeff Horn
2010-10-21 0:25 ` Sebastian Rose
2010-10-22 7:32 ` Carsten Dominik
2 siblings, 1 reply; 38+ messages in thread
From: Christian Moe @ 2010-10-20 19:04 UTC (permalink / raw)
To: Bernt Hansen; +Cc: Jeff Horn, Org-mode ml
On 10/20/10 7:16 PM, Bernt Hansen wrote:
> Jeff Horn<jrhorn424@gmail.com> writes:
>
>> Is there a way to specify a particular column in org-mode that will be
>> exported right-aligned in HTML?
>>
>> | A | B | C |
>> | 1 | 2 | 3 |
>>
>> For the table above, I would like column C right aligned when I export
>> to HTML, but the other column aligned in the default way (left
>> aligned?).
>
> I think this is supposed to work but it seems the exporters do not
> honour the alignment details.
>
> |<l> |<l> |<r> |
> | A | B | C |
> | 1 | 2 | 3 |
> | 12 | 13 | 300 |
> | 9 | 11 | 4 |
>
That's what I find. Ironically, the HTML exporter even includes a
=colgroup= with a local =align= attribute set on each =col=, but they
all get set to ~align="right"~ despite the settings in the table. Not
that it matters; e.g. Firefox doesn't honor colgroup formatting anyway.
As a CSS workaround for this particular example, you could add this to
the header lines:
: #+style: <style>tr td + td + td {text-align: right;}</style>
-- but it would clearly be nicer if the exporter honored the settings.
Yours,
CM
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-20 19:04 ` Christian Moe
@ 2010-10-20 20:11 ` Jeff Horn
0 siblings, 0 replies; 38+ messages in thread
From: Jeff Horn @ 2010-10-20 20:11 UTC (permalink / raw)
To: mail; +Cc: Bernt Hansen, Org-mode ml
On Wed, Oct 20, 2010 at 3:04 PM, Christian Moe <mail@christianmoe.com> wrote:
> #+style: <style>tr td + td + td {text-align: right;}</style>
Thanks Christian, this workaround is OK for me at the moment since I'm
just making this change in one file.
+1 (naturally) for the exporter honoring column alignment settings.
--
Jeffrey Horn
Graduate Lecturer and PhD Student in Economics
George Mason University
(704) 271-4797
jhorn@gmu.edu
jrhorn424@gmail.com
http://www.failuretorefrain.com/jeff/
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-20 17:16 ` Bernt Hansen
2010-10-20 19:04 ` Christian Moe
@ 2010-10-21 0:25 ` Sebastian Rose
2010-10-21 7:36 ` Christian Moe
2010-10-22 7:32 ` Carsten Dominik
2 siblings, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-21 0:25 UTC (permalink / raw)
To: Bernt Hansen; +Cc: Jeff Horn, Org-mode ml
Bernt Hansen <bernt@norang.ca> writes:
> Jeff Horn <jrhorn424@gmail.com> writes:
>
>> Is there a way to specify a particular column in org-mode that will be
>> exported right-aligned in HTML?
>>
>> | A | B | C |
>> | 1 | 2 | 3 |
>>
>> For the table above, I would like column C right aligned when I export
>> to HTML, but the other column aligned in the default way (left
>> aligned?).
>
> I think this is supposed to work but it seems the exporters do not
> honour the alignment details.
>
> | <l> | <l> | <r> |
> | A | B | C |
> | 1 | 2 | 3 |
> | 12 | 13 | 300 |
> | 9 | 11 | 4 |
I get
<colgroup><col align="left" /><col align="left" /><col align="right" />
</colgroup>
as expected.
In Opera it works for me, if I remove the styles for `td' from my
stylesheet. The styles for table data cells will overrule the align
attribute in the col tag.
Current Firefox seems to ignore the align attribute, although it's valid
XHTML.
The only save way to get the alignment right would be to use a "style"
attribute for each and every table cell directly:
<td style="text-align:right">....
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-21 0:25 ` Sebastian Rose
@ 2010-10-21 7:36 ` Christian Moe
2010-10-21 7:46 ` Carsten Dominik
0 siblings, 1 reply; 38+ messages in thread
From: Christian Moe @ 2010-10-21 7:36 UTC (permalink / raw)
To: Sebastian Rose; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml
On 10/21/10 2:25 AM, Sebastian Rose wrote:
(...)
>>
>> |<l> |<l> |<r> |
>> | A | B | C |
>> | 1 | 2 | 3 |
>> | 12 | 13 | 300 |
>> | 9 | 11 | 4 |
>
>
> I get
>
> <colgroup><col align="left" /><col align="left" /><col align="right" />
> </colgroup>
>
> as expected.
That's interesting. From the same example I get
<colgroup><col align="right" /><col align="right" /><col align="right"
/></colgroup>
...using freshly pulled 7.01trans. What might account for the difference?
> In Opera it works for me, if I remove the styles for `td' from my
> stylesheet. The styles for table data cells will overrule the align
> attribute in the col tag.
>
> Current Firefox seems to ignore the align attribute, although it's valid
> XHTML.
Good for Opera! I think Firefox generally ignores colgroup styling.
Doesn't work on Safari, either.
CM
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-21 7:36 ` Christian Moe
@ 2010-10-21 7:46 ` Carsten Dominik
2010-10-21 13:04 ` Sebastian Rose
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-21 7:46 UTC (permalink / raw)
To: mail; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml
On Oct 21, 2010, at 9:36 AM, Christian Moe wrote:
> On 10/21/10 2:25 AM, Sebastian Rose wrote:
> (...)
>>>
>>> |<l> |<l> |<r> |
>>> | A | B | C |
>>> | 1 | 2 | 3 |
>>> | 12 | 13 | 300 |
>>> | 9 | 11 | 4 |
>>
>>
>> I get
>>
>> <colgroup><col align="left" /><col align="left" /><col
>> align="right" />
>> </colgroup>
>>
>> as expected.
>
> That's interesting. From the same example I get
>
> <colgroup><col align="right" /><col align="right" /><col
> align="right" /></colgroup>
>
> ...using freshly pulled 7.01trans. What might account for the
> difference?
Actually, I also get what Christian gets. Sebastian, how did you get
something different?
Currently alignment is only by the fraction of number in the column,
not by the <l> and <r> markers. Should be of cause...
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-21 7:46 ` Carsten Dominik
@ 2010-10-21 13:04 ` Sebastian Rose
2010-10-21 13:25 ` Sebastian Rose
0 siblings, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-21 13:04 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, mail
Carsten Dominik <carsten.dominik@gmail.com> writes:
> On Oct 21, 2010, at 9:36 AM, Christian Moe wrote:
>
>> On 10/21/10 2:25 AM, Sebastian Rose wrote:
>> (...)
>>>>
>>>> |<l> |<l> |<r> |
>>>> | A | B | C |
>>>> | 1 | 2 | 3 |
>>>> | 12 | 13 | 300 |
>>>> | 9 | 11 | 4 |
>>>
>>>
>>> I get
>>>
>>> <colgroup><col align="left" /><col align="left" /><col align="right" />
>>> </colgroup>
>>>
>>> as expected.
>>
>> That's interesting. From the same example I get
>>
>> <colgroup><col align="right" /><col align="right" /><col align="right"
>> /></colgroup>
>>
>> ...using freshly pulled 7.01trans. What might account for the difference?
>
> Actually, I also get what Christian gets. Sebastian, how did you get something
> different?
I guess I just didn't pull for a few days.
Nononono, just kidding :)
I tried my own table, which is different:
a) The <l> line is the last one.
b) There's an empty extra column, the first one, as the docs propose.
This column contains in the first cell of the "<l> | <r>" line a
slash:
| | A | B | C |
| | 1 | 2 | 3 |
| | 12 | 13 | 300 |
| | 9 | 11 | 4 |
| / | <l> | <l> | <r> |
All this does not help. But the third difference might be the key:
c) The table is a captured column view ("#+BEGIN: columnview...") with
293 lines.
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-21 13:04 ` Sebastian Rose
@ 2010-10-21 13:25 ` Sebastian Rose
0 siblings, 0 replies; 38+ messages in thread
From: Sebastian Rose @ 2010-10-21 13:25 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, mail
Sebastian Rose <sebastian_rose@gmx.de> writes:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> On Oct 21, 2010, at 9:36 AM, Christian Moe wrote:
>>
>>> On 10/21/10 2:25 AM, Sebastian Rose wrote:
>>> (...)
>>>>>
>>>>> |<l> |<l> |<r> |
>>>>> | A | B | C |
>>>>> | 1 | 2 | 3 |
>>>>> | 12 | 13 | 300 |
>>>>> | 9 | 11 | 4 |
>>>>
>>>>
>>>> I get
>>>>
>>>> <colgroup><col align="left" /><col align="left" /><col align="right" />
>>>> </colgroup>
>>>>
>>>> as expected.
>>>
>>> That's interesting. From the same example I get
>>>
>>> <colgroup><col align="right" /><col align="right" /><col align="right"
>>> /></colgroup>
>>>
>>> ...using freshly pulled 7.01trans. What might account for the difference?
>>
>> Actually, I also get what Christian gets. Sebastian, how did you get something
>> different?
>
>
> I guess I just didn't pull for a few days.
>
> Nononono, just kidding :)
>
> I tried my own table, which is different:
>
> a) The <l> line is the last one.
> b) There's an empty extra column, the first one, as the docs propose.
> This column contains in the first cell of the "<l> | <r>" line a
> slash:
>
> | | A | B | C |
> | | 1 | 2 | 3 |
> | | 12 | 13 | 300 |
> | | 9 | 11 | 4 |
> | / | <l> | <l> | <r> |
>
>
> All this does not help. But the third difference might be the key:
>
> c) The table is a captured column view ("#+BEGIN: columnview...") with
> 293 lines.
Well, OK, forget it...
It was just that my <l>s and <r>s matched with the sensible thing to do
for each column.
Seems it's just looking at the numbers and says "OK, numbers only, right
aligned", just as you said in a previous mail.
| | A | B | C |
|---+-----+------+------|
| | 1 | bar | text |
| | 12 | test | 300 |
| | 9 | foo | 4 |
| / | <l> | <l> | <r> |
gives us
<colgroup><col align="right" /><col align="left" /><col align="left" />
</colgroup>
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-20 17:16 ` Bernt Hansen
2010-10-20 19:04 ` Christian Moe
2010-10-21 0:25 ` Sebastian Rose
@ 2010-10-22 7:32 ` Carsten Dominik
2010-10-22 11:20 ` Sebastian Rose
2010-10-25 4:36 ` Baoqiu Cui
2 siblings, 2 replies; 38+ messages in thread
From: Carsten Dominik @ 2010-10-22 7:32 UTC (permalink / raw)
To: Bernt Hansen, Eric Schulte, Dan Davison, Baoqiu Cui
Cc: Jeff Horn, Org-mode ml
On Oct 20, 2010, at 7:16 PM, Bernt Hansen wrote:
> Jeff Horn <jrhorn424@gmail.com> writes:
>
>> Is there a way to specify a particular column in org-mode that will
>> be
>> exported right-aligned in HTML?
>>
>> | A | B | C |
>> | 1 | 2 | 3 |
>>
>> For the table above, I would like column C right aligned when I
>> export
>> to HTML, but the other column aligned in the default way (left
>> aligned?).
>
> I think this is supposed to work but it seems the exporters do not
> honour the alignment details.
>
> | <l> | <l> | <r> |
> | A | B | C |
> | 1 | 2 | 3 |
> | 12 | 13 | 300 |
> | 9 | 11 | 4 |
I have now fixed this issue, at least for the HTML exporter.
1. The HTML exporter now puts a style attribute onto each
individual field to make sure the field is aligned correctly.
Many Browsers need this, as pointed out by Sebastian.
If you do not like this overhead, you can configure
org-export-html-table-align-individual-fields. If you
do, the alignment will still be noted in the column tags,
handled correctly by Opera, but not by Firefox and Safari.
2. The HTML exporter will also honor a "<c>" cookie. Note that
this will not change anything inside an Org buffer - this would
be complex to implement because of all the extra magic Org does
with limited column width etc etc.
3. The LaTeX exporter does not yet honor <c>, while it does honor
<l> and <r>. The reason for this is that currently the vector
remembering the alignment is a vector of booleans, and larger
changes are necessary in order to allow for a third value.
This will come, but I do not have the time today.
Eric and Dan,
please take note of this change and make sure that the Babel routines
do not get in trouble by this new cookie.
Baoqiu,
(or any other users of the docbook exporter)
I am not sure if the docbook format has suffered from this change,
could you please run a few tests involving tables and report back?
Jeff, thanks for kicking this threat off, this is a nice improvement.
Cheers
- Carsten
Cheers
>
> Regards,
> Bernt
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 7:32 ` Carsten Dominik
@ 2010-10-22 11:20 ` Sebastian Rose
2010-10-22 11:27 ` Carsten Dominik
2010-10-25 4:36 ` Baoqiu Cui
1 sibling, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-22 11:20 UTC (permalink / raw)
To: Carsten Dominik
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
Carsten Dominik <carsten.dominik@gmail.com> writes:
>> | <l> | <l> | <r> |
>> | A | B | C |
>> | 1 | 2 | 3 |
>> | 12 | 13 | 300 |
>> | 9 | 11 | 4 |
>
> I have now fixed this issue, at least for the HTML exporter.
>
> 1. The HTML exporter now puts a style attribute onto each
> individual field to make sure the field is aligned correctly.
> Many Browsers need this, as pointed out by Sebastian.
> If you do not like this overhead, you can configure
> org-export-html-table-align-individual-fields. If you
> do, the alignment will still be noted in the column tags,
> handled correctly by Opera, but not by Firefox and Safari.
>
> 2. The HTML exporter will also honor a "<c>" cookie. Note that
> this will not change anything inside an Org buffer - this would
> be complex to implement because of all the extra magic Org does
> with limited column width etc etc.
>
> 3. The LaTeX exporter does not yet honor <c>, while it does honor
> <l> and <r>. The reason for this is that currently the vector
> remembering the alignment is a vector of booleans, and larger
> changes are necessary in order to allow for a third value.
> This will come, but I do not have the time today.
Hi Carsten,
| | A | B | C |
|---+-----+------+------|
| | 1 | bar | text |
| | 12 | test | 300 |
| | 9 | foo | 4 |
| / | <> | <> | <> |
now gives me:
<table border="0" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption></caption>
<colgroup><col align="right" /></colgroup>
<colgroup><col align="left" /></colgroup>
<colgroup><col align="left" /></colgroup>
<thead>
and I have no style attributes in the <td> tags.
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 11:20 ` Sebastian Rose
@ 2010-10-22 11:27 ` Carsten Dominik
2010-10-22 13:59 ` Sebastian Rose
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-22 11:27 UTC (permalink / raw)
To: Sebastian Rose
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
Hi Sebastian,
my guess would be that you have customized the td and th tags? If
yes, please reset the customization, you need the new default values
(which you then can still modify).
Please check the variables org-export-table-header-tags and
org-export-table-data-tags.
- Carsten
On Oct 22, 2010, at 1:20 PM, Sebastian Rose wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>> | <l> | <l> | <r> |
>>> | A | B | C |
>>> | 1 | 2 | 3 |
>>> | 12 | 13 | 300 |
>>> | 9 | 11 | 4 |
>>
>> I have now fixed this issue, at least for the HTML exporter.
>>
>> 1. The HTML exporter now puts a style attribute onto each
>> individual field to make sure the field is aligned correctly.
>> Many Browsers need this, as pointed out by Sebastian.
>> If you do not like this overhead, you can configure
>> org-export-html-table-align-individual-fields. If you
>> do, the alignment will still be noted in the column tags,
>> handled correctly by Opera, but not by Firefox and Safari.
>>
>> 2. The HTML exporter will also honor a "<c>" cookie. Note that
>> this will not change anything inside an Org buffer - this would
>> be complex to implement because of all the extra magic Org does
>> with limited column width etc etc.
>>
>> 3. The LaTeX exporter does not yet honor <c>, while it does honor
>> <l> and <r>. The reason for this is that currently the vector
>> remembering the alignment is a vector of booleans, and larger
>> changes are necessary in order to allow for a third value.
>> This will come, but I do not have the time today.
>
>
>
> Hi Carsten,
>
>
> | | A | B | C |
> |---+-----+------+------|
> | | 1 | bar | text |
> | | 12 | test | 300 |
> | | 9 | foo | 4 |
> | / | <> | <> | <> |
>
>
> now gives me:
>
> <table border="0" cellspacing="0" cellpadding="6" rules="groups"
> frame="hsides">
> <caption></caption>
> <colgroup><col align="right" /></colgroup>
> <colgroup><col align="left" /></colgroup>
> <colgroup><col align="left" /></colgroup>
> <thead>
>
>
> and I have no style attributes in the <td> tags.
>
>
>
> Sebastian
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 11:27 ` Carsten Dominik
@ 2010-10-22 13:59 ` Sebastian Rose
2010-10-22 15:41 ` Carsten Dominik
0 siblings, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-22 13:59 UTC (permalink / raw)
To: Carsten Dominik
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
Carsten Dominik <carsten.dominik@gmail.com> writes:
> Hi Sebastian,
>
> my guess would be that you have customized the td and th tags? If yes, please
> reset the customization, you need the new default values (which you then can
> still modify).
>
> Please check the variables org-export-table-header-tags and
> org-export-table-data-tags.
I've checked them, but they are not customized:
Hide Org Export Table Data Tags:
Opening tag: <td%s>
Closing tag: </td>
State : STANDARD.
Hide Org Export Table Header Tags:
Opening tag: <th scope="%s">
Closing tag: </th>
State : STANDARD.
The export of the OPs table works as expected. But the table I've sent
is different in that it just uses empty `<>' marks for grouping and
creating lines.
Sebastian
>> | | A | B | C |
>> |---+-----+------+------|
>> | | 1 | bar | text |
>> | | 12 | test | 300 |
>> | | 9 | foo | 4 |
>> | / | <> | <> | <> |
>>
>>
>> now gives me:
>>
>> <table border="0" cellspacing="0" cellpadding="6" rules="groups"
>> frame="hsides">
>> <caption></caption>
>> <colgroup><col align="right" /></colgroup>
>> <colgroup><col align="left" /></colgroup>
>> <colgroup><col align="left" /></colgroup>
>> <thead>
>>
>>
>> and I have no style attributes in the <td> tags.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 13:59 ` Sebastian Rose
@ 2010-10-22 15:41 ` Carsten Dominik
2010-10-22 19:30 ` Sebastian Rose
2010-10-22 19:37 ` Sebastian Rose
0 siblings, 2 replies; 38+ messages in thread
From: Carsten Dominik @ 2010-10-22 15:41 UTC (permalink / raw)
To: Sebastian Rose
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
On Oct 22, 2010, at 3:59 PM, Sebastian Rose wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> Hi Sebastian,
>>
>> my guess would be that you have customized the td and th tags? If
>> yes, please
>> reset the customization, you need the new default values (which
>> you then can
>> still modify).
>>
>> Please check the variables org-export-table-header-tags and
>> org-export-table-data-tags.
>
>
> I've checked them, but they are not customized:
>
> Hide Org Export Table Data Tags:
> Opening tag: <td%s>
> Closing tag: </td>
> State : STANDARD.
This does look right.
>
> Hide Org Export Table Header Tags:
> Opening tag: <th scope="%s">
> Closing tag: </th>
> State : STANDARD.
This does not look right, it should be
Opening tag: <th scope="%s"%s>
Closing tag: </th>
>
>
> The export of the OPs table works as expected. But the table I've
> sent
> is different in that it just uses empty `<>' marks for grouping and
> creating lines.
While I do not think it is particularly nice that you
try to fool the parser in this way :-/
it actually behaves quite well :-D
Here is what I get when I export this table:
-------------------------------------------------------------------------------------------
<table border="2" cellspacing="0" cellpadding="6" rules="groups"
frame="hsides">
<caption></caption>
<colgroup><col align="right" /></colgroup><colgroup><col align="left" /
></colgroup><colgroup><col align="left" /></colgroup>
<thead>
<tr><th scope="col" style="text-align:right">A</th><th scope="col"
style="text-align:left">B</th><th scope="col" style="text-
align:left">C</th></tr>
</thead>
<tbody>
<tr><td style="text-align:right">1</td><td style="text-
align:left">bar</td><td style="text-align:left">text</td></tr>
<tr><td style="text-align:right">12</td><td style="text-
align:left">test</td><td style="text-align:left">300</td></tr>
<tr><td style="text-align:right">9</td><td style="text-
align:left">foo</td><td style="text-align:left">4</td></tr>
</tbody>
</table>
-------------------------------------------------------------------------------------------
The left/right comes from the analysis of the number of numbers
in each column...
So I must assume that maybe some of your files did not
update correctly or you have some old compiled files... ?
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 15:41 ` Carsten Dominik
@ 2010-10-22 19:30 ` Sebastian Rose
2010-10-23 5:42 ` Carsten Dominik
2010-10-22 19:37 ` Sebastian Rose
1 sibling, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-22 19:30 UTC (permalink / raw)
To: Carsten Dominik
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
Carsten Dominik <carsten.dominik@gmail.com> writes:
> On Oct 22, 2010, at 3:59 PM, Sebastian Rose wrote:
>
>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>> Hi Sebastian,
>>>
>>> my guess would be that you have customized the td and th tags? If yes,
>>> please
>>> reset the customization, you need the new default values (which you then can
>>> still modify).
>>>
>>> Please check the variables org-export-table-header-tags and
>>> org-export-table-data-tags.
>>
>>
>> I've checked them, but they are not customized:
>>
>> Hide Org Export Table Data Tags:
>> Opening tag: <td%s>
>> Closing tag: </td>
>> State : STANDARD.
>
> This does look right.
>
>>
>> Hide Org Export Table Header Tags:
>> Opening tag: <th scope="%s">
>> Closing tag: </th>
>> State : STANDARD.
>
> This does not look right, it should be
>
> Opening tag: <th scope="%s"%s>
> Closing tag: </th>
>
>
>>
>>
>> The export of the OPs table works as expected. But the table I've sent
>> is different in that it just uses empty `<>' marks for grouping and
>> creating lines.
>
> While I do not think it is particularly nice that you
> try to fool the parser in this way :-/
> it actually behaves quite well :-D
>
> Here is what I get when I export this table:
>
> -------------------------------------------------------------------------------------------
> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
> <caption></caption>
> <colgroup><col align="right" /></colgroup><colgroup><col align="left" /
>></colgroup><colgroup><col align="left" /></colgroup>
> <thead>
> <tr><th scope="col" style="text-align:right">A</th><th scope="col"
> style="text-align:left">B</th><th scope="col" style="text-
> align:left">C</th></tr>
> </thead>
> <tbody>
> <tr><td style="text-align:right">1</td><td style="text-
> align:left">bar</td><td style="text-align:left">text</td></tr>
> <tr><td style="text-align:right">12</td><td style="text-
> align:left">test</td><td style="text-align:left">300</td></tr>
> <tr><td style="text-align:right">9</td><td style="text-
> align:left">foo</td><td style="text-align:left">4</td></tr>
> </tbody>
> </table>
> -------------------------------------------------------------------------------------------
>
>
> The left/right comes from the analysis of the number of numbers
> in each column...
>
> So I must assume that maybe some of your files did not
> update correctly or you have some old compiled files... ?
OK, found it. It was in my .emacs which I didn't use for ages...
But:
<colgroup><col align="right" /></colgroup><colgroup><col align="left" /></colgroup><colgroup><col align="left" /></colgroup>
must be:
<colgroup><col align="right" /><col align="left" /><col align="left" /></colgroup>
i.e. "<colgroup>" and "</colgroup>" have to occur only once each and
wrap the "<col ... />" definitions.
The </colgroup> after each "<col ... />" happens only for the second
table. The rest is just fine :)
Correct:
| | A | B | C |
|---+-----+------+------|
| | 1 | bar | text |
| | 12 | test | 300 |
| | 9 | foo | 4 |
| / | <l> | <l> | <r> |
Wrong:
| | A | B | C |
|---+----+------+------|
| | 1 | bar | text |
| | 12 | test | 300 |
| | 9 | foo | 4 |
| / | <> | <> | <> |
Thanks for the fix!
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 15:41 ` Carsten Dominik
2010-10-22 19:30 ` Sebastian Rose
@ 2010-10-22 19:37 ` Sebastian Rose
2010-10-23 5:53 ` Carsten Dominik
1 sibling, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-22 19:37 UTC (permalink / raw)
To: Carsten Dominik
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml, Baoqiu Cui
Carsten Dominik <carsten.dominik@gmail.com> writes:
> On Oct 22, 2010, at 3:59 PM, Sebastian Rose wrote:
>
>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>> Hi Sebastian,
>>>
>>> my guess would be that you have customized the td and th tags? If yes,
>>> please
>>> reset the customization, you need the new default values (which you then can
>>> still modify).
>>>
>>> Please check the variables org-export-table-header-tags and
>>> org-export-table-data-tags.
>>
>>
>> I've checked them, but they are not customized:
>>
>> Hide Org Export Table Data Tags:
>> Opening tag: <td%s>
>> Closing tag: </td>
>> State : STANDARD.
>
> This does look right.
>
>>
>> Hide Org Export Table Header Tags:
>> Opening tag: <th scope="%s">
>> Closing tag: </th>
>> State : STANDARD.
>
> This does not look right, it should be
>
> Opening tag: <th scope="%s"%s>
> Closing tag: </th>
>
>
>>
>>
>> The export of the OPs table works as expected. But the table I've sent
>> is different in that it just uses empty `<>' marks for grouping and
>> creating lines.
>
> While I do not think it is particularly nice that you
> try to fool the parser in this way :-/
> it actually behaves quite well :-D
>
> Here is what I get when I export this table:
>
> -------------------------------------------------------------------------------------------
> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
> <caption></caption>
> <colgroup><col align="right" /></colgroup><colgroup><col align="left" /
>></colgroup><colgroup><col align="left" /></colgroup>
> <thead>
> <tr><th scope="col" style="text-align:right">A</th><th scope="col"
> style="text-align:left">B</th><th scope="col" style="text-
> align:left">C</th></tr>
> </thead>
> <tbody>
> <tr><td style="text-align:right">1</td><td style="text-
> align:left">bar</td><td style="text-align:left">text</td></tr>
> <tr><td style="text-align:right">12</td><td style="text-
> align:left">test</td><td style="text-align:left">300</td></tr>
> <tr><td style="text-align:right">9</td><td style="text-
> align:left">foo</td><td style="text-align:left">4</td></tr>
> </tbody>
> </table>
> -------------------------------------------------------------------------------------------
>
>
> The left/right comes from the analysis of the number of numbers
> in each column...
>
> So I must assume that maybe some of your files did not
> update correctly or you have some old compiled files... ?
>
> - Carsten
Hi Carsten,
one more, sorry.
How about this (line-wrapped for readability):
<tr>
<td class="right">1</td>
<td class="left">bar</td>
<td class="left">text</td>
<tr>
instead of
<tr>
<td style="text-align:right">1</td>
<td style="text-align:left">bar</td>
<td style="text-align:left">text</td>
<tr>
??
Combined with the ways to add IDs and classes to tables, we could then style the
columns better.
I would like to set this for right aligned <td> tags as default:
td.right { font-family:monospace;text-align:right; }
since most of the time I want fixed width fonts in right aligned cells.
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 19:30 ` Sebastian Rose
@ 2010-10-23 5:42 ` Carsten Dominik
2010-10-23 19:03 ` Sebastian Rose
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-23 5:42 UTC (permalink / raw)
To: Sebastian Rose; +Cc: Org-mode ml
On Oct 22, 2010, at 9:30 PM, Sebastian Rose wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> On Oct 22, 2010, at 3:59 PM, Sebastian Rose wrote:
>>
>>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>> Hi Sebastian,
>>>>
>>>> my guess would be that you have customized the td and th tags?
>>>> If yes,
>>>> please
>>>> reset the customization, you need the new default values (which
>>>> you then can
>>>> still modify).
>>>>
>>>> Please check the variables org-export-table-header-tags and
>>>> org-export-table-data-tags.
>>>
>>>
>>> I've checked them, but they are not customized:
>>>
>>> Hide Org Export Table Data Tags:
>>> Opening tag: <td%s>
>>> Closing tag: </td>
>>> State : STANDARD.
>>
>> This does look right.
>>
>>>
>>> Hide Org Export Table Header Tags:
>>> Opening tag: <th scope="%s">
>>> Closing tag: </th>
>>> State : STANDARD.
>>
>> This does not look right, it should be
>>
>> Opening tag: <th scope="%s"%s>
>> Closing tag: </th>
>>
>>
>>>
>>>
>>> The export of the OPs table works as expected. But the table I've
>>> sent
>>> is different in that it just uses empty `<>' marks for grouping and
>>> creating lines.
>>
>> While I do not think it is particularly nice that you
>> try to fool the parser in this way :-/
>> it actually behaves quite well :-D
>>
>> Here is what I get when I export this table:
>>
>> -------------------------------------------------------------------------------------------
>> <table border="2" cellspacing="0" cellpadding="6" rules="groups"
>> frame="hsides">
>> <caption></caption>
>> <colgroup><col align="right" /></colgroup><colgroup><col
>> align="left" /
>>> </colgroup><colgroup><col align="left" /></colgroup>
>> <thead>
>> <tr><th scope="col" style="text-align:right">A</th><th scope="col"
>> style="text-align:left">B</th><th scope="col" style="text-
>> align:left">C</th></tr>
>> </thead>
>> <tbody>
>> <tr><td style="text-align:right">1</td><td style="text-
>> align:left">bar</td><td style="text-align:left">text</td></tr>
>> <tr><td style="text-align:right">12</td><td style="text-
>> align:left">test</td><td style="text-align:left">300</td></tr>
>> <tr><td style="text-align:right">9</td><td style="text-
>> align:left">foo</td><td style="text-align:left">4</td></tr>
>> </tbody>
>> </table>
>> -------------------------------------------------------------------------------------------
>>
>>
>> The left/right comes from the analysis of the number of numbers
>> in each column...
>>
>> So I must assume that maybe some of your files did not
>> update correctly or you have some old compiled files... ?
>
>
> OK, found it. It was in my .emacs which I didn't use for ages...
>
> But:
>
> <colgroup><col align="right" /></colgroup><colgroup><col
> align="left" /></colgroup><colgroup><col align="left" /></colgroup>
>
> must be:
>
> <colgroup><col align="right" /><col align="left" /><col
> align="left" /></colgroup>
>
>
> i.e. "<colgroup>" and "</colgroup>" have to occur only once each and
> wrap the "<col ... />" definitions.
>
> The </colgroup> after each "<col ... />" happens only for the second
> table.
Hi Sebastian,
Are you sure about this? Because the <> is special syntax for Org to
define
column groups, and I believe it is OK to have multiple column groups in
a table.
- Carsten
>
>
> Correct:
>
> | | A | B | C |
> |---+-----+------+------|
> | | 1 | bar | text |
> | | 12 | test | 300 |
> | | 9 | foo | 4 |
> | / | <l> | <l> | <r> |
>
>
> Wrong:
>
> | | A | B | C |
> |---+----+------+------|
> | | 1 | bar | text |
> | | 12 | test | 300 |
> | | 9 | foo | 4 |
> | / | <> | <> | <> |
>
>
> Thanks for the fix!
>
>
> Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 19:37 ` Sebastian Rose
@ 2010-10-23 5:53 ` Carsten Dominik
2010-10-23 19:20 ` Sebastian Rose
2010-10-23 19:28 ` Sebastian Rose
0 siblings, 2 replies; 38+ messages in thread
From: Carsten Dominik @ 2010-10-23 5:53 UTC (permalink / raw)
To: Sebastian Rose; +Cc: Org-mode ml
On Oct 22, 2010, at 9:37 PM, Sebastian Rose wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> On Oct 22, 2010, at 3:59 PM, Sebastian Rose wrote:
>>
>>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>> Hi Sebastian,
>>>>
>>>> my guess would be that you have customized the td and th tags?
>>>> If yes,
>>>> please
>>>> reset the customization, you need the new default values (which
>>>> you then can
>>>> still modify).
>>>>
>>>> Please check the variables org-export-table-header-tags and
>>>> org-export-table-data-tags.
>>>
>>>
>>> I've checked them, but they are not customized:
>>>
>>> Hide Org Export Table Data Tags:
>>> Opening tag: <td%s>
>>> Closing tag: </td>
>>> State : STANDARD.
>>
>> This does look right.
>>
>>>
>>> Hide Org Export Table Header Tags:
>>> Opening tag: <th scope="%s">
>>> Closing tag: </th>
>>> State : STANDARD.
>>
>> This does not look right, it should be
>>
>> Opening tag: <th scope="%s"%s>
>> Closing tag: </th>
>>
>>
>>>
>>>
>>> The export of the OPs table works as expected. But the table I've
>>> sent
>>> is different in that it just uses empty `<>' marks for grouping and
>>> creating lines.
>>
>> While I do not think it is particularly nice that you
>> try to fool the parser in this way :-/
>> it actually behaves quite well :-D
>>
>> Here is what I get when I export this table:
>>
>> -------------------------------------------------------------------------------------------
>> <table border="2" cellspacing="0" cellpadding="6" rules="groups"
>> frame="hsides">
>> <caption></caption>
>> <colgroup><col align="right" /></colgroup><colgroup><col
>> align="left" /
>>> </colgroup><colgroup><col align="left" /></colgroup>
>> <thead>
>> <tr><th scope="col" style="text-align:right">A</th><th scope="col"
>> style="text-align:left">B</th><th scope="col" style="text-
>> align:left">C</th></tr>
>> </thead>
>> <tbody>
>> <tr><td style="text-align:right">1</td><td style="text-
>> align:left">bar</td><td style="text-align:left">text</td></tr>
>> <tr><td style="text-align:right">12</td><td style="text-
>> align:left">test</td><td style="text-align:left">300</td></tr>
>> <tr><td style="text-align:right">9</td><td style="text-
>> align:left">foo</td><td style="text-align:left">4</td></tr>
>> </tbody>
>> </table>
>> -------------------------------------------------------------------------------------------
>>
>>
>> The left/right comes from the analysis of the number of numbers
>> in each column...
>>
>> So I must assume that maybe some of your files did not
>> update correctly or you have some old compiled files... ?
>>
>> - Carsten
>
> Hi Carsten,
>
>
> one more, sorry.
>
>
> How about this (line-wrapped for readability):
>
>
> <tr>
> <td class="right">1</td>
> <td class="left">bar</td>
> <td class="left">text</td>
> <tr>
>
> instead of
>
> <tr>
> <td style="text-align:right">1</td>
> <td style="text-align:left">bar</td>
> <td style="text-align:left">text</td>
> <tr>
>
> ??
>
>
> Combined with the ways to add IDs and classes to tables, we could
> then style the
> columns better.
>
> I would like to set this for right aligned <td> tags as default:
>
> td.right { font-family:monospace;text-align:right; }
OK, fair enough. But I don't think I will make the monospace
the Org default, it looks a bit odd. BUt of cause you can change
this.
I have now in the default style:
td, th { vertical-align: top; }
th.right { text-align:right; }
th.left { text-align:left; }
th.center { text-align:center; }
td.right { text-align:right; }
td.left { text-align:left; }
td.center { text-align:center; }
Is there a way to write this more compactly?
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-23 5:42 ` Carsten Dominik
@ 2010-10-23 19:03 ` Sebastian Rose
0 siblings, 0 replies; 38+ messages in thread
From: Sebastian Rose @ 2010-10-23 19:03 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Org-mode ml
Carsten Dominik <carsten.dominik@gmail.com> writes:
>> OK, found it. It was in my .emacs which I didn't use for ages...
>>
>> But:
>>
>> <colgroup><col align="right" /></colgroup><colgroup><col align="left"
>> /></colgroup><colgroup><col align="left" /></colgroup>
>>
>> must be:
>>
>> <colgroup><col align="right" /><col align="left" /><col align="left"
>> /></colgroup>
>>
>>
>> i.e. "<colgroup>" and "</colgroup>" have to occur only once each and
>> wrap the "<col ... />" definitions.
>>
>> The </colgroup> after each "<col ... />" happens only for the second
>> table.
>
> Hi Sebastian,
>
> Are you sure about this? Because the <> is special syntax for Org to define
> column groups, and I believe it is OK to have multiple column groups in
> a table.
No....
I've checked, and it is indeed valid!
Oups...
I've never seen it anywhere....
Everything is fine then. Thanks again for the fix!
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-23 5:53 ` Carsten Dominik
@ 2010-10-23 19:20 ` Sebastian Rose
2010-10-23 19:28 ` Sebastian Rose
1 sibling, 0 replies; 38+ messages in thread
From: Sebastian Rose @ 2010-10-23 19:20 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Org-mode ml
Carsten Dominik <carsten.dominik@gmail.com> writes:
>> How about this (line-wrapped for readability):
>>
>>
>> <tr>
>> <td class="right">1</td>
>> <td class="left">bar</td>
>> <td class="left">text</td>
>> <tr>
>>
>> instead of
>>
>> <tr>
>> <td style="text-align:right">1</td>
>> <td style="text-align:left">bar</td>
>> <td style="text-align:left">text</td>
>> <tr>
>>
>> ??
>>
>>
>> Combined with the ways to add IDs and classes to tables, we could then style
>> the
>> columns better.
>>
>> I would like to set this for right aligned <td> tags as default:
>>
>> td.right { font-family:monospace;text-align:right; }
>
> OK, fair enough. But I don't think I will make the monospace
> the Org default, it looks a bit odd. BUt of cause you can change
> this.
Great!
> I have now in the default style:
>
> td, th { vertical-align: top; }
> th.right { text-align:right; }
> th.left { text-align:left; }
> th.center { text-align:center; }
> td.right { text-align:right; }
> td.left { text-align:left; }
> td.center { text-align:center; }
>
> Is there a way to write this more compactly?
>
> - Carsten
No, if you don't want to remove all whitespace :)
Ahhhhhhhh, that's cool!!! Thank you!!!
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-23 5:53 ` Carsten Dominik
2010-10-23 19:20 ` Sebastian Rose
@ 2010-10-23 19:28 ` Sebastian Rose
2010-10-25 6:48 ` Carsten Dominik
1 sibling, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-23 19:28 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Org-mode ml
Carsten Dominik <carsten.dominik@gmail.com> writes:
> I have now in the default style:
>
> td, th { vertical-align: top; }
> th.right { text-align:right; }
> th.left { text-align:left; }
> th.center { text-align:center; }
> td.right { text-align:right; }
> td.left { text-align:left; }
> td.center { text-align:center; }
>
> Is there a way to write this more compactly?
>
> - Carsten
But this is, what I often use:
/* Aligns block elements, too: */
.right {margin-left:auto; margin-right:0px; text-align:right;}
.left {margin-left:0px; margin-right:auto; text-align:left;}
.center {margin-left:auto; margin-right:auto; text-align:center;}
These are CSS classes I use frequently. It works for all HTML elements
AND aligns table to the right in all important browsers. I first
thought "OK, we can do this ourselves per stylesheet", but why not offer
this little goodie out-of-the-box?
Try:
(THERE'S A BUG: #+STYLE: lines are not wrapped in <style> tags anymore)
--8<---------------cut here---------------start------------->8---
#+STYLE: .right {margin-left:auto; margin-right:0px; text-align:right;}
#+STYLE: .left {margin-left:0px; margin-right:auto; text-align:left;}
#+STYLE: .center {margin-left:auto; margin-right:auto; text-align:center;}
* Tables
#+ATTR_HTML: class="left"
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+ATTR_HTML: class="center"
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+ATTR_HTML: class="right"
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
--8<---------------cut here---------------end--------------->8---
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-22 7:32 ` Carsten Dominik
2010-10-22 11:20 ` Sebastian Rose
@ 2010-10-25 4:36 ` Baoqiu Cui
2010-10-25 8:51 ` Christian Moe
1 sibling, 1 reply; 38+ messages in thread
From: Baoqiu Cui @ 2010-10-25 4:36 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison
Carsten Dominik <carsten.dominik@gmail.com> writes:
> Baoqiu,
>
> (or any other users of the docbook exporter)
> I am not sure if the docbook format has suffered from this change,
> could you please run a few tests involving tables and report back?
Thanks for supporting this new feature. DocBook exporter does not
really suffer from this change, but it does not benefit from it either.
After checking the documentation of DocBook and HTML table, it seems
that using the "class" attribute in <td> elements for alignment is not
the best solution. Attribute "align" is officially supported by DocBook
and HTML based on the following two links:
1. http://docbook.org/tdg5/en/html/html.td.html
2. http://www.w3.org/TR/html401/struct/tables.html#h-11.3.2
If I change "class" to "align" in the following lines, the same table
can be recognized by both Firefox and DocBook. I am wondering if there
is any special reason to use "class" instead of "align". If not, can we
change the elisp code to use "align"?
<tbody>
<tr><td class="left">A</td><td class="left">B</td><td class="right">C</td></tr>
<tr><td class="left">1</td><td class="left">2</td><td class="right">3</td></tr>
<tr><td class="left">12</td><td class="left">13</td><td class="right">300</td></tr>
<tr><td class="left">9</td><td class="left">11</td><td class="right">4</td></tr>
</tbody>
Thanks!
--
Baoqiu
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-23 19:28 ` Sebastian Rose
@ 2010-10-25 6:48 ` Carsten Dominik
2010-10-25 9:02 ` Giovanni Ridolfi
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-25 6:48 UTC (permalink / raw)
To: Sebastian Rose; +Cc: Org-mode ml
On Oct 23, 2010, at 9:28 PM, Sebastian Rose wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> I have now in the default style:
>>
>> td, th { vertical-align: top; }
>> th.right { text-align:right; }
>> th.left { text-align:left; }
>> th.center { text-align:center; }
I am actually using right now:
th.right { text-align:center; }
th.left { text-align:center; }
th.center { text-align:center; }
because is seem right to me that a table header is centrally
aligned even if the fields are lift or right aligned.
Does anyone know enough rules of style to tell me
if this is the right way, of if header fields are supposed
to have the same alignments as the data fields?
>> td.right { text-align:right; }
>> td.left { text-align:left; }
>> td.center { text-align:center; }
>>
>> Is there a way to write this more compactly?
>>
>> - Carsten
>
>
> But this is, what I often use:
>
> /* Aligns block elements, too: */
> .right {margin-left:auto; margin-right:0px; text-align:right;}
> .left {margin-left:0px; margin-right:auto; text-align:left;}
> .center {margin-left:auto; margin-right:auto; text-align:center;}
>
> These are CSS classes I use frequently. It works for all HTML
> elements
> AND aligns table to the right in all important browsers. I first
> thought "OK, we can do this ourselves per stylesheet", but why not
> offer
> this little goodie out-of-the-box?
So you are suggesting I should add these
to the style sheet. Sounds fine to me, with the
limitation that it might interfere with commonly
used classes?
I prefer to have at least the th.left/right/center in addition
due to the fact that I think I like centered headers.
>
> Try:
>
>
> (THERE'S A BUG: #+STYLE: lines are not wrapped in <style> tags
> anymore)
>
>
> --8<---------------cut here---------------start------------->8---
> #+STYLE: .right {margin-left:auto; margin-right:0px; text-
> align:right;}
> #+STYLE: .left {margin-left:0px; margin-right:auto; text-
> align:left;}
> #+STYLE: .center {margin-left:auto; margin-right:auto; text-
> align:center;}
Did it ever do this? I don't think so, because the documentation
of the corresponding variables is explicit about the fact that you need
to put the <style> tags.
The reason here is that you might want to put
#+STYLE: <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css
\">
where automatic <style> tags would be problematic.
I think you can do it like this:
#+STYLE: <style>
#+STYLE: .right {margin-left:auto; margin-right:0px; text-
align:right;}
#+STYLE: .left {margin-left:0px; margin-right:auto; text-
align:left;}
#+STYLE: .center {margin-left:auto; margin-right:auto; text-
align:center;}
#+STYLE: </style>
- Carsten
>
> * Tables
>
> #+ATTR_HTML: class="left"
> | a | b | c |
> |---+---+---|
> | 1 | 2 | 3 |
>
> #+ATTR_HTML: class="center"
> | a | b | c |
> |---+---+---|
> | 1 | 2 | 3 |
>
> #+ATTR_HTML: class="right"
> | a | b | c |
> |---+---+---|
> | 1 | 2 | 3 |
> --8<---------------cut here---------------end--------------->8---
>
>
>
> Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 4:36 ` Baoqiu Cui
@ 2010-10-25 8:51 ` Christian Moe
2010-10-25 9:08 ` Carsten Dominik
0 siblings, 1 reply; 38+ messages in thread
From: Christian Moe @ 2010-10-25 8:51 UTC (permalink / raw)
To: Baoqiu Cui
Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison,
Carsten Dominik
On 10/25/10 6:36 AM, Baoqiu Cui wrote:
I am wondering if there
> is any special reason to use "class" instead of "align". If not, can we
> change the elisp code to use "align"?
I believe the "align" attribute is slated for obsoletion in HTML5, on
the grounds that it's better handled by CSS.
http://www.w3.org/TR/html5/obsolete.html
It's a reason to go with "class" instead. Not a compelling one, perhaps.
My only strong opinion on this is that I absolutely agree with the
choice not to set the "style" attribute locally on each table cell.
But Sebastian Rose's request that prompted it, /could/ equally well be
addressed with the "align" attribute:
> How about this (line-wrapped for readability):
>
>
> <tr>
> <td class="right">1</td>
> <td class="left">bar</td>
> <td class="left">text</td>
> <tr>
>
> instead of
>
> <tr>
> <td style="text-align:right">1</td>
> <td style="text-align:left">bar</td>
> <td style="text-align:left">text</td>
> <tr>
>
> ??
>
>
> Combined with the ways to add IDs and classes to tables, we could then style the
> columns better.
>
> I would like to set this for right aligned <td> tags as default:
>
> td.right { font-family:monospace;text-align:right; }
Using the "align" attribute as follows,
<tr>
<td align="right">1</td>
<td align="left">bar</td>
<td align="left">text</td>
<tr>
Sebastian could achieve the same with CSS like
td[align="right"] { font-family: monospace;}
In the same way one could even use CSS to override the alignment
specified by the "align" attribute, if for whatever reason this seemed
like a good idea...
One slight advantage of the "align" attribute over "class" is that it
doesn't require the default style to contain the extra verbiage
Carsten mentioned:
> I have now in the default style:
>
> td, th { vertical-align: top; }
> th.right { text-align:right; }
> th.left { text-align:left; }
> th.center { text-align:center; }
> td.right { text-align:right; }
> td.left { text-align:left; }
> td.center { text-align:center; }
>
> Is there a way to write this more compactly?
Yours,
Christian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 6:48 ` Carsten Dominik
@ 2010-10-25 9:02 ` Giovanni Ridolfi
2010-10-25 9:09 ` Carsten Dominik
0 siblings, 1 reply; 38+ messages in thread
From: Giovanni Ridolfi @ 2010-10-25 9:02 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Org-mode ml
Carsten Dominik <carsten.dominik@gmail.com> writes:
>
> I am actually using right now:
>
> th.right { text-align:center; }
> th.left { text-align:center; }
> th.center { text-align:center; }
>
> because is seem right to me that a table header is centrally
> aligned even if the fields are lift or right aligned.
yes, seems to be 'common sense' :-D [at least here in Italy(Europe) ;-)]
> Does anyone know enough rules of style to tell me
> if this is the right way, of if header fields are supposed
> to have the same alignments as the data fields?
"Headers are by default center aligned within table cells." [1]
[1] http://www.mcu.org.uk/articles/tables.html
cheers,
Giovanni
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 8:51 ` Christian Moe
@ 2010-10-25 9:08 ` Carsten Dominik
2010-10-25 13:13 ` Christian Moe
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-25 9:08 UTC (permalink / raw)
To: mail; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison, Baoqiu Cui
On Oct 25, 2010, at 10:51 AM, Christian Moe wrote:
> On 10/25/10 6:36 AM, Baoqiu Cui wrote:
> I am wondering if there
>> is any special reason to use "class" instead of "align". If not,
>> can we
>> change the elisp code to use "align"?
>
> I believe the "align" attribute is slated for obsoletion in HTML5,
> on the grounds that it's better handled by CSS.
>
> http://www.w3.org/TR/html5/obsolete.html
>
> It's a reason to go with "class" instead. Not a compelling one,
> perhaps.
>
> My only strong opinion on this is that I absolutely agree with the
> choice not to set the "style" attribute locally on each table cell.
Hmm, butwe do now set the class in each cell. Is that any better?
- Carsten
>
> But Sebastian Rose's request that prompted it, /could/ equally well
> be addressed with the "align" attribute:
>
>> How about this (line-wrapped for readability):
>>
>>
>> <tr>
>> <td class="right">1</td>
>> <td class="left">bar</td>
>> <td class="left">text</td>
>> <tr>
>>
>> instead of
>>
>> <tr>
>> <td style="text-align:right">1</td>
>> <td style="text-align:left">bar</td>
>> <td style="text-align:left">text</td>
>> <tr>
>>
>> ??
>>
>>
>> Combined with the ways to add IDs and classes to tables, we could
>> then style the
>> columns better.
>>
>> I would like to set this for right aligned <td> tags as default:
>>
>> td.right { font-family:monospace;text-align:right; }
>
> Using the "align" attribute as follows,
>
> <tr>
> <td align="right">1</td>
> <td align="left">bar</td>
> <td align="left">text</td>
> <tr>
>
> Sebastian could achieve the same with CSS like
>
> td[align="right"] { font-family: monospace;}
>
> In the same way one could even use CSS to override the alignment
> specified by the "align" attribute, if for whatever reason this
> seemed like a good idea...
>
> One slight advantage of the "align" attribute over "class" is that
> it doesn't require the default style to contain the extra verbiage
> Carsten mentioned:
>
>> I have now in the default style:
>>
>> td, th { vertical-align: top; }
>> th.right { text-align:right; }
>> th.left { text-align:left; }
>> th.center { text-align:center; }
>> td.right { text-align:right; }
>> td.left { text-align:left; }
>> td.center { text-align:center; }
>>
>> Is there a way to write this more compactly?
>
> Yours,
> Christian
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 9:02 ` Giovanni Ridolfi
@ 2010-10-25 9:09 ` Carsten Dominik
0 siblings, 0 replies; 38+ messages in thread
From: Carsten Dominik @ 2010-10-25 9:09 UTC (permalink / raw)
To: Giovanni Ridolfi; +Cc: Org-mode ml
On Oct 25, 2010, at 11:02 AM, Giovanni Ridolfi wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>>
>> I am actually using right now:
>>
>> th.right { text-align:center; }
>> th.left { text-align:center; }
>> th.center { text-align:center; }
>>
>> because is seem right to me that a table header is centrally
>> aligned even if the fields are lift or right aligned.
>
> yes, seems to be 'common sense' :-D [at least here in
> Italy(Europe) ;-)]
>
>> Does anyone know enough rules of style to tell me
>> if this is the right way, of if header fields are supposed
>> to have the same alignments as the data fields?
>
> "Headers are by default center aligned within table cells." [1]
OK, thanks for this.
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 9:08 ` Carsten Dominik
@ 2010-10-25 13:13 ` Christian Moe
2010-10-25 13:22 ` Carsten Dominik
2010-10-25 13:43 ` Carsten Dominik
0 siblings, 2 replies; 38+ messages in thread
From: Christian Moe @ 2010-10-25 13:13 UTC (permalink / raw)
To: Carsten Dominik
Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison, Baoqiu Cui
On 10/25/10 11:08 AM, Carsten Dominik wrote:
>
> On Oct 25, 2010, at 10:51 AM, Christian Moe wrote:
>
>> On 10/25/10 6:36 AM, Baoqiu Cui wrote:
>> I am wondering if there
>>> is any special reason to use "class" instead of "align". If not,
>>> can we
>>> change the elisp code to use "align"?
>>
>> I believe the "align" attribute is slated for obsoletion in HTML5,
>> on the grounds that it's better handled by CSS.
>>
>> http://www.w3.org/TR/html5/obsolete.html
>>
>> It's a reason to go with "class" instead. Not a compelling one,
>> perhaps.
>>
>> My only strong opinion on this is that I absolutely agree with the
>> choice not to set the "style" attribute locally on each table cell.
>
> Hmm, butwe do now set the class in each cell. Is that any better?
>
> - Carsten
It's a subtle difference, and every way works, so I don't want to
waste more of your time.
#+begin_rant
But yes, I think it /is/ better, for the same reason Sebastian
requested it: Setting class is the preferred way to make all cells of
that class custom-styleable by changing a single line in the stylesheet.
As I pointed out below, though, it's not the only way. CSS lets you do
the same, nearly as easily, if "align" is used instead of "class" as
Baoqiu Cui suggested; "class" is more future-proof (HTML5), "align"
more compact (the default is already defined).
(Heck, come to think of it, Sebastian could have monospaced the
left-aligned column in his example even when Org set "style" on each
cell, using a selector like:
: td[style="text-align: left;"] { font-family: monospace; }
-- but that, I think, would be perverse.)
Over-use of the style attribute to set styles locally works against
the purpose of CSS. The local style attribute should be used for
exceptions; general rules should be handled at a higher level of the
cascade.
Having to set /anything/ on each cell just to align a column is not
optimal either, but since some browsers don't honor colgroups, it's
the most robust way.
#+end_rant
Christian
>>
>> But Sebastian Rose's request that prompted it, /could/ equally well
>> be addressed with the "align" attribute:
>>
>>> How about this (line-wrapped for readability):
>>>
>>>
>>> <tr>
>>> <td class="right">1</td>
>>> <td class="left">bar</td>
>>> <td class="left">text</td>
>>> <tr>
>>>
>>> instead of
>>>
>>> <tr>
>>> <td style="text-align:right">1</td>
>>> <td style="text-align:left">bar</td>
>>> <td style="text-align:left">text</td>
>>> <tr>
>>>
>>> ??
>>>
>>>
>>> Combined with the ways to add IDs and classes to tables, we could
>>> then style the
>>> columns better.
>>>
>>> I would like to set this for right aligned <td> tags as default:
>>>
>>> td.right { font-family:monospace;text-align:right; }
>>
>> Using the "align" attribute as follows,
>>
>> <tr>
>> <td align="right">1</td>
>> <td align="left">bar</td>
>> <td align="left">text</td>
>> <tr>
>>
>> Sebastian could achieve the same with CSS like
>>
>> td[align="right"] { font-family: monospace;}
>>
>> In the same way one could even use CSS to override the alignment
>> specified by the "align" attribute, if for whatever reason this
>> seemed like a good idea...
>>
>> One slight advantage of the "align" attribute over "class" is that
>> it doesn't require the default style to contain the extra verbiage
>> Carsten mentioned:
>>
>>> I have now in the default style:
>>>
>>> td, th { vertical-align: top; }
>>> th.right { text-align:right; }
>>> th.left { text-align:left; }
>>> th.center { text-align:center; }
>>> td.right { text-align:right; }
>>> td.left { text-align:left; }
>>> td.center { text-align:center; }
>>>
>>> Is there a way to write this more compactly?
>>
>> Yours,
>> Christian
>
> - Carsten
>
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 13:13 ` Christian Moe
@ 2010-10-25 13:22 ` Carsten Dominik
2010-10-25 14:55 ` Sebastian Rose
2010-10-25 13:43 ` Carsten Dominik
1 sibling, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-25 13:22 UTC (permalink / raw)
To: mail; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison, Baoqiu Cui
On Oct 25, 2010, at 3:13 PM, Christian Moe wrote:
> On 10/25/10 11:08 AM, Carsten Dominik wrote:
>>
>> On Oct 25, 2010, at 10:51 AM, Christian Moe wrote:
>>
>>> On 10/25/10 6:36 AM, Baoqiu Cui wrote:
>>> I am wondering if there
>>>> is any special reason to use "class" instead of "align". If not,
>>>> can we
>>>> change the elisp code to use "align"?
>>>
>>> I believe the "align" attribute is slated for obsoletion in HTML5,
>>> on the grounds that it's better handled by CSS.
>>>
>>> http://www.w3.org/TR/html5/obsolete.html
>>>
>>> It's a reason to go with "class" instead. Not a compelling one,
>>> perhaps.
>>>
>>> My only strong opinion on this is that I absolutely agree with the
>>> choice not to set the "style" attribute locally on each table cell.
>>
>> Hmm, butwe do now set the class in each cell. Is that any better?
>>
>> - Carsten
>
> It's a subtle difference, and every way works, so I don't want to
> waste more of your time.
>
> #+begin_rant
> But yes, I think it /is/ better, for the same reason Sebastian
> requested it: Setting class is the preferred way to make all cells
> of that class custom-styleable by changing a single line in the
> stylesheet.
>
> As I pointed out below, though, it's not the only way. CSS lets you
> do the same, nearly as easily, if "align" is used instead of "class"
> as Baoqiu Cui suggested; "class" is more future-proof (HTML5),
> "align" more compact (the default is already defined).
>
> (Heck, come to think of it, Sebastian could have monospaced the left-
> aligned column in his example even when Org set "style" on each
> cell, using a selector like:
> : td[style="text-align: left;"] { font-family: monospace; }
> -- but that, I think, would be perverse.)
>
> Over-use of the style attribute to set styles locally works against
> the purpose of CSS. The local style attribute should be used for
> exceptions; general rules should be handled at a higher level of the
> cascade.
I agree. But in the context of text alignment in tables, not all
browsers support
styles specified for entire columns. I think it is ridiculous to have
to specify the alignment (or a class) for each field, but the browser
realities force me.
OK, I will use class. I could make a special case for the docbook
exporter......
>
> Having to set /anything/ on each cell just to align a column is not
> optimal either, but since some browsers don't honor colgroups, it's
> the most robust way.
:-) Just what I think. OK, a class it is.
- Carsten
>>>>
>>>> td.right { font-family:monospace;text-align:right; }
>>>
>>> Using the "align" attribute as follows,
>>>
>>> <tr>
>>> <td align="right">1</td>
>>> <td align="left">bar</td>
>>> <td align="left">text</td>
>>> <tr>
>>>
>>> Sebastian could achieve the same with CSS like
>>>
>>> td[align="right"] { font-family: monospace;}
>>>
>>> In the same way one could even use CSS to override the alignment
>>> specified by the "align" attribute, if for whatever reason this
>>> seemed like a good idea...
>>>
>>> One slight advantage of the "align" attribute over "class" is that
>>> it doesn't require the default style to contain the extra verbiage
>>> Carsten mentioned:
>>>
>>>> I have now in the default style:
>>>>
>>>> td, th { vertical-align: top; }
>>>> th.right { text-align:right; }
>>>> th.left { text-align:left; }
>>>> th.center { text-align:center; }
>>>> td.right { text-align:right; }
>>>> td.left { text-align:left; }
>>>> td.center { text-align:center; }
>>>>
>>>> Is there a way to write this more compactly?
>>>
>>> Yours,
>>> Christian
>>
>> - Carsten
>>
>>
>
>
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 13:13 ` Christian Moe
2010-10-25 13:22 ` Carsten Dominik
@ 2010-10-25 13:43 ` Carsten Dominik
2010-10-25 20:04 ` Christian Moe
1 sibling, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-25 13:43 UTC (permalink / raw)
To: mail; +Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison, Baoqiu Cui
On Oct 25, 2010, at 3:13 PM, Christian Moe wrote:
> On 10/25/10 11:08 AM, Carsten Dominik wrote:
>>
>> On Oct 25, 2010, at 10:51 AM, Christian Moe wrote:
>>
>>> On 10/25/10 6:36 AM, Baoqiu Cui wrote:
>>> I am wondering if there
>>>> is any special reason to use "class" instead of "align". If not,
>>>> can we
>>>> change the elisp code to use "align"?
>>>
>>> I believe the "align" attribute is slated for obsoletion in HTML5,
>>> on the grounds that it's better handled by CSS.
>>>
>>> http://www.w3.org/TR/html5/obsolete.html
>>>
>>> It's a reason to go with "class" instead. Not a compelling one,
>>> perhaps.
>>>
>>> My only strong opinion on this is that I absolutely agree with the
>>> choice not to set the "style" attribute locally on each table cell.
>>
>> Hmm, butwe do now set the class in each cell. Is that any better?
>>
>> - Carsten
>
> It's a subtle difference, and every way works, so I don't want to
> waste more of your time.
>
> #+begin_rant
> But yes, I think it /is/ better, for the same reason Sebastian
> requested it: Setting class is the preferred way to make all cells
> of that class custom-styleable by changing a single line in the
> stylesheet.
>
> As I pointed out below, though, it's not the only way. CSS lets you
> do the same, nearly as easily, if "align" is used instead of "class"
> as Baoqiu Cui suggested; "class" is more future-proof (HTML5),
> "align" more compact (the default is already defined).
>
> (Heck, come to think of it, Sebastian could have monospaced the left-
> aligned column in his example even when Org set "style" on each
> cell, using a selector like:
> : td[style="text-align: left;"] { font-family: monospace; }
> -- but that, I think, would be perverse.)
>
> Over-use of the style attribute to set styles locally works against
> the purpose of CSS. The local style attribute should be used for
> exceptions; general rules should be handled at a higher level of the
> cascade.
>
> Having to set /anything/ on each cell just to align a column is not
> optimal either, but since some browsers don't honor colgroups, it's
> the most robust way.
> #+end_rant
>
> Christian
>
>>>
>>> But Sebastian Rose's request that prompted it, /could/ equally well
>>> be addressed with the "align" attribute:
>>>
>>>> How about this (line-wrapped for readability):
>>>>
>>>>
>>>> <tr>
>>>> <td class="right">1</td>
>>>> <td class="left">bar</td>
>>>> <td class="left">text</td>
>>>> <tr>
>>>>
>>>> instead of
>>>>
>>>> <tr>
>>>> <td style="text-align:right">1</td>
>>>> <td style="text-align:left">bar</td>
>>>> <td style="text-align:left">text</td>
>>>> <tr>
>>>>
>>>> ??
>>>>
>>>>
>>>> Combined with the ways to add IDs and classes to tables, we could
>>>> then style the
>>>> columns better.
>>>>
>>>> I would like to set this for right aligned <td> tags as default:
>>>>
>>>> td.right { font-family:monospace;text-align:right; }
>>>
>>> Using the "align" attribute as follows,
>>>
>>> <tr>
>>> <td align="right">1</td>
>>> <td align="left">bar</td>
>>> <td align="left">text</td>
>>> <tr>
>>>
>>> Sebastian could achieve the same with CSS like
>>>
>>> td[align="right"] { font-family: monospace;}
>>>
>>> In the same way one could even use CSS to override the alignment
>>> specified by the "align" attribute, if for whatever reason this
>>> seemed like a good idea...
>>>
>>> One slight advantage of the "align" attribute over "class" is that
>>> it doesn't require the default style to contain the extra verbiage
>>> Carsten mentioned:
>>>
>>>> I have now in the default style:
>>>>
>>>> td, th { vertical-align: top; }
>>>> th.right { text-align:right; }
>>>> th.left { text-align:left; }
>>>> th.center { text-align:center; }
>>>> td.right { text-align:right; }
>>>> td.left { text-align:left; }
>>>> td.center { text-align:center; }
>>>>
>>>> Is there a way to write this more compactly?
>>>
>>> Yours,
>>> Christian
>>
>> - Carsten
>>
>>
>
>
Actually, I have one more question:
The exporter does now (in addition to setting classes for individual
fields)
<colgroup><col align="left" /><col align="right" /><col
align="center" />
Should this be classes instead of align attributes as well?
Thanks!
- Carsten
- Carsten
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 13:22 ` Carsten Dominik
@ 2010-10-25 14:55 ` Sebastian Rose
2010-10-25 20:41 ` Christian Moe
2010-10-25 21:52 ` Baoqiu Cui
0 siblings, 2 replies; 38+ messages in thread
From: Sebastian Rose @ 2010-10-25 14:55 UTC (permalink / raw)
To: Carsten Dominik
Cc: Jeff Horn, mail, Dan Davison, Bernt Hansen, Org-mode ml,
Baoqiu Cui
Carsten Dominik <carsten.dominik@gmail.com> writes:
> OK, I will use class. I could make a special case for the docbook
> exporter......
+1
>> Having to set /anything/ on each cell just to align a column is not optimal
>> either, but since some browsers don't honor colgroups, it's the most robust
>> way.
How refer to all right-aligned `td' elements in a certain tables without
some special attribute anyway. `class' preferred since this is CSS2 and
will work in commen browsers. I'm not sure how which browsers will
understand the selector `table#special td[align="right"] {...}'.
BTW: Org mode's exports to XHTML, not HTML 4.01 or HTML 5 (which is a
proposal, not a "standard" or recommendation yet). Still,
'<td align="right">' is valid XHTML, too.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 13:43 ` Carsten Dominik
@ 2010-10-25 20:04 ` Christian Moe
2010-10-25 21:39 ` Sebastian Rose
0 siblings, 1 reply; 38+ messages in thread
From: Christian Moe @ 2010-10-25 20:04 UTC (permalink / raw)
To: Carsten Dominik
Cc: Bernt Hansen, Jeff Horn, Org-mode ml, Dan Davison, Baoqiu Cui
> Actually, I have one more question:
>
> The exporter does now (in addition to setting classes for individual
> fields)
>
> <colgroup><col align="left" /><col align="right" /><col align="center" />
>
> Should this be classes instead of align attributes as well?
>
> Thanks!
>
> - Carsten
Maybe someone with a browser where colgroups actually do work (Opera!)
can check
1. if they only work with the align attribute, and not with CSS, and
2. whether they still work (take precedence) now that the individual
cells are aligned with CSS for their class.
Unless the answer to both is "yes", I'd say classes there too, to be
consistent with what you're doing on cells (and where HTML5 seems to
be heading).
Christian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 14:55 ` Sebastian Rose
@ 2010-10-25 20:41 ` Christian Moe
2010-10-25 21:52 ` Baoqiu Cui
1 sibling, 0 replies; 38+ messages in thread
From: Christian Moe @ 2010-10-25 20:41 UTC (permalink / raw)
To: Sebastian Rose; +Cc: Org-mode ml
[Veering off-topic, just to round off a discussion]
On 10/25/10 4:55 PM, Sebastian Rose wrote:
>
> How refer to all right-aligned `td' elements in a certain tables without
> some special attribute anyway.
Fair point. (In an ideal world, as long as the whole column is
right-aligned it should be enough to refer to all right-aligned `col'
elements, but this clearly is not the case today.)
> `class' preferred since this is CSS2 and
> will work in commen browsers. I'm not sure how which browsers will
> understand the selector `table#special td[align="right"] {...}'.
Firefox, Safari, ... The attribute selector is CSS2, too. But I agree
`class' is preferred.
>
> BTW: Org mode's exports to XHTML, not HTML 4.01 or HTML 5 (which is a
> proposal, not a "standard" or recommendation yet). Still,
> '<td align="right">' is valid XHTML, too.
Absolutely, I didn't mean to imply otherwise. But I think in this
regard, at least, the thinking behind the HTML 5 proposal makes sense.
(As for the relationship between HTML 5 and XHTML, let's not go there...)
Christian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 20:04 ` Christian Moe
@ 2010-10-25 21:39 ` Sebastian Rose
2010-10-26 5:12 ` Carsten Dominik
0 siblings, 1 reply; 38+ messages in thread
From: Sebastian Rose @ 2010-10-25 21:39 UTC (permalink / raw)
To: mail
Cc: Jeff Horn, Dan Davison, Bernt Hansen, Org-mode ml,
Carsten Dominik, Baoqiu Cui
Christian Moe <mail@christianmoe.com> writes:
> Maybe someone with a browser where colgroups actually do work (Opera!) can check
>
> 1. if they only work with the align attribute, and not with CSS, and
>
> 2. whether they still work (take precedence) now that the individual cells are
> aligned with CSS for their class.
They _never_ took precedence, as soon as I used a style like this:
/* My default for all td elements */
td { text-align:left; }
The `td' style will alway be a "better" CSS-match than the col's style
or class attribute, even then the col's align attribute. It's even the
expected behaviour according to CSS standards since that what's the `C'
in CSS means. I have to remove my favourite default style for td
elements from my stylesheet to make that work in Opera, too. In current
FF it does not work at all.
Here's another test:
CSS:
--8<---------------cut here---------------start------------->8---
col.right { text-align:right;vertical-align:top;background-color:red; }
col.left { text-align:left;vertical-align:top;background-color:green; }
col.center { text-align:center;vertical-align:top;background-color:blue; }
--8<---------------cut here---------------end--------------->8---
A table:
--8<---------------cut here---------------start------------->8---
<table border="0" summary="">
<caption></caption>
<colgroup><col class="left" /><col class="center" /><col class="right" />
</colgroup>
<thead>
<tr><th>A</th><th>B</th><th>C</th></tr>
</thead>
<tbody>
<tr><td>1</td><td >bar</td><td>text</td></tr>
<tr><td>12</td><td >test</td><td>300</td></tr>
<tr><td>9</td><td >foo</td><td>4</td></tr>
</tbody>
</table>
--8<---------------cut here---------------end--------------->8---
The only `style' that works that way is the `background-color'. In
Opera and FF at least.
Means, the `class' attribute in <col> elements doesn't work very well
(but '<col class="odd" /><col class="even" />' might make sense with
alternating colors)..
Both, 'align' and the 'style' attribute will be overwritten by a default
style for a <td> element in the users stylesheet (some prefere center,
some left alignment as the default).
It's common practice to have `style' or `class' attribute in td
elements. That's what classes are for in the end. Make HTML elements
members of a group with certain properties.
Why not jut go with it?
Look at `magento's code, Drupal, whatever. They even use more those
usefull classes, e.g. `first' and `last' for the first and last elements
of lists. HTML elements without classes are hard to find. The reason
is, that HTML is just a document structure. Classes (and IDs) make
those elements live.
"first" "last" "right" "left" "content" "footnote" "menu" "comment"
"big" "small" "light" "dark" "pro" "contra" - classes make the
difference.
Plus 'class="right"' is easy to change in central place left
entrirely to the user: the stylesheet.
XML is not meant to avoid clutter. And if it was, something went
terribly wrong, I guess :)
Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 14:55 ` Sebastian Rose
2010-10-25 20:41 ` Christian Moe
@ 2010-10-25 21:52 ` Baoqiu Cui
2010-10-26 5:11 ` Carsten Dominik
1 sibling, 1 reply; 38+ messages in thread
From: Baoqiu Cui @ 2010-10-25 21:52 UTC (permalink / raw)
To: Sebastian Rose
Cc: Jeff Horn, mail, Dan Davison, Bernt Hansen, Org-mode ml,
Carsten Dominik
Sebastian Rose <sebastian_rose@gmx.de> writes:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> OK, I will use class. I could make a special case for the docbook
>> exporter......
>
> +1
+1 for making a "special case for the docbook exporter". :-) (DocBook
documents can be rendered in different formats, some of which (like PDF)
may know nothing about CSS.)
> BTW: Org mode's exports to XHTML, not HTML 4.01 or HTML 5 (which is a
> proposal, not a "standard" or recommendation yet). Still,
> '<td align="right">' is valid XHTML, too.
Maybe we should add a parameter to function org-format-org-table-html to
indicate whether we want to format pure standard XHTML tables that do
not use "class" or CSS related stuff.
Thanks,
--
Baoqiu
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 21:52 ` Baoqiu Cui
@ 2010-10-26 5:11 ` Carsten Dominik
2010-10-26 16:03 ` Baoqiu Cui
0 siblings, 1 reply; 38+ messages in thread
From: Carsten Dominik @ 2010-10-26 5:11 UTC (permalink / raw)
To: Baoqiu Cui; +Cc: Jeff Horn, mail, Dan Davison, Bernt Hansen, Org-mode ml
On Oct 25, 2010, at 11:52 PM, Baoqiu Cui wrote:
> Sebastian Rose <sebastian_rose@gmx.de> writes:
>
>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>> OK, I will use class. I could make a special case for the docbook
>>> exporter......
>>
>> +1
>
> +1 for making a "special case for the docbook exporter". :-) (DocBook
> documents can be rendered in different formats, some of which (like
> PDF)
> may know nothing about CSS.)
>
>> BTW: Org mode's exports to XHTML, not HTML 4.01 or HTML 5 (which is a
>> proposal, not a "standard" or recommendation yet). Still,
>> '<td align="right">' is valid XHTML, too.
>
> Maybe we should add a parameter to function org-format-org-table-
> html to
> indicate whether we want to format pure standard XHTML tables that do
> not use "class" or CSS related stuff.
This is exactly how I have done it now.
- Carsten
>
> Thanks,
>
> --
> Baoqiu
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-25 21:39 ` Sebastian Rose
@ 2010-10-26 5:12 ` Carsten Dominik
0 siblings, 0 replies; 38+ messages in thread
From: Carsten Dominik @ 2010-10-26 5:12 UTC (permalink / raw)
To: Sebastian Rose
Cc: Jeff Horn, mail, Dan Davison, Bernt Hansen, Org-mode ml,
Baoqiu Cui
OK, I think this change is now done. Thank you all for sharing your
expertise!
- Carsten
On Oct 25, 2010, at 11:39 PM, Sebastian Rose wrote:
> Christian Moe <mail@christianmoe.com> writes:
>> Maybe someone with a browser where colgroups actually do work
>> (Opera!) can check
>>
>> 1. if they only work with the align attribute, and not with CSS, and
>>
>> 2. whether they still work (take precedence) now that the
>> individual cells are
>> aligned with CSS for their class.
>
> They _never_ took precedence, as soon as I used a style like this:
>
> /* My default for all td elements */
> td { text-align:left; }
>
> The `td' style will alway be a "better" CSS-match than the col's style
> or class attribute, even then the col's align attribute. It's even
> the
> expected behaviour according to CSS standards since that what's the
> `C'
> in CSS means. I have to remove my favourite default style for td
> elements from my stylesheet to make that work in Opera, too. In
> current
> FF it does not work at all.
>
> Here's another test:
>
> CSS:
> --8<---------------cut here---------------start------------->8---
> col.right { text-align:right;vertical-align:top;background-
> color:red; }
> col.left { text-align:left;vertical-align:top;background-
> color:green; }
> col.center { text-align:center;vertical-align:top;background-
> color:blue; }
> --8<---------------cut here---------------end--------------->8---
>
>
>
> A table:
>
> --8<---------------cut here---------------start------------->8---
> <table border="0" summary="">
> <caption></caption>
> <colgroup><col class="left" /><col class="center" /><col
> class="right" />
> </colgroup>
> <thead>
> <tr><th>A</th><th>B</th><th>C</th></tr>
> </thead>
> <tbody>
> <tr><td>1</td><td >bar</td><td>text</td></tr>
> <tr><td>12</td><td >test</td><td>300</td></tr>
> <tr><td>9</td><td >foo</td><td>4</td></tr>
> </tbody>
> </table>
> --8<---------------cut here---------------end--------------->8---
>
>
> The only `style' that works that way is the `background-color'. In
> Opera and FF at least.
>
> Means, the `class' attribute in <col> elements doesn't work very well
> (but '<col class="odd" /><col class="even" />' might make sense with
> alternating colors)..
>
> Both, 'align' and the 'style' attribute will be overwritten by a
> default
> style for a <td> element in the users stylesheet (some prefere center,
> some left alignment as the default).
>
>
>
> It's common practice to have `style' or `class' attribute in td
> elements. That's what classes are for in the end. Make HTML elements
> members of a group with certain properties.
>
> Why not jut go with it?
>
>
> Look at `magento's code, Drupal, whatever. They even use more those
> usefull classes, e.g. `first' and `last' for the first and last
> elements
> of lists. HTML elements without classes are hard to find. The reason
> is, that HTML is just a document structure. Classes (and IDs) make
> those elements live.
>
> "first" "last" "right" "left" "content" "footnote" "menu" "comment"
> "big" "small" "light" "dark" "pro" "contra" - classes make the
> difference.
>
> Plus 'class="right"' is easy to change in central place left
> entrirely to the user: the stylesheet.
>
> XML is not meant to avoid clutter. And if it was, something went
> terribly wrong, I guess :)
>
>
>
> Sebastian
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: Re: Aligning Columns in HTML Export Tables
2010-10-26 5:11 ` Carsten Dominik
@ 2010-10-26 16:03 ` Baoqiu Cui
0 siblings, 0 replies; 38+ messages in thread
From: Baoqiu Cui @ 2010-10-26 16:03 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Jeff Horn, mail, Dan Davison, Bernt Hansen, Org-mode ml
Carsten Dominik <carsten.dominik@gmail.com> writes:
> On Oct 25, 2010, at 11:52 PM, Baoqiu Cui wrote:
>
>> Sebastian Rose <sebastian_rose@gmx.de> writes:
>>
>>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>> OK, I will use class. I could make a special case for the docbook
>>>> exporter......
>>>
>>> +1
>>
>> +1 for making a "special case for the docbook exporter". :-) (DocBook
>> documents can be rendered in different formats, some of which (like
>> PDF)
>> may know nothing about CSS.)
>>
>>> BTW: Org mode's exports to XHTML, not HTML 4.01 or HTML 5 (which is a
>>> proposal, not a "standard" or recommendation yet). Still,
>>> '<td align="right">' is valid XHTML, too.
>>
>> Maybe we should add a parameter to function org-format-org-table-
>> html to
>> indicate whether we want to format pure standard XHTML tables that do
>> not use "class" or CSS related stuff.
>
> This is exactly how I have done it now.
Thanks for the quick change, Carsten! I just tested the latest code and
everything looks good.
--
Baoqiu
^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2010-10-26 16:04 UTC | newest]
Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-20 16:42 Aligning Columns in HTML Export Tables Jeff Horn
2010-10-20 17:16 ` Bernt Hansen
2010-10-20 19:04 ` Christian Moe
2010-10-20 20:11 ` Jeff Horn
2010-10-21 0:25 ` Sebastian Rose
2010-10-21 7:36 ` Christian Moe
2010-10-21 7:46 ` Carsten Dominik
2010-10-21 13:04 ` Sebastian Rose
2010-10-21 13:25 ` Sebastian Rose
2010-10-22 7:32 ` Carsten Dominik
2010-10-22 11:20 ` Sebastian Rose
2010-10-22 11:27 ` Carsten Dominik
2010-10-22 13:59 ` Sebastian Rose
2010-10-22 15:41 ` Carsten Dominik
2010-10-22 19:30 ` Sebastian Rose
2010-10-23 5:42 ` Carsten Dominik
2010-10-23 19:03 ` Sebastian Rose
2010-10-22 19:37 ` Sebastian Rose
2010-10-23 5:53 ` Carsten Dominik
2010-10-23 19:20 ` Sebastian Rose
2010-10-23 19:28 ` Sebastian Rose
2010-10-25 6:48 ` Carsten Dominik
2010-10-25 9:02 ` Giovanni Ridolfi
2010-10-25 9:09 ` Carsten Dominik
2010-10-25 4:36 ` Baoqiu Cui
2010-10-25 8:51 ` Christian Moe
2010-10-25 9:08 ` Carsten Dominik
2010-10-25 13:13 ` Christian Moe
2010-10-25 13:22 ` Carsten Dominik
2010-10-25 14:55 ` Sebastian Rose
2010-10-25 20:41 ` Christian Moe
2010-10-25 21:52 ` Baoqiu Cui
2010-10-26 5:11 ` Carsten Dominik
2010-10-26 16:03 ` Baoqiu Cui
2010-10-25 13:43 ` Carsten Dominik
2010-10-25 20:04 ` Christian Moe
2010-10-25 21:39 ` Sebastian Rose
2010-10-26 5:12 ` Carsten Dominik
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).