問題タブ [heist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 新しいHeistAPIのloadTemplatesを使用してコードをどのように更新しますか?
このコードは、0.10.0の変更前はHeistで機能していました
今、私はエラーを受け取ります
loadTemplatesの型シグネチャがに変更されたことを知っています
しかし、古いコードを機能させるためにどのように適応させるかを理解するのに苦労しています。
xml - Text.XML.HaXmlもインポートせずに、すでにText.XmlHtmlを使用しているアプリケーションでText.RSSモジュールを使用するにはどうすればよいですか?
私は練習のために取り組んできたかなりステレオタイプのウェブログアプリケーションを持っています。私のアプリケーションのトップレベルは、かなり標準的なルーティングを使用するHappstackレイヤーです。コードにXMLフィードを追加したいところまで来ました。
これが私を悩ませている部分です。テンプレート作成にHeistを使用したので、Heistの操作の一部としてText.XmlHtmlモジュールを既に導入しました。Text.RSSを使用するには、Text.XML.HaXmlも取り込む必要があります。同じアプリケーションで2つの異なるXMLモジュールを使用する必要があるのは私には過剰に思えます。
それで、私自身のRSSフィードを書くこと(そしておそらくそれを間違って/仕様に違反して/大量の過剰な時間を投資すること)を除いて、私のアプリケーションでただ1つのXMLライブラリに固執する方法はありますか?また、2つの異なるXMLモジュールが存在することに重大な欠点やコードの膨張はありますか?
haskell - Heist で複数のスプライスで単一のリクエストごとの計算を使用する方法は?
2 つのカスタム タグ<x/>
と<y/>
. 各タグは にバインドされていHeist.Compiled.Splice
ます。これで、テンプレートはGET
特定のルートのリクエストごとにレンダリングされます。<x/>
ペアの最初の値に置き換え、同じペアの 2 番目の値に置き換える方法はあり<y/>
ますが、ペアを返す IO 計算は要求ごとに 1 回だけ実行されます (すべてではなく、そのルートでのみ実行されます)。テンプレートをまったく使用しない人もいるからです)?
haskell - heist テンプレートの新しい API
に相当するものはどれですか
新しい強盗APIで?また、 and (またはテンプレートをロードする方法) は変更されましたか?
haskell - 「適用」タグが Heist 0.11.0.1 で機能しなくなったのはなぜですか?
最近、使用している Heist のバージョンをアップグレードしました。それはほとんど恣意的な決定であり、私はその行動の結果をまだ見ています。主に、より快適なコード構造の観点からです。
しかし、サイトのヘッダーやメニューなどのボイラープレート コンポーネントを導入するために、テンプレート内の「適用」タグにかなり依存していました。私にとって、典型的なテンプレートは次のようになります。
そして、私は今、次のようにテンプレートをロードしています:
これは、私がテンプレートをロードするために使用した方法 (まだloadTemplates
関数を使用している) と大差ありませんが、私が慣れていない強盗状態を設定する別の方法です。
しかし、今でapply
はどのタグも効果がありません。私の「含まれる」テンプレートはまったく読み込まれず、結果の HTML 内に次のように表示されます。
haskell - Heist-0.13 のデフォルトの AttrSplices は何ですか?
私は Heist を使用するプロジェクトに取り組んでおり、最近バージョン 0.13 にアップグレードしたため、試してみたところ、元の HeistConfig が大幅に変更されていることがわかりました。
defaultInterpretedSplices と defaultLoadTimeSplices があるため、[] をデフォルトの Splices として使用できなくなりました。
haskell - スナップと強盗でutf8テキストを表示するには?
私はwriteBS
writeText
Snap とrenderTemplate
from heist を使用しましたが、どれも Unicode をサポートしていないようです。
/
orルートで「你好世界」が出力されると思っていたのです/test
が、実際にはちょっと面倒なコードが出力されているだけです。
html - 生のhtml文字列をText.XmlHtmlノード構造に埋め込むにはどうすればよいですか
これは一種のコーナーケースです。Haskell、Text.XmlHtml (バージョン 0.2.3) を実行しています。Pandoc (バージョン 1.12) からソース データを取得しています。ソース ファイルはすべて Markdown 形式です。
このコーナーでは、Markdown ファイルに生の Html が直接含まれている場合について説明します。もちろん、これは Markdown 形式でサポートされており、必要な種類のテーブル レイアウトを取得する唯一の方法である場合があります。Pandoc はファイルだけを読み取りますが、Html セクションに到達すると、出力される内容はおおよそ次のようになります。
したがって...これを階層ツリーに変換すると、非常に複雑になる可能性があります。望ましい結果は、XmlHtml では次のようになります。
しかし、階層的な構造 (Pandoc が出力するものはすべて適切に階層化されています) を扱っている場合、それを取得するのは非常に難しく、突然そうではなくなりますが、「階層的でない」部分は、基本的に Html パーサーを構築することによってのみ見つけることができます。これは、他の構造を囲む複数の文字列で機能します。
理想的には、私が発行したいのは単純なTextNodeです:
これは、RawInline ごとに 1 つずつ、一連の TextNode を発行するか、RawInline 要素をまとめるかのいずれかで行うことができます。要点は、生の Html を含む TextNode を出力し、最終的にそれを追加の Html エスケープなしでレンダリングしたいということです。
私のレンダラーは最終的に Heist スニペットですが、それはおそらく Blaze 経由で実行されることを意味します。
うまくいくかもしれない最後の代替手段は、Pandoc から Blaze Html レンダラーを経由し、次に XmlHtml パーサーを経由して、Heist スニペットに埋め込むことができるものを取得することです。汚いと思うので避けたいです。
(JavaスクリプトをMarkdownドキュメントに入れたい場合、実際には同じ問題に遭遇すると思います...これは言語によって技術的に許可されていますが、おそらく非常に悪いことです。)
これを行う方法はありますか、それともツールに制限されすぎていますか?
アップデート
PandocからBlaze、XmlHtmlへのレンダリングのルートを試してみました。Htmlがエスケープされた最終ノードに配置され、ブラウザーに表示されるという同じ結果が得られることがわかりました。これが私の関数です(これは、私が行った完全な実装よりもはるかに短くて簡単でした...)
Pandoc.def には、allow_raw_html を含むすべての「allow_raw_*」拡張機能が含まれています。
最後に考えられるのは、独自の断片的な html パーサーを適用することです (そして、それを Pandoc に提供することもできます)。結局、これはひどく難しいことではありませんでした。