调试 Scribble 的(需要解码前部分)错误
Debugging Scribble's (need a pre-part for decode) error
考虑以下涂鸦文档:
#lang scribble/manual
@title[#:tag "MyTitle"]{MyTitle}
@(module bq racket/base
(require scribble/html/html)
(provide blockquote))
@(require 'bq)
@blockquote{
"Ho, ho, ho! -- Santa Claus."
}
如果我尝试使用 scribble --dest . test.scrbl
构建它,它会失败并显示
/Users/varun/Code/test.scrbl:10:0: not valid in document body (need a pre-part for decode) in: (element 'blockquote '() '("\"Ho, ho, ho! -- Santa Claus.\"") #f)
context...:
body of "/Users/varun/Code/test.scrbl"
.../private/map.rkt:40:19: loop
.../racket/cmdline.rkt:191:51
body of "/Applications/Racket v8.0/share/pkgs/scribble-lib/scribble/run.rkt"
我不明白这个错误。它指的是什么“前部分”?我发现了一个博客 post "Writing a paper in Scribble" 描述了类似的错误;在那里,问题是数字没有转换为字符串。但是,我这里确实有一个字符串,所以我不明白是什么问题。
问题是scribble/html
没有连接到scribble/manual
,那里构造的“元素”有一个HTML元素。您不能在这样的文档中使用 scribble/html
中的函数。
如果你想在涂鸦中使用块引号,你可能想使用 nested-flow
。
根据 Sam 在他的回答中所说的内容以及 similar comment on Twitter,我最终将块引用定义为:
@(require scribble/core scribble/decode)
@(define (blockquote . strs)
(make-nested-flow (make-style "blockquote" '(command))
(decode-flow strs)))
(来源:https://sourcegraph.com/github.com/flock-lab/flock/-/blob/docs/main.scrbl?L9-L11)
这可以不带引号使用:
@blockquote{Ho, ho, ho! -- Santa Claus.}
考虑以下涂鸦文档:
#lang scribble/manual
@title[#:tag "MyTitle"]{MyTitle}
@(module bq racket/base
(require scribble/html/html)
(provide blockquote))
@(require 'bq)
@blockquote{
"Ho, ho, ho! -- Santa Claus."
}
如果我尝试使用 scribble --dest . test.scrbl
构建它,它会失败并显示
/Users/varun/Code/test.scrbl:10:0: not valid in document body (need a pre-part for decode) in: (element 'blockquote '() '("\"Ho, ho, ho! -- Santa Claus.\"") #f)
context...:
body of "/Users/varun/Code/test.scrbl"
.../private/map.rkt:40:19: loop
.../racket/cmdline.rkt:191:51
body of "/Applications/Racket v8.0/share/pkgs/scribble-lib/scribble/run.rkt"
我不明白这个错误。它指的是什么“前部分”?我发现了一个博客 post "Writing a paper in Scribble" 描述了类似的错误;在那里,问题是数字没有转换为字符串。但是,我这里确实有一个字符串,所以我不明白是什么问题。
问题是scribble/html
没有连接到scribble/manual
,那里构造的“元素”有一个HTML元素。您不能在这样的文档中使用 scribble/html
中的函数。
如果你想在涂鸦中使用块引号,你可能想使用 nested-flow
。
根据 Sam 在他的回答中所说的内容以及 similar comment on Twitter,我最终将块引用定义为:
@(require scribble/core scribble/decode)
@(define (blockquote . strs)
(make-nested-flow (make-style "blockquote" '(command))
(decode-flow strs)))
(来源:https://sourcegraph.com/github.com/flock-lab/flock/-/blob/docs/main.scrbl?L9-L11)
这可以不带引号使用:
@blockquote{Ho, ho, ho! -- Santa Claus.}