Skip to content

Commit a9f274d

Browse files
committed
wip
1 parent f09e81a commit a9f274d

File tree

4 files changed

+18
-37
lines changed

4 files changed

+18
-37
lines changed

project.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(defproject klipse "2.3.0"
22
:description "Cljs compiler in cljs"
3-
:dependencies [[org.clojure/clojure "1.8.0"]
4-
[org.clojure/clojurescript "1.9.198"]
3+
:dependencies [[org.clojure/clojure "1.9.0-alpha10"]
4+
[org.clojure/clojurescript "1.9.211"]
55
[org.clojure/core.async "0.2.385"]
66
[im.chit/purnam "0.5.2"]
77
[cljsjs/markdown "0.6.0-beta1-0"]

resources/public/playground-dbg.html

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,37 +14,7 @@
1414
<br/>
1515

1616

17-
<div class="lambda">
18-
{div {@ style="text-align:center;font:bold 2em georgia;color:red;"} √(3{sup 2}+4{sup 2}) = {sqrt {+ {* 3 3} {* 4 4}}}}
19-
</div>
20-
<br/>
21-
<div class="lambda">
22-
{def amélie {img
23-
{@ id="amelie"
24-
src="http://epsilonwiki.free.fr/lambdaway/data/amelie_poulain.jpg"
25-
height="150"
26-
title="Amélie Poulain"
27-
style="box-shadow:0 0 8px black;
28-
border:1px solid white;
29-
-webkit-transform:rotate(-5deg);
30-
-moz-transform:rotate(-5deg);
31-
transform:rotate(-5deg);"}}}
32-
{amélie}
33-
</div>
34-
<br/>
35-
<pre>
36-
<code class="eval-html" data-editor-type="html">
37-
&lt;h1&gt; Title &lt;/h1&gt;
38-
&lt;b&gt; bold &lt;/b&gt;
39-
</code>
40-
</pre>
41-
42-
43-
<div class="eval-html" data-editor-type="html">
44-
&lt;img id="amelie" src="http://epsilonwiki.free.fr/lambdaway/data/amelie_poulain.jpg" height="150" title="Amélie Poulain" style="box-shadow:0 0 8px black; border:1px solid white; -webkit-transform:rotate(-5deg); -moz-transform:rotate(-5deg); transform:rotate(-5deg);"&gt;&lt;/img&gt;
45-
</div>
46-
47-
17+
4818
<script src="https://viebel.github.io/klipse/examples/lambdaway_eval.js"></script>
4919
<script>
5020
window.klipse_settings = {

src/klipse/plugin.cljs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
(:require
55
[klipse.args-from-element :refer [editor-args-from-element eval-args-from-element content]]
66
[klipse.klipse-editors :refer [create-editor]]
7-
[clojure.spec :as s :refer [instrument]]
7+
[clojure.spec :as s]
8+
[clojure.spec.test :as stest]
89
[clojure.walk :refer [keywordize-keys]]
910
[goog.dom :refer [isElement]]
1011
[cljs.core.async :refer [<!]]
@@ -77,11 +78,18 @@
7778
:settings ::klipse-settings
7879
:mode ::mode))
7980

81+
(defn ->clj [settings]
82+
; we cannot keywordize the keys as the modules might be written in javascript
83+
(js->clj settings :keywordize-keys false))
84+
8085
(defn ^:export klipsify [element general-settings mode]
8186
(if-let [opts (@mode-options mode)]
8287
(klipsify-with-opts element general-settings opts)
8388
(go (js/console.error "cannot find options for mode: " mode ". Supported modes are: " (clj->js (keys @mode-options))))))
8489

90+
(defn klipsify-js [element js-general-settings mode]
91+
(klipsify element (->clj js-general-settings) mode))
92+
8593
(defn ^:export klipsify-elements [elements general-settings mode]
8694
(go
8795
(doseq [element elements]
@@ -94,7 +102,7 @@
94102
(klipsify-elements (array-seq (js/document.querySelectorAll selector)) keywordized-settings (@selector->mode selector-name))))))
95103

96104
(defn ^:export init [js-settings]
97-
(init-clj (js->clj js-settings :keywordize-keys false))); we cannot keywordize the keys as the modules might be written in javascript
105+
(init-clj (->clj js-settings)))
98106

99-
(s/instrument #'klipsify)
100-
(s/instrument #'klipsify-with-opts)
107+
(stest/instrument `klipsify)
108+
(stest/instrument `klipsify-with-opts)

src/klipse/run/plugin/plugin.cljs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@
1515
(defn ^:export settings []
1616
(aget js/window "klipse_settings"))
1717

18+
(defn ^:export klipsify [element mode]
19+
(plugin/klipsify-js element (settings) mode))
20+
1821
(plugin/init (settings))

0 commit comments

Comments
 (0)