如何在Scribble文件中引入非Racket语言的外部源代码文件?
最简实现Scribble引入外部代码文件的方案
别依赖第三方库了,直接用Racket原生功能写个极简宏就能搞定,完全避开特殊字符引发的异常:
- 先在Scribble文档开头添加这段代码,定义自定义宏:
(require scribble/base) (define (@include-verbatim stx) (syntax-case stx () [(_ path) #`(verbatim #,(file->string (syntax-e #'path)))])) - 之后引入外部代码文件时,直接调用这个宏即可:
@include-verbatim["path/to/your/code.ext"]
这个方案直接读取文件原始内容并传递给@verbatim,没有额外的解析逻辑,因此不会受文件中的特殊字符序列影响。如果目标文件使用非默认编码,只需给file->string添加编码参数,例如:
(file->string (syntax-e #'path) #:encoding 'utf-8)
内容的提问来源于stack exchange,提问作者Daniel Patterson
相关产品推荐
相关产品推荐

