Module: BBortcodes

Defined in:
lib/bbortcodes.rb,
lib/bbortcodes/config.rb,
lib/bbortcodes/errors.rb,
lib/bbortcodes/parser.rb,
lib/bbortcodes/context.rb,
lib/bbortcodes/grammar.rb,
lib/bbortcodes/version.rb,
lib/bbortcodes/registry.rb,
lib/bbortcodes/shortcode.rb,
lib/bbortcodes/transform.rb

Defined Under Namespace

Classes: Config, Context, DisallowedChildError, Error, Grammar, InvalidShortcodeError, ParseError, Parser, Registry, RegistryError, Shortcode, Transform

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.configObject

Global config instance



23
24
25
# File 'lib/bbortcodes.rb', line 23

def config
  @config ||= Config.new
end

.configure {|Config| ... } ⇒ Object

Configure the gem

Yields:

  • (Config)

    The global config instance



29
30
31
# File 'lib/bbortcodes.rb', line 29

def configure
  yield config
end

.parse(text, context: nil, only: nil) ⇒ Array<String, Array<Shortcode>>

Parse text with the global registry and config

Parameters:

  • text (String)

    The text to parse

  • context (Context, Hash, nil) (defaults to: nil)

    The rendering context

  • only (Array<String>, nil) (defaults to: nil)

    Only process these shortcode types

Returns:

  • (Array<String, Array<Shortcode>>)

    The processed text and array of shortcode instances



44
45
46
47
# File 'lib/bbortcodes.rb', line 44

def parse(text, context: nil, only: nil)
  parser = Parser.new(registry: registry, config: config)
  parser.parse(text, context: context, only: only)
end

.parser(registry: nil, config: nil) ⇒ Parser

Create a new parser instance

Parameters:

  • registry (Registry, nil) (defaults to: nil)

    Custom registry (uses global if nil)

  • config (Config, nil) (defaults to: nil)

    Custom config (uses global if nil)

Returns:



53
54
55
# File 'lib/bbortcodes.rb', line 53

def parser(registry: nil, config: nil)
  Parser.new(registry: registry, config: config)
end

.register(shortcode_class) ⇒ Object

Register a shortcode class in the global registry

Parameters:

  • shortcode_class (Class)

    A class that inherits from Shortcode



35
36
37
# File 'lib/bbortcodes.rb', line 35

def register(shortcode_class)
  registry.register(shortcode_class)
end

.registryObject

Global registry instance



18
19
20
# File 'lib/bbortcodes.rb', line 18

def registry
  @registry ||= Registry.new
end