Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

expose enlive/at* #68

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

martinklepsch
Copy link

enlive/at* is a bit easier to use when programmatically passing selectors and transformations as collection.

I'm not sure if this is the right way of doing it, let me know if you think this should be done differently.

@martinklepsch
Copy link
Author

martinklepsch commented May 30, 2020

Hm... I thought I could also just call transform but somehow I am not able to get this to work. Does look like it should work to you? Shouldn't all these forms return the same, i.e. ([:div])?

(def html-str "<div><span>x</span></div>")
(def hs (utils/convert-to html-str :hiccup-seq))

(enlive/transform hs [:span] nil)   ; => [[:div [:span "x"]]]

(-> (enlive/as-nodes hs)
    (enlive/transform [:span] nil)) ; => [[:div [:span "x"]]]


(enlive/at hs [:span] nil)          ; => ([:div])

@retrogradeorbit
Copy link
Owner

@martinklepsch sorry bout the slow response. Been chasing butterflies.

I know an enlive/at transform using nil as the transforming function deletes the node. But it looks like that does not apply to enlive/transform and that nil here means just do nothing.

regarding the at* exposure, defining the var in the namespace will make it accessible from the JVM, but it will need to be "mounted" for bootleg itself in namespaces.clj and for babashka pod use in pod.clj.

I added some more introspective macros in spire to automount the vars for sci usage, but bootleg is still manually listing them all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants