これを行う方法はありますが、残念ながら、現時点ではあまり快適ではありません。より良いものにしたい場合は、これをどのように実現したいかについて、Issue を送信してください(野心がある場合はプル リクエストを送信してください)。(また、改善された場合は、誰かがこの回答を更新してください。)
scribble
残念ながら、コマンド ライン アプリを使用して (または を使用して)、検索ボックス付きのフリーハンド ページをレンダリングすることはできませんraco scribble
。むしろ、ドキュメントをレンダリングするにrender
は、scribble の機能を使用する必要があります。html-render-mixin
ただし、ドキュメントをレンダリングする独自のスクリプトを作成するという困難を乗り越えれば、それはかなり簡単です。
によって生成されたクラスhtml-render-mixin
には (Racket 6.5 の時点ではドキュメント化されていません。Racket 6.6 のドキュメントを追加します) フィールド:search-box?
があり、デフォルトは#f
です。検索ボックスを #t に変更する以外は、html を拡張する独自のレンダラー mixin を作成できます。次のようにできます。
#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
、ドキュメントのコンテンツを含む という変数を定義します。)
また、がlanguage: でwebpage.scrbl
書かれていることを確認してください。そうしないと、検索ボックスが表示されない場合があります。scribble/manual
#lang scribble/manual
このファイルを実行webpage.html
すると、検索ボックスが生成されます。入力してEnterキーを押すとsearch/index.html
、同じフォルダーに移動し、検索クエリをhttpパラメーターとして渡します。私が知る限り、Racket は現在、内部検索インデックスを構築する方法をエクスポートしていませんがpkgs/racket-index/scribblings/main/search.scrbl
、レポのソース コードでそれを行う方法を見つけることができます。その検索ページにスクリブルを付けたい場合は、github で問題を開いてください。