# Registers a wiki formatter.
#
# Parameters:
- # * +name+ - human-readable name
+ # * +name+ - formatter name
# * +formatter+ - formatter class, which should have an instance method +to_html+
- # * +helper+ - helper module, which will be included by wiki pages
- def wiki_format_provider(name, formatter, helper)
- Redmine::WikiFormatting.register(name, formatter, helper)
+ # * +helper+ - helper module, which will be included by wiki pages (optional)
+ # * +html_parser+ class reponsible for converting HTML to wiki text (optional)
+ # * +options+ - a Hash of options (optional)
+ # * :label - label for the formatter displayed in application settings
+ #
+ # Examples:
+ # wiki_format_provider(:custom_formatter, CustomFormatter, :label => "My custom formatter")
+ #
+ def wiki_format_provider(name, *args)
+ Redmine::WikiFormatting.register(name, *args)
end
# Returns +true+ if the plugin can be configured.
formatter, helper, parser = args.any? ?
args :
- %w(Formatter Helper HtmlParser).map {|m| "Redmine::WikiFormatting::#{name.classify}::#{m}".constantize}
+ %w(Formatter Helper HtmlParser).map {|m| "Redmine::WikiFormatting::#{name.classify}::#{m}".constantize rescue nil}
+
+ raise "A formatter class is required" if formatter.nil?
@@formatters[name] = {
:formatter => formatter,