lib/lookbook/services/markdown_renderer.rb
require "redcarpet" module Lookbook class MarkdownRenderer < Service attr_reader :text, :opts def initialize(text, opts = {}) @text = text @opts = opts.to_h end def call clean_text = ActionViewAnnotationsStripper.call(text) md = Redcarpet::Markdown.new(LookbookMarkdownRenderer, opts) md.render(clean_text).html_safe end class LookbookMarkdownRenderer < Redcarpet::Render::HTML def block_code(code, language = "ruby") line_numbers = language.to_s.end_with? "-numbered" ApplicationController.render(Lookbook::Code::Component.new(source: code, language: language.to_s.chomp("-numbered"), line_numbers: line_numbers), layout: nil) end end end end
Source Files
- app/channels/lookbook/connection.rb
- app/channels/lookbook/reload_channel.rb
- app/components/lookbook/base_component.rb
- app/components/lookbook/button/component.rb
- app/components/lookbook/button_group/component.rb
- app/components/lookbook/code/component.rb
- app/components/lookbook/copy_button/component.rb
- app/components/lookbook/debug_menu/component.rb
- app/components/lookbook/dimensions_display/component.rb
- app/components/lookbook/display_options/editor/component.rb
- app/components/lookbook/display_options/field/component.rb
- app/components/lookbook/embed/component.rb
- app/components/lookbook/filter/component.rb
- app/components/lookbook/header/component.rb
- app/components/lookbook/icon/component.rb
- app/components/lookbook/inspector_panel/component.rb
- app/components/lookbook/nav/component.rb
- app/components/lookbook/nav/directory/component.rb
- app/components/lookbook/nav/entity/component.rb
- app/components/lookbook/nav/item/component.rb
- app/components/lookbook/page_tabs/component.rb
- app/components/lookbook/params/editor/component.rb
- app/components/lookbook/params/field/component.rb
- app/components/lookbook/prose/component.rb
- app/components/lookbook/split_layout/component.rb
- app/components/lookbook/tab_panels/component.rb
- app/components/lookbook/tab_panels/panel/component.rb
- app/components/lookbook/tabs/component.rb
- app/components/lookbook/tabs/dropdown_tab/component.rb
- app/components/lookbook/tabs/tab/component.rb
- app/components/lookbook/tag_component.rb
- app/components/lookbook/toolbar/component.rb
- app/components/lookbook/viewport/component.rb
- app/controllers/concerns/lookbook/targetable_concern.rb
- app/controllers/concerns/lookbook/with_preview_controller_concern.rb
- app/controllers/lookbook/application_controller.rb
- app/controllers/lookbook/inspector_controller.rb
- app/controllers/lookbook/page_controller.rb
- app/controllers/lookbook/pages_controller.rb
- app/controllers/lookbook/previews_controller.rb
- app/helpers/lookbook/application_helper.rb
- app/helpers/lookbook/component_helper.rb
- app/helpers/lookbook/output_helper.rb
- app/helpers/lookbook/page_helper.rb
- app/helpers/lookbook/preview_helper.rb
- lib/lookbook.rb
- lib/lookbook/engine.rb
- lib/lookbook/entities/collections/component_collection.rb
- lib/lookbook/entities/collections/concerns/hierarchical_collection.rb
- lib/lookbook/entities/collections/entity_collection.rb
- lib/lookbook/entities/collections/page_collection.rb
- lib/lookbook/entities/collections/preview_collection.rb
- lib/lookbook/entities/collections/preview_example_collection.rb
- lib/lookbook/entities/component.rb
- lib/lookbook/entities/concerns/annotatable.rb
- lib/lookbook/entities/concerns/inspectable.rb
- lib/lookbook/entities/concerns/locatable.rb
- lib/lookbook/entities/concerns/navigable.rb
- lib/lookbook/entities/entity.rb
- lib/lookbook/entities/page.rb
- lib/lookbook/entities/page_section.rb
- lib/lookbook/entities/preview.rb
- lib/lookbook/entities/preview_example.rb
- lib/lookbook/entities/preview_group.rb
- lib/lookbook/error.rb
- lib/lookbook/features.rb
- lib/lookbook/file_watcher.rb
- lib/lookbook/lang.rb
- lib/lookbook/param.rb
- lib/lookbook/preview_actions.rb
- lib/lookbook/preview_parser.rb
- lib/lookbook/process.rb
- lib/lookbook/rendered_example.rb
- lib/lookbook/services/code/code_beautifier.rb
- lib/lookbook/services/code/code_highlighter.rb
- lib/lookbook/services/code/code_indenter.rb
- lib/lookbook/services/config_loader.rb
- lib/lookbook/services/data/parsers/data_parser.rb
- lib/lookbook/services/data/parsers/json_parser.rb
- lib/lookbook/services/data/parsers/yaml_parser.rb
- lib/lookbook/services/data/resolvers/data_resolver.rb
- lib/lookbook/services/data/resolvers/eval_resolver.rb
- lib/lookbook/services/data/resolvers/file_resolver.rb
- lib/lookbook/services/data/resolvers/method_resolver.rb
- lib/lookbook/services/data/resolvers/yaml_resolver.rb
- lib/lookbook/services/entities/entity_tree_builder.rb
- lib/lookbook/services/markdown_renderer.rb
- lib/lookbook/services/position_prefix_parser.rb
- lib/lookbook/services/string_value_caster.rb
- lib/lookbook/services/tags/key_value_tag_parser.rb
- lib/lookbook/services/tags/tag_options_parser.rb
- lib/lookbook/services/templates/action_view_annotations_handler.rb
- lib/lookbook/services/templates/action_view_annotations_stripper.rb
- lib/lookbook/services/templates/frontmatter_extractor.rb
- lib/lookbook/services/templates/styles_extractor.rb
- lib/lookbook/services/urls/search_param_builder.rb
- lib/lookbook/services/urls/search_param_parser.rb
- lib/lookbook/stores/config_store.rb
- lib/lookbook/stores/hook_store.rb
- lib/lookbook/stores/input_store.rb
- lib/lookbook/stores/panel_store.rb
- lib/lookbook/stores/tag_store.rb
- lib/lookbook/support/errors/config_error.rb
- lib/lookbook/support/errors/lookbook_error.rb
- lib/lookbook/support/errors/parser_error.rb
- lib/lookbook/support/null_object.rb
- lib/lookbook/support/service.rb
- lib/lookbook/support/store.rb
- lib/lookbook/support/tree_node.rb
- lib/lookbook/support/utils/path_utils.rb
- lib/lookbook/support/utils/utils.rb
- lib/lookbook/tags/component_tag.rb
- lib/lookbook/tags/custom_tag.rb
- lib/lookbook/tags/display_tag.rb
- lib/lookbook/tags/hidden_tag.rb
- lib/lookbook/tags/id_tag.rb
- lib/lookbook/tags/label_tag.rb
- lib/lookbook/tags/logical_path_tag.rb
- lib/lookbook/tags/param_tag.rb
- lib/lookbook/tags/position_tag.rb
- lib/lookbook/tags/source_tag.rb
- lib/lookbook/tags/tag_provider.rb
- lib/lookbook/tags/yard_tag.rb
- lib/lookbook/theme.rb
- lib/lookbook/version.rb
- lib/lookbook/websocket.rb