Skip to content

FOSDEM/stands-website

Repository files navigation

Welcome to FOSDEM 2022 This year, we have an experimental digital-only setup for reasons I think you all know.

General structure

The stands.fosdem.org exhibition website is a static website generated with Hugo. There is a general part, created by FOSDEM, containing an overview of each stand, a thematic ordering and some general information, and a stand-specific part.

We create the general part and will seed the stand-specific part with what you provided during your submission in the project name.md. You can update the contents of the file (via a pull request), but please make sure you do not remove any of the variables in the front matter, otherwise the generator will crash.

We've asked for two repositories from you, one with the content (Hugo content files) and one with static files. These repositories do not have to contain anything else but .md (or .html) files and images respectively. The stand pages will keep the theme we created.

However, if you wish to provide an added experience, you can link to other pages on your own website. We ask however that you (a) keep the stand information on stands.fosdem.org, that (b) you make sure that visitors know they are not longer on the FOSDEM website and (c) they can easily go back to stands.fosdem.org (e.g. to look at other stands).

The structure in your directories is flat (no hierarchy in sub folders). If you wish to create additional hierarchical subfolders, please contact us and we will set it up.

We automatically generate a link to your video repository and the chatroom.

Your stand will live under stands.fosdem.org/stands/.

Workflow

We need two repositories from you, one containing your content (pages) and one containing your static files. All files should go directly in the root of that repository (you should not create a hugo site, it is not necessary).

To add your content to the main website, two options are possible:

  • Send us an e-mail with both repositories. We will add them as git submodules; content under content/stands/your_stand_name (the name of your stand, or at least the directory, is the same name as the .md file already in content/stands (minus the extension)) and static files under static/stands/your_stand_name.
  • Fork and clone this repository, add them yourself (respect the paths please) and create a pull request.

A cronjob will pull the code and rebuild the website every hour.

If you wish to test your changes locally, you'll have to clone this repository, add the submodules as described above (synchronise them by executing git submodule init and git submodule update) and test them with hugo serve. Any changes must be made in your local repositories.

If you wish to change anything in the content/stands/.md file (which you can and should), please open a pull request.

Directory structure

We will clone the repositories you provided in two locations (corresponding to the path stands/).

  • content/stands/<your stand> - location of the content files (Hugo documentation).
  • static/stands/<your stand> - location of any static files (images, logo's, etc.).

Important files

/<stand_name>.md is used for the adding the stand to the lists on /themes/ and /stands/; <stand_name>/_index.md is used for the page itself unless it does not exist. Do not use show_on_overview in your _index.md file.

content/stands/.md

  • content/stands/<your stand>.md - generated by our custom highly advanced (;-)) script based on what you provided in your submission.

The contents of the .md file can be changed as you wish, but please make sure you do not remove any of the variables (changing the content is fine) of the front matter, otherwise the generator will not work. Please do not change the theme or the layout.

You can override this file with _index.md in your repository.

Front matter

---
title: _Project_
themes:
 - _Theme (please do not change from the one already in the repository)_
website: _Your website_
logo: stands/_Project_/_Logo filename_
description: |
    _Short description of your project (5 lines). You can use HTML_

showcase: |
    _Showcase: explain why people should come to your stand. You can use HTML (p, ul, etc.)_

new_this_year: |
    _What has happened in 2021 to your project? You can use HTML (p, ul, etc.)_

layout: stand
chatroom: _Room name in pentabarf_
---

Any other files

All other files can by any content Hugo accepts (HTML, MD).

You must provide a title parameter in the front matter of your other pages; otherwise the links will not work.

Chatroom functionality

Each stand will have a dedicated chatroom, created based on the information in pentabarf. Your chat room name is the same name as the room you are scheduled in in pentabarf.

We have put the name of the chatroom as chatroom on all stands pages. However, if you provided your own _index.md file, you must add this parameter, otherwise your chatroom link will not be functional. You cannot change this yourself.

Each chatroom will have the two contacts listed in your submission (and who created an account in Pentabarf) as moderator. Additionally, all FOSDEM staff will be given the same role. Moderators can invite other moderators, but note that you require a Matrix account for this.

Video

Because of our strict security settings, you cannot embed video's from Youtube (or any other video hosting site) - only from video.fosdem.org.

You can upload video's via penta.fosdem.org, where everybody should have an account (if not, contact stands_at_fosdem.org). The exact process is not automated yet, so you will have to send an e-mail to stands_at_fosdem.org and we will provide you with the upload link.

We've created four video events you can upload to (1 video per event). If you need more, let us know.

The links are of the form https://penta.fosdem.org/submission/FOSDEM22/event/_event_id_.

On the Schedule tab in Pentabarf, you'll find a field called Pre-recorded Video Upload URL. Go to that link (you'll have to copy & paste) to upload the video.

You'll have to wait a few minutes while the script transcodes the video. You can check the progress at upload.video.fosdem.org/overview (select Stand recordings and search for your project - you'll find 5 video's - check the one you uploaded).

As soon as it says preview on the overview, go back to Pentabarf, go to the schedule tab and check the field called Video Review URL. Go to that link to check your video, and if it is OK, confirm it (if it is not, you can upload a new version).

Wait a few more minutes (30 or so) while it is pushed to our CDN.

Go back to Pentabarf and the schedule tab, check the field Final Video URL. This is the URL of your video you can embed on your stand.

Upload the video, it will be converted by our system. Afterwards, you review and approve the video, which will then be live.

You can embed the video; the links will be of the form https://video.fosdem.org/2022/stands/_chatroom_name__video1.mp4. Embedding is done using standard HTML. You can only embed video's in HTML content, not in Markdown. Note that all fields (description, new_this_year and showcase) will accept HTML and that any pages you add can be HTML as well.

Welcome events on the schedule

You can also edit the "welcome event" on the FOSDEM schedule (fosdem.org) in Pentabarf; search for the Welcome to the stand event and edit the short and full abstract on the Abstract tab.

You can continue to talk after the event finishes; the events are only to make sure you are on the global schedule.

Starting a video chat

If you wish to start a video chat, you must go to the chatroom for your stand on chat.fosdem.org and click the video camera icon in the lower right corner. It is not possible to live stream prerecorded content (like for devrooms or main tracks), but you can video chat.

Doing so will add a widget in your room which will display your video feed.

Adding extra events to the schedule

You can add extra events to be put on the schedule via https://penta.fosdem.org/submission/FOSDEM22. Make sure the track is stand. Send the links to the event to the #stands:fosdem.org channel so we can approve them and put them on the schedule.

Technical details

Whatever you put as content of any file (or the contents of _index.md) will appear in the resulting HTML page as follows.

<html>
<head>
[FOSDEM Head]
</head>
<body>
[FOSDEM Header]
<div class="container">
    <div class="row">
        <div class="col">
            <nav aria-label="breadcrumb">
                <ol class="breadcrumb">
                   [FOSDEM Generated breadcrumb]
                </ol>
            </nav>
        </div>
    </div>
    <div class="row">
        <div class="col">
            [Your content]
        </div>
    </div>
</div>
[FOSDEM Footer]
</body>
</html>

We use Bootstrap (4.5) for styling, so you can as well. jQuery is included (for Bootstrap), so you can use it.

Please note that you cannot load any assets (images, css or js) from any other domain than stands.fosdem.org.

Local development environment

To test your changes locally, this is what you can do (you'll need the Hugo binary).

  1. Clone the repository.
  2. Put your content directly in content/stands/your stand and static/stands/your stand. We use submodules to link everything together, so your content must go there directly.
  3. Run hugo serve.
  4. Profit!

If you notice anything amiss, let us know via stands_at_fosdem_dot_org. Or open a pull request ;-)

Feedback

We realise this is certainly not the best possible option, but while we are fairly confident we can organise a physical edition, going virtual is new for us as well. If you have any ideas for improvements, feedback or anything else, please contact us at stands_at_fosdem_dot_org. Or open a pull request ;-)