Substantial modification of how pages which are mainly generated content are

handled. I had ended up with four '.html' files which were essentially
identical. Also work on new editable parameters feature.
This commit is contained in:
Simon Brooke 2014-07-22 10:08:10 +01:00
parent ea1af2103f
commit 6618fded9d
7 changed files with 19 additions and 28 deletions

View file

@ -1,7 +1,5 @@
## Ruleset which attempts to model retreat of ice after an iceage ## Ruleset which attempts to model retreat of ice after an iceage
if generation is less than 5 then state should be ice
;; Limitations: because the rule language doesn't (yet) allow sophisticated ;; Limitations: because the rule language doesn't (yet) allow sophisticated
;; arithmetic, the ice retreats north to south (southern hemisphere). ;; arithmetic, the ice retreats north to south (southern hemisphere).

View file

@ -1,6 +0,0 @@
{% extends "templates/base.html" %}
{% block content %}
<div>
{{content|safe}}
</div>
{% endblock %}

View file

@ -16,13 +16,14 @@
var context = "{{servlet-context}}"; var context = "{{servlet-context}}";
//]]> //]]>
</script> </script>
<meta content="{{seconds}}" http-equiv="{{maybe-refresh}}" /> <meta content="{{pause}}" http-equiv="{{maybe-refresh}}" />
</head> </head>
<body> <body>
<div id="header" style="background-image: url( '{{servlet-context}}/img/earth-space-strip.jpg');"> <div id="header" style="background-image: url( '{{servlet-context}}/img/earth-space-strip.jpg');">
<div id="nav"> <div id="nav">
<ul class="nav"> <ul class="nav">
<li class="{{home-selected}}"><a href="{{servlet-context}}/">Home</a></li> <li class="{{home-selected}}"><a href="{{servlet-context}}/">Home</a></li>
<li class="{{params-selected}}"><a href="{{servlet-context}}/params">Parameters</a></li>
<li class="{{rules-selected}}"><a href="{{servlet-context}}/rules">Rules</a></li> <li class="{{rules-selected}}"><a href="{{servlet-context}}/rules">Rules</a></li>
<li class="{{world-selected}}"><a href="{{servlet-context}}/world">World</a></li> <li class="{{world-selected}}"><a href="{{servlet-context}}/world">World</a></li>
<li class="{{about-selected}}"><a href="{{servlet-context}}/about">About</a></li> <li class="{{about-selected}}"><a href="{{servlet-context}}/about">About</a></li>

View file

@ -1,6 +0,0 @@
{% extends "templates/base.html" %}
{% block content %}
<div>
{{content|safe}}
</div>
{% endblock %}

View file

@ -1,6 +0,0 @@
{% extends "templates/base.html" %}
{% block content %}
<div>
{{content|safe}}
</div>
{% endblock %}

View file

@ -1,6 +1,7 @@
(ns mw-ui.routes.home (ns mw-ui.routes.home
(:use compojure.core (:use compojure.core
[mw-ui.routes.rules :as rules]) [mw-ui.routes.rules :as rules]
[mw-ui.routes.params :as params])
(:require [hiccup.core :refer [html]] (:require [hiccup.core :refer [html]]
[mw-ui.layout :as layout] [mw-ui.layout :as layout]
[mw-ui.util :as util] [mw-ui.util :as util]
@ -8,17 +9,17 @@
[noir.session :as session])) [noir.session :as session]))
(defn home-page [] (defn home-page []
(layout/render "home.html" {:title "Welcome to MicroWorld" (layout/render "trusted-content.html" {:title "Welcome to MicroWorld"
:content (util/md->html "/md/mw-ui.md")})) :content (util/md->html "/md/mw-ui.md")}))
(defn world-page [] (defn world-page []
(layout/render "world.html" {:title "Watch your world grow" (layout/render "trusted-content.html" {:title "Watch your world grow"
:content (html (world/render-world-table)) :content (html (world/render-world-table))
:seconds (or (session/get :seconds) 5) :pause (or (session/get :pause) 5)
:maybe-refresh "refresh"})) :maybe-refresh "refresh"}))
(defn about-page [] (defn about-page []
(layout/render "about.html" {:title "About MicroWorld" :content (util/md->html "/md/about.md")})) (layout/render "trusted-content.html" {:title "About MicroWorld" :content (util/md->html "/md/about.md")}))
(defn list-states [] (defn list-states []
(sort (sort
@ -29,7 +30,7 @@
(defn docs-page [] (defn docs-page []
(layout/render "docs.html" {:title "Documentation" (layout/render "docs.html" {:title "Documentation"
:parser (util/md->html "/md/mw-parser.md" ) :parser (util/md->html "/md/mw-parser.md" )
:states (list-states) :states (util/list-resources "resources/public/img/tiles" #"([0-9a-z-_]+).png")
:components ["mw-engine" "mw-parser" "mw-ui"]})) :components ["mw-engine" "mw-parser" "mw-ui"]}))
(defroutes home-routes (defroutes home-routes
@ -37,5 +38,7 @@
(GET "/about" [] (about-page)) (GET "/about" [] (about-page))
(GET "/docs" [] (docs-page)) (GET "/docs" [] (docs-page))
(GET "/world" [] (world-page)) (GET "/world" [] (world-page))
(GET "/params" [] (params/params-page))
(POST "/params" request (params/params-page request))
(GET "/rules" request (rules/rules-page request)) (GET "/rules" request (rules/rules-page request))
(POST "/rules" request (rules/rules-page request))) (POST "/rules" request (rules/rules-page request)))

View file

@ -8,3 +8,10 @@
(->> (->>
(io/slurp-resource filename) (io/slurp-resource filename)
(md/md-to-html-string))) (md/md-to-html-string)))
(defn list-resources [directory pattern]
"List resource files matching `pattern` in `directory`."
(sort
(filter #(not (nil? %))
(map #(first (rest (re-matches pattern (.getName %))))
(file-seq (clojure.java.io/file directory))))))