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

💡 Border style variety (named styles + custom charset)

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

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
停滞
技术栈
c, typescript
领域
cli, tooling

调研方向

首先检查 feat/border-style 的比较以及 test/border-styles.test.ts 中失败的测试。然后阅读 src/clayterm.c 中的 render_border 和 cornerRadius 三元表达式,以及 ops.ts 中的 wire-format 路径和 PROP_BORDER 解码。完成的标准是:所请求的命名样式或自定义字形映射在解码后仍然保留,并在测试中正确渲染。

由索引模型根据 Issue 内容生成。

描述

enhancement

Is your feature request related to a problem?

We can only draw one style of border. The renderer hardcodes every glyph—corners ┌┐└┘, horizontals ─, verticals │. When cornerRadius > 0, the corners are swapped for ╭╮╰╯ .

Describe the solution you'd like

Callers should be able to pick from CSS border-style (to the extent possible), and potentially custom glyphs.

"double" would select ╔╗╚╝ / ═ / ║; a custom object maps each position (topLeft, top, topRight, right, bottomRight, bottom, bottomLeft, left) to a string drawn verbatim:

const border = {
  color: rgba(255, 255, 255),
  left: 1,
  right: 1,
  top: 1,
  bottom: 1,
  charset: "double", // or others
};

Describe alternatives you've considered

Drop our border and paint the box as raw text cells, which loses the layout engine's border reservation, junction handling, and per-side widths—reimplementing the border renderer in user space.

Additional context

Failing test case on nm/repro/border-styles (test · diff); charset is dropped today, so single-line glyphs render regardless. The change likely lives in render_border at src/clayterm.c:300 and the cornerRadius-keyed ternaries at src/clayterm.c:310-313, with the wire format threading a style/glyph field through ops.ts:256, ops.ts:138-149, and the PROP_BORDER decode at src/clayterm.c:530-537.

Implementation is in progress on feat/border-style and may be closed by its PR.

主要语言
TypeScript
星标
42
派生
2
平均合并
21 小时 40 分钟
30 天内合并 PR
9

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

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

bombshell-dev/tty 的其他 Issue

查看 bombshell-dev/tty 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

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