Merge pull request #367 from bootstraponline/browser_fallback

Enable live preview only for supported user agents.
This commit is contained in:
bootstraponline
2012-05-29 17:35:01 -07:00
2 changed files with 11 additions and 1 deletions
+1
View File
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
s.add_dependency('mustache', [">= 0.11.2", "< 1.0.0"])
s.add_dependency('sanitize', "~> 2.0.0")
s.add_dependency('nokogiri', "~> 1.4")
s.add_dependency('useragent', "~> 0.4.9")
s.add_development_dependency('RedCloth')
s.add_development_dependency('mocha')
+10 -1
View File
@@ -2,6 +2,7 @@ require 'cgi'
require 'sinatra'
require 'gollum'
require 'mustache/sinatra'
require 'useragent'
require 'gollum/frontend/views/layout'
require 'gollum/frontend/views/editable'
@@ -25,6 +26,14 @@ module Precious
dir = File.dirname(File.expand_path(__FILE__))
# Detect unsupported browsers.
@@supported_browsers = ['Firefox', 'Chrome', 'Safari']
def supported_useragent?( user_agent )
browser = UserAgent.parse( user_agent ).browser
@@supported_browsers.include? browser
end
# We want to serve public assets for now
set :public_folder, "#{dir}/public/gollum"
set :static, true
@@ -67,7 +76,7 @@ module Precious
@name = params[:splat].first
wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options)
if page = wiki.page(@name)
if page.format.to_s.include?('markdown')
if page.format.to_s.include?('markdown') && supported_useragent?(request.user_agent)
redirect '/livepreview/index.html?page=' + encodeURIComponent(@name)
else
@page = page