class SoupCMS::CLI::Model::Markdown

Public Instance Methods

build() click to toggle source
Calls superclass method SoupCMS::CLI::Model::Base#build
# File lib/soupcms/cli/model/markdown.rb, line 17
def build
  super
  doc['title'] = title unless doc['title']
  doc['description'] = description unless doc['description']
end
content_flavor() click to toggle source
# File lib/soupcms/cli/model/markdown.rb, line 7
def content_flavor;
  File.basename(file).split('.').size > 2 ? File.basename(file).split('.')[1] : 'kramdown'
end
description() click to toggle source
# File lib/soupcms/cli/model/markdown.rb, line 30
def description
  post_description = ''
  content_lines = doc['content']['value'].lines
  index = 0
  while post_description.length < 300 && content_lines[index] do
    post_description.concat(content_lines[index].chomp.gsub(/\A[\d_\W]+|[\d_\W]+\Z/, ''))
    index += 1
  end
  post_description + '...'
end
parse_file() click to toggle source
# File lib/soupcms/cli/model/markdown.rb, line 11
def parse_file
  @attributes, @content = SoupCMS::CLI::FrontMatterParser.new.parse(file.read)
  doc = {'content' => {'type' => 'markdown', 'flavor' => content_flavor, 'value' => @content}}
  doc.merge @attributes
end
title() click to toggle source
# File lib/soupcms/cli/model/markdown.rb, line 23
def title
  content_lines = doc['content']['value'].lines
  doc_title = content_lines.first.chomp
  doc['content']['value'] = content_lines[2] ? content_lines[2..-1].join("\n") : ''
  doc_title.gsub('_', ' ').gsub('#', '').strip
end