mirror of
https://github.com/journeyman-cc/smeagol.git
synced 2026-04-12 18:05:06 +00:00
Fixed a nasty breaking bug when the side bar file wasn't named as expected!
This commit is contained in:
parent
2fd03caade
commit
a8929894d4
3 changed files with 28 additions and 8 deletions
|
|
@ -124,6 +124,7 @@
|
||||||
(merge (util/standard-params request)
|
(merge (util/standard-params request)
|
||||||
{:title page
|
{:title page
|
||||||
:page page
|
:page page
|
||||||
|
:side-bar (util/local-links (util/md->html "/content/_side-bar.md"))
|
||||||
:content (util/local-links (util/md->html file-name))
|
:content (util/local-links (util/md->html file-name))
|
||||||
:editable true})))
|
:editable true})))
|
||||||
true (response/redirect (str "/edit?page=" page)))))
|
true (response/redirect (str "/edit?page=" page)))))
|
||||||
|
|
|
||||||
|
|
@ -37,9 +37,14 @@
|
||||||
(md/md-to-html-string (io/slurp-resource filename)))
|
(md/md-to-html-string (io/slurp-resource filename)))
|
||||||
|
|
||||||
|
|
||||||
|
;; Error to show if text to be rendered is nil.
|
||||||
|
(def no-text-error "No text: does the file exist?")
|
||||||
|
|
||||||
|
|
||||||
(defn local-links
|
(defn local-links
|
||||||
"Rewrite text in `html-src` surrounded by double square brackets as a local link into this wiki."
|
"Rewrite text in `html-src` surrounded by double square brackets as a local link into this wiki."
|
||||||
[^String html-src]
|
[^String html-src]
|
||||||
|
(if html-src
|
||||||
(cs/replace html-src #"\[\[[^\[\]]*\]\]"
|
(cs/replace html-src #"\[\[[^\[\]]*\]\]"
|
||||||
#(let [text (clojure.string/replace %1 #"[\[\]]" "")
|
#(let [text (clojure.string/replace %1 #"[\[\]]" "")
|
||||||
encoded (url-encode text)
|
encoded (url-encode text)
|
||||||
|
|
@ -47,7 +52,8 @@
|
||||||
;; '_' is meaningful in Markdown. However, this needs to
|
;; '_' is meaningful in Markdown. However, this needs to
|
||||||
;; be stripped out when interpreting local links.
|
;; be stripped out when interpreting local links.
|
||||||
munged (cs/replace encoded #"%26%2395%3B" "_")]
|
munged (cs/replace encoded #"%26%2395%3B" "_")]
|
||||||
(format "<a href='wiki?page=%s'>%s</a>" munged text))))
|
(format "<a href='wiki?page=%s'>%s</a>" munged text)))
|
||||||
|
no-text-error))
|
||||||
|
|
||||||
|
|
||||||
(defn standard-params
|
(defn standard-params
|
||||||
|
|
|
||||||
13
test/smeagol/test/util.clj
Normal file
13
test/smeagol/test/util.clj
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
(ns smeagol.test.util
|
||||||
|
(:use clojure.test
|
||||||
|
ring.mock.request
|
||||||
|
smeagol.util))
|
||||||
|
|
||||||
|
(deftest test-local-links
|
||||||
|
(testing "Rewriting of local links"
|
||||||
|
(is (= (local-links nil) no-text-error) "Should NOT fail with a no pointer exception!")
|
||||||
|
(is (= (local-links "") "") "Empty string should pass through unchanged.")
|
||||||
|
(is (= (local-links "[[froboz]]") "<a href='wiki?page=froboz'>froboz</a>") "Local link should be rewritten.")
|
||||||
|
(let [text (str "# This is a heading"
|
||||||
|
"[This is a foreign link](http://to.somewhere)")]
|
||||||
|
(is (= (local-links text) text) "Foreign links should be unchanged"))))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue