Sha256: 1c5e2202a68a48740dca75a5da6140ee18adfe33861d36802c067585614a887c

Contents?: true

Size: 728 Bytes

Versions: 1

Compression:

Stored size: 728 Bytes

Contents

require 'devcenter-parser'
require 'yaml'

module Devcenter

  class ArticleFile

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

    def initialize(opts = {})
      @metadata = opts[:metadata] || OpenStruct.new
      @content = opts[:content] || ''
      begin
        @html = ::DevcenterParser.to_html(@content, :github)
      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)
      new(metadata: metadata, content: content)
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devcenter-1.1.6 lib/devcenter/article_file.rb