Module: Markbridge
- Defined in:
- lib/markbridge.rb,
lib/markbridge/ast.rb,
lib/markbridge/ast/url.rb,
lib/markbridge/version.rb,
lib/markbridge/ast/bold.rb,
lib/markbridge/ast/code.rb,
lib/markbridge/ast/list.rb,
lib/markbridge/ast/node.rb,
lib/markbridge/ast/poll.rb,
lib/markbridge/ast/size.rb,
lib/markbridge/ast/text.rb,
lib/markbridge/ast/align.rb,
lib/markbridge/ast/color.rb,
lib/markbridge/ast/email.rb,
lib/markbridge/ast/event.rb,
lib/markbridge/ast/image.rb,
lib/markbridge/ast/quote.rb,
lib/markbridge/ast/table.rb,
lib/markbridge/ast/italic.rb,
lib/markbridge/ast/upload.rb,
lib/markbridge/gem_loader.rb,
lib/markbridge/processors.rb,
lib/markbridge/ast/element.rb,
lib/markbridge/ast/heading.rb,
lib/markbridge/ast/mention.rb,
lib/markbridge/ast/spoiler.rb,
lib/markbridge/ast/document.rb,
lib/markbridge/parsers/html.rb,
lib/markbridge/ast/list_item.rb,
lib/markbridge/ast/paragraph.rb,
lib/markbridge/ast/subscript.rb,
lib/markbridge/ast/underline.rb,
lib/markbridge/configuration.rb,
lib/markbridge/ast/attachment.rb,
lib/markbridge/ast/line_break.rb,
lib/markbridge/parsers/bbcode.rb,
lib/markbridge/ast/superscript.rb,
lib/markbridge/ast/markdown_text.rb,
lib/markbridge/ast/strikethrough.rb,
lib/markbridge/parsers/media_wiki.rb,
lib/markbridge/ast/horizontal_rule.rb,
lib/markbridge/parsers/html/parser.rb,
lib/markbridge/renderers/discourse.rb,
lib/markbridge/parsers/bbcode/parser.rb,
lib/markbridge/parsers/bbcode/scanner.rb,
lib/markbridge/parsers/text_formatter.rb,
lib/markbridge/renderers/discourse/tag.rb,
lib/markbridge/parsers/media_wiki/parser.rb,
lib/markbridge/parsers/bbcode/parser_state.rb,
lib/markbridge/parsers/bbcode/tokens/token.rb,
lib/markbridge/renderers/discourse/renderer.rb,
lib/markbridge/parsers/html/handler_registry.rb,
lib/markbridge/parsers/text_formatter/parser.rb,
lib/markbridge/processors/discourse_markdown.rb,
lib/markbridge/parsers/bbcode/handler_registry.rb,
lib/markbridge/renderers/discourse/tag_library.rb,
lib/markbridge/parsers/bbcode/tokens/text_token.rb,
lib/markbridge/parsers/media_wiki/inline_parser.rb,
lib/markbridge/renderers/discourse/tags/url_tag.rb,
lib/markbridge/parsers/bbcode/raw_content_result.rb,
lib/markbridge/parsers/html/handlers/raw_handler.rb,
lib/markbridge/parsers/html/handlers/url_handler.rb,
lib/markbridge/renderers/discourse/tags/bold_tag.rb,
lib/markbridge/renderers/discourse/tags/code_tag.rb,
lib/markbridge/renderers/discourse/tags/list_tag.rb,
lib/markbridge/renderers/discourse/tags/poll_tag.rb,
lib/markbridge/renderers/discourse/tags/size_tag.rb,
lib/markbridge/parsers/bbcode/peekable_enumerator.rb,
lib/markbridge/parsers/html/handlers/base_handler.rb,
lib/markbridge/parsers/html/handlers/list_handler.rb,
lib/markbridge/renderers/discourse/render_context.rb,
lib/markbridge/renderers/discourse/tags/align_tag.rb,
lib/markbridge/renderers/discourse/tags/color_tag.rb,
lib/markbridge/renderers/discourse/tags/email_tag.rb,
lib/markbridge/renderers/discourse/tags/event_tag.rb,
lib/markbridge/renderers/discourse/tags/image_tag.rb,
lib/markbridge/renderers/discourse/tags/quote_tag.rb,
lib/markbridge/renderers/discourse/tags/table_tag.rb,
lib/markbridge/parsers/bbcode/handlers/raw_handler.rb,
lib/markbridge/parsers/bbcode/handlers/url_handler.rb,
lib/markbridge/parsers/bbcode/tokens/tag_end_token.rb,
lib/markbridge/parsers/html/handlers/image_handler.rb,
lib/markbridge/parsers/html/handlers/quote_handler.rb,
lib/markbridge/parsers/html/handlers/table_handler.rb,
lib/markbridge/renderers/discourse/tags/italic_tag.rb,
lib/markbridge/renderers/discourse/tags/upload_tag.rb,
lib/markbridge/parsers/bbcode/handlers/base_handler.rb,
lib/markbridge/parsers/bbcode/handlers/code_handler.rb,
lib/markbridge/parsers/bbcode/handlers/list_handler.rb,
lib/markbridge/parsers/bbcode/handlers/size_handler.rb,
lib/markbridge/parsers/bbcode/raw_content_collector.rb,
lib/markbridge/parsers/html/handlers/simple_handler.rb,
lib/markbridge/renderers/discourse/markdown_escaper.rb,
lib/markbridge/renderers/discourse/tags/heading_tag.rb,
lib/markbridge/renderers/discourse/tags/mention_tag.rb,
lib/markbridge/renderers/discourse/tags/spoiler_tag.rb,
lib/markbridge/parsers/bbcode/handlers/align_handler.rb,
lib/markbridge/parsers/bbcode/handlers/color_handler.rb,
lib/markbridge/parsers/bbcode/handlers/email_handler.rb,
lib/markbridge/parsers/bbcode/handlers/image_handler.rb,
lib/markbridge/parsers/bbcode/handlers/quote_handler.rb,
lib/markbridge/parsers/bbcode/handlers/table_handler.rb,
lib/markbridge/parsers/bbcode/tokens/tag_start_token.rb,
lib/markbridge/processors/discourse_markdown/scanner.rb,
lib/markbridge/parsers/bbcode/closing_strategies/base.rb,
lib/markbridge/parsers/bbcode/handlers/simple_handler.rb,
lib/markbridge/renderers/discourse/tags/list_item_tag.rb,
lib/markbridge/renderers/discourse/tags/paragraph_tag.rb,
lib/markbridge/renderers/discourse/tags/subscript_tag.rb,
lib/markbridge/renderers/discourse/tags/table_row_tag.rb,
lib/markbridge/renderers/discourse/tags/underline_tag.rb,
lib/markbridge/parsers/bbcode/handlers/spoiler_handler.rb,
lib/markbridge/parsers/html/handlers/list_item_handler.rb,
lib/markbridge/parsers/html/handlers/paragraph_handler.rb,
lib/markbridge/parsers/html/handlers/table_row_handler.rb,
lib/markbridge/parsers/text_formatter/handler_registry.rb,
lib/markbridge/renderers/discourse/rendering_interface.rb,
lib/markbridge/renderers/discourse/tags/attachment_tag.rb,
lib/markbridge/renderers/discourse/tags/line_break_tag.rb,
lib/markbridge/renderers/discourse/tags/table_cell_tag.rb,
lib/markbridge/parsers/bbcode/closing_strategies/strict.rb,
lib/markbridge/parsers/html/handlers/table_cell_handler.rb,
lib/markbridge/renderers/discourse/tags/superscript_tag.rb,
lib/markbridge/parsers/bbcode/handlers/list_item_handler.rb,
lib/markbridge/parsers/bbcode/handlers/table_row_handler.rb,
lib/markbridge/parsers/bbcode/handlers/attachment_handler.rb,
lib/markbridge/parsers/bbcode/handlers/table_cell_handler.rb,
lib/markbridge/renderers/discourse/tags/strikethrough_tag.rb,
lib/markbridge/parsers/text_formatter/handlers/url_handler.rb,
lib/markbridge/parsers/bbcode/closing_strategies/reordering.rb,
lib/markbridge/parsers/bbcode/handlers/self_closing_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/base_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/code_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/list_handler.rb,
lib/markbridge/processors/discourse_markdown/detectors/base.rb,
lib/markbridge/processors/discourse_markdown/detectors/poll.rb,
lib/markbridge/renderers/discourse/tags/horizontal_rule_tag.rb,
lib/markbridge/parsers/text_formatter/handlers/email_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/image_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/quote_handler.rb,
lib/markbridge/processors/discourse_markdown/detectors/event.rb,
lib/markbridge/parsers/bbcode/errors/max_depth_exceeded_error.rb,
lib/markbridge/parsers/text_formatter/handlers/simple_handler.rb,
lib/markbridge/processors/discourse_markdown/detectors/upload.rb,
lib/markbridge/renderers/discourse/builders/list_item_builder.rb,
lib/markbridge/processors/discourse_markdown/detectors/mention.rb,
lib/markbridge/parsers/bbcode/closing_strategies/tag_reconciler.rb,
lib/markbridge/processors/discourse_markdown/code_block_tracker.rb,
lib/markbridge/parsers/text_formatter/handlers/attribute_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/attachment_handler.rb,
lib/markbridge/parsers/text_formatter/handlers/table_cell_handler.rb
Defined Under Namespace
Modules: AST, GemLoader, Parsers, Processors, Renderers Classes: Configuration
Constant Summary collapse
- VERSION =
"0.1.1"
Class Method Summary collapse
-
.bbcode_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert BBCode to Discourse Markdown.
-
.configuration ⇒ Configuration
Get the global configuration.
-
.configure {|Configuration| ... } ⇒ Object
Configure Markbridge with a block.
-
.default_handlers ⇒ Parsers::BBCode::HandlerRegistry
Get default handler registry.
-
.default_html_handlers ⇒ Parsers::HTML::HandlerRegistry
Get default HTML handler registry.
-
.default_tag_library ⇒ Renderers::Discourse::TagLibrary
Get default tag library.
-
.default_text_formatter_handlers ⇒ Parsers::TextFormatter::HandlerRegistry
Get default s9e/TextFormatter handler registry.
-
.html_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert HTML to Discourse Markdown.
-
.mediawiki_to_markdown(input, tag_library: nil) ⇒ String
Convert MediaWiki wikitext to Discourse Markdown.
-
.parse_bbcode(input, handlers: nil) ⇒ AST::Document
Parse BBCode to AST.
-
.parse_html(input, handlers: nil) ⇒ AST::Document
Parse HTML to AST.
-
.parse_mediawiki(input) ⇒ AST::Document
Parse MediaWiki wikitext to AST.
-
.parse_text_formatter_xml(input, handlers: nil) ⇒ AST::Document
Parse s9e/TextFormatter XML to AST.
-
.reset_defaults! ⇒ Object
Reset defaults (useful for testing).
-
.text_formatter_xml_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert s9e/TextFormatter XML to Discourse Markdown.
Class Method Details
.bbcode_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert BBCode to Discourse Markdown
28 29 30 31 |
# File 'lib/markbridge.rb', line 28 def bbcode_to_markdown(input, handlers: nil, tag_library: nil) ast = parse_bbcode(input, handlers:) render_to_markdown(ast, tag_library:) end |
.configuration ⇒ Configuration
Get the global configuration
117 118 119 |
# File 'lib/markbridge.rb', line 117 def configuration @configuration ||= Configuration.new end |
.configure {|Configuration| ... } ⇒ Object
Configure Markbridge with a block
123 124 125 |
# File 'lib/markbridge.rb', line 123 def configure yield configuration end |
.default_handlers ⇒ Parsers::BBCode::HandlerRegistry
Get default handler registry
93 94 95 |
# File 'lib/markbridge.rb', line 93 def default_handlers @default_handlers ||= Parsers::BBCode::HandlerRegistry.default end |
.default_html_handlers ⇒ Parsers::HTML::HandlerRegistry
Get default HTML handler registry
99 100 101 |
# File 'lib/markbridge.rb', line 99 def default_html_handlers @default_html_handlers ||= Parsers::HTML::HandlerRegistry.default end |
.default_tag_library ⇒ Renderers::Discourse::TagLibrary
Get default tag library
105 106 107 |
# File 'lib/markbridge.rb', line 105 def default_tag_library @default_tag_library ||= Renderers::Discourse::TagLibrary.default end |
.default_text_formatter_handlers ⇒ Parsers::TextFormatter::HandlerRegistry
Get default s9e/TextFormatter handler registry
111 112 113 |
# File 'lib/markbridge.rb', line 111 def default_text_formatter_handlers @default_text_formatter_handlers ||= Parsers::TextFormatter::HandlerRegistry.default end |
.html_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert HTML to Discourse Markdown
47 48 49 50 |
# File 'lib/markbridge.rb', line 47 def html_to_markdown(input, handlers: nil, tag_library: nil) ast = parse_html(input, handlers:) render_to_markdown(ast, tag_library:) end |
.mediawiki_to_markdown(input, tag_library: nil) ⇒ String
Convert MediaWiki wikitext to Discourse Markdown
86 87 88 89 |
# File 'lib/markbridge.rb', line 86 def mediawiki_to_markdown(input, tag_library: nil) ast = parse_mediawiki(input) render_to_markdown(ast, tag_library:) end |
.parse_bbcode(input, handlers: nil) ⇒ AST::Document
Parse BBCode to AST
18 19 20 21 |
# File 'lib/markbridge.rb', line 18 def parse_bbcode(input, handlers: nil) handlers ||= default_handlers parse_with(Parsers::BBCode::Parser, input, handlers:) end |
.parse_html(input, handlers: nil) ⇒ AST::Document
Parse HTML to AST
37 38 39 40 |
# File 'lib/markbridge.rb', line 37 def parse_html(input, handlers: nil) handlers ||= default_html_handlers parse_with(Parsers::HTML::Parser, input, handlers:) end |
.parse_mediawiki(input) ⇒ AST::Document
Parse MediaWiki wikitext to AST
74 75 76 77 78 79 80 |
# File 'lib/markbridge.rb', line 74 def parse_mediawiki(input) raise ArgumentError, "input cannot be nil" if input.nil? input = input.to_s parser = Parsers::MediaWiki::Parser.new parser.parse(input) end |
.parse_text_formatter_xml(input, handlers: nil) ⇒ AST::Document
Parse s9e/TextFormatter XML to AST
56 57 58 59 |
# File 'lib/markbridge.rb', line 56 def parse_text_formatter_xml(input, handlers: nil) handlers ||= default_text_formatter_handlers parse_with(Parsers::TextFormatter::Parser, input, handlers:) end |
.reset_defaults! ⇒ Object
Reset defaults (useful for testing)
128 129 130 131 132 133 134 |
# File 'lib/markbridge.rb', line 128 def reset_defaults! @default_handlers = nil @default_html_handlers = nil @default_tag_library = nil @default_text_formatter_handlers = nil @configuration = nil end |
.text_formatter_xml_to_markdown(input, handlers: nil, tag_library: nil) ⇒ String
Convert s9e/TextFormatter XML to Discourse Markdown
66 67 68 69 |
# File 'lib/markbridge.rb', line 66 def text_formatter_xml_to_markdown(input, handlers: nil, tag_library: nil) ast = parse_text_formatter_xml(input, handlers:) render_to_markdown(ast, tag_library:) end |