Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions TeXmacs/plugins/account/progs/liii/ocr.scm
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ t: tree
|#
(tm-define (ocr-to-latex-by-cursor t)
(let* ((extension (get-image-extension (get-image t 0 #t)))
(temp-name (string-append temp-dir "/temp-" (number->string (current-time)) "." extension))
(temp-name (string-append temp-dir "/temp-" (number->string (texmacs-time)) "." extension))
(data-list
(get-image t 0 #f)))
(when (and (list? data-list) (not (null? data-list)))
Expand Down Expand Up @@ -140,7 +140,7 @@ t: tree
|#
(tm-define (ocr-to-latex-by-image t)
(let* ((extention (get-image-extension (get-image t 0 #t)))
(temp-name (string-append temp-dir "/temp-" (number->string (current-time)) "." extention))
(temp-name (string-append temp-dir "/temp-" (number->string (texmacs-time)) "." extention))
(data-list (get-image t 0 #f)))
(when (and (list? data-list) (not (null? data-list)))
(let* ((base64-str (car data-list))
Expand Down
47 changes: 47 additions & 0 deletions devel/0387.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# [0387] 修复聚光灯引导第三步(OCR 演示)启动报错

## 1 相关文档
- [dddd.md](dddd.md) - 任务文档模板

## 2 任务相关的代码文件
- TeXmacs/plugins/account/progs/liii/ocr.scm
- TeXmacs/plugins/tutorial/data/first-launch-tutorial.json
- TeXmacs/plugins/tutorial/progs/init-tutorial.scm

## 3 如何测试

### 3.1 确定性测试(单元测试)

### 3.2 非确定性测试(文档验证)
1. 清理 `$TEXMACS_HOME_PATH` 目录
2. 启动 stem,进入首次启动引导流程
3. 推进到第三步并点击 OCR 按钮
4. 应正常插入 LaTeX 代码片段,不再抛出 `number->string ... is a let but should be a number`

## 4 如何提交

提交前执行以下最少步骤:

```bash
xmake b stem
gf fmt --changed-since=main
git push
```

## 5 What
修复聚光灯引导第三步(OCR 演示)触发时报错的问题。

1. `TeXmacs/plugins/account/progs/liii/ocr.scm` 中 `ocr-to-latex-by-cursor`(第 101 行)和 `ocr-to-latex-by-image`(第 143 行)生成临时文件名时,把 `(number->string (current-time))` 改为 `(number->string (texmacs-time))`

## 6 Why
聚光灯引导第三步 `id: "ocr"` 的 `on-enter` 调用 `(tutorial-prepare-ocr-demo)`,用户在该步粘贴时进一步触发 `ocr-to-latex-by-cursor` / `ocr-to-latex-by-image`,两者在拼临时文件名时报错:

```
number->string first argument, (inlet '{gensym}-11121 <time> 'type time-utc ...), is a let but should be a number
```

根因:本仓库的 Scheme 环境里 `current-time` 是 SRFI-19 风格实现,返回 time record(`#<time type time-utc nanosecond ... second ...>`),不是整数;而 `number->string` 只接受数字。项目内其他位置(如 `TeXmacs/progs/init-research.scm`)统一使用返回整数毫秒的 `(texmacs-time)`,此处应与之保持一致。

## 7 How
两处临时文件名拼接都改为调用项目内置的 `(texmacs-time)`(返回整数毫秒),既能拿到合适的整数作为文件名后缀,又与仓库其他时间戳用法对齐,避免引入 SRFI-19 time record 的解析逻辑。
Loading