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