Liking cljdoc? Tell your friends :D

mentat.clerk-utils.viewers

Functions useful for writing custom Clerk viewers.

Functions useful for writing custom Clerk viewers.
raw docstring

compile-formclj

(compile-form aliases skel)

Given a map aliases of <symbol> => <namespace object> and a Clojure expression tree skel, returns skel with

  • any splices or unquote-splices resolved from the environment
  • any symbol namespaced by an alias substituted for a symbol with namespace expanded.

Used by q.

Given a map `aliases` of `<symbol> => <namespace object>` and a Clojure
expression tree `skel`, returns `skel` with

- any splices or unquote-splices resolved from the environment
- any symbol namespaced by an alias substituted for a symbol with namespace
  expanded.

Used by [[q]].
sourceraw docstring

compile-symclj

(compile-sym aliases sym)

Given a map aliases of <symbol> => <namespace object> and a symbol sym, returns sym with its namespace expanded if that namespace is present in aliases, sym otherwise.

For example:

(require '[clojure.core :as c])
(compile-sym (ns-aliases *ns*) 'c/cake)
;; => 'clojure.core/cake
Given a map `aliases` of `<symbol> => <namespace object>` and a symbol `sym`,
returns `sym` with its namespace expanded if that namespace is present in
`aliases`, `sym` otherwise.

For example:

```clj
(require '[clojure.core :as c])
(compile-sym (ns-aliases *ns*) 'c/cake)
;; => 'clojure.core/cake
```
sourceraw docstring

map-kvclj

(map-kv vf m)
(map-kv kf vf m)

Returns a map of identical type and key set to m, with each value v transformed by the supplied function vf into (vf v) and each key k transformed into (kf k).

In the 2-arity case, only values are transformed.

Returns a map of identical type and key set to `m`, with each value `v`
transformed by the supplied function `vf` into `(vf v)` and each key `k`
transformed into `(kf k)`.

In the 2-arity case, only values are transformed.
sourceraw docstring

qcljmacro

(q form)

q is similar to Clojure's unquote facility, except that

  • symbols are not automatically prefixed by namespace,
  • splices and unquote splices are respected, and
  • any symbol namespaced by an alias will have its namespace expanded.

For example:

(require '[clojure.core :as c])
(let [x 10]
  (q (+ ~x c/y z ~@[4 5])))
;;=> (+ 10 clojure.core/y z 4 5)
[[q]] is similar to Clojure's `unquote` facility, except that

- symbols are not automatically prefixed by namespace,
- splices and unquote splices are respected, and
- any symbol namespaced by an alias will have its namespace expanded.

For example:

```clojure
(require '[clojure.core :as c])
(let [x 10]
  (q (+ ~x c/y z ~@[4 5])))
;;=> (+ 10 clojure.core/y z 4 5)
```
sourceraw docstring

splice-reduceclj

(splice-reduce f xs)

Helper function for reducing over a sequence that might contain forms that need to be spliced into the resulting sequence. This is a sort of helper for a guarded mapcat.

Takes a sequence xs and mapping function f and returns a sequence of sequences that, if concatenated together, would be identical to

(map f xs)

Except that any x such that (unquote-splice? x) returns true would have its sequential value x spliced into the result instead of (f x).

Helper function for reducing over a sequence that might contain forms that need
to be spliced into the resulting sequence. This is a sort of helper for a
guarded `mapcat`.

Takes a sequence `xs` and mapping function `f` and returns a sequence of
sequences that, if concatenated together, would be identical to

```clojure
(map f xs)
```

Except that any `x` such that `(unquote-splice? x)` returns true would have
its sequential value `x` spliced into the result instead of `(f x)`.
sourceraw docstring

unquote-splice?clj

(unquote-splice? form)

Returns true if form is a sequence form that should be spliced directly into the returned form, false otherwise.

Returns true if `form` is a sequence form that should be spliced directly into
the returned form, false otherwise.
sourceraw docstring

unquote?clj

(unquote? form)

Returns true if form is a form that should be included with no quoting into the returned form, false otherwise.

Returns true if `form` is a form that should be included with no quoting into
the returned form, false otherwise.
sourceraw docstring

unquoted-formclj

(unquoted-form form)

Given a form that responds true to unquote? or unquote-splice?, returns the unquoted body.

Given a `form` that responds `true` to [[unquote?]] or [[unquote-splice?]],
returns the unquoted body.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close