Permalink
Browse files

Merge branch 'master' into feature/gollum-lib

Conflicts:
	lib/gollum/markup.rb
	test/test_gitcode.rb
  • Loading branch information...
2 parents cbc0821 + 54e1445 commit b989f160cf1457809db1a484ed7567a4f803735b Jamie Oliver committed Mar 20, 2013
View
@@ -25,6 +25,11 @@ Gollum follows the rules of [Semantic Versioning](http://semver.org/) and uses
- Unix like operating system (OS X, Ubuntu, Debian, and more)
- Will not work on Windows (because of [grit](https://github.com/github/grit))
+## SECURITY
+
+Don't enable `--custom-css` or `--custom-js` unless you trust every user who has the ability to edit the wiki.
+A better solution with more security is being tracked in [#665](https://github.com/gollum/gollum/issues/665).
+
## INSTALLATION
The best way to install Gollum is with RubyGems:
@@ -364,9 +369,9 @@ As an extra feature, you can syntax highlight a file from your repository, allow
you keep some of your sample code in the main repository. The code-snippet is
updated when the wiki is rebuilt. You include github code like this:
- ```html:gollum/gollum/master/test/file_view/1_file.txt```
+ ```html:github:gollum/gollum/master/test/file_view/1_file.txt```
-This will make the builder look at the **github user**, in the **gollum project**,
+This will make the builder look at the **gollum user**, in the **gollum project**,
in the **master branch**, at path **test/file_view/1_file.txt**. It will be
rewritten to:
@@ -554,10 +559,12 @@ Note that filenames on windows must not contain any of the following characters
Gollum optionally takes a `--config file`. See [config.rb](https://github.com/gollum/gollum/blob/master/config.rb) for an example.
-## CUSTOM CSS
+## CUSTOM CSS/JS
The `--css` flag will inject `custom.css` from the root of your git repository into each page. `custom.css` must be commited to git or you will get a 302 redirect to the create page.
+The `--js` flag will inject `custom.js` from the root of your git repository into each page. `custom.js` must be commited to git or you will get a 302 redirect to the create page.
+
## CONTRIBUTE
If you'd like to hack on Gollum, start by forking the repo on GitHub:
View
@@ -49,6 +49,10 @@ opts = OptionParser.new do |opts|
wiki_options[:css] = true
end
+ opts.on("--js", "Inject custom js. Uses custom.js from root repository") do
+ wiki_options[:js] = true
+ end
+
opts.on("--page-file-dir [PATH]", "Specify the sub directory for all page files (default: repository root).") do |path|
wiki_options[:page_file_dir] = path
end
View
@@ -85,6 +85,7 @@ def supported_useragent?(user_agent)
# above will detect base_path when it's used with map in a config.ru
settings.wiki_options.merge!({ :base_path => @base_url })
@css = settings.wiki_options[:css]
+ @js = settings.wiki_options[:js]
end
get '/' do
@@ -6,6 +6,7 @@
<link rel="stylesheet" type="text/css" href="{{base_url}}/css/template.css" media="all">
<link rel="stylesheet" type="text/css" href="{{base_url}}/css/_styles.css" media="all">
{{#css}}<link rel="stylesheet" type="text/css" href="{{base_url}}/custom.css" media="all">{{/css}}
+ {{#js}}<script type="text/javascript" src="{{base_url}}/custom.js"></script>{{/js}}
<title>{{title}}</title>
</head>
<body>
@@ -43,6 +43,7 @@
(d.head || d.getElementsByTagName('head')[0]).appendChild(j);
}(document));
</script>{{/mathjax}}
+ {{#js}}<script type="text/javascript" src="{{base_url}}/custom.js"></script>{{/js}}
<title>{{title}}</title>
</head>
@@ -28,6 +28,10 @@ def css # custom css
@css
end
+ def js # custom js
+ @js
+ end
+
end
end
end
View
@@ -461,6 +461,30 @@
assert_equal 'jkl', author.email
end
+ test "do not add custom.js by default" do
+ page = 'nocustom'
+ text = 'nope none'
+
+ @wiki.write_page(page, :markdown, text,
+ { :name => 'user1', :email => 'user1' });
+
+ get page
+ assert_no_match /custom.js/, last_response.body
+ end
+
+ test "add custom.js if setting" do
+ Precious::App.set(:wiki_options, { :js => true })
+ page = 'yaycustom'
+ text = 'customized!'
+
+ @wiki.write_page(page, :markdown, text,
+ { :name => 'user1', :email => 'user1' });
+
+ get page
+ assert_match /custom.js/, last_response.body
+ Precious::App.set(:wiki_options, { :js => nil })
+ end
+
def app
Precious::App
end

0 comments on commit b989f16

Please sign in to comment.