diff --git a/cljs-shared/cljs_cheatsheet/util.cljs b/cljs-shared/cljs_cheatsheet/util.cljs index 97c0453..a7b48f3 100644 --- a/cljs-shared/cljs_cheatsheet/util.cljs +++ b/cljs-shared/cljs_cheatsheet/util.cljs @@ -22,23 +22,30 @@ (def uri-encode js/encodeURIComponent) -(defn- encode-symbol-url-clojuredocs - "Encode URL for clojuredocs.org" - [s] - (-> s - (replace "/" "_fs") ;; divide symbol - "/" - (replace "?" "_q"))) - -(defn- encode-symbol-url-cljs - "Encode URL for cljs.github.io" - [s] - (-> s - (replace "/" "SLASH") - (replace "?" "QMARK") - (replace "!" "BANG") - (replace ">" "GT") - (replace "<" "LT") - (replace "=" "EQ"))) +(def encode-clojuredocs + {"/" "_fs" + "?" "_q"}) + +(def encode-cljs + {"/" "SLASH" + "?" "QMARK" + "!" "BANG" + ">" "GT" + "<" "LT" + "=" "EQ"}) + +(defn encoder-gen [mapping] + (fn [s] + (reduce-kv + replace + s + mapping))) + +(def encode-symbol-url-clojuredocs + (encoder-gen encode-clojuredocs)) + +(def encode-symbol-url-cljs + (encoder-gen encode-cljs)) (defn docs-href [name name-space] (let [cljsns? (= name-space "cljs.core") diff --git a/public/index.html b/public/index.html index 9f17a27..564c750 100644 --- a/public/index.html +++ b/public/index.html @@ -1,4 +1,4 @@ -
Literals | 73.14-1.2e30x0000ff |
Arithmetic | +-*/quotremmodincdecmaxmin |
Compare | ===not=<><=>=compare |
Cast | int |
Test | zero?pos?neg?even?odd?number?integer? |
Random | randrand-int |
Create | "abc"strname |
Use | (.-length my-str)countgetsubs(clojure.string/)joinescapesplitsplit-linesreplacereplace-firstreverse |
Regex | #"pattern"re-findre-seqre-matchesre-pattern(clojure.string/)replacereplace-first |
Letters | (clojure.string/)capitalizelower-caseupper-case |
Trim | (clojure.string/)trimtrim-newlinetrimltrimr |
Test | charstring?(clojure.string/)includes?blank? |
Create | atom |
Get Value | @my-atom → (deref my-atom) |
Set Value | swap!reset!compare-and-set! |
Watch | add-watchremove-watch |
Validators | set-validator!get-validator |
Create Object | #js {}js-obj |
Create Array | #js []arraymake-arrayaclone |
Get Property | (.-innerHTML el) |
Set Property | (set! (.-innerHTML el) "Hi!") |
Delete Property | js-delete |
Convert Between | clj->jsjs->clj |
Type Tests | array?fn?number?object?string? |
Exceptions | trycatchfinallythrow |
External Library | (js/alert "Hello world!") (js/console.log my-obj) (.html (js/jQuery "#myDiv") "Hi!") |
Literals | 73.14-1.2e30x0000ff |
Arithmetic | +-*/quotremmodincdecmaxmin |
Compare | ===not=<><=>=compare |
Cast | int |
Test | zero?pos?neg?even?odd?number?integer? |
Random | randrand-int |
Create Object | #js {}js-obj |
Create Array | #js []arraymake-arrayaclone |
Get Property | (.-innerHTML el) |
Set Property | (set! (.-innerHTML el) "Hi!") |
Delete Property | js-delete |
Convert Between | clj->jsjs->clj |
Type Tests | array?fn?number?object?string? |
Exceptions | trycatchfinallythrow |
External Library | (js/alert "Hello world!") (js/console.log my-obj) (.html (js/jQuery "#myDiv") "Hi!") |
Create | #(...) → (fn [args] (...)) fndefndefn-identityconstantlycompcomplementpartialjuxtmemoizefnilevery-predsome-fn |
Call | apply->->>as->cond->cond->>some->some->> |
Test | fn?ifn? |
Create | "abc"strname |
Use | (.-length my-str)countgetsubs(clojure.string/)joinescapesplitsplit-linesreplacereplace-firstreverse |
Regex | #"pattern"re-findre-seqre-matchesre-pattern(clojure.string/)replacereplace-first |
Letters | (clojure.string/)capitalizelower-caseupper-case |
Trim | (clojure.string/)trimtrim-newlinetrimltrimr |
Test | charstring?(clojure.string/)includes?blank? |
Create | atom |
Get Value | @my-atom → (deref my-atom) |
Set Value | swap!reset!compare-and-set! |
Watch | add-watchremove-watch |
Validators | set-validator!get-validator |
Create | []vectorvec |
Examine | (my-vec idx) → (nth my-vec idx) getpeek |
'Change' | assocpopsubvecreplaceconjrseq |
Loop | mapvfiltervreduce-kv |
Create | #{}sethash-setsorted-setsorted-set-by |
Examine | (my-set itm) → (get my-set itm) contains? |
'Change' | conjdisj |
Set Ops | (clojure.set/)uniondifferenceintersectionselect |
Test | (clojure.set/)subset?superset? |
Create | {:key1 "a" :key2 "b"} hash-maparray-mapzipmapsorted-mapsorted-map-byfrequenciesgroup-by |
Examine | (:key my-map) → (get my-map :key) get-incontains?findkeysvals |
'Change' | assocassoc-indissocmergemerge-withselect-keysupdate-in |
Entry | keyval |
Sorted Maps | rseqsubseqrsubseq |
General | countemptynot-emptyintoconj |
Content Tests | distinct?empty?every?not-every?somenot-any? |
Capabilities | sequential?associative?sorted?counted?reversible? |
Type Tests | coll?list?vector?set?map?seq? |
Create | {:key1 "a" :key2 "b"} hash-maparray-mapzipmapsorted-mapsorted-map-byfrequenciesgroup-by |
Examine | (:key my-map) → (get my-map :key) get-incontains?findkeysvals |
'Change' | assocassoc-indissocmergemerge-withselect-keysupdate-in |
Entry | keyval |
Sorted Maps | rseqsubseqrsubseq |
Create | []vectorvec |
Examine | (my-vec idx) → (nth my-vec idx) getpeek |
'Change' | assocpopsubvecreplaceconjrseq |
Loop | mapvfiltervreduce-kv |
Create | #{}sethash-setsorted-setsorted-set-by |
Examine | (my-set itm) → (get my-set itm) contains? |
'Change' | conjdisj |
Set Ops | (clojure.set/)uniondifferenceintersectionselect |
Test | (clojure.set/)subset?superset? |