问题标签 [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.

0 投票
1 回答
472 浏览

clojure - 如何改进这个 Enlive 模板?

我使用这个 Enlive 模板将它下面的 HTML 转换为下面的 HTML。基于一组 twitter 名称,我生成了一个带有链接的表。我怎样才能摆脱里面的打嗝enlive/clone-for

HTML 输入

HTML 输出

0 投票
2 回答
2956 浏览

clojure - 如何在 enlive 中使用片段?

我是一名 Rails 开发人员,在 Clojure 中涉足。我正在尝试用 ERB 做一些非常简单的事情,但我一生都无法在 enlive 中弄清楚。

假设我在 layout.html 中有一个网站的简单布局文件:

我有这些片段,例如 header.html 和 footer.html 以及这条简单的路线。

每当请求转到“/”时,我怎样才能做到这一点,它会转换布局并将页眉和页脚片段插入其中?

0 投票
2 回答
320 浏览

clojure - Clojure Enlive:如何简化从 scrape3.clj 提取的 fn

我遵循了 enlive 教程,必须说我对 Enlive 解析网络的能力印象深刻。现在,我进一步查看了此处可用的 scrape3.clj:https ://github.com/swannodette/enlive-tutorial/blob/master/src/tutorial/scrape3.clj

Swannodette 在设计这个例子方面做得很好,但我觉得我们可以让它变得更枯燥一些。

我的问题:我会重写此提取函数以使其更干燥:

如果您对程序的其他元素有其他想法,请随时分享!

编辑:我到处玩,想出了:

0 投票
1 回答
688 浏览

clojure - 使用 enlive,您如何根据其内容获取链接的标签?

我有一些看起来像这样的html:

如何a通过使用显示“查找包含文本内容的任何链接”的选择器来获得?我已经了解了text-pred,但这只是返回文本,而不是带有文本的标签。

0 投票
1 回答
536 浏览

clojure - 如何编写 Enlive 选择器以返回标签的“集群”?

我正在使用 Enlive 编写一些 Clojure 代码来处理一组 XML 文档。它们采用 XML 格式,大量借鉴了 HTML,但添加了一些自定义标签,我的工作是将它们转换为真正的 HTML。现在最困扰我的自定义标签是<tab>,它被用于各种不应该使用的地方。例如,它通常用于制作真正应该用<ol>and制作的列表<li>。这是我遇到的那种事情的一个例子:

我想把它变成:

为此,我需要获取<p>包含<tab>后代的元素(使用 Enlive 选择器很容易),并根据它们在原始 XML 文档中的自然分组以某种方式对它们进行聚类(要困难得多)。

我查看了文档并确定我不能依赖该class属性:有时这些<p>-that-should-be-<li>元素与它们周围的元素具有相同的类<p>,有时有两组连续的<p>-that-应该<li>是彼此具有相同类的元素(即,好像我发布的示例中的两个集群都具有类ListWithTabs)。我认为我可以依赖的一件事是,如果没有至少一个非列表元素将它们分开,就永远不会有两个不同的列表:换句话说,任何<p>具有属性“至少有一个<tab>元素作为后代”都是同一个列表的一部分。

考虑到这一点,我在 REPL 上做了一些实验,在命名空间下加载了 Enlive e(也就是说,(require '[net.cgrand.enlive-html :as e])应该假设对我的所有其余问题都有效)。编写一个选择器来挑选我想要的元素很容易,但(e/select snippet [(e/has [:tab])])会返回一个包含 5 个元素的列表(嗯,这确实是一个惰性序列)。但我想要的是一个列表列表:第一个包含三个元素,第二个包含两个。像这样模糊的东西(请原谅非标准的缩进):

我能够创建以下选择器:

但现在我被困住了。我想做类似的事情(e/select snippet [[(e/start-at first-of-tab-group) (e/take-while rest-of-tab-group)]]),但据我所知,Enlive 没有像start-atand这样的功能take-while

感觉就像我非常接近,但只是错过了最后一个关键步骤。那么我该如何迈出最后一步呢?如何只选择与某些规则匹配的元素“集群”,但忽略其他符合相同规则但不属于第一个“集群”的元素?

0 投票
1 回答
237 浏览

clojure - 如何编写这个 clojure enlive 程序以便它可以解析多个 url?

这是一个解析一些网站的程序。第一个站点是site1。解析该特定站点的所有逻辑都位于 (-> config :site1)

现在我想解析 (-> config :site1 :site-url) 中包含的页面。在这个例子中,我只使用了第一个 url,但是我如何设计它来真正for为所有的 URL 做一个主人?

0 投票
1 回答
214 浏览

clojure - Enlive 中的可变 HTML 模板

我正在尝试找到一种“Enlivonic”方式来定义一个函数,该函数将对参数化的 html 模板执行转换。

换句话说,我如何定义类似 defsnippet 的东西,它也将模板作为参数?

我看了看,片段和转换,但我对宏有点迷失:-(

0 投票
1 回答
198 浏览

clojure - enlive 中的范围选择器

我正在尝试创建一个范围选择器,但似乎无法起步。

我正在尝试类似的事情:

这只是返回提供的 html。我希望它返回一个主体为“Hello”的 div。

我该怎么做呢?

编辑

为了更简洁,这是我用 deftemplate 和一个真正的 html 文件所做的:

HTML

CLJ

我正在关注本教程,但它使用一个片段来匹配范围。这是必要的吗?

是否可以用 just 测试这些sniptest

0 投票
1 回答
1932 浏览

clojure - 使用 enlive 解析 html 片段

为什么以下代码段不起作用?

我是否必须先对 html-string 做一些事情才能将其转换为 clojure 数据结构或类似的东西?

0 投票
1 回答
292 浏览

clojure - In clojure enlive how to create template to add values and keys from a map

I want to create a template with Clojure's Enlive for a "table" like html page, that should have a header and rows. I want to populate this "table" with data that comes from this map. Basicaly I want to populate header with keys, and cells with vals from each of the maps that come from :event-data key.

My snippets and template look like this:

And index.html has these tags, that are rellevant for this template.

When I call the template I get this error:

ClassCastException clojure.lang.PersistentHashMap cannot be cast to java.util.Map$Entry clojure.lang.APersistentMap$ValSeq.first (APersistentMap.java:183) What am I doing wrong?