module Jekyll::Algolia
Requirable file, loading all dependencies. Methods here are called by the main `jekyll algolia` command
Constants
- MissingCredentialsError
- VERSION
Public Class Methods
Public: Init the Algolia
module
config - A hash of Jekyll
config option (merge of _config.yml options and options passed on the command line)
The gist of the plugin works by instanciating a Jekyll
site, monkey-patching its `write` method and building it.
# File lib/jekyll-algolia.rb, line 31 def self.init(config = {}) # Monkey patch Jekyll and external plugins load_overwrites config = Configurator.init(config).config @site = Jekyll::Algolia::Site.new(config) unless Configurator.assert_valid_credentials raise( MissingCredentialsError, "One or more credentials were not found for site at: #{@site.source}" ) end Configurator.warn_of_deprecated_options if Configurator.dry_run? Logger.log('W:==== THIS IS A DRY RUN ====') Logger.log('W: - No records will be pushed to your index') Logger.log('W: - No settings will be updated on your index') end self end
Public: Monkey patch Jekyll
and external plugins so they don't interfere with our plugin
Note: This is only loaded when running `jekyll algolia` so should not have any impact on regular builds
# File lib/jekyll-algolia.rb, line 61 def self.load_overwrites require 'jekyll/algolia/overwrites/githubpages-configuration' require 'jekyll/algolia/overwrites/jekyll-algolia-site' require 'jekyll/algolia/overwrites/jekyll-document' require 'jekyll/algolia/overwrites/jekyll-paginate-pager' require 'jekyll/algolia/overwrites/jekyll-tags-link' # Register our own tags to overwrite the default tags Liquid::Template.register_tag('link', JekyllAlgoliaLink) end
Public: Run the main Algolia
module
Actually “process” the site, which will acts just like a regular `jekyll build` except that our monkey patched `write` method will be called instead.
Note: The internal list of files to be processed will only be created when calling .process
# File lib/jekyll-algolia.rb, line 80 def self.run Logger.log('I:Processing site...') @site.process end