gpt4 book ai didi

Racket Scribble,如何添加搜索框?

转载 作者:行者123 更新时间:2023-12-01 03:32:37 25 4
gpt4 key购买 nike

我使用 scribble 来生成我的包的文档。

raco 会把我的文件和自己的文件整合起来,
并在页面的左上角添加一个搜索框。

当您使用“raco docs”时,您可以看到这一点。

现在我想使用 scribble 作为文档工具来生成我的独立
文件。

但是当我使用 scribble --htmls demo.scribble 时,它​​不能有搜索框
在页面的左上角。

如何添加搜索框让我的文档具有搜索功能?

最佳答案

有一种方法可以做到这一点,但遗憾的是,目前还不是特别愉快。如果您希望我们做得更好,请提交 issue (或者,如果您觉得雄心勃勃,我猜拉请求)您希望如何做到这一点。 (此外,如果确实有所改进,请有人更新此答案。)

遗憾的是,您无法使用 scribble 呈现带有搜索框的涂鸦页面。命令行应用程序(也不使用 raco scribble )。相反,您需要使用涂鸦的 render 函数,带有 html-render-mixin 呈现您的文档。不过,一旦您克服了编写自己的脚本来呈现文档的困难,它就会变得相当简单。

html-render-mixin 生成的类有一个(自 Racket 6.5 起未记录,我将为 Racket 6.6 添加文档)字段:search-box? ,默认为 #f .除了将搜索框更改为#t 之外,您可以构建自己的渲染器 mixin 来扩展 html。你可以这样做:

#lang racket

(require (prefix-in html: scribble/html-render))

(define (search:render-mixin %)
(class (html:render-mixin %)
(init [search-box? #t])
(super-new [search-box? search-box?])))

从那里,您可以使用 render-mixin 关键字参数直接将其传递给渲染函数:
(require "webpage.scrbl")

(render (list doc)
(list "webpage.html")
#:render-mixin search:render-mixin)

在这里, webpage.scrbl是您文件的来源, webpage.html是您的目标位置。它们是列表,因此您可以同时渲染多个文件。
doc变量来自 webpage.scrbl . (作为引用,涂鸦文件在编译时定义一个名为 doc 的变量,其中包含文档的内容。)

另外,请确保 webpage.scrbl写在 scribble/manual语言: #lang scribble/manual ,否则您可能无法在那里获得搜索框。

当你运行这个文件时, webpage.html是用搜索框生成的。当您输入并按回车键时,它将转到 search/index.html在同一个文件夹中,将您的搜索查询作为 http 参数传递。据我所知,Racket 目前不导出它构建内部搜索索引的方式,但您可以在: pkgs/racket-index/scribblings/main/search.scrbl 中找到它是如何构建的。在 repo 的源代码中。如果您希望该搜索页面带有涂鸦,请在 github 上打开一个问题。

关于Racket Scribble,如何添加搜索框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37234346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com