The source code of Commit Conf 2020. This project contains the source code of a website based on hugo and sass.
# Install hugo -- do not use apt-get, that's an old version
snap install hugo --channel=extended
# Install node depenedencies
npm i
# Run the server. This does not write the hugo output to disk.
npm run watch
# Launch the tests (build, run server and search for broken links)
npm run test
# Build the documentation and save the generated HTML and CSS into /public
npm run build
# Deploy on GitHub Pages
bin/deployThere are three main locations to visit in order to make changes on the website:
-
i18n folder contains most of the text contents of the website, just search for the entry you are interested in, and modify it.
-
data folder contains several YAML files with the menu elements, i18n entries from the terms and conditions, and job offers.
-
config.toml, which sets the links for C4P, Agenda, photos, videos, etc (look for the
Paramssection). Remember to read the documentation on the file before updating anything.
The data folder holds several files:
-
menu.yaml: Links used for the top bar of the site. Additionally, it includes a link to change the language and another to the agenda (if a value was specified in config.toml).
-
footer.yaml: links in the footer. Set a
i18n: falseattribute to not translate the text contents. It doesn't matter if it is a relative or absolute link. Add anabsolute: trueentry if you find an external link that does not work (for example, withmailto:links), . -
location.yaml: the i18n entries we use to create the location page.
titleandcontentkeys specify i18n entries to use. Advanced: If you need to include a very complex HTML, you can specify atemplatekey and the path to a partial file. -
tickets.yaml: like
location.yaml, but for the tickets page. -
terms.yaml: i18n entries to use in the Terms and Conditions page.
-
stats.yaml: The stats to show on the homepage.
nameis a key to use with the i18n files. -
communities.yaml: Communities list. The logos must be saved to [static/img/communities/original]. For each community you must specify:
name: The name of the community (required)href: The homepage of the community (required)logo: If no logo entry is specified, we assume there is a jpg logo with the (lowercase, dasherized) community name. For example, if the community name is "Otaku Lovers", we assume the community logo filename is "otaku-lovers.jpg" (optional)type: Use this attribute to search for the filename with a different file type, like 'svg' (optional)file: To specify the full logo filename including the extension (optional)
-
sponsors.yaml: Like the communities file, but for sponsors and their categories. The logos must be saved to static/img/sponsors/original.
name: The category name, like Gold or Silver (required)items: List of sponsors inside this category, following the same structure ofcommunities.yaml(required)
-
jobs.yaml: Job offers of the sponsors. For each list item, you need to specify:
sponsor: Required. The sponsor name as defined in data/sponsors.yaml file.title: Required. The job role.salary: Required. The salary range. Example: 10K-18Klocation: Required. The location. Example: Madrid, Spaintags: Required. A list of tags to describe the job offer. Example: [senior, Java, TDD, Scrum, Devops]template: Required. The markdown file with the job offer content. This file should be inside the src/jobs folder. Example: commit/senior-otaku-lover.md
-
c4v.yaml: Content of the Call for Volunteers page. Just follow the pattern on the file.
-
team.yaml: Content of the team page.
-
FYI: On the 404' page we show a random entry from helloworld.json file. Maybe you want to add more entries.
To publish the C4P, just fill in the C4PLink in config.toml. The homepage will display a button and change the style of the tickets button.
Just update the AgendaLink in config.toml to:
- Add a link to the top bar menu.
- Add a button on the homepage and change the style of the tickets button.
- Hide the C4P button if
C4PLinkis still specified.
The sponsors section will be empty, both on the home and the sponsors page, if the number of sponsors in sponsors.yaml is below the value defined for minSponsorsCountForHome in config.toml.
The jobs section in the sponsors page will be hidden if there are no job offers defined.
You only need to specify the C4VLink at config.toml. We publish a button on the homepage with a link to the C4V page. To unpublish, just remove the C4PLink value.
If you want to publish a streaming button on the homepage, just specify the StreamingLink at config.toml. To unpublish, just remove its value.
After the event, you want to publish the summary video and the photos links. Just specify VideoLink and/or PhotosLink at config.toml. Specifying any of them, remove the Tickets button of the homepage, and add buttons for these links.
We have a section to specify how the diversity tickets work. You can specify two things at config.toml:
DiversityTicketsLink: Link to the form to sign up for the diversity tickets. We show this link once it is specified with the i18n entryDiversityTicketsDeadlineto specify the deadline date.DiversityTicketsClosedKey: A i18n entry to use when there is no DiversityTicketsLink. Just because registration is not open or because it is closed.
If you want to announce something (the agenda publish dates, next Commit edition dates, whatever), you can specify an i18n entry in AnnouncementKey at config.toml.