class SoupCMS::CLI::Model::Page

Public Instance Methods

description() click to toggle source
# File lib/soupcms/cli/model/page.rb, line 51
def description
  return doc['description'] if doc['description']

  post_description = ''
  data = doc['areas'][0]['modules'][0]['recipes'][0]['data']
  content_lines = data['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/page.rb, line 7
def parse_file
  @attributes, @content = SoupCMS::CLI::FrontMatterParser.new.parse(file.read)
  {
      'areas' => [
          {
              'name' => 'body',
              'modules' => [
                  {
                      'recipes' => [
                          {
                              'type' => 'inline',
                              'data' => {
                                  'content' => {
                                      'type' => 'markdown',
                                      'flavor' => content_flavor,
                                      'value' => @content
                                  }
                              },
                              'return' => 'article'
                          }
                      ],
                      'template' => {
                          'type' => 'slim',
                          'name' => 'bootstrap/article'
                      }
                  }
              ]
          }
      ]
  }
end
title() click to toggle source
# File lib/soupcms/cli/model/page.rb, line 39
def title
  return doc['title'] if doc['title']

  data = doc['areas'][0]['modules'][0]['recipes'][0]['data']
  content_lines = data['content']['value'].lines
  doc_title = content_lines.first.chomp
  data['content']['value'] = content_lines[2] ? content_lines[2..-1].join("\n") : ''
  doc_title = doc_title.gsub('_', ' ').gsub('#', '').strip
  data['title'] = doc_title
  doc_title
end