* CSS to SCSS

* Use sprockets

* Use Sprockets helpers

* Fix gollum.editor.js error when changing language

* Add keybinding files required by ace and some ace ext files that are required or might be useful.

* Move app paths to /gollum namespace, add route helpers for view templates

* Use path helper for links in page view

* Use path helper methods in javascript assets

* Refactored sprockets helpers for mustache

* Remove debugging
This commit is contained in:
Dawa Ometto
2018-10-14 15:46:10 +02:00
committed by GitHub
parent fd73eb6d05
commit 197a2bd57b
24 changed files with 513 additions and 461 deletions
+50 -18
View File
@@ -2,31 +2,63 @@ require 'yaml'
module Precious
module Views
module RouteHelpers
ROUTES = {
'gollum' => {
last_commit_info: 'last-commit-info',
latest_changes: 'latest_changes',
upload_file: 'uploadFile',
create: 'create',
delete: 'delete',
edit: 'edit',
pages: 'pages',
history: 'history',
rename: 'rename',
preview: 'preview',
compare: 'compare',
search: 'search'
}
}
def self.parse_routes(routes, prefix = '')
routes.each do |name, path|
if path.respond_to?(:keys)
self.parse_routes(path, "#{prefix}/#{name}")
else
define_method :"#{name.to_s}_path" do
"#{base_url}/#{prefix}/#{path}".gsub(/\/{2,}/, '/') # remove double slashes
end
end
end
end
def self.included(base)
self.parse_routes(ROUTES)
end
end
module SprocketsHelpers
def self.included(base)
def helper_proc_with_options(method)
Proc.new do |args|
def sprockets_stylesheet_tag
lambda do |args|
args = args.split(' ')
if args.size > 1 then
options = args[1..-1].join(' ')
options = YAML.safe_load("---\n#{options}\n", [Symbol])
end
options = options.respond_to?(:to_h) ? options.to_h : {}
options = options.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
send(method, args[0], options)
end
end
['stylesheet_path','javascript_path', 'image_path'].each do |method|
define_method :"#{method}_mustache" do
Proc.new {|args| send(method.to_sym, args)}
name = args[0]
options = {:media => :all}
options[:media] = :print if args[1] == 'print'
send(:stylesheet_tag, name, options)
end
end
['stylesheet_tag','javascript_tag'].each do |method|
define_method :"#{method}_mustache" do
helper_proc_with_options(method.to_sym)
def sprockets_javascript_tag
lambda do |name|
send(:javascript_tag, name)
end
end
def sprockets_image_path
lambda do |args|
send(:image_path, name)
end
end
end