From 3e8d2773be2308c8e4362e9fbb2349f7be15ca8d Mon Sep 17 00:00:00 2001 From: 7rans Date: Wed, 27 Oct 2010 14:17:24 -0400 Subject: [PATCH] allow deactivation of sanitization --- lib/gollum/markup.rb | 4 ++-- lib/gollum/wiki.rb | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index 40ee86fa..b79e7a19 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -29,7 +29,7 @@ module Gollum def render(no_follow = false) sanitize_options = ( no_follow ? @wiki.history_sanitization : @wiki.sanitization - ).to_h + ) data = extract_tex(@data) data = extract_code(data) data = extract_tags(data) @@ -43,7 +43,7 @@ module Gollum end data = process_tags(data) data = process_code(data) - data = Sanitize.clean(data, sanitize_options) + data = Sanitize.clean(data, sanitize_options.to_h) if sanitize_options data = process_tex(data) data.gsub!(/

<\/p>/, '') data diff --git a/lib/gollum/wiki.rb b/lib/gollum/wiki.rb index f74cfd89..82de0a89 100644 --- a/lib/gollum/wiki.rb +++ b/lib/gollum/wiki.rb @@ -15,11 +15,9 @@ module Gollum # Sets the default email for commits. attr_accessor :default_committer_email - # - attr_writer :sanitization_options - - # - attr_writer :history_sanitization_options + # Sets sanitization options. Set to false to deactivate + # sanitization altogether. + attr_writer :sanitization # Gets the page class used by all instances of this Wiki. # Default: Gollum::Page. @@ -45,7 +43,8 @@ module Gollum # def sanitization - @sanitization ||= Sanitization.new + return @sanitization unless @sanitization.nil? + @sanitization = Sanitization.new end end @@ -89,7 +88,14 @@ module Gollum # # Returns a Sanitization instance. def history_sanitization - @history_sanitiazation ||= sanitization.merge(Sanitization::HISTORY_OPTIONS) + return @history_sanitiazation unless @history_sanitiazation.nil? + @history_sanitiazation = ( + if sanitization + sanitization.merge(Sanitization::HISTORY_OPTIONS) + else + false + end + ) end # Public: check whether the wiki's git repo exists on the filesystem.