mirror of
https://github.com/stedolan/jq.git
synced 2024-05-11 05:55:39 +00:00
55 lines
1.0 KiB
Ruby
55 lines
1.0 KiB
Ruby
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
|