我用塗鴉來生成我的包的文件。Racket Scribble,如何添加一個搜索框?
raco將我的douments與球拍自己的文檔 合併在一起,並在頁面的頂部添加一個搜索框。
你可以看到,當你使用「raco文檔」。
現在我想用塗鴉作爲文檔工具來生成我的獨立文檔 。
但是當我使用塗鴉--htmls demo.scribble時,它不能在頁面的頂部有一個搜索框 。
如何添加搜索框讓我的文檔具有搜索功能?
我用塗鴉來生成我的包的文件。Racket Scribble,如何添加一個搜索框?
raco將我的douments與球拍自己的文檔 合併在一起,並在頁面的頂部添加一個搜索框。
你可以看到,當你使用「raco文檔」。
現在我想用塗鴉作爲文檔工具來生成我的獨立文檔 。
但是當我使用塗鴉--htmls demo.scribble時,它不能在頁面的頂部有一個搜索框 。
如何添加搜索框讓我的文檔具有搜索功能?
有一種方法可以做到這一點,但可悲的是,它目前並不特別令人愉快。如果您希望我們做得更好,請提交一份issue(或者如果您感覺雄心勃勃,我想請您提出要求),以瞭解您希望如何做到這一點。 (如果確實有所改進,請更新此答案。)
不幸的是,您無法使用scribble
命令行應用程序(也不使用raco scribble
)在搜索框中呈現塗鴉頁。相反,您需要使用雜文的render
函數,並使用html-render-mixin
來呈現文檔。一旦你完成了編寫自己的腳本來渲染文檔的過程,這很簡單。
通過html-render-mixin
產生的類有一個(無證作爲球拍6.5的,我會添加文檔球拍6.6)字段:search-box?
,默認爲#f
。除了將搜索框更改爲#t外,您可以構建擴展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?])))
從那裏,你可以傳遞到渲染功能,這個直接與渲染混入關鍵字參數:
(require "webpage.scrbl")
(render (list doc)
(list "webpage.html")
#:render-mixin search:render-mixin)
這裏,webpage.scrbl
是爲您的文件源和webpage.html
是你的目標地點。它們是列表,因此您可以同時呈現多個文件。
該變量來自webpage.scrbl
。 (僅供參考,塗鴉文件,編譯時,定義一個名爲doc
變量,它包含了文檔的內容。)
同時,確保webpage.scrbl
是寫在scribble/manual
語言:#lang scribble/manual
,否則你可能不會得到一個搜索框在那裏。
當您運行此文件時,將使用搜索框生成webpage.html
。當你輸入並輸入時,它會在同一個文件夾中輸入search/index.html
,並將你的搜索查詢作爲http參數傳入。據我所知,Racket目前不會導出它如何構建內部搜索索引,但您可以在回購的源代碼中找到它是如何實現的:pkgs/racket-index/scribblings/main/search.scrbl
。如果您希望該搜索頁面隨意塗鴉,請在github上打開一個問題。
非常感謝。 – simmone
你使用'#lang scribble/manual'嗎? – soegaard
是的,使用手冊 – simmone
我無法在文檔中找到詳細信息。我相信你需要使用'#:style'標題:'@title [#:style something]'。但是什麼東西需要成爲?如果你在這裏沒有得到答案,我相信郵件列表會有幫助。 https://groups.google.com/forum/#!forum/racket-users – soegaard