summaryrefslogtreecommitdiffstats
path: root/docs/Rakefile
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Rakefile')
-rw-r--r--docs/Rakefile54
1 files changed, 54 insertions, 0 deletions
diff --git a/docs/Rakefile b/docs/Rakefile
new file mode 100644
index 00000000..b4e1d6d1
--- /dev/null
+++ b/docs/Rakefile
@@ -0,0 +1,54 @@
+require 'bonsai'
+require 'liquid'
+require 'maruku'
+require 'json'
+
+module ExtraFilters
+ def markdownify(input)
+ Maruku.new(input).to_html
+ end
+
+ def sanitize(input)
+ input.gsub(/[^a-zA-Z0-9_]/,"")
+ end
+
+ def json(input)
+ input.to_json
+ end
+
+ def unique(input)
+ @n = (@n || 0) + 1
+ input + @n.to_s
+ end
+end
+
+Liquid::Template.register_filter(ExtraFilters)
+
+
+task :serve do
+ begin
+ Bonsai.log "Press Control+C to quit"
+
+ require 'rack'
+ require 'sinatra'
+ require 'watch'
+ require 'launchy'
+
+ Bonsai.root_dir = Dir.pwd
+
+ server = fork {
+ app = Rack::Builder.app {
+ use Bonsai::StaticPassThrough, :root => Bonsai.root_dir + "/output", :urls => ["/"]
+ run Bonsai::DevelopmentServer
+ }
+ Rack::Handler.default.run(app, :Port => 5000) do
+ Launchy.open("http://localhost:5000/")
+ end
+ }
+ Watch.new("{content,templates,public}/**/*") { Bonsai::Exporter.process! }
+ rescue Interrupt
+ Process.kill("QUIT", server)
+ Process.wait(server)
+ exit
+ end
+end