GithubHelp home page GithubHelp logo

edwardbetts / website Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fosdem/website

0.0 2.0 0.0 60.56 MB

FOSDEM website

License: Other

Ruby 24.70% HTML 27.62% CSS 3.15% Shell 0.71% Makefile 0.09% PostScript 43.65% Dockerfile 0.08%

website's Introduction

This repository holds the source code and content of the FOSDEM website (as of https://fosdem.org/).

Our website uses the nanoc static site generator, and we did implement a lot of custom code to support our workflow as painlessly as possible. Maybe some bits of those will be an inspiration or of help.

Getting started

Prerequisites

  • Ruby 2.4 or newer
  • ImageMagick >= 6.0 < 7.0
  • pngcrush
  • Either:
    1. An export of the FOSDEM pentabarf system; or
    2. Credentials to connect to the FOSDEM pentabarf database

Debian 9 with rbenv

Assuming you are running Debian or a derivative thereof, your system will need to have the following packages installed:

  • autoconf
  • bison
  • build-essential
  • git
  • libffi-dev
  • libgdbm-dev
  • libmagickcore-dev
  • libmagickwand-dev
  • libncurses5-dev
  • libpq-dev
  • libreadline6-dev
  • libssl1.0-dev
  • libyaml-dev
  • pngcrush
  • zlib1g-dev

Following the steps below should result in a working environment:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

source ~/.bashrc

rbenv install 2.7.0
rbenv rehash
rbenv local 2.7.0

gem install bundler -v 1.17.3 # we’ll upgrade to Bundler 2.x soon

git clone [email protected]:website.git

cd website/

git remote add github [email protected]:FOSDEM/website.git

bundle install

source ~/.bashrc

Of course, if you're not using bash, replace .bashrc with the appropriate initialisation file for your shell.

Building the site

A site build consists of two steps:

  1. Export the data from the FOSDEM Pentabarf database
  2. Generate the static site using the exported data

Exporting from FOSDEM Pentabarf

To generate the schedule data from Pentabarf, you will first need to obtain a Kerberos ticket for a principal with access to the Pentabarf database. Next, you will be able to run the update command.

kinit [email protected]
nanoc update -y

If you do not have access to the Pentabarf database, you can copy the export/ folder in the sample/ directory to the root and go from there.

Generating the site

This section assumes you have an exported data from pentabarf already. If you haven't please see the section above first.

nanoc

The site will be generated in /output. To view the website, you can use the view command and optionally specify a port to listen on:

nanoc view -p 1234

Don't forget to add the year when you check out the site, eg http://localhost:1234/2022 .

Running with Docker

Rather than installing all dependencies on you machine, it is also possible to use a docker container with all specific versions.

docker build -t fosdem/website .

# Export from Pentabarf
docker run --rm -it -v $(pwd):/usr/src/app fosdem/website kinit <username>@FOSDEM.ORG && nanoc update -y
# Generate the site
docker run --rm -v $(pwd):/usr/src/app fosdem/website nanoc

# Preview the site (at http://localhost:3000/2018)
docker run --rm -v $(pwd):/usr/src/app -p 3000:3000 fosdem/website nanoc view

website's People

Contributors

ahzf avatar ara4n avatar aubincleme avatar bexelbie avatar boegel avatar cortinico avatar danielinux avatar denisdefreyne avatar elfiesmelfie avatar emanuil-tolev avatar geertjanw avatar gerryd avatar gletsjer avatar jakuje avatar johanvdw avatar kergon avatar koenvervloesem avatar kragniz avatar lefred avatar lucavazz avatar matrixise avatar nielslaukens avatar paulgirard avatar pbleser avatar pieterdp avatar richih avatar schuhmi2 avatar tias avatar toshywoshy avatar yoe avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.