问题标签 [enlive]
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.
clojure - 如何使用 unicode 和 enlive 进行网页抓取
我正在尝试抓取一些需要 unicode 支持的网站。例如,我正在尝试获取这本书的标题,但它返回的字符混乱:
并试图抓取一个阿拉伯语网站返回 ?????? 到处都是。
我不确定我应该如何激活 unicode 支持。
clojure - 使用相对链接和非根上下文路径将 Clojure webapps 部署到 Jetty 时链接断开
我一直在尝试用 Clojure 编写 webapps,直到现在还很容易。我按照 Chas Emerick 的出色截屏视频开始 clojure,并快速启动并运行了一个 url 缩短器。接下来我希望能够部署它,这就是麻烦开始的时候。
当我在开发中运行它或将它作为根 webapp 部署到 Jetty 时,一切都很好,但是当我使用上下文路径部署它时,它就不行了。或者,更确切地说,它几乎可以工作。我所有的 Compojure 路由仍然有效,但FORM
HTML 文件中的操作链接已损坏并给我 404。
这是 Compojure 路由设置:
这是主页模板的 HTML:
问题是action="shorten"
网址。当使用上下文路径部署到 Jetty 时/example
一切正常,直到我触发表单提交。然后 Jetty 抱怨它找不到localhost:8080/shorten
哪个意味着(我认为)它没有被视为相对路径,而是绝对路径。
所以,我的问题是:如何解决这个问题?我想我可以只在操作链接中指定完整路径,但这会很不灵活,并且会使开发中的 servlet 更难运行。有没有办法配置我的出路?或者一些神奇的 URL 前缀(比如~/
在 Razor 中)会做正确的事情?
data-structures - Clojure:如何将映射条目的惰性序列转换为结构映射?
我是 clojure 的新手,一直在使用 enlive 来转换 html 文档的文本节点。我的最终目标是将结构转换回 html、标签和所有内容。
我目前能够获取 enlive-html/html-resource 返回的 structmap 并将其转换回 html 使用
其中节点是结构图。
我还可以根据需要转换 structmap 的 :content 文本节点。然而,在转换了 structmap 的内容文本节点之后,我最终得到了 MapEntries 的lazyseq。我想将其转换回结构图,以便可以在其上使用 emit*。这有点棘手,因为lazyseqs & structmaps 是嵌套的。
tldr:
我如何转换:
进入:
更新
kotarak 的回答为我指明了 的方向update-in
,我可以使用它来修改地图而不将其转换为序列,从而使我的问题变得无关紧要。
我以前for
在地图上使用过,但是update-in
要走的路。
clojure - 在 deftemplate 中绑定本地 var 以进行激活
我是 clojure 和 Web 开发堆栈的新手。我正在尝试使用 enlive 在 HTML 模板中设置值:
这可以很好地设置我的两个 HTML 元素,但它涉及对我的函数的重复调用get-project
。目前这只是从本地地图读取,但最终会涉及一些外部存储访问,所以我宁愿只在这个函数中执行一次。
我正在考虑使用let
:
但这只会影响描述元素并忽略名称形式。
绑定本地变量的最佳方法是什么deftemplate
?
clojure - 启用预定义的选择器步骤
我正在尝试使用 Enlive 克隆此 html 中的 replace-me 脚本标记。
问题1)
我正在努力弄清楚最后一个脚本元素的“惯用”选择器是什么。目前我正在使用
那是对的吗?
问题2)
我有这个片段来转换整个头部实体:
这是根选择器步骤的正确用法吗?我假设在 defsnippet 的上下文中,root 引用了 [:head] 选择器,对吗?
谢谢!
clojure - 如何在不重新启动的情况下使用 enlive 时重新加载模板
我正在使用 enlive 进行 Web 开发。我使用 repl 启动我的环服务器(serve my-app/handler)
但是,当我对我的任何 html 模板进行更改时,我必须重新启动我的 repl 才能显示更改。如何在不重新启动 repl 的情况下重新加载我的标记?
谢谢,穆尔塔萨
clojure - 在 enlive 中使用 src 文件夹外部的模板
是否可以在 enlive 中从源文件夹外部提供模板?
我想从我的 resources/public/templates 文件夹而不是 src/templates 文件夹中提取模板,我该怎么做?
谢谢,穆尔塔萨
clojure - 附加到 Enlive 中的属性
是否可以使用 enlive 将值附加到属性?
例子:我有这个
并且想要这个
我目前正在这样做:
但我不希望将 URL 嵌入到我的代码中,只需将 id 附加到现有 URL
clojure - 如何使用 Clojure Enlive 添加包含 HTML 的字符串
我以这种方式定义了一个模板:
这里的内容字符串包含一个 HTML(例如:“<tr><td><a href="mylink">我的链接</a></td></tr>)不幸的是,这不起作用。相反,它是删除 <tr> 和 <td> 只留下 <a> 标记。我尝试了不同的方法(不同的不成功结果)。非常欢迎任何帮助!
clojure - clojure, 活跃, 多站点
尝试根据 :server-name 在请求中返回的内容加载特定模板:
它适用于返回 /home/usr/rosay/resources/localhost/base.html 的 localhost,但是当我针对不同的主机进行测试时说“hostname2”,我看到 get-template 在哪里查看 /home/usr/rosay/resources /hostname2/base.html 但当它在浏览器中呈现时,它总是指向 ../resources/localhost/base.html。
是否有宏或不同的方式来处理这个用例?