Skip to content

Commit

Permalink
Prepare new site
Browse files Browse the repository at this point in the history
  • Loading branch information
badboy committed Jul 24, 2018
1 parent a1fb12e commit d998f30
Show file tree
Hide file tree
Showing 248 changed files with 8,594 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
_site
Gemfile.lock
*.kate-swp
vendor
.bundle
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source 'https://rubygems.org'

gem 'github-pages', group: :jekyll_plugins
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
all:
bundle exec jekyll serve --host 0.0.0.0

images:
mogrify -strip -resize '660x660>' assets/organizers/*.png
102 changes: 102 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Rustfest.eu

This website is a `jekyll` site. You're welcome to fork and use this for your conference. We've tried to make it reasonably generic.

Pull requests are welcome, and if you find any mistakes please just open an issue.

## Developing for the site

* In general favor convention over customization. We want to organize a conference, not maintain a giant mess of options.
* We strive to make the site accessible. Prefer static to dynamic, use `alt` tags on images.
+ Further, consider reviewing changes in `lynx` or another console browser. Our visitors **do** use these, and we respect them.
* We make use of 'collections' to manage our data. In general you will find `_collection/_schema.md` which will describe the options of a collection. Some collections have assets which will be in `assets/collection/*`.
* We can't use most Jekyll plugins since we're hosted on Github pages.

# Common tasks

## Change `_config.yml`

Every change to `_config.yml` will not be reflected while jekyll is still running.
You need to terminate it with `Ctrl` + `C` and then start it again:

```
docker run --rm --volume=$(pwd):/srv/jekyll -p 35729:35729 -p 4000:4000 -it jekyll/jekyll jekyll serve
```

## Adding an Organizer

Create a file by the name of `_organizers/nick.md` where `nick` is the nick of the organizer. Use the options detailed in `_organizers/_schema.md` to configure the details.

Then, save their image to `assets/organizers/nick.png`. It should be `660x660` at most. You can use this to configure it:

```bash
make images
```

The final PR should include:

* `_organizers/nick.md`
* `assets/organizers/nick.png`

## Adding a Sponsor

You can either ask them the details from `_sponsors/_schema.md` and fill it out for them, ask them to fill it out, or if they'd like, have them make a PR.

Ask them for an SVG version of their logo.

The final PR should incude:

* `_sponsors/company.md`
* `assets/sponsors/company.svg || assets/sponsors/company.png`

## Adding a Speaker

You can either ask them the details from `_speakers/_schema.md` and fill it out for them, ask them to fill it out, or if they'd like, have them make a PR. Their `nick` should either be their nickname or their first initial then last name.

Ask them for a PNG image which they'd like to be shown publicly.

The final PR should include:

* `_speakers/nick.md`
* `assets/(event-asset-folder/)speakers/nick.png`

## Adding a Session

Create a file by the name of `_sessions/snake-case-short-name.md`. Use the options detailed in `_sessions/_schema.md` to configure the details.

The final PR should include:

* `_sessions/nick.md`

# Useful Snippets

* Get a particular item from a collection (In this example, `sponsors` who are `featured: true`):
```ruby
{{ site.sponsors | where: "featured", true }}
```
* Bind a value:
```ruby
{{ assign partners = site.sponsors | where: "group", "partner" }}
```
* Do a `.map()` on a collection. (In this example, list all speakers by name as a sentence):
```ruby
{{ site.speakers | map: "speaker", "name" | array_to_sentence_string }}
```
* Debug a value:
```ruby
<pre>{{ site.speakers | inspect }}</pre>
```
* Use a `where_exp` to check arrays for contents, etc. (In this example, get the names of a speakers for a talk):
```ruby
{{ site.speakers | where_exp: "speaker", "talk.speakers contains speaker.slug" | map "speaker", "name" }}
```

# Social cards

After merging (or checking out locally) you can go to **<url>/meta/twitter-card-generator/** to see a list of cards showing up. You may edit the _layout file for different descriptions (there's a JSON object), and to change the visuals (e.g. the SVG).

When you are done, you can just screenshot the cards and save them as a .png image into /assets/social/ under the same name as the speaker image is. I usually just use Firefox for this, in the devtools you can just right-click a card and click "Screenshot node", which saves a .png file of the correct size automatically into your "Downloads" folder.

**Note** that these files are recompressed by Twitter as .jpegs, so there is no harm in having large files.

The Twitter Card Validator service can be used for checking metadata (it also works on this page, it will show Ashley's card that is embedded in the metadata in <head>), but it only works for already-on-line pages, doesn't work with locally served devpages (as it uses Twitter's crawler).
73 changes: 73 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
title: RustFest.eu
email: [email protected]
description: >
A Rust Community conference travelling all around Europe.
baseurl: "" # the subpath of the site, e.g. /blog
url: "https://www.rustfest.eu" # the base hostname & protocol for the site
metaKeywords: "rust, conf, rustfest, rustfesteu, conference, programming language"
social:
twitter: rustfest
github: rustfesteu
facebook: rustfest
socialImageSrc: "/assets/favicons/logo.png"

location:
venue: "TBA"
impl_days: ""
city: "Rome"
country: "Italy"

dates:
year: "2018"
talks: "TBA"
workshops: "TBA"
impl_days: "TBA"
impl_days_no_br: "TBA"

event:
assets: "/assets/rome/"


# Page Settings
owner: "asquera Event UG"

collections:
sessions:
permalink: /:collection/:path
output: true
people:
permalink: /:collection/:path
output: true
sponsors:
permalink: /:collection/:path
# They have their own link.
output: false

defaults:
- scope:
type: sessions
values:
layout: session
- scope:
type: people
values:
layout: person

# mailinglist
mailchimp:
server: asquera.us13.list-manage.com
user: 7945052bc1ecc432bff53c079
id: 5929ff51d6

exclude:
- /vendor

# Build settings
markdown: kramdown

permalink: /blog/:title

# Plugins
plugins:
- jekyll-redirect-from
10 changes: 10 additions & 0 deletions _data/footer_menu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- title: "About"
link: "/about"
- title: "Sponsors"
link: "/sponsors/"
- title: "Code of Conduct"
link: "/code-of-conduct/"
- title: "Imprint"
link: "/imprint/"
- title: "Accessibility"
link: "/accessibility/"
4 changes: 4 additions & 0 deletions _data/groups.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- emcee
- keynote
- speaker
- organizer
4 changes: 4 additions & 0 deletions _data/header_menu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- title: News
link: https://blog.rustfest.eu/
- title: Past Events
link: https://blog.rustfest.eu/past_events/
1 change: 1 addition & 0 deletions _data/speakers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
29 changes: 29 additions & 0 deletions _includes/_schedule_session.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{% assign talk = site.sessions | where_exp: "item", "item.id contains include.session" | first %}

<tr>
<td class="time">
<a href="/sessions/{{include.session}}">
{{talk.start | split: ":" | join: "<span>" }}</span>
</a>
</td>
<td>
<a href="/sessions/{{include.session}}">
<div class='talk_info'>
{% if talk.keynote %}<b>Keynote:</b>{% endif %}
{% if talk.type == 'workshop' %}<i>Workshop:</i>{% endif %}
{{talk.title}}<br>
{% if talk.room %}Room: <b>{{talk.room}}</b>{% endif %}
</div>
<div class='speakers'>
{% for person in talk.speakers %}
<div class='speaker'>
{% assign speaker = site.data.speakers[person] %}
<img src="/assets/rome/speakers/{{speaker.thumbnailUrl}}" />
{{speaker.name}}
</div>
{% endfor %}
</div>
</a>
</td>
</tr>

6 changes: 6 additions & 0 deletions _includes/call_for_action_bottom.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<section class="twitter">
<h2>Follow us on twitter</h2>
<a class="inline" href="https://www.twitter.com/{{site.social.twitter}}" >
{% include icons/twitter.svg %} @{{site.social.twitter}}
</a>
</section>
7 changes: 7 additions & 0 deletions _includes/cards/person.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<div id="{{include.person.slug}}" class="card person">
<img src="/assets/people/{{include.person.slug}}.{% if include.person.jpg %}jpg{% else %}png{% endif %}" />
<div class="info">
<a href="{{include.person.url}}"><span class="name">{{include.person.name}}</span></a>
{% include links.html links=include.person.links %}
</div>
</div>
12 changes: 12 additions & 0 deletions _includes/footer.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<footer>
<section>
<span class="copyright">© 2016-2018, <a href="/imprint/">{{site.owner}}</a></span>
<ul class="footer-links">
{% for item in site.data.footer_menu %}
<li>
<a href="{{item.link}}">{{item.title}}</a>
</li>
{% endfor %}
</ul>
</section>
</footer>
52 changes: 52 additions & 0 deletions _includes/head.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
<meta name="author" content="{{ site.owner }}">
<meta name="description" content="{{ site.description }}">
<meta name="keywords" content="{{ site.metaKeywords }}">
<meta name="google-site-verification" content="{{ site.siteVerification }}" />
<link rel="canonical" href="{{ site.url }}">
<!-- Social: Twitter -->
<meta name="twitter:card" content="{{ page.socialTwitterCardType | default: "summary" }}" />
<meta name="twitter:site" content="{{ site.social.twitter }}" />
<meta name="twitter:title" content="{% if page.speaker %}{{ page.speaker }} - {{ page.title }}{% else %}{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}{% endif %}" />
<meta name="twitter:description" content="{{ page.description | default: site.description }}" />

{% if page.socialImageSrc %}
<meta name="twitter:image:src" content="{{ page.socialImageSrc | prepend: site.baseurl | prepend: site.url }}?a" />
{% else %}
<meta name="twitter:image:src" content="{{ site.socialImageSrc | prepend: site.baseurl | prepend: site.url }}?b" />
{% endif %}
<!-- Social: Facebook / Open Graph -->
<meta property="og:title" content="{% if page.speaker %}{{ page.speaker }} - {{ page.title }}{% else %}{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}{% endif %}" />
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:type" content="website" />
<meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
{% if page.socialImageSrc %}
<meta property="og:image" content="{{ page.socialImageSrc | prepend: site.baseurl | prepend: site.url }}" />
{% else %}
<meta property="og:image" content="{{ site.socialImageSrc | prepend: site.baseurl | prepend: site.url }}" />
{% endif %}
<meta property="og:description" content="{{ page.description | default: site.description }}" />

<title>{% if page.title %}{{ page.title }} &bull; {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
<link rel="shortcut icon" href="{{ "/assets/favicons/favicon.ico" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="144x144" href="{{ "/assets/favicons/apple-icon-152x152.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="144x144" href="{{ "/assets/favicons/apple-icon-144x144.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="120x120" href="{{ "/assets/favicons/apple-icon-120x120.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="114x114" href="{{ "/assets/favicons/apple-icon-114x114.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="76x76" href="{{ "/assets/favicons/apple-icon-76x76.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="72x72" href="{{ "/assets/favicons/apple-icon-72x72.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="60x60" href="{{ "/assets/favicons/apple-icon-60x60.png" | prepend: site.baseurl }}">
<link rel="apple-touch-icon" sizes="57x57" href="{{ "/assets/favicons/apple-icon-57x57.png" | prepend: site.baseurl }}">
<link rel="icon" type="image/png" href="{{ "/assets/favicons/favicon-96x96.png" sizes="96x96" | prepend: site.baseurl }}">
<link rel="icon" type="image/png" href="{{ "/assets/favicons/favicon-32x32.png" sizes="32x32" | prepend: site.baseurl }}">
<link rel="icon" type="image/png" href="{{ "/assets/favicons/favicon-16x16.png" sizes="16x16" | prepend: site.baseurl }}">
<meta name="msapplication-TileImage" content="{{ "/assets/favicons/ms-icon-144x144.png" | prepend: site.baseurl }}">

<meta name="msapplication-config" content="{{ "/assets/favicons/browserconfig.xml" | prepend: site.baseurl }}">

<link href="{{ "/css/main.css" | prepend: site.baseurl }}" rel="stylesheet">
38 changes: 38 additions & 0 deletions _includes/header.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<header class="navigation" role="banner">
<section class="itemgroup">
<a href="/" class="logo" title="RustFest">
{% include icons/logo-header.svg %}
<span class="site-title">
RustFest
</span>
</a>
<nav role="navigation">
<ul id="js-navigation-menu" class="navigation-menu show">
{% for item in site.data.header_menu %}
<li class="nav-link">
<a href="{{item.link}}">{{item.title}}</a>
</li>
{% endfor %}
</ul>
</nav>
<div class="social-bar">
<ul>
<li>
<a href="https://twitter.com/{{ site.social.twitter }}">
{% include icons/twitter.svg %}
</a>
</li>
<li>
<a href="https://github.com/{{ site.social.github }}">
{% include icons/github.svg %}
</a>
</li>
<li>
<a href="https://facebook.com/{{ site.social.facebook }}">
{% include icons/facebook.svg %}
</a>
</li>
</ul>
</div>
</section>
</header>
1 change: 1 addition & 0 deletions _includes/icons/calendar.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions _includes/icons/facebook.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit d998f30

Please sign in to comment.