:warning: This repository is not maintained anymore and read-only. :warning:
Have a look at v2 implemented as a Jekyll Theme (Gem) here instead:
This is a Jekyll template based on Bootstrap 4 which can be used to make a simple website for a one-day conference or workshop containing:
All components such as talks, speakers or rooms are represented as collection of files. The schedule is given is defined via a simple structure stored in a yaml
file.
There is no need for databases and once generated the website consists only of static files. The use of JavaScript is optional and is used only for the navigation bar dropdown menus and the program table's sticky header/first column.
cd jekyll-conference/
bundle install
bundle exec jekyll build
. The generated content in the _site/
directory (will be overwritten at each new build)bundle exec jekyll serve
As a general rule all files ending with .md
are supposed to be modified. Reference between the files is done via their name
property.
The repository in its current state serves as an example.
The site's configuration is given by the _config.yaml
file. There one can edit the following arguments:
title
,description
(optional) and a longer one in long_description
(optional),url
and baseurl
,navigation
defines the navigational bar's content and is an array containing the ordered links. Each link consists ofname
),relative_url
) or absolute link address (absolute_url
) or another list of links whereby the current link will be transformed to a dropdown menu (menu
), anddisabled
).main_links
defines links shown on the main landing page in form of buttons. Each link consists ofname
),relative_url
) or absolute link address (absolute_url
), anddisabled: true
).info_bars
defines optional dismissible boxes below the navigation bar. Consists oftitle
(optional),color
, given as a (Bootstrap) class name,main_only: true
) or the other pages (pages_only: true
), andtext
to be shown.main_categories
which is used to sort talks, each main category consists of a name
and a color
given as a (Bootstrap) class nametime_steps
sets the grid space for the program table in minutes, andshow_firstname
indicates if the speakers' first names are generally shown or abbreviated.show_alltimes
indicates if the timestamps for all rows in the program grid should be shown.The congress' content is based on the configuration in the configuration file, the schedule in the program.yml
file and the talks, speakers and rooms descriptions in the corresponding files and folders.
There exists a Python file in the root, create_entries.py
, which can be used to export content from a CSV table and generate the different files based on it automatically.
The one-day schedule of the conference is defined in the [data/program.yml
] file. It consists of an array of rooms each consisting of a
room
name (must correspond to one of the room identifier), andtalks
which also can be empty []
.The order of the room in the file defines the order of the rooms on the website (program and room listings).
Each talk in the array consists of
name
(must correspond to one of the talk identifier),time_start
given as H:M
(strftime
formated), andtime_end
.The array should (manually) be ordered by time. Currently talks can only take place on the same day and multi-day conferences are not supported.
Each talk is represented by file in the _talks/
directory. It must begin with valid YAML Front Matter containing
name
(used as identifier),speakers
name(s), andcategories
of which one should be a main category as defined in the site's configurationlinks
whereby each link element must contain a name
and either an absolute link href
or a file
name (of a file stored under /documents/
)hide: true
if the talk and its description should not be shownEach speaker is represented by file in the _speakers/
directory. It must begin with valid YAML Front Matter containing
name
(used as identifier), as well as itsfirst_name
,last_name
, andlinks
whereby each link element must contain a name
and either an absolute link href
or a file
name (of a file stored under /documents/
)hide: true
if the speaker and its description should not be shown.Each room is represented by file in the _location/
directory (no ending s
). It must begin with valid YAML Front Matter containing
name
, andhide: true
if the room and its description should not be shown.Furthermore, one can edit location/index.md
to add additional information about the venue's location.
The map shown on the main location page is based on the JavaScript Library Leaflet and can be customized by editing the assets/js/map.js
file.
Additional static pages can easily be added as page_name/index.html
. In the repository a about
and contact
page are given as example.
The design is based on the Bootstrap 4. Custom Bootstrap variables such as designed with Bootstrap Magic for individual themes can be added in the main SASS stylesheet.
Upon site building Jekyll takes care of prefixing and building Bootstrap from source including some minor modifications into a single stylesheet. While the Bootstrap stylsheet is build from source, the (static) Bootstrap JavaScript files are included in this repository and have their proper licensing terms.
This project is licensed under the MIT License. You can view LICENSE.md for more details.
This project re-distributes other open-source tools and libraries. You can view REDISTRIBUTED.md for third party licenses.