Skip to content

iris-hep/jekyll-indico

Repository files navigation

Jekyll-Indico

Gem Version CI

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.