2016-10-13 5 views
1

私はFsLabジャーナルにいくつかのhtml(私のF#コードから生成されたもの)を出そうとしていますが、それを実現させる正しい命題を見つけることはできません。.fsxファイルから直接HTMLをFsLabジャーナルに出力する方法はありますか?

コード内にhtmlスニペットを返す関数がある場合は、<pre>タグで囲まずにページに直接入れる方法がありますか?


Iは、例えば、試してみました:

let f() = 
    """Some <b>bold</b> sample""" 
let htmlContent = f() 

次いで

(*** include-value:htmlContent ***)

が、出力されるだけで、HTMLコード自体が出力のようにフォーマット。

私はF#フォーマットGHページにダイビングをしたので、私も試してみました(*** raw ***)コマンドが見つかりました:

(*** include-value:htmlContent, raw ***)

が、出力がまだ<pre> & <code>タグで囲まれます。

<pre>タグを使用せずにこのように生のHTMLを単純に発行することはできますか?

答えて

3

最新バージョンを使用している場合は、fsi.AddHtmlPrinterを使用してカスタムHTMLプリンタを追加できます。 FsLabのドキュメントを改善する必要がありますが、これはF# Interactive Service in Atomでも使用されています。生のHTMLを発するように

、あなたはあなたのスクリプトの中でこのようなものを含めることができます。

(*** hide ***) 
type Html = Html of string 
#if HAS_FSI_ADDHTMLPRINTER 
fsi.AddHtmlPrinter(fun (Html h) -> 
    seq [], h) 
#endif 

を次に、あなたがHTMLノードを作成することができるはずです。

let b = Html("""Some <b>bold</b> sample""") 
(*** include-value:b ***) 
+0

おかげでトーマス、これは以下のように思えますちょうど私が探していたが、私はfsi.AddHtmlPrinterを持っていないようだ(私は得る: "フィールド、コンストラクタまたはメンバーは定義されていない)"私はfsi自体の新しいバージョンが必要ですか? –

+0

ああ - 私は今、このextnを得た:https://github.com/ionide/FsInteractiveService/blob/1868abbdb53ce3db9fd8a3714cc93501c1b5dda4/src/FsInteractiveService/Main.fsええ? - Thanks Tomas –

+2

@Stewart_R悲しいことにVSはこの方法を知らないので、それを隠すために '#if'を使用しています - しかし、FsLabジャーナルは' HAS_FSI_ADDHTMLPRINTER'シンボルを定義し、メンバを 'fsi'オブジェクトに追加します。 (たとえVSがそうでないと思っても!) –

関連する問題