tomdoc and normalize new extension and converter classes
This commit is contained in:
parent
0ba1f6c83e
commit
a8efc3a0a2
|
@ -1,31 +1,43 @@
|
||||||
module Jekyll
|
module Jekyll
|
||||||
|
|
||||||
class Converter < Extension
|
class Converter < Extension
|
||||||
|
# Public: Get or set the pygments prefix. When an argument is specified,
|
||||||
class << self
|
# the prefix will be set. If no argument is specified, the current prefix
|
||||||
# prefix for highlighting
|
# will be returned.
|
||||||
def pygments_prefix(pygments_prefix = nil)
|
#
|
||||||
@pygments_prefix = pygments_prefix if pygments_prefix
|
# pygments_prefix - The String prefix (default: nil).
|
||||||
@pygments_prefix
|
#
|
||||||
end
|
# Returns the String prefix.
|
||||||
|
def self.pygments_prefix(pygments_prefix = nil)
|
||||||
# suffix for highlighting
|
@pygments_prefix = pygments_prefix if pygments_prefix
|
||||||
def pygments_suffix(pygments_suffix = nil)
|
@pygments_prefix
|
||||||
@pygments_suffix = pygments_suffix if pygments_suffix
|
|
||||||
@pygments_suffix
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# prefix for highlighting
|
# Public: Get or set the pygments suffix. When an argument is specified,
|
||||||
|
# the suffix will be set. If no argument is specified, the current suffix
|
||||||
|
# will be returned.
|
||||||
|
#
|
||||||
|
# pygments_suffix - The String suffix (default: nil).
|
||||||
|
#
|
||||||
|
# Returns the String suffix.
|
||||||
|
def self.pygments_suffix(pygments_suffix = nil)
|
||||||
|
@pygments_suffix = pygments_suffix if pygments_suffix
|
||||||
|
@pygments_suffix
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get the pygments prefix.
|
||||||
|
#
|
||||||
|
# Returns the String prefix.
|
||||||
def pygments_prefix
|
def pygments_prefix
|
||||||
self.class.pygments_prefix
|
self.class.pygments_prefix
|
||||||
end
|
end
|
||||||
|
|
||||||
# suffix for highlighting
|
# Get the pygments suffix.
|
||||||
|
#
|
||||||
|
# Returns the String suffix.
|
||||||
def pygments_suffix
|
def pygments_suffix
|
||||||
self.class.pygments_suffix
|
self.class.pygments_suffix
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -1,48 +1,62 @@
|
||||||
module Jekyll
|
module Jekyll
|
||||||
|
|
||||||
class Extension
|
class Extension
|
||||||
|
|
||||||
PRIORITIES = { :lowest => -100,
|
PRIORITIES = { :lowest => -100,
|
||||||
:low => -10,
|
:low => -10,
|
||||||
:normal => 0,
|
:normal => 0,
|
||||||
:high => 10,
|
:high => 10,
|
||||||
:highest => 100 }
|
:highest => 100 }
|
||||||
|
|
||||||
class << self
|
# Install a hook so that subclasses are recorded. This method is only
|
||||||
def subclasses
|
# ever called by Ruby itself.
|
||||||
@subclasses ||= []
|
#
|
||||||
end
|
# base - The Class subclass.
|
||||||
|
#
|
||||||
def inherited(base)
|
# Returns nothing.
|
||||||
subclasses << base
|
def self.inherited(base)
|
||||||
subclasses.sort!
|
subclasses << base
|
||||||
end
|
subclasses.sort!
|
||||||
|
|
||||||
def all
|
|
||||||
subclasses
|
|
||||||
end
|
|
||||||
|
|
||||||
# priority order of this converter
|
|
||||||
def priority(priority = nil)
|
|
||||||
if priority && PRIORITIES.has_key?(priority)
|
|
||||||
@priority = priority
|
|
||||||
end
|
|
||||||
@priority || :normal
|
|
||||||
end
|
|
||||||
|
|
||||||
# Spaceship is priority [higher -> lower]
|
|
||||||
#
|
|
||||||
# Returns -1, 0, 1
|
|
||||||
def <=>(other)
|
|
||||||
cmp = PRIORITIES[other.priority] <=> PRIORITIES[self.priority]
|
|
||||||
return cmp
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# The list of Classes that have been subclassed.
|
||||||
|
#
|
||||||
|
# Returns an Array of Class objects.
|
||||||
|
def self.subclasses
|
||||||
|
@subclasses ||= []
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get or set the priority of this converter. When called without an
|
||||||
|
# argument it returns the priority. When an argument is given, it will
|
||||||
|
# set the priority.
|
||||||
|
#
|
||||||
|
# priority - The Symbol priority (default: nil). Valid options are:
|
||||||
|
# :lowest, :low, :normal, :high, :highest
|
||||||
|
#
|
||||||
|
# Returns the Symbol priority.
|
||||||
|
def self.priority(priority = nil)
|
||||||
|
if priority && PRIORITIES.has_key?(priority)
|
||||||
|
@priority = priority
|
||||||
|
end
|
||||||
|
@priority || :normal
|
||||||
|
end
|
||||||
|
|
||||||
|
# Spaceship is priority [higher -> lower]
|
||||||
|
#
|
||||||
|
# other - The class to be compared.
|
||||||
|
#
|
||||||
|
# Returns -1, 0, 1.
|
||||||
|
def self.<=>(other)
|
||||||
|
PRIORITIES[other.priority] <=> PRIORITIES[self.priority]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Initialize a new extension. This should be overridden by the subclass.
|
||||||
|
#
|
||||||
|
# config - The Hash of configuration options.
|
||||||
|
#
|
||||||
|
# Returns a new instance.
|
||||||
def initialize(config = {})
|
def initialize(config = {})
|
||||||
#no-op for default
|
# no-op for default
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -36,11 +36,15 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
# Check to see if LSI is enabled.
|
|
||||||
require 'classifier' if self.lsi
|
require 'classifier' if self.lsi
|
||||||
|
|
||||||
self.converters = Jekyll::Converter.all.collect { |c| c.new(self.config) }
|
self.converters = Jekyll::Converter.subclasses.map do |c|
|
||||||
self.generators = Jekyll::Generator.all.collect { |c| c.new(self.config) }
|
c.new(self.config)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.generators = Jekyll::Generator.subclasses.map do |c|
|
||||||
|
c.new(self.config)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Do the actual work of processing the site and generating the
|
# Do the actual work of processing the site and generating the
|
||||||
|
|
Loading…
Reference in New Issue