Module: Jekyll::Algolia
- Included in:
- Configurator, ErrorHandler, Extractor, FileBrowser, Indexer, ProgressBar, Shrinker
- Defined in:
- lib/jekyll-algolia.rb,
lib/jekyll/algolia/hooks.rb,
lib/jekyll/algolia/utils.rb,
lib/jekyll/algolia/logger.rb,
lib/jekyll/algolia/indexer.rb,
lib/jekyll/algolia/version.rb,
lib/jekyll/algolia/shrinker.rb,
lib/jekyll/algolia/extractor.rb,
lib/jekyll/algolia/configurator.rb,
lib/jekyll/algolia/file_browser.rb,
lib/jekyll/algolia/progress_bar.rb,
lib/jekyll/algolia/error_handler.rb,
lib/jekyll/algolia/overwrites/jekyll-algolia-site.rb
Overview
Requirable file, loading all dependencies. Methods here are called by the main ‘jekyll algolia` command
Defined Under Namespace
Modules: Configurator, ErrorHandler, Extractor, FileBrowser, Hooks, Indexer, Logger, ProgressBar, Shrinker, Utils Classes: Site
Constant Summary collapse
- MissingCredentialsError =
Class.new(StandardError)
- VERSION =
'1.4.11'
Class Method Summary collapse
-
.init(config = {}) ⇒ Object
Public: Init the Algolia module.
-
.load_overwrites ⇒ Object
Public: Monkey patch Jekyll and external plugins so they don’t interfere with our plugin.
-
.run ⇒ Object
Public: Run the main Algolia module.
-
.site ⇒ Object
Public: Get access to the Jekyll site.
Class Method Details
.init(config = {}) ⇒ Object
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.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# 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. 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 |
.load_overwrites ⇒ Object
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
61 62 63 64 65 66 67 68 69 70 |
# 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 |
.run ⇒ Object
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
80 81 82 83 |
# File 'lib/jekyll-algolia.rb', line 80 def self.run Logger.log('I:Processing site...') @site.process end |
.site ⇒ Object
Public: Get access to the Jekyll site
Tests will need access to the inner Jekyll website so we expose it here
88 89 90 |
# File 'lib/jekyll-algolia.rb', line 88 def self.site @site end |