module GitlabKramdown::Parser::Strikethrough

Strikethrough

This parser implements strikethrough markup based on GFM used as-is in GitLab Flavored Markdown

Based on Kramdown GFM implementation

@see docs.gitlab.com/ee/user/markdown.html#emphasis

Constants

STRIKETHROUGH_DELIM
STRIKETHROUGH_MATCH

Public Class Methods

included(klass) click to toggle source
# File lib/gitlab_kramdown/parser/strikethrough.rb, line 25
def self.included(klass)
  klass.define_parser(:strikethrough_gitlab, STRIKETHROUGH_MATCH, '~~')
end

Public Instance Methods

parse_strikethrough_gitlab() click to toggle source
# File lib/gitlab_kramdown/parser/strikethrough.rb, line 29
def parse_strikethrough_gitlab
  line_number = @src.current_line_number

  @src.pos += @src.matched_size
  el = Kramdown::Element.new(:html_element, 'del', {}, category: :span, line: line_number)
  @tree.children << el

  env = save_env
  reset_env(src: Kramdown::Utils::StringScanner.new(@src.matched[2..-3], line_number), text_type: :text)
  parse_spans(el)
  restore_env(env)

  el
end