class JekyllWikiLinks::DocManager

Constants

REGEX_ATX_HEADER

kramdown header regexes atx header: github.com/gettalong/kramdown/blob/master/lib/kramdown/parser/kramdown/header.rb#L29

REGEX_BLOCK

obsidian-style

REGEX_SETEXT_HEADER

setext header: github.com/gettalong/kramdown/blob/master/lib/kramdown/parser/kramdown/header.rb#L17

Attributes

md_docs[RW]
static_files[RW]

Public Class Methods

doc_has_block_id?(doc, block_id) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 61
          def self.doc_has_block_id?(doc, block_id)
return nil if block_id.nil?
                  # leading + trailing whitespace is ignored when matching blocks
                  block_id_results = doc.content.scan(REGEX_BLOCK).flatten.map { |bid| bid.strip } 
                  return block_id_results.include?(block_id)
          end
doc_has_header?(doc, header) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 53
def self.doc_has_header?(doc, header)
        return nil if header.nil?
        # leading + trailing whitespace is ignored when matching headers
        header_results = doc.content.scan(REGEX_ATX_HEADER).flatten.map { |htxt| htxt.strip } 
        setext_header_results = doc.content.scan(REGEX_SETEXT_HEADER).flatten.map { |htxt| htxt.strip } 
        return header_results.include?(header.strip) || setext_header_results.include?(header.strip)
end
new(md_docs, static_files) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 15
def initialize(md_docs, static_files)
        @md_docs ||= md_docs
        @static_files ||= static_files
end

Public Instance Methods

all() click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 20
def all
        return @md_docs
end
get_doc_by_fname(filename) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 24
          def get_doc_by_fname(filename)
return nil if filename.nil? || @md_docs.size == 0
                  docs = @md_docs.select{ |d| File.basename(d.basename, File.extname(d.basename)) == filename }
                  return nil if docs.nil? || docs.size > 1
                  return docs[0]
          end
get_doc_by_url(url) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 31
          def get_doc_by_url(url)
return nil if url.nil? || @md_docs.size == 0
                  docs = @md_docs.select{ |d| d.url == url }
                  return nil if docs.nil? || docs.size > 1
                  return docs[0]
          end
get_doc_content(filename) click to toggle source
# File lib/jekyll-wikilinks/doc_manager.rb, line 38
def get_doc_content(filename)
  return nil if filename.nil? || @md_docs.size == 0
  docs = @md_docs.select{ |d| File.basename(d.basename, File.extname(d.basename)) == filename }
  return docs[0].content if docs.size == 1
  return nil
end
get_image_by_bname(filename) click to toggle source

'bname' -> 'basename' (filename with)

# File lib/jekyll-wikilinks/doc_manager.rb, line 46
def get_image_by_bname(filename)
        return nil if filename.nil? || @static_files.size == 0 || !SUPPORTED_IMG_FORMATS.any?{ |ext| ext == File.extname(filename).downcase }
        docs = @static_files.select{ |d| File.basename(d.relative_path) == filename }
        return nil if docs.nil? || docs.size > 1
        return docs[0]
end