Lei*_*sen 5 html racket scribble
我可以用image在我的涂鸦文档中嵌入图像,渲染函数会将其复制到目标目的地。现在,我还想在我的文档中包含非图像的文件,例如可以下载的 MP3 或 PDF 文件。
此外,我不能只将文件包含在源文件夹中并链接到它,因为如果我将文档渲染到不同的目标文件夹中,它不会被复制。
最后,我知道我可以手动创建目标目录,并将文件粘贴到那里。或者,我可以修改用于构建文档的任何文件来复制该文件。但这并不令人满意,因为现在我必须在两个地方跟踪图像。这.scrbl文件以及目标目录或构建文件。
那么,在涂鸦中是否有一种方法可以包含非涂鸦(或图像)文件(例如 MP3 或 PDF),以便渲染函数知道抓取它并将其包含在文档中?
虽然有点拼凑,但你可以结合起来image得到hyperlink你想要的结果。您可以使用该image函数来获取render复制文件并hyperlink添加指向该文件的链接的函数。您的文档将类似于:
Here is a @image{file.mp3}@hyperlink["file.mp3"]{file}.
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为该image函数还期望尝试嵌入扩展名列表,但该列表默认为空列表,因此它不会嵌入文件,而只会将其复制到目标中。然后,您可以使用hyperlink链接到现在复制的file.mp3文件。
您可以使用以下函数将其合并为一个操作:
(define (embed-file file . content)
(list
(image file)
(apply hyperlink file content)))
Run Code Online (Sandbox Code Playgroud)
现在您可以embed-file在自己的文档中使用:
Here is a @embed-file["file.mp3"]{file}.
Run Code Online (Sandbox Code Playgroud)
(我应该指出,这个想法来自Ben Lerner。)