问题标签 [scribble]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macros - 在 `include/reader` 中使用 `make-at-reader` 生成的函数时遇到问题
编辑:我已经发现了问题,并且找到了解决方法(请参阅最后的更新 2),但似乎应该有一种更优雅的方法来做到这一点——我希望有人能想出一个。
我在尝试使用我使用 Racket/Scribble 的make - at - reader生成的函数时遇到了麻烦我做错了。include/reader
include-at/relative-to/reader
我使用了一些参数来make-at-reader
定义@-forms(基本上是模板系统)的完全不同的用途,基本上是这样的:
如果不是超级优雅,我可以在运行时使用call-with-input-file
. 例如,如果我这样做,
我得到类似的东西,
其中,使用eval
and namespace-anchor->namespace
,它应该进行评估。明确地说,所有语法对象都对应于文字字符串或评估为字符串的表达式;但是,外部文件中的表达式确实需要访问模块上下文中的参数和一些其他定义。
但是,我更喜欢使用类似include/reader
or的东西include-at/relative-to/reader
(可能更类似于include/template
from web-server/templates),以便可以在编译时完成解释外部文件的工作。但是,我尝试以at-template-reader
其中一种形式使用 my 完全不成功:更糟糕的是,它们只是运行没有结果,直到内存不足,所以我什至不确定如何调试它们。我想我在这里有点过头了,我会很感激任何人关于如何让它发挥作用的想法。
更新 1: Asumu Takikawa 在评论中询问它是否适用于#:inside? #f
. 我现在已经尝试过了,它确实 - 或者至少更接近于使用 using 的工作,#:inside? #t
在我杀死它或它耗尽内存之前,它只会进入永无止境的土地。#:inside? #f
版本成功并返回值。(它的行为确实与我定义的一些逻辑很奇怪,有时只返回最后一个值,但我认为这可能是因为我做了一些只适用于#:inside? #t
-mode 的假设;我现在正在研究。)
这是否让任何人了解该版本可能出了什么问题#:inside? #t
?我想知道这是否与这样一个事实有关, with #:inside? #t
,它只返回一个表示整个外部文件的语法对象……</p>
更新 2:
我已经确定了这个问题,现在我有一个非常黑客的解决方法,但我希望有人能向我解释正确的方法是什么。
首先,让我给#:inside? #f
我在 Asumu Takikawa 的建议中尝试的函数命名,以便我可以简洁地参考它:
read-syntax
我正在调用的类似函数at-template-reader
和之间有一个至关重要的区别at-template-reader-OUTSIDE
,这是我通过玩(port->list [r in])
docs发现的(它“返回一个列表,其元素是通过调用r
直到in
它产生 eof 产生的”)。正如预期的那样,每次调用都会at-template-reader-OUTSIDE
产生一个对应于源文件下一个块的语法对象,直到最后一个产生eof
. 然而,每次调用都会at-template-reader
产生一个对应于整个源文件的语法对象,并且永远不会产生eof
——第一次之后的调用只会返回空列表(作为语法对象)。这意味着打电话port->list
——而且,似乎include/reader
还有朋友——永远不会回来。
我已经通过使用包装函数来完成这项工作,如下所示:(在一个模块中,所有内容都处于正确的阶段级别)
然而,这感觉很笨拙——我希望有人能告诉我这样做的“正确”方法。
latex - 删除涂鸦部分中的数字(乳胶后端)
在涂鸦中,我有一个文件,例如:
这将被编译成一个看起来像这样的文档:
1.第一节
2. 第二节
2.1 小节
3. 第三节
如何删除这些数字,使其看起来更像:
第一节
第二节
一个小节
第三节
racket - Racket Scribble,如何添加搜索框?
我使用 scribble 来生成我的包裹文件。
raco 会将我的文档与球拍自己的文档整合在一起,并在页面的左上角添加一个搜索框。
当您使用“raco docs”时,您会看到这一点。
现在我想使用 scribble 作为文档工具来生成我的独立文档。
但是当我使用 scribble --htmls demo.scribble 时,它不能在页面的左上角有一个搜索框。
如何添加搜索框让我的文档具有搜索能力?
scheme - 球拍涂鸦不显示超链接
我尝试了以下代码语句来显示 URL:
使用命令“$ scribble hyperlinks.scrbl”生成的 html 页面没有任何错误,但它没有显示带有任何超链接语句的 URL:
生成的 html 文件包含以下链接:
问题出在哪里,我该如何纠正这个错误?
scheme - 涂鸦球拍不创建索引
我正在使用以下代码在文档末尾创建索引(其中包含https://docs.racket-lang.org/scribble/getting-started.html上显示的大部分示例代码),但事实并非如此在职的:
浏览器上仅显示“预内容”一词。html 页面的其余部分都可以正常呈现。问题出在哪里,我该如何纠正?
scheme - 结合 Racket 和 Scribble 的文本和图像
我有一个 Racket 程序,它生成一串输出文本和一个图像:
outstr
我怎样才能让上面的程序通过具有矩形图像的涂鸦创建一个 html 文件?
我正在考虑首先从该程序创建一个 myscribble.scrbl 文件,然后使用“系统”功能发送诸如“scribble myscribble.scrbl”之类的命令来创建 html 文件。但即使在那里,我如何将上面创建的图像添加到 html 文件中?
最好的方法是什么?
pdf - 使用 pdf/latex 后端在 scribble 中创建一个新页面
在乳胶中,我可以使用\newpage
命令创建一个新页面。似乎没有任何方法可以直接在 Scribble 中执行此操作(至少不适用于 PDF/Latex 后端。)
那么,如何强制涂鸦为我的文档创建新页面?
html - 如何将非涂鸦文件添加到基于涂鸦的网站
我可以使用image
在我的涂鸦文档中嵌入图像,渲染功能会将其复制到目标位置。现在,我还想在我的文档中包含不是图像的文件,例如可以下载的 MP3 或 PDF 文件。
此外,我不能只将文件包含在源文件夹中并链接到它,因为如果我将文档呈现到不同的目标文件夹中,它不会被复制。
最后,我知道我可以手动创建目标目录,然后将文件粘贴到那里。或者我可以修改我用来构建文档的任何文件来复制文件。但这并不令人满意,因为现在我必须在两个地方跟踪图像。源文件,.scrbl
以及目标目录或构建文件。
那么,在 scribble 中是否有一种方法可以包含非涂鸦(或图像)文件,例如 MP3 或 PDF,以便渲染函数知道抓取它并将其包含在文档中?
racket - scribble:如何删除“警告没有声明的导出库”
我正在尝试使用defproc
格式化函数定义(而不是记录库)。下面的代码格式正确,但在我运行 Scribble 时会向控制台打印一个丑陋的警告:
运行scribble --html example.scrbl
打印:
有什么方法可以defproc
用于格式化并删除错误消息?