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)
|
||||
{:title page
|
||||
:page page
|
||||
:side-bar (util/local-links (util/md->html "/content/_side-bar.md"))
|
||||
:content (util/local-links (util/md->html file-name))
|
||||
:editable true})))
|
||||
true (response/redirect (str "/edit?page=" page)))))
|
||||
|
|
|
|||
|
|
@ -37,9 +37,14 @@
|
|||
(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
|
||||
"Rewrite text in `html-src` surrounded by double square brackets as a local link into this wiki."
|
||||
[^String html-src]
|
||||
(if html-src
|
||||
(cs/replace html-src #"\[\[[^\[\]]*\]\]"
|
||||
#(let [text (clojure.string/replace %1 #"[\[\]]" "")
|
||||
encoded (url-encode text)
|
||||
|
|
@ -47,7 +52,8 @@
|
|||
;; '_' is meaningful in Markdown. However, this needs to
|
||||
;; be stripped out when interpreting local links.
|
||||
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
|
||||
|
|
|
|||
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