Jekyll-Indico
This is a tool for importing meeting information from Indico.
Setup: config
Your _config.yaml
file should contain the categories you want to download:
indico:
url: https://indico.cern.ch # Indico instance to use (REQUIRED)
data: indico # Optional, folder name in _data to use
cache-command: bundle exec rake cache # Optional, user msg if you support it
paginate: 20 # Optional integer number of results per page (auto-iterates over all pages)
timeout: 120 # Optional timeout in number of seconds (default: 60)
ids:
topical: 10570
blueprint: 11329
This plugin will automatically use an API token if your environment contains
INDICO_TOKEN
. You should generate this and replace INDICO_API_KEY
and
INDICO_SECRET_KEY
with it. You'll want the "Classic API" read permissions set
on it.
Usage: installing
You should add this gem to your Gemfile:
group :jekyll_plugins do
gem "jekyll-indico"
end
Jekyll will use any plugin listed in this Gemfile group.
Usage: caching
If you want to cache for local website development, you can run:
bundle exec jekyll-indico-cache --config _config.yaml
Or, if you use rake, you can add a task like this:
task: cache do
sh 'jekyll-indico-cache'
end
Now the "cache" task will cache your Indico reads.
Internals
This works by calling the Indico API and pulling meeting information, then
storing it in site.data[config.indico.data][config.indico.id][number]
(or
caching it in
_data/<config.indico.data>/<config.indico.id.key>/<number>.yml
). This then
available directly in liquid from this location. You can have as many ids as
you want (key is a category name that you select, the value is the group ID
number on Indico).
Setting up for development:
# Install a local bundle
bundle config set --local path 'vendor/bundle'
# Test style and unit tests
bundle exec rake
If you need to automatically correct unit paths:
bundle exec rake rubocop:auto_correct
To release, make sure the version in lib/jekyll-indico/version.rb
is new and
you have updated your lock file with bundle install
then:
bundle exec rake release
This tags, pushes the tag, and publishes.