]> git.wincent.com - wikitext.git/commitdiff
Update RDoc for new "link_proc" feature
authorWincent Colaiuta <win@wincent.com>
Thu, 6 Aug 2009 12:33:46 +0000 (14:33 +0200)
committerWincent Colaiuta <win@wincent.com>
Thu, 6 Aug 2009 12:33:46 +0000 (14:33 +0200)
Signed-off-by: Wincent Colaiuta <win@wincent.com>
README.rdoc
doc/rdoc.rb

index 4558b4581d229109258dc6e964205b0d620c9601..6d9f485453e7ab256200fae3195cf37c746d0743 100644 (file)
@@ -209,7 +209,10 @@ Would become:
   <a href="/wiki/article">link text</a>
 
 See the Parser attributes documentation for how you can override the
-default link prefix (<em>/wiki/</em> as shown in the example).
+default link prefix (<em>/wiki/</em> as shown in the example), and how
+"red links" can be implemented by applying custom CSS depending on the
+link target (this can be used to make links to non-existent pages appear
+in a different color).
 
 == Alternative blockquote and preformatted block syntax
 
index cb299b5234a080f338a5c68546dea5c29e9cf9c6..b6501e48d701dc28d6e86ec5a92c030ac03e590e 100644 (file)
@@ -128,6 +128,25 @@ module Wikitext
   # users from inappropriately employing "h1" tags in deeply-nested
   # contexts where they would otherwise disturb the visual harmony of
   # the page.
+  #
+  # == +link_proc+ (lambda or Proc object)
+  #
+  # "Red links" can be implemented by providing a custom +link_proc+ block
+  # at parse time. This can be used to check for existing or non-existent
+  # link targets and apply custom CSS styling accordingly. For example,
+  # consider:
+  #
+  #    link_proc = lambda { |target| target == 'bar' ? 'redlink' : nil }
+  #    Wikitext::Parser.new.parse '[[foo]] [[bar]]', :link_proc => link_proc
+  #
+  # This would add the "redlink" CSS class to the "bar" link but not the
+  # "foo" link. Please note that if your +link_proc+ involves database
+  # queries then you should implement an appropriate caching strategy to
+  # ensure that markup with many links does not overwhelm your database.
+  #
+  # Many more examples of link procs can be found in the spec suite:
+  #
+  # * http://git.wincent.com/wikitext.git/blob/HEAD:/spec/internal_link_spec.rb
   class Parser
 
     # Sanitizes an internal link target for inclusion within the HTML