1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
# frozen_string_literal: true
require "jekyll"
require "octokit"
if Jekyll.env == "development"
begin
require "dotenv"
Dotenv.load
rescue LoadError
Jekyll.logger.debug "Dotenv not found. Skipping"
end
end
module Jekyll
module GitHubMetadata
autoload :Client, "jekyll-github-metadata/client"
autoload :EditLinkTag, "jekyll-github-metadata/edit-link-tag"
autoload :MetadataDrop, "jekyll-github-metadata/metadata_drop"
autoload :Owner, "jekyll-github-metadata/owner"
autoload :Pages, "jekyll-github-metadata/pages"
autoload :Repository, "jekyll-github-metadata/repository"
autoload :RepositoryFinder, "jekyll-github-metadata/repository_finder"
autoload :RepositoryCompat, "jekyll-github-metadata/repository_compat"
autoload :Sanitizer, "jekyll-github-metadata/sanitizer"
autoload :Value, "jekyll-github-metadata/value"
autoload :VERSION, "jekyll-github-metadata/version"
NoRepositoryError = RepositoryFinder::NoRepositoryError
require_relative "jekyll-github-metadata/site_github_munger" if Jekyll.const_defined? :Site
class << self
attr_reader :repository_finder
attr_writer :client, :logger
def site
repository_finder.site
end
def environment
Jekyll.env
end
def logger
@logger ||= Jekyll.logger
end
def log(severity, message)
if logger.method(severity).arity.abs >= 2
logger.public_send(severity, "GitHub Metadata:", message.to_s)
else
logger.public_send(severity, "GitHub Metadata: #{message}")
end
end
def client
@client ||= Client.new
end
def repository
@repository ||= GitHubMetadata::Repository.new(repository_finder.nwo).tap do |repo|
log :debug, "Generating for #{repo.nwo}"
end
end
def site=(new_site)
reset!
@repository_finder = GitHubMetadata::RepositoryFinder.new(new_site)
end
def reset!
@logger = @client = @repository = @nwo = @site = nil
end
end
end
end
Liquid::Template.register_tag("github_edit_link", Jekyll::GitHubMetadata::EditLinkTag)
|