             [cljs.core.async :refer [put! chan <!]]))
 
 (defonce app-state (atom {:text "Hello!"
-                          :items ["foo" "bar"]}))
+                          :items ["foo"
+                                  "Foobar [[foo|blitz]] lolophone hoptigoff."]}))
 
 (defn add-item [app owner]
   (let [new-item (-> (om/get-node owner "new-item")

               (apply dom/ul nil
                      (om/build-all item-view (:items app)))))))


(defn main []
  (om/root app-view
           app-state

      (om/set-state! owner :text text)
      (om/set-state! owner :text value))))

(def link-re #"\[\[([a-z]+)\|([a-z]+)\]\]")
(defn link [href str] (dom/a #js {:href href} str))
(defn link? [s] (if (re-find link-re s) true false))
(defn get-href [s] (str (nth (re-find link-re s) 1)))
(defn get-title [s] (str (nth (re-find link-re s) 2)))
(defn split-words [s] (clojure.string/split s #"\s+"))

(defn str-or-link [x]
  (if (link? x)
    (link (get-href x) (get-title x))
    (str " " x " ")))

(defn prepare-item [s]
  (vec (map str-or-link (split-words s))))

(defn item-view [item owner]
  (reify
    om/IRender
    (render [this]
      (dom/li nil
              (apply dom/div nil
                     (prepare-item item))))))

(defn app-view [app owner]
  (reify
