Sha256: d2f7ede11e69e3793ebecfe22f0eced148a0e127e5eee3138e35b878417e13fc

Contents?: true

Size: 853 Bytes

Versions: 7

Compression:

Stored size: 853 Bytes

Contents

require 'devcenter-parser'

module Devcenter

  class ArticleFile

    attr_reader :metadata, :html, :content, :parsing_error, :toc

    def initialize(opts = {})
      @metadata = opts[:metadata] || OpenStruct.new
      @content = opts[:content] || ''
      markdown_flavour = @metadata.markdown_flavour || :maruku
      begin
        @html = ::DevcenterParser.to_html(@content, markdown_flavour.to_sym)
      rescue Exception => e
        @parsing_error = e.to_s
        @html = ''
      end
      @toc = Nokogiri::HTML(@html).search('h2')
    end

    def self.read(src_path)
      src = IO.read(src_path)
      metadata_yaml, content = src.split(/\r*\n\r*\n/, 2)
      metadata = OpenStruct.new YAML.load(metadata_yaml)
      markdown_flavour = metadata.markdown_flavour || :maruku
      new(metadata: metadata, content: content)
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
devcenter-1.1.4 lib/devcenter/article_file.rb
devcenter-1.1.3 lib/devcenter/article_file.rb
devcenter-1.1.2 lib/devcenter/article_file.rb
devcenter-1.1.1 lib/devcenter/article_file.rb
devcenter-1.1.0 lib/devcenter/article_file.rb
devcenter-1.1.0rc2 lib/devcenter/article_file.rb
devcenter-1.1.0rc1 lib/devcenter/article_file.rb