HTML writer drops table column widths: <col /> without style="width"
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Start in pampa/src/writers/html.rs and inspect the colgroup_kept_when_any_width_set test and the HTML table writer; the issue says the colspec already contains percentages for sections A and D. Render the supplied widths.qmd example to HTML and check whether each percentage column gets a width style. The separate pipe table dash-width reader gap is out of scope for this writer change.
由索引模型根据 Issue 内容生成。
描述
Summary
Table column widths never reach the HTML output. The reader produces the right ColWidth values (both for tbl-colwidths and for ::: {.list-table widths="…"}), the writer decides a <colgroup> is needed because of them, and then writes every column as a bare <col />. Quarto 1 writes <col style="width: 20%"> for the same input.
The writer already knows: pampa/src/writers/html.rs has a test colgroup_kept_when_any_width_set whose comment says "The width itself isn't rendered yet — only the presence check" (bd-hixmy, from the table-default-rendering-parity plan, which scoped widths out). This issue is the user-visible symptom, filed so it is tracked somewhere findable: a docs site porting a fixed-layout config table (table-layout: fixed needs the <col> widths) had to reproduce them in CSS with col:nth-child(n) rules.
Repro
widths.qmd:
---
title: column widths
---
## A tbl-colwidths on a pipe table
| Key | Description | Type | Default |
|---|---|---|---|
| a | b | c | d |
: {tbl-colwidths="[20,40,15,25]"}
## B pipe table with relative dash widths (line over 72 chars)
| Key | Description | Type | Default |
|------|--------------------------|-------|----------------|
| a | a long description that pushes this line well past the seventy-two column limit | c | d |
## D list-table with widths
::: {.list-table widths="20,40,15,25"}
* - Key
- Description
- Type
- Default
* - a
- b
- c
- d
:::
quarto render widths.qmd --to html --output-dir q1
q2 render widths.qmd --to html --output-dir q2out
<col> elements per section:
| Section | Quarto 1 (99.9.9 dev) | q2 0.35.0-nightly.20261021 |
|---|---|---|
A tbl-colwidths |
<col style="width: 20%"> 40% 15% 25% |
no <colgroup> at all, plus an empty <caption> </caption> |
| B dash-width pipe table | <col style="width: 10%"> 47% 12% 29% |
no <colgroup> |
D list-table widths |
<col style="width: 20%"> 40% 15% 25% |
<colgroup> with four bare <col /> |
AST colspecs (q2 render --to json vs quarto pandoc -t json):
- A: q2
ColWidth 0.2 / 0.4 / 0.15 / 0.25(the reader foldstbl-colwidthsinto the colspec, which Quarto 1 only does later in a filter: its pandoc AST showsColWidthDefault). So for A the reader is ahead of the writer, and only the writer is missing. - D: q2
ColWidth 0.2 / 0.4 / 0.15 / 0.25. Same: writer only. - B: q2
ColWidthDefault×4, Quarto 1 / pandoc0.109 / 0.473 / 0.127 / 0.291. Pandoc's rule (relative widths from the separator-row dash counts when any line exceeds the column width) is not implemented intreesitter_utils/pipe_table.rs(colspec.push((alignment, ColWidth::Default))). That is a reader gap, mentioned here only so the three cases are in one place; split it out if you prefer.
Expected
<col style="width: NN%"> per column whenever the colspec has a ColWidth::Percentage, matching Quarto 1 / pandoc's HTML writer (percentages rounded to integers, as pandoc does). Section A should also not emit an empty <caption> when the caption block only carries attributes.
Environment
q2 0.35.0-nightly.20261021 (macOS arm64); repo at ad283a2cb. Quarto 1 at 99.9.9 (dev build from quarto-cli).
- 主要语言
- Rust
- 星标
- 278
- 派生
- 19
- 平均合并
- 20 小时 23 分钟
- 30 天内合并 PR
- 164
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
quarto-dev/q2 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 54/100
quarto-dev/q2#905 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 63/100
quarto-dev/q2#904 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 48/100
quarto-dev/q2#900 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
quarto-dev/q2#896 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
quarto-dev/q2#893 · 3 个 reaction ·
维护者通常 1 天内回复
相似的 Issue
-
checkpoint/verify/rebuild_indexes on a thread holding a WriteTransaction deadlock instead of INT-001未关闭bug known-issue
难度 2/5 1-3 小时 新手友好度 74/100
project-minigraf/minigraf#734 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 88/100
维护者通常 4 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
bitcoindevkit/electrum_streaming_client#57 ·
维护者通常 2 天内回复