Racket 球拍涂鸦,如何添加搜索框?
我使用scribble生成包的文档 raco会把我的资料和racket self的文件整合起来, 并在页面左上角添加一个搜索框 当您使用“raco文档”时,您可以看到这一点 现在我想使用scribble作为文档工具来生成我的独立文档 文件 但是当我使用scribble——htmls demo.scribble时,它不能有一个搜索框 在页面的左上角Racket 球拍涂鸦,如何添加搜索框?,racket,scribble,Racket,Scribble,我使用scribble生成包的文档 raco会把我的资料和racket self的文件整合起来, 并在页面左上角添加一个搜索框 当您使用“raco文档”时,您可以看到这一点 现在我想使用scribble作为文档工具来生成我的独立文档 文件 但是当我使用scribble——htmls demo.scribble时,它不能有一个搜索框 在页面的左上角 如何添加搜索框以使我的文档具有搜索功能?有一种方法可以做到这一点,但遗憾的是,目前还不是特别令人愉快。如果你想让我们做得更好,请提交一份(或者如果你有
如何添加搜索框以使我的文档具有搜索功能?有一种方法可以做到这一点,但遗憾的是,目前还不是特别令人愉快。如果你想让我们做得更好,请提交一份(或者如果你有雄心壮志的话,我猜是拉请求)关于你希望如何做到这一点。(如果确实有所改进,请有人更新此答案。) 遗憾的是,您不能使用
scribble
命令行应用程序(也不能使用raco scribble
)使用搜索框呈现scribble页面。相反,您需要使用scribble的函数来呈现文档。不过,一旦您克服了编写自己的脚本来呈现文档的困难,就相当简单了
由html render mixin
生成的类有一个(从Racket 6.5开始未记录,我将为Racket 6.6添加文档)字段:搜索框?
,默认为#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关键字参数直接将其传递到render函数:
(require "webpage.scrbl")
(render (list doc)
(list "webpage.html")
#:render-mixin search:render-mixin)
在这里,webpage.scrbl
是您文件的源文件,webpage.html
是您的目标位置。它们是列表,因此可以同时渲染多个文件
doc
变量来自网页.scrbl
。(作为参考,scribble文件在编译时定义一个名为doc
的变量,该变量包含文档的内容。)
另外,请确保webpage.scrbl
是用scribble/manual
语言编写的:#lang scribble/manual
,否则您可能无法在那里找到搜索框
运行此文件时,将生成带有搜索框的
webpage.html
。当您输入并按enter键时,它将转到同一文件夹中的search/index.html
,并将您的搜索查询作为http参数传入。据我所知,Racket目前没有导出它如何构建内部搜索索引,但你可以在回购协议的源代码中找到它是如何构建的:pkgs/Racket index/scribbles/main/search.scrbl
。如果您希望该搜索页面附带scribble,请在github上打开一个问题。您使用的是#lang scribble/manual
?我在文档中找不到详细信息。我相信你需要使用#:style
和title:@title[#:style something]
。但是需要什么呢?如果你在这里没有得到答案,我相信邮件列表会有帮助。simmone先问:完全没有回答。你们中的一个应该把这个写在答案栏里。(否则我很乐意这么做。)