Host site as github repo of md files?
shaunlebron opened this issue · 1 comments
shaunlebron commented
I’d like to populate the docfiles with generated content to avoid hosting a separate site.
Embed clojure code inside <!-- clj (...) ->
tags to generate content.
## Summary
...
## Details
...
## Examples
...
## Source
<!-- clj (cljs-api/get-source *entry*)-->
...
<!-- clj -->
And I’d like a way to run something like clj -M docgen.clj <docfile>
to update it using info from cljs-api.edn maybe.
Migration plan
- Generate cljs-api.edn without docfiles
- Generate
*.clj.md
files from original docfiles (“ejecting”) - Have newly detected symbols generate
*.clj.md
stub files. - Replace
doc:
links with relative md links - Create a new process for updating
*.clj.md
files, only by using embedded clojure calls to helper functions using cljs-api.edn - Allow insertion of new functions
- Eventually use this system to document clojure functions
shaunlebron commented
assoc!
function |
---|
(assoc! tcoll key val)
(assoc! tcoll key val & kvs)
Summary
assoc(iate) on transient collection
When applied to a transient map, adds mapping of key(s) to val(s).
When applied to a transient vector, sets the val at index. Note - index must
be <= (count vector).
Returns coll.
Examples
(def tcoll (transient! {}))
(assoc! tcoll :a 1)
(assoc! tcoll :b 2)
tcoll
;;=> #<[object Object]>
(:a tcoll)
;;=> 1
(:b tcoll)
;;=> 2
(def a (persistent! tcoll))
;;=> {:a 1 :b 2}
See Also
- transient
- persistent!
Source
When applied to a transient map, adds mapping of key(s) to
val(s). When applied to a transient vector, sets the val at index.
Note - index must be <= (count vector). Returns coll.
clojurescript:src/main/cljs/cljs/core.cljs
(defn assoc!
([tcoll key val]
(-assoc! tcoll key val))
([tcoll key val & kvs]
(let [ntcoll (-assoc! tcoll key val)]
(if kvs
(recur ntcoll (first kvs) (second kvs) (nnext kvs))
ntcoll))))