问题标签 [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 - 您如何使用 loadTemplates 为新的 Heist API 更新代码?
此代码在 0.10.0 更改之前与 Heist 一起使用
现在我得到了错误
我知道 loadTemplates 的类型签名已更改为
但是我无法弄清楚如何调整我的旧代码以使其正常工作。
xml - 如何在已经使用 Text.XmlHtml 的应用程序中使用 Text.RSS 模块而不导入 Text.XML.HaXml?
我有一个非常典型的网络日志应用程序,我一直在练习它。我的应用程序的顶层是一个使用非常标准路由的 Happstack 层。我已经到了想在代码中添加 XML 提要的地步。
这是困扰我的部分。由于我使用 Heist 进行模板化,因此我已经引入了 Text.XmlHtml 模块作为使用 Heist 的一部分。使用 Text.RSS 需要我也引入 Text.XML.HaXml。对我来说,需要在同一个应用程序中使用两个不同的 XML 模块似乎太过分了。
因此,除了编写自己的 RSS 提要(并且可能做错/违反规范/投入大量时间),有没有办法在我的应用程序中只使用一个 XML 库?此外,存在两个不同的 XML 模块是否有任何严重的缺陷或代码膨胀?
haskell - 如何在 Heist 的多个拼接中使用单个请求计算?
假设我有一个带有两个自定义标签<x/>
和<y/>
. 每个标签都绑定到一个Heist.Compiled.Splice
. GET
现在,模板在针对特定路由的每个请求时呈现。我怎么<x/>
能被一对的第一个值<y/>
替换,被同一对的第二个值替换,但是返回该对的 IO 计算每个请求只运行一次(并且只在该路由上运行,而不是在每个路线,因为有些人根本不会使用模板)?
haskell - 抢劫模板新api
这相当于
使用新的抢劫 API?此外,and(或您应该加载模板的方式)是否改变了?
haskell - 为什么我的“应用”标签在 Heist 0.11.0.1 中不再起作用?
我最近升级了我正在使用的 Heist 版本。这主要是一个武断的决定,我仍然看到该行动的后果,主要是在更令人愉悦的代码结构方面。
但是,我非常依赖模板中的“应用”标签来引入样板组件,例如我的站点标题和菜单。对我来说,一个典型的模板是这样的:
而且,我现在正在加载这样的模板:
这与我过去加载模板的方式(仍然使用该功能)并没有太大区别loadTemplates
,但这是一种我不习惯的设置抢劫状态的不同方式。
但是,现在所有apply
标签都没有任何效果。我的“包含”模板永远不会加载,并且在生成的 HTML 中我看到了这个:
haskell - Haskell Snap 框架 - 带有 Heist 的动态超链接
我正在尝试使用 Heist 模板系统创建动态链接。问题是链接显示为文本,而不是被解释为 html。有没有一种特定的方法可以用 Heist 创建像这样的动态列表?
构造链接的函数:
该标签在网页上显示为“http://localhost:8000/thread_home?cateid=1'>1”文本。来源显示如下:
我认为我需要让它打印实际的 < 和 > 但我不确定如何实现这一点。由于我目前正在运行 runChildrenWithText 来填充这个 Heist 模板,更改为只是 runChildrenWith 需要拼接而不是文本,所以我希望有一些方法可以在没有 '<' 和 '>' 的情况下 runChildrenWithText 被转换为 '<'和'>'。任何帮助表示赞赏!
编辑
我正在尝试使用以下方法手动创建链接:
但是我遇到两个错误:
和
我目前并不真正理解这些错误,感谢您提供任何帮助。
返回链接和普通文本的工作功能:
haskell - Heist-0.13 的默认 AttrSplices 是什么?
我正在使用 Heist 做一个项目,由于它最近升级到 0.13 版本,我尝试了一下,发现原来的 HeistConfig 改变了很多。
所以现在我不能再使用 [] 作为默认 Splices,因为有 defaultInterpretedSplices 和 defaultLoadTimeSplices,我发现 defaultAttrSplices 只是错过了,那么我应该如何定义它呢?
haskell - 如何使用 snap 和 heist 显示 utf8 文本?
我writeBS
writeText
从 Snap 和renderTemplate
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:
我可以通过发出一堆 TextNode 来做到这一点,每个 RawInline 一个,或者将 RawInline 元素混合在一起。关键是我想发出一个包含原始 Html 的 TextNode 并最终呈现它而没有任何额外的 Html 转义。
我的渲染器最终是一个 Heist 片段,但这可能意味着它通过 Blaze 运行。
我的最后一个可能可行的替代方案是从 Pandoc 通过 Blaze Html 渲染器,然后通过 XmlHtml 解析器来获取可以嵌入到 Heist 片段中的内容。我只是想避免这种情况,因为它感觉很脏。
(我想如果我想将 Java 脚本放入我的 Markdown 文档中,我实际上会遇到同样的问题......这在语言技术上是允许的,但可能非常邪恶。)
有没有办法做到这一点,还是我受到工具的限制?
更新
我尝试了从 Pandoc 到 Blaze 到 XmlHtml 的渲染路线。事实证明,我得到了相同的结果,将 Html 放入最终节点中逃脱并因此出现在浏览器中。这是我的功能(它比我完成的完整实现更短更容易......)
Pandoc.def 包括所有“allow_raw_*”扩展,包括allow_raw_html。
我能想到的最后一件事是应用我自己的零碎 html 解析器(然后可能将其贡献给 Pandoc)。最后,这不会太难。
haskell - Splice 是否支持 Unicode?
这是我的代码:
我将它绑定到一个标签:
并在 layout.tpl 上使用它:
浏览器上的输出是
我做错了什么?
抱歉耽搁了,我忙了一段时间,现在我回来了,我想我可能没有把问题说得足够具体@mightybyte这是出现问题的代码,我希望它会使问题更加说明:
测试.hs:
模板/test.tpl
现在我尝试了 heist-0.13.0.2,它现在工作正常,Daniel 干得好!