Code with unicode chars can't be tried in playg
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 42/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript
调研方向
从 assets/scripts/v-docs.js 第 340-341 行开始,跟踪 Try it 流程直到 https://play.vlang.io/。使用一个包含非 ASCII 字符的示例重现该失败,然后验证文档流程中的编码和 vplay 端的解码是否能正确保留 Unicode。完成标准是 Unicode 代码可以在不出现 btoa 错误的情况下打开并试运行。
由索引模型根据 Issue 内容生成。
描述
If you click on "Try it..." you encounter an issue if the code has a non ASCII char:
From https://github.com/vlang/docs/blob/main/assets/scripts/v-docs.js#L340-L341
let code = editor.getValue();
let url = "https://play.vlang.io/?base64=" + btoa(code);
btoa can not encode Unicode chars.
The solution would need to be implemented on the vplay end as well to be able to decode the text ( https://developer.mozilla.org/en-US/docs/Web/API/Window/btoa#unicode_strings ):
function base64ToBytes(base64) {
const binString = atob(base64);
return Uint8Array.from(binString, (m) => m.codePointAt(0));
}
function bytesToBase64(bytes) {
const binString = Array.from(bytes, (byte) =>
String.fromCodePoint(byte),
).join("");
return btoa(binString);
}
// Usage
bytesToBase64(new TextEncoder().encode("a Ā 𐀀 文 🦄")); // "YSDEgCDwkICAIOaWhyDwn6aE"
new TextDecoder().decode(base64ToBytes("YSDEgCDwkICAIOaWhyDwn6aE")); // "a Ā 𐀀 文 🦄"
- 主要语言
- HTML
- 星标
- 33
- 派生
- 8
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
vlang/docs 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 38/100
-
难度 3/5 1-2 天 新手友好度 35/100
-
难度 2/5 1-3 小时 新手友好度 45/100
-
Search window未关闭
难度 5/5 一周以上 新手友好度 25/100
相似的 Issue
-
area: browser
难度 2/5 1-3 小时 新手友好度 62/100
manaflow-ai/cmux#27619 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
SamuelNDCE/plume#41 ·
维护者通常 1 天内回复
-
[UI] Theme Provider Props table overflows on mobile viewports可能已有人在做 @SajanBisht 今天认领。 未关闭framework/gatsby help wanted kind/bug
难度 2/5 1-3 小时 新手友好度 78/100
layer5io/layer5#8264 · 1 条评论 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 67/100
Jupiterp-UMD/Jupiterp#969 ·
维护者通常 1 天内回复
-
framework/hugo help wanted kind/bug language/css language/javascript
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复