3

FSharp.Literate を使用して HTML ページを作成しようとしています。Mono 4.5 を使用して Xamarin で作業しています。*.fsx基本的なスクリプトを html に変換したいと考えています。テスト用のドキュメントの簡単なスクリプトの例を使用しています。html に変換したいスクリプトは次のようになります。

(**
# First-level heading
Some more documentation using `Markdown`.
*)

(*** include: final-sample ***)

(** 
## Second-level heading
With some more documentation
*)

(*** define: final-sample ***)
let helloWorld() = printfn "Hello world!"

組み込みの NuGet マネージャーを使用してダウンロードしましFSharp.Formattingた。また、インストールMicrosoft.AspNet.Razor 2し、RazorEngine

ドキュメントの例に基づいて、上記の例を html に変換する次のスクリプトを作成しました。github の元の FSharp.Formatting の html テンプレートを使用しています。

#I "bin/Debug/"

#r "FSharp.Literate.dll"
#r "FSharp.Markdown.dll"
#r "FSharp.CodeFormat.dll"

open System.IO
open FSharp.Literate

let source = __SOURCE_DIRECTORY__
let baseDir = Path.Combine(source, "html/")
let file = Path.Combine(baseDir, "demo.fsx")
let output = Path.Combine(baseDir, "demo-script.html")
let template = Path.Combine(baseDir, "template.html")

Literate.ProcessScriptFile(file, template, output)

プロセスが実行され、html ファイルが生成されます。ただし、F# コードはトークン化されません。適切にフォーマットされたコードの代わりに、以下の例を取得します。明らかな何かが欠けていますか?

編集

以下の Tomas のコメントに基づいて、.css および .js ファイルに問題があることがわかりました。私が使っていたテンプレートはhref="{root}/content/style.css" /> <script src="{root}/content/tips.js"

{root} タグが原因で、css ファイルと js ファイルが見つかりませんでした。それを変更してhref="content/style.css" /> <script src="content/tips.js"問題を解決しました

htmlのスクリーンショット

4

1 に答える 1

3

ライブラリが実際に正しい HTML を生成したと思います。ファイルの最後にあるように、ツール ヒントに表示されるはずのコンテンツ (helloWorldとのタイプに関する情報printfn) がそこにあります。

tips.jsこの問題は、生成された HTML ファイルが正しく参照されておらずstyle.css、ツール ヒントをポップアップする HTML とスクリプトのフォーマットを定義している可能性があります。これら 2 つのファイルは、(既定のテンプレートと共に) NuGet パッケージに含まれている必要があります。または、プロジェクト GitHub で見つけることができます。

于 2014-02-18T03:04:33.910 に答える