Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

HTML writer drops table column widths: <col /> without style="width"

未关闭
#879 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
55/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
rust
领域
backend

调研方向

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 内容生成。

描述

bug

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 folds tbl-colwidths into the colspec, which Quarto 1 only does later in a filter: its pandoc AST shows ColWidthDefault). 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 / pandoc 0.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 in treesitter_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 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

quarto-dev/q2 的其他 Issue

查看 quarto-dev/q2 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。