- Notifications
You must be signed in to change notification settings - Fork30
Qiita-specified markdown processor.
License
increments/qiita-markdown
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Qiita-specified markdown processor.
- Markdown conversion
- Sanitization
- Code and language detection
- Task list
- ToC
- Emoji
- Syntax highlighting
- Mention
- Footnotes
- Note notation's custom block
Qiita::Markdown::Processor provides markdown rendering logic.
processor=Qiita::Markdown::Processor.new(hostname:"example.com")processor.call(markdown)# => {# codes: [# {# code: "1 + 1\n",# language: "ruby",# filename: "example.rb",# },# ],# mentioned_usernames: [# "alice",# "bob",# ],# output: "<h1>Example</h1>\n...",# }
Qiita Markdown is built onjch/html-pipeline.Add your favorite html-pipeline-compatible filters.
processor=Qiita::Markdown::Processor.new(hostname:"example.com")processor.filters <<HTML::Pipeline::ImageMaxWidthFilterprocessor.call(text)
.new and#call can take optional context as a Hash with following keys:
:allowed_usernames - A list of usernames allowed to be username. (Array<String>):asset_path - URL path to link to emoji sprite. (String):asset_root - Base URL to link to emoji sprite. (String):base_url - Used to construct links to user profile pages for each. (String):default_language - Default language used if no language detected from code. (String):emoji_names - A list of allowed emoji names. (Array<String>):emoji_url_generator - #call'able object that accepts emoji name as argument and returns emoji image URL. (#call) The original implementation is used when the generator returned a falsey value.:hostname - FQDN. Used to check whether or not each URL of `href` attributes is external site. (String):inline_code_color_class_name - Class name for inline code color. (String):language_aliases - Alias table for some language names. (Hash):markdown - A hash for enabling / disabling optional Markdown syntax. (Hash) Currently :footnotes (default: true) and :sourcepos (defalut: false) are supported. For more information on these options, please see [increments/qiita_marker](https://github.com/increments/qiita_marker).:rule - Sanitization rule table. (Hash):script - A flag to allow to embed script element. (Boolean)processor=Qiita::Markdown::Processor.new(asset_root:"http://example.com/assets",hostname:"example.com")processor.call(text)
There's another processor Qiita::Markdown::SummaryProcessor,which is for rendering a summary of markdown document.It simplifies a document by removing complex markupsand also truncates it to a specific length without breaking the document structure.
Note that this processor does not produce the:codes output in contrast to the Processor.
SummaryProcessor accepts the following context in addition to the Processor's context:
{truncate:{length:100,# Documents will be truncated if it exceeds this character count. (Integer)omission:'…'# A string added to the end of document when it's truncated. (String, nil)}}
processor=Qiita::Markdown::SummaryProcessor.new(truncate:{length:80},hostname:"example.com")processor.call(text)
About
Qiita-specified markdown processor.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.