class HatenablogPublisher::Generator::Body

Constants

IMAGE_PATTERN

Attributes

context[R]
options[R]

Public Class Methods

new(context, options) click to toggle source
# File lib/hatenablog_publisher/generator/body.rb, line 8
def initialize(context, options)
  @context = context
  @options = options
end

Public Instance Methods

generate() click to toggle source
# File lib/hatenablog_publisher/generator/body.rb, line 13
def generate
  markdown = @context.text.dup

  replaced_markdown = remove_textlint_comment(replace_image(markdown))

  CGI.escapeHTML(replaced_markdown)
end
remove_textlint_comment(markdown) click to toggle source
# File lib/hatenablog_publisher/generator/body.rb, line 21
def remove_textlint_comment(markdown)
  markdown.gsub(/^<!--\s+textlint-(enable|disable).*-->\n/, '')
end
replace_image(markdown) click to toggle source
# File lib/hatenablog_publisher/generator/body.rb, line 25
def replace_image(markdown)
  markdown.gsub(IMAGE_PATTERN) do |s|
    image_name = Regexp.last_match(1)

    if image_name.match('^http')
      s
    else
      "\n\n" + @context.image_syntax(image_name)
    end
  end
end