Merge pull request #367 from bootstraponline/browser_fallback
Enable live preview only for supported user agents.
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user