]> git.wincent.com - wikitext.git/commitdiff
Add optional Haml filter
authorWincent Colaiuta <win@wincent.com>
Tue, 14 Jan 2014 01:43:40 +0000 (20:43 -0500)
committerWincent Colaiuta <win@wincent.com>
Tue, 14 Jan 2014 01:43:40 +0000 (20:43 -0500)
Signed-off-by: Wincent Colaiuta <win@wincent.com>
README.rdoc
doc/RELEASE-NOTES
lib/wikitext/haml_filter.rb [new file with mode: 0644]

index ad4b566cf678372ea8cc6d1fc75501603eb90c00..90d50547590833c64de18a90e0feba384a83321a 100644 (file)
@@ -438,6 +438,13 @@ The Wikitext extension provides a template handler so that templates named
 following the <tt>template_name.html.wikitext</tt> format will automatically be
 translated from wikitext markup into HTML when rendered.
 
+Additionally, an optional Haml filter is available if you <tt>require
+"wikitext/haml_filter"</tt>, which enables you to write wikitext markup inline
+(in Haml):
+
+    :wikitext
+      = Here is some [[wikitext]] =
+
 Likewise, a +to_wikitext+ method (aliased as +w+) is added to the +String+
 class (and also +NilClass+, for convenience) so that content can be easily
 translated from inside view templates following patterns like:
index f73a38e3a527e60d21c0f5319450a9fc2d5e6501..071f4e42abaee57b26e5cec414e4d7f994b62816 100644 (file)
@@ -6,6 +6,10 @@ require any user or developer action are generally not included
 in these release notes. For a full listing of all changes see
 the source code repository at: http://git.wincent.com.
 
+= Changes in 4.1 =
+
+* add a Haml filter; to use, require "wikitext/haml_filter"
+
 = Changes in 4.0.3
 
 * permit building on Ruby 2.1.0
diff --git a/lib/wikitext/haml_filter.rb b/lib/wikitext/haml_filter.rb
new file mode 100644 (file)
index 0000000..19d5735
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright 2014 Wincent Colaiuta. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+#    this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+#    this list of conditions and the following disclaimer in the documentation
+#    and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+require 'wikitext/string'
+
+module Haml::Filters::Wikitext
+  include Haml::Filters::Base
+
+  def render(text)
+    html = text.w
+    html.respond_to?(:html_safe) ? html.html_safe : html
+  end
+end