Skip to content

Commit db516b9

Browse files
Merge branch 'master' into dependabot/bundler/rack-2.2.6.2
2 parents 319c0b0 + e7bcffd commit db516b9

File tree

301 files changed

+3209
-4790
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

301 files changed

+3209
-4790
lines changed

.github/workflows/website.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build FOSDEM site
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- gha
8+
pull_request:
9+
branches:
10+
- master
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
20+
- name: Copy test penta/pretalx export
21+
run: |
22+
mv sample/export .
23+
- name: Ensure pdf_grid is set to false in config.yaml
24+
run: |
25+
sed -i '/^pdf_grid/d' config.yaml
26+
echo "pdf_grid: false" >> config.yaml
27+
28+
29+
- name: Run nanoc build in docker
30+
uses: docker://ghcr.io/johanvdw/fosdem-website
31+
with:
32+
entrypoint: /bin/sh
33+
args: -c "bundle install && nanoc"
34+
35+
# Step 5: Upload the 'output' directory as an artifact
36+
- name: Upload output directory
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: nanoc-output
40+
path: output
41+

Dockerfile

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
1-
FROM ruby:2.7
1+
FROM docker.io/library/ruby:2.7
22
MAINTAINER ryan@slatehorse.com
33

4+
# Set encoding to prevent nanoc exploding
5+
ENV LANG=C.UTF-8
6+
ENV APP_DIR=/usr/src/app
7+
WORKDIR $APP_DIR
8+
49
# Install other dependencies
510
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq \
611
pngcrush \
712
imagemagick \
813
krb5-user
914

1015
# Copy the Gemfile in and bundle, so we have the dependencies cached
11-
ADD Gemfile .
12-
ADD Gemfile.lock .
16+
COPY Gemfile Gemfile.lock $APP_DIR
1317
RUN gem install bundler:1.17.3 && bundle install
1418

15-
# Set encoding to prevent nanoc exploding
16-
ENV LANG=C.UTF-8
17-
ENV APP_DIR=/usr/src/app
18-
19-
# Copy the rest of the app in
20-
ADD . $APP_DIR
21-
2219
# Port 3000 is used for `nanoc view`
2320
EXPOSE 3000
24-
WORKDIR $APP_DIR
2521
ENTRYPOINT ["bundle", "exec"]
26-
CMD ['nanoc', 'view']
22+
23+
LABEL "org.opencontainers.image.source"="https://github.com/FOSDEM/website"
24+
CMD ["nanoc", "view"]

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ GEM
2929
minitest (5.16.3)
3030
nanoc (3.8.0)
3131
cri (~> 2.3)
32-
nokogiri (1.13.8)
32+
nokogiri (1.13.10)
3333
mini_portile2 (~> 2.8.0)
3434
racc (~> 1.4)
3535
parallel (1.22.1)
@@ -45,7 +45,7 @@ GEM
4545
pry (0.14.1)
4646
coderay (~> 1.1)
4747
method_source (~> 1.0)
48-
racc (1.6.0)
48+
racc (1.6.1)
4949
rack (2.2.6.2)
5050
rainbow (3.1.1)
5151
rainpress (1.0.1)

README.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ of those will be an inspiration or of help.
77

88
# Getting started
99

10+
Building the website can be done either using containers or by doing a manual install. The manual install is a bit fragile and may be hard to install on modern systems. Pull requests to support a more recent environment are very much welcome!
11+
1012
## Prerequisites
1113

1214
- Ruby 2.4 or newer
@@ -16,7 +18,7 @@ of those will be an inspiration or of help.
1618
1. An export of the FOSDEM pentabarf system; or
1719
2. Credentials to connect to the FOSDEM pentabarf database
1820

19-
### Debian 9 with rbenv
21+
### Debian 9-12 with rbenv
2022

2123
Assuming you are running Debian or a derivative thereof, your system will need
2224
to have the following packages installed:
@@ -72,26 +74,24 @@ initialisation file for your shell.
7274

7375
A site build consists of two steps:
7476

75-
1. Export the data from the FOSDEM Pentabarf database
77+
1. Export the data from the FOSDEM Pretalx database
7678
2. Generate the static site using the exported data
7779

78-
### Exporting from FOSDEM Pentabarf
80+
### Exporting from FOSDEM Pretalx
7981

80-
To generate the schedule data from Pentabarf, you will first need to obtain a
81-
Kerberos ticket for a principal with access to the Pentabarf database. Next,
82-
you will be able to run the update command.
82+
The schedule data is fetched as a large yaml file and the resources/thumbnails.
83+
The best way is to clone these from the nanoc server (`nanoc update -y` should be repaired)
8384

8485
```bash
85-
kinit yourprincipal@FOSDEM.ORG
86-
nanoc update -y
86+
rsync nanoc@nanoc.fosdem.org:/srv/nanoc/website/export/ export -aP --delete-after
8787
```
8888

89-
If you do not have access to the Pentabarf database, you can copy the `export/`
89+
If you do not have access to the pretalx site or for, you can copy the `export/`
9090
folder in the `sample/` directory to the root and go from there.
9191

9292
### Generating the site
9393

94-
> This section assumes you have an exported data from pentabarf already. If you
94+
> This section assumes you have an exported data from pretalx already. If you
9595
> haven't please see the section above first.
9696
9797
```bash
@@ -101,25 +101,32 @@ nanoc
101101
The site will be generated in `/output`. To view the website, you can use the
102102
`view` command and optionally specify a port to listen on:
103103

104-
```
104+
```bash
105105
nanoc view -p 1234
106-
107106
```
108-
Don't forget to add the year when you check out the site, eg http://localhost:1234/2022 .
109107

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

111110
### Running with Docker
112111

113-
Rather than installing all dependencies on you machine, it is also possible to use a docker container with all specific versions.
112+
Rather than installing all dependencies on you machine, it is also possible to use a docker container with all specific versions. You can either build a container yourself, or pull the one that is used in github actions.
114113

114+
To build yourself:
115115
```bash
116116
docker build -t fosdem/website .
117+
```
118+
119+
Using the published image:
120+
```bash
121+
docker pull ghcr.io/johanvdw/fosdem-website
122+
docker tag fosdem/website ghcr.io/johanvdw/fosdem-website
123+
```
117124

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

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

Rules

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -245,13 +245,20 @@ compile '*' do
245245
# http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html
246246
filter :erb
247247

248-
# only run the chain of filters when it's not an .xml or .erb or .ics file
249-
unless ['xml', 'erb', 'ics'].include? item[:extension] then
248+
# only run the chain of filters when it's not an .xml or .erb or .ics or .json file
249+
unless ['xml', 'erb', 'ics', 'json'].include? item[:extension] then
250250

251251
# don't process content that is generated from Pentabarf, or content
252252
# pages that have "kind: internal" in their metadata
253253
unless item.identifier =~ %r{^/schedule/.+} or item[:kind] == 'internal'
254254

255+
# run the custom news filter (lib/filters/news_filter.rb) on
256+
# content/news/* -- it removes "---MORE---" lines and removes
257+
# from the beginning of the content until "---FULL---" lines
258+
# (analog to the make_headlines function from lib/helpers/news.rb
259+
# which does the "opposite" (kindof) to generate headline items)
260+
filter :news if news?(item)
261+
255262
# convert .md and .markdown files to HTML using the
256263
# kramdown processor
257264
filter :kramdown if ['markdown', 'md'].include? item[:extension]
@@ -265,13 +272,6 @@ compile '*' do
265272
# metadata, but without adding the license footer
266273
filter :interview, { :nolicense => true } if item[:filter] == 'qa'
267274

268-
# run the custom news filter (lib/filters/news_filter.rb) on
269-
# content/news/* -- it removes "---MORE---" lines and removes
270-
# from the beginning of the content until "---FULL---" lines
271-
# (analog to the make_headlines function from lib/helpers/news.rb
272-
# which does the "opposite" (kindof) to generate headline items)
273-
filter :news if news?(item)
274-
275275
filter :toc if item[:toc] == true
276276
filter :semantic if item[:semantic] == true
277277

@@ -331,6 +331,10 @@ route '/404/' do
331331
"/404.html"
332332
end
333333

334+
route '/.well-known/assetlinks/' do
335+
"/.well-known/assetlinks.json"
336+
end
337+
334338
# send this one into oblivion, its compiled content is included in
335339
# layouts/default.html, but is not to be rendered as a file of its
336340
# own into output

config.yaml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pdf_grid: true
3434
# A list of file extensions that nanoc will consider to be textual rather than
3535
# binary. If an item with an extension not in this list is found, the file
3636
# will be considered as binary.
37-
text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xhtml', 'xml', 'coffee', 'ics' ]
37+
text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xhtml', 'xml', 'coffee', 'ics' , 'json' ]
3838

3939
# The path to the directory where all generated files will be written to. This
4040
# can be an absolute path starting with a slash, but it can also be path
@@ -114,6 +114,9 @@ data_sources:
114114
# it will become “/about.html/” instead.
115115
allow_periods_in_identifiers: false
116116

117+
extra_files:
118+
- ".well-known/**/*"
119+
117120
-
118121
type: schedule
119122

@@ -151,7 +154,7 @@ search:
151154
command: "./service/searcher/solrize"
152155

153156
pentabarf:
154-
conference_id: FOSDEM23
157+
conference_id: FOSDEM26
155158
username: nanoc
156159
database: pentabarf
157160
host: pgsql.fosdem.org
@@ -173,9 +176,14 @@ pentabarf:
173176
width: 200
174177
height: 200
175178

179+
pretalx:
180+
conference_slug: fosdem-2026
181+
host: https://pretalx.fosdem.org
182+
meta_export_file: export/pentabarf.yaml
183+
176184
keysigning:
177-
submission_deadline: 2023-01-22
178-
homework_due: 2023-04-30
185+
submission_deadline: 2026-01-22
186+
homework_due: 2026-04-30
179187
# Change these when the submission window opens/closes.
180188
submission_notyet: true
181189
submission_closed: false
@@ -197,8 +205,8 @@ news:
197205
news_page_items: 6
198206

199207
virtual: false
200-
go_live: false
201-
matrix_works: false
208+
go_live: true
209+
matrix_works: true
202210

203211
# Use this to build the site as it will appear at a specific time
204212
# Example: "2021-02-06 14:15:00.000000000 +0100"
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[
2+
{
3+
"relation":
4+
[
5+
"delegate_permission/common.handle_all_urls"
6+
],
7+
"target":
8+
{
9+
"namespace": "android_app",
10+
"package_name": "info.metadude.android.fosdem.schedule",
11+
"sha256_cert_fingerprints":
12+
[
13+
"89:4C:4F:D6:CB:AB:E4:C9:F9:2A:43:A8:25:E7:45:25:0A:17:7D:A0:1A:D0:30:1E:DD:22:3C:03:22:C7:C0:03",
14+
"FF:A0:BD:6F:43:2A:A8:B4:43:00:24:87:BC:73:27:70:7F:A4:E6:71:FC:8E:F4:51:59:C5:B6:AD:8B:9D:0F:E6"
15+
]
16+
}
17+
},
18+
{
19+
"relation":
20+
[
21+
"delegate_permission/common.handle_all_urls"
22+
],
23+
"target":
24+
{
25+
"namespace": "android_app",
26+
"package_name": "info.metadude.android.fosdem.schedule.debug",
27+
"sha256_cert_fingerprints":
28+
[
29+
"D8:E7:B5:B1:50:BB:1E:39:58:A8:AA:E9:95:09:92:68:74:DC:C5:03:79:E5:9C:FD:CC:9A:1B:43:4F:D0:F9:F6"
30+
]
31+
}
32+
}
33+
]

0 commit comments

Comments
 (0)