Compare commits

..

17 Commits

Author SHA1 Message Date
626cd7c6ca revert f6ee549cf5f0d799825db54ee0edd791d8efff66
All checks were successful
continuous-integration/drone/pr Build is passing
revert [ua]filename uk > ua
2023-12-05 14:12:47 +00:00
596e5775eb Update about/about.ua.xhtml
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-04 14:50:54 +00:00
4e60d8ba44 Merge branch 'master' into master
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-02 18:44:53 +00:00
f6ee549cf5
[ua]filename uk > ua
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-02 20:42:08 +02:00
5872d7ce30
Merge branch 'master' of https://git.noleron.com/ihor/fsfe-website
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-02 18:37:25 +02:00
5a068bb4f8
[uk] improving the text after @partizan's review 2023-12-02 18:37:08 +02:00
942f414878 [uk] small fixes about page
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-01 17:26:04 +00:00
2614f19c43 Merge branch 'master' into master
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 17:37:22 +00:00
77b63625a9 Update index.uk.xhtml
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 16:07:52 +00:00
51b567e998 Update about/about.uk.xhtml
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 16:06:50 +00:00
c9e37c2d16 [uk] Small corrections in the text that I didn't notice before
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 13:53:40 +00:00
910ea713f7
Ukrainian translation added to pages about FSF Network and FSFE Mission
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 15:40:16 +02:00
3dec253578 final fix to the about page
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 11:02:48 +00:00
9957ce2843 Merge branch 'master' into master
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 10:37:40 +00:00
69b8ec6b83 Update about/about.uk.xhtml
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 09:40:02 +00:00
d7c9dbb004 some corrections in the Ukrainian translation
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 11:10:07 +02:00
66712cd31b a translation of the FSFE.org homepage, CoC, and about page into Ukrainian.
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-30 10:21:50 +02:00
17282 changed files with 228294 additions and 341546 deletions

View File

@ -7,16 +7,9 @@ clone:
depth: 150
steps:
- name: check-python
image: ghcr.io/astral-sh/ruff:latest
command: [ "check", "." ]
- name: check-custom
image: debian:bookworm
- name: checks
image: nixery.dev/shell/git/libxml2/gnused/gnugrep/findutils/perl/file/mediainfo/curl:latest
commands:
- apt update
# Install required packages
- apt install --yes --no-install-recommends coreutils sed grep libxml2-utils git findutils perl-base file mediainfo curl
# Check whether non-EN news item would appear on front-page
- bash tools/check-non-en-frontpage.sh news
# Run pre-commit checks
@ -24,89 +17,10 @@ steps:
# Check syntax for all files as a safety net
- find . -type f \( -iname "*.xhtml" -o -iname "*.xml" -o -iname "*.xsl" \) -exec xmllint --noout {} +
- name: deploy-master
image: docker:27.4.1
environment:
# Environment variables necessary for rootless Docker
XDG_RUNTIME_DIR: "/run/user/1001"
DOCKER_HOST: "unix:///run/user/1001/docker.sock"
# Target bunsen directly, and use ipv4 proxies for noddack and gahn, as ipv6 broken.
TARGET: "www@bunsen.fsfeurope.org:fsfe.org/global/,www@proxy.noris.fsfeurope.org:fsfe.org/global/?10322,www@proxy.plutex.fsfeurope.org:fsfe.org/global/?10322"
KEY_PRIVATE:
from_secret: KEY_PRIVATE
KEY_PASSWORD:
from_secret: KEY_PASSWORD
GIT_TOKEN:
from_secret: BUILD_TOKEN
VOLUME:
website-cached-master
volumes:
# Mounting Docker socket of rootless docker user
- name: dockersock
path: /run/user/1001/docker.sock
commands:
- docker ps && echo "tampered with"
# If we are in a cron job, then do a full rebuild
# Ideally the cron would set the flag itself, but drone does not support that.
- if [ "$DRONE_BUILD_EVENT" = "cron" ]; then EXTRA_FLAGS="--full"; fi
- docker compose -p fsfe-website run --remove-orphans --build build --target "$TARGET" $EXTRA_FLAGS
when:
branch:
- master
event:
exclude:
- pull_request
- name: deploy-test
image: docker:27.4.1
environment:
# Environment variables necessary for rootless Docker
XDG_RUNTIME_DIR: "/run/user/1001"
DOCKER_HOST: "unix:///run/user/1001/docker.sock"
# Target bunsen directly, and use ipv4 proxies for noddack and gahn, as ipv6 broken.
TARGET: "www@bunsen.fsfeurope.org:test.fsfe.org/global/,www@proxy.noris.fsfeurope.org:test.fsfe.org/global/?10322,www@proxy.plutex.fsfeurope.org:test.fsfe.org/global/?10322"
KEY_PRIVATE:
from_secret: KEY_PRIVATE
KEY_PASSWORD:
from_secret: KEY_PASSWORD
GIT_TOKEN:
from_secret: BUILD_TOKEN
volumes:
# Mounting Docker socket of rootless docker user
- name: dockersock
path: /run/user/1001/docker.sock
commands:
- docker ps && echo "tampered with"
# If we are in a cron job, then do a full rebuild
# Ideally the cron would set the flag itself, but drone does not support that.
- if [ "$DRONE_BUILD_EVENT" = "cron" ]; then EXTRA_FLAGS="--full"; fi
- docker compose -p fsfe-website run --remove-orphans --build build --target "$TARGET" $EXTRA_FLAGS
when:
branch:
- test
event:
exclude:
- pull_request
trigger:
branch:
- master
- test
event:
- cron
- custom
- pull_request
- push
node:
cont2: noris
volumes:
# Define Docker socket of rootless docker user
- name: dockersock
host:
path: /run/user/1001/docker.sock
---
kind: signature
hmac: 1f8d1a3a595b66777a095a331964f64d83c9326ce7cc023d6830e15e715a50dc
...
- pull_request

25
.gitignore vendored
View File

@ -1,18 +1,17 @@
look/fsfe.min.css
look/valentine.min.css
events/????/index.??.xhtml
events/????/index.sources
events/????/index.xsl
news/????/index.??.xhtml
news/????/index.sources
news/????/index.xsl
news/*/.*.??.xml
global/data/texts/.texts.??.xml
global/data/topbanner/.topbanner.??.xml
.default.xsl
.localmenu.*.xml
.*.xmllist
# Local build stuff
output
# Python venv
.venv
__pycache__
#Nltk
.nltk_data
# Secrets
# docker compose
.env
# drone
secrets.txt
search/index.js
tags/tagged-*.en.xhtml
tags/.tags.??.xml

252
.htaccess Normal file
View File

@ -0,0 +1,252 @@
# This file handles all redirects/rewrites for fsfe.org
# Some of the rewrites are for shorter URLs, most for support of
# changed URLs or deleted pages.
#
# Some redirect definitions cannot be handled by this file and therefore
# are places directly in the webserver configuration:
# https://git.fsfe.org/fsfe-system-hackers/webserver-bunsen/src/branch/master/files/apache2-sites/fsfe.org.conf
#
# Please do not create other .htaccess files in this project! It would
# overwrite rewrites concerning its directories in this file and
# and thereby create a lot of confusion.
RewriteEngine On
# Favicon
RewriteRule ^favicon.ico /graphics/fsfe.ico [R=301,L]
RewriteRule ^graphics/fsfeurope.ico /graphics/fsfe.ico [R=301,L]
# =============================================================================
# SHORT URLS
# =============================================================================
# Redirect
RewriteRule ^translate/?$ /contribute/translators/ [R=301,L]
# Promotion material order
RewriteRule ^promo(/.*)? /contribute/spreadtheword$1 [R=301,L]
# Convince your friends
RewriteRule ^(cyf|convince)/?$ https://wiki.fsfe.org/ConvinceYourFriends [R=301,L]
# Summit 2016
RewriteRule ^summit16(/.*)?$ /events/2016/summit/event-20160616-01$1 [R=301,L]
RewriteRule ^community/events/2016/summit/frontpage(/.*)?$ /events/2016/summit/event-20160616-01$1 [R=301,L]
RewriteRule ^community/events/2016/summit/attendance(/.*)?$ /events/2016/summit/event-20161106-01$1 [R=301,L]
RewriteRule ^community/events/2016/summit/backsight(/.*)?$ /events/2016/summit/event-20161106-02$1 [R=301,L]
# 15 years of FSFE
RewriteRule ^15(/.*)?$ /activities/15years$1 [R=301,L]
# Podcast
RewriteRule ^podcast(/.*)? /news/podcast.html [R=301,L]
# EU policies wiki page, e.g. linked from the PMPC brochure
RewriteRule ^fs-policies/?$ https://wiki.fsfe.org/Activities/EU_Policies_overview_FS [R=301,L]
# Share buttons
RewriteRule ^share/?$ /cgi-bin/share.php [NC,L]
# Subscription page for mail updates
RewriteRule ^subscribe/?$ /contact/email-updates.html [R=301,L]
# Team Women
RewriteRule ^women(/.*)?$ https://wiki.fsfe.org/Teams/Women [R=301,L]
# Others
RewriteRule ^standards(.*) /freesoftware/standards$1 [R=301,L]
RewriteRule ^education(.*) /freesoftware/education$1 [R=301,L]
# =============================================================================
# CAMPAIGN/TOPIC-SPECIFIC REDIRECTS
# =============================================================================
# Podcast
RewriteRule ^news/podcast/?$ /news/podcast.html [R=301,L]
RewriteRule ^news/podcast.rss$ /news/podcast.en.rss [L,R=301]
RewriteRule ^news/podcast-opus.rss$ /news/podcast-opus.en.rss [L,R=301]
# ILoveFS
# TODO each year: update links for latest report
#RewriteRule ^activities/ilovefs/report/latest-report.*$ /activities/ilovefs/report/report_2023.html [R=301,L]
# Redirect from old locations
RewriteRule ^activities/ilovefs/ilovefs(.*)html$ /activities/ilovefs/index$1html [R=301,L]
RewriteRule ^activities/ilovefs/20..(/.*)?$ /activities/ilovefs/index.html [R=301,L]
# Sharepic redirection
RewriteRule ^activities/ilovefs/sharepics?/?$ https://sharepic.fsfe.org/ilovefs [R=301,L]
# Help section
RewriteRule ^help/?$ /contribute/ [R=301,L]
RewriteRule ^help/index(.*) /contribute/contribute$1 [R=301,L]
RewriteRule ^help/help(.*) /contribute/contribute$1 [R=301,L]
RewriteRule ^help/web\.(.*) /contribute/web/web.$1 [R=301,L]
RewriteRule ^help/(.*) /donate/$1 [R=301,L]
# PDFreaders and DRM.info
RewriteRule ^pdfreaders(/.*)? https://pdfreaders.org$1 [R=301,L]
RewriteRule ^drm.info(/.*)? https://drm.info$1 [R=301,L]
# =============================================================================
# MOVED PAGES
# =============================================================================
# News
RewriteRule ^news/fsfe-fr-channel.fr.xml /news/news.fr.rss [R=301,L]
RewriteRule ^2009/?$ /news/2009/nyr.html [R=301,L]
RewriteRule ^news/2016/news-20160629-01(.*)$ /news/2016/news-20160630-01$1 [R=301,L]
RewriteRule ^about/reports/es-2003(.*)$ /news/2003/news-20030602-01$1 [R=301,L]
RewriteRule ^about/reports/es-2005(.*)$ /news/2005/news-20050507-01$1 [R=301,L]
RewriteRule ^about/reports/es-2007(.*)$ /news/2007/news-20070630-01$1 [R=301,L]
RewriteRule ^about/reports/es-2009(.*)$ /news/2009/news-20090620-01$1 [R=301,L]
RewriteRule ^freesoftware/enterprise/freesoftwarecompany(.*)$ /news/2008/news-20081202-02$1 [R=301,L]
RewriteRule ^freesoftware/enterprise/chargeofitsbrand(.*)$ /news/2009/news-20090604-01$1 [R=301,L]
# Old/moved people/staff profiles
RewriteRule ^about/(bako|polvani|tuke|maffulli|jakobs|oriordan|oberg|coughlan|weiden|nanda)(/.*)?$ /about/people/index.html [R=301,L]
RewriteRule ^about/ojasild(/.*)?$ /about/people/repentinus [R=301,L]
RewriteRule ^about/(albers|gerloff|greve|kirschner|ku|lasota|mehl|repentinus|roy|sander)(/.*)?$ /about/people/$1$2 [R=301,L]
RewriteRule ^people/greve(/.*)?$ /about/people/greve [R=301,L]
RewriteRule ^about/people/?(people.*)?$ /about/people/index.html [R=301,L]
# /en/.*
RewriteRule ^en/layout/set/rss/content/view/full/5116 https://blogs.fsfe.org/ciaran/?feed=rss2 [R=301,L]
RewriteRule ^en/layout/set/rss/content/view/full/5009 https://blogs.fsfe.org/maffulli/?feed=rss2 [R=301,L]
RewriteRule ^en/layout/set/rss/content/view/full/4972 https://blogs.fsfe.org/gerloff/?feed=rss2 [R=301,L]
RewriteRule ^en/layout/set/rss/content/view/full/5971 https://blogs.fsfe.org/jj/?feed=rss2 [R=301,L]
RewriteRule ^en/layout/set/rss/content/view/full/6128 https://blogs.fsfe.org/jj/?feed=rss2 [R=301,L]
RewriteRule ^en/layout/set/rss/content/view/full/4974 https://blogs.fsfe.org/greve/?feed=rss2 [R=301,L]
RewriteRule ^en/news /news/ [R=301,L]
RewriteRule ^en/rss/feed/news.xml /news/news.en.rss [R=301,L]
RewriteRule ^en/rss/feed/events.xml /events/events.en.rss [R=301,L]
RewriteRule ^en/content/download/17665/125518/file/gnupg-ccid.rules https://wiki.fsfe.org/Card_howtos/Card_reader_setup_(udev)?action=AttachFile&do=view&target=gnupg-ccid.rules [R=301,L]
RewriteRule ^en/content/download/15872/77909/file/gnupg-ccid https://wiki.fsfe.org/Card_howtos/Card_reader_setup_(udev)?action=AttachFile&do=view&target=gnupg-ccid [R=301,L]
# Tags
RewriteRule ^tags/tagged(\...)(\.html)?$ /tags/tags$1.html [R=301,L]
RewriteRule ^tags/tagged-childrensbook(.*)$ /tags/tagged-ada-zangemann$1 [R=301,L]
# Documents
RewriteRule ^documents/freesoftware(.*) /freesoftware/freesoftware.html [R=301,L]
RewriteRule ^documents(/.*)?$ / [R=301,L]
# Old campaigns and projects pages
RewriteRule ^projects(/.*)?$ /activities/activities.html [R=301,L]
RewriteRule ^campaigns(/.*)?$ /activities$1 [R=301,L]
# /freesoftware, /about/basics and similar "basic" texts
RewriteRule ^about/basics/?(.*)$ /freesoftware/ [R=301,L]
RewriteRule ^freesoftware/basics/(comparison|gnuproject)(.*)$ /freesoftware/$1$2 [R=301,L]
RewriteRule ^freesoftware/basics/legal/?(.*)$ /freesoftware/legal/ [R=301,L]
RewriteRule ^freesoftware/society/?(.*)$ /freesoftware/democracy.html [R=301,L]
RewriteRule ^freesoftware/legal/flashingdevices(.*)$ /activities/android/flashingdevices$1 [R=301,L]
RewriteRule ^freesoftware/public-sector/german-foreign-office-comment(.*)$ https://k7r.eu/buchartikel-freie-software-im-auswartigen-amt-erst-hu-dann-hott/ [R=301,L]
RewriteRule ^freesoftware/(basics|enterprise|support|third-sector|transcripts)/?(.*)$ /freesoftware/ [R=301,L]
# /activities/ftf/
RewriteRule ^activities/ftf/avm-gpl-violation(.*)$ /activities/avm-gpl-violation/ [R=301,L]
RewriteRule ^activities/ftf/legal-conference(.*)$ /activities/ln/llw.html [R=301,L]
RewriteRule ^activities/ftf/licence-questions(.*)$ /activities/licence-questions/ [R=301,L]
RewriteRule ^activities/ftf/ln(.*)$ /activities/ln/ [R=301,L]
RewriteRule ^activities/ftf/ngi0(.*)$ /activities/ngi/ [R=301,L]
RewriteRule ^activities/ftf/?(.*)$ /activities/legal.html [R=301,L]
# /activities/childrensbook
RewriteRule ^activities/childrensbook(.*)$ /activities/ada-zangemann/$1 [R=301,L]
# /activities
RewriteRule ^activities/askyourcandidates(.*) /activities/elections/askyourcandidates$1 [R=301,L]
RewriteRule ^activities/btw09(.*) /activities/elections/askyourcandidates/200909-germany-bundestagswahl.html [R=301,L]
RewriteRule ^activities/education/tgs(.*) /activities/tgs$1 [R=301,L]
RewriteRule ^activities/education(.*) /freesoftware/education$1 [R=301,L]
RewriteRule ^activities/os/msooxml(.*) /acticities/msooxml/msooxml$1 [R=301,L]
RewriteRule ^activities/os(.*) /freesoftware/standards$1 [R=301,L]
RewriteRule ^activities/procurement(.*) /freesoftware/procurement$1 [R=301,L]
# deleted activities
RewriteRule ^(activities/)?nocloud(/.*)? /activities/activities.html [R=301,L]
RewriteRule ^activities/policy/.* /activities/policy.html [R=301,L]
RewriteRule ^activities/theydontwantyouto(/.*)? /activities/activities.html [R=301,L]
RewriteRule ^activities/un(/.*)? /activities/policy.html [R=301,L]
# Norwegian language: Bokmal language code
RewriteRule ^(.*)\.no.html /$1.nb.html [R=301,L]
RewriteRule ^(.*)\.no.rss /$1.nb.rss [R=301,L]
# Other pages
RewriteRule ^about/(history|reports)/?(.*)$ /about/ [R=301,L]
RewriteRule ^about/members(/.*)?$ /about/people$1 [R=301,L]
RewriteRule ^about/team(.*)?$ /about/people/index$1 [R=301,L]
RewriteRule ^about/community(/.*)?$ /about/contact.html [R=301,L]
RewriteRule ^about/self-conception(/.*)?$ /about/principles$1 [R=301,L]
RewriteRule ^contact/press(.*) /press/press$1 [R=301,L]
RewriteRule ^contribute/internship(.*) /about/jobs/internship$1 [R=301,L]
RewriteRule ^associates/about(.*) /about/associates/associates$1 [R=301,L]
RewriteRule ^contribute/traineeship(.*) /about/jobs/internship$1 [R=301,L]
RewriteRule ^contribute/donate(.*) /donate$1 [R=301,L]
RewriteRule ^contact/local(.*) /about/contact$1 [R=301,L]
RewriteRule ^contact/contact(.*) /about/contact$1 [R=301,L]
RewriteRule ^contact/community(.*) /about/contact$1 [R=301,L]
RewriteRule ^about/localteams(.*) /about/contact$1 [R=301,L]
RewriteRule ^fr/(news|events)\.(..\.)?html /fr/fr.$2html [R=301,L]
RewriteRule ^activities/wsis/cs-benchmarks\.(.*)$ /activities/wsis/cs-benchmarks-03-11-14.$1 [R=301,L]
RewriteRule ^contribute/booth(.*) https://wiki.fsfe.org/KnowHow/Groups/OrganizeABooth [R=301,L]
RewriteRule ^work(\...)?(\.html)?$ /about/ourwork$1.html [R=301,L]
RewriteRule ^community/tools(/.*)?$ /events/tools$1 [R=301,L]
RewriteRule ^community/projects-call(/.*)?$ /contact/projects-call$1 [R=301,L]
RewriteRule ^community/groups(/.*)?$ /about/groups$1 [R=301,L]
# Legal Questions
RewriteRule ^activities/licence-questions/licence-questions(.*)?$ /freesoftware/legal/faq$1 [R=301,L]
# =============================================================================
# FELLOWSHIP AND DONATIONS
# =============================================================================
# Payment
RewriteRule ^fellowship/paypal(/.*)?$ https://my.fsfe.org/payonline$1 [R=301,L]
RewriteRule ^fellowship/payonline(/.*)?$ https://my.fsfe.org/payonline$1 [R=301,L]
RewriteRule ^fellowship/payonline/([^/]*)/(.*) https://my.fsfe.org/payonline/$2 [R=301,L]
RewriteRule ^fellowship/login(/.*)?$ https://my.fsfe.org/ [R=301,L]
RewriteRule ^fellowship/join(/.*)?$ https://my.fsfe.org/support [R=301,L]
RewriteRule ^fellowship/donate(/.*)?$ https://my.fsfe.org/donate [R=301,L]
RewriteRule ^fellowship/payment(/.*)?$ /donate/payment$1 [R=301,L]
RewriteRule ^donate/payonline(/.*)?$ https://my.fsfe.org/payonline$1 [R=301,L]
RewriteRule ^order/payonline.(.*)/(.*) /cgi-bin/order-payonline.pl?language=$1&reference=$2
# Old /fellowship pages
RewriteRule ^fellowship/card(/.*)?$ https://wiki.fsfe.org/TechDocs/CardHowtos [R=301,L]
RewriteRule ^fellowship/communicate(/.*)?$ /about/contact.html [R=301,L]
RewriteRule ^fellowship/contact(/.*)?$ /about/contact.html [R=301,L]
RewriteRule ^fellowship/events(.*) /events$1 [R=301,L]
RewriteRule ^fellowship/faq(/.*)?$ https://wiki.fsfe.org/KnowHow/FSFELife/FAQ [R=301,L]
RewriteRule ^fellowship/graphics/people(/.*)?$ - [L]
RewriteRule ^fellowship/groups(/.*)?$ https://wiki.fsfe.org/LocalGroups [R=301,L]
RewriteRule ^fellowship/new-group(/.*)?$ https://wiki.fsfe.org/KnowHow/Groups/CoordinatorsHandbook [R=301,L]
# Catch the rest
RewriteRule ^fellowship / [R=301,L]
# Donate
RewriteRule ^donate(/?|/donate/?|/donate\..*|/donate-.*|/index.*)$ https://my.fsfe.org/donate [R=301,L]
RewriteRule ^donate(/onetime-donation.*|/spenden.*|/paypal.*)$ https://my.fsfe.org/donate [R=301,L]
# Join/Support
RewriteRule ^support(er)?(/.*)?$ https://my.fsfe.org/donate [R=301,L]
RewriteRule ^join(/.*)?$ https://my.fsfe.org/donate [R=301,L]
RewriteRule ^login(/.*)?$ https://my.fsfe.org/ [R=301,L]
# =============================================================================
# MERCHANDISE / PROMO
# =============================================================================
# Old pages
RewriteRule ^about/printable(/.*)?$ /contribute/spreadtheword.html [R=301,L]
# =============================================================================
# MISCELLANEOUS
# =============================================================================
# Forbid access to these folders
RewriteRule ^(tools|build)(/.*)?$ - [F,L]

7
.well-known/security.txt Normal file
View File

@ -0,0 +1,7 @@
Contact: mailto:security@fsfe.org
Expires: 2023-12-30T23:00:00.000Z
Encryption: openpgp4fpr:168FAB826B58B16874CE6E207784A1960FBEB3FA
Encryption: openpgp4fpr:23EEF484FDF8291CBA09A40625FE376FF17694A1
Encryption: openpgp4fpr:AEEA84E56F3C69EAEECCA354C465BEB43C11B337
Preferred-Languages: en, de
Canonical: https://fsfe.org/.well-known/security.txt

View File

@ -1,34 +0,0 @@
FROM debian:latest
# Install deps
RUN apt update
RUN apt install --yes --no-install-recommends \
rsync \
libxslt1.1 \
libxml2 \
golang \
python3 \
python3-venv \
python3-pip \
git \
node-less \
openssh-client \
expect
# Setup venv
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Copy the requirements
# Done in a seperate step for optimal docker caching
COPY ./requirements.txt /website-source/requirements.txt
RUN pip install -r /website-source/requirements.txt
# Copy everything else
COPY . /website-source/
WORKDIR /website-source
ENTRYPOINT [ "bash", "./entrypoint.sh" ]

157
Makefile Normal file
View File

@ -0,0 +1,157 @@
# -----------------------------------------------------------------------------
# Makefile for FSFE website build, phase 1
# -----------------------------------------------------------------------------
# This Makefile is executed in the root of the source directory tree, and
# creates some .xml and xhtml files as well as some symlinks, all of which
# serve as input files in phase 2. The whole phase 1 runs within the source
# directory tree and does not touch the target directory tree at all.
# -----------------------------------------------------------------------------
.PHONY: all .FORCE
.FORCE:
# This will be overwritten in the command line running this Makefile.
build_env = development
# -----------------------------------------------------------------------------
# Build search index
# -----------------------------------------------------------------------------
# This step runs a Python tool that creates an index of all news and
# articles. It extracts titles, teaser, tags, dates and potentially more.
# The result will be fed into a JS file.
.PHONY: searchindex
all: searchindex
searchindex:
python3 tools/index-website.py
# -----------------------------------------------------------------------------
# Update CSS files
# -----------------------------------------------------------------------------
# This step recompiles the less files into the final CSS files to be
# distributed to the web server.
ifneq ($(build_env),development)
all: look/fsfe.min.css look/valentine.min.css
look/%.min.css: $(shell find "look" -name '*.less')
echo "* Compiling $@"
lessc "look/$*.less" -x "$@"
endif
# -----------------------------------------------------------------------------
# Update XSL stylesheets
# -----------------------------------------------------------------------------
# This step updates (actually: just touches) all XSL files which depend on
# another XSL file that has changed since the last build run. The phase 2
# Makefile then only has to consider the directly used stylesheet as a
# prerequisite for building each file and doesn't have to worry about other
# stylesheets imported into that one.
# This must run before the "dive into subdirectories" step, because in the news
# and events directories, the XSL files, if updated, will be copied for the
# per-year archives.
.PHONY: stylesheets
all: stylesheets
stylesheets: $(SUBDIRS)
tools/update_stylesheets.sh
# -----------------------------------------------------------------------------
# Dive into subdirectories
# -----------------------------------------------------------------------------
SUBDIRS := $(shell find */* -name "Makefile" | xargs dirname)
all: $(SUBDIRS)
$(SUBDIRS): .FORCE
echo "* Preparing subdirectory $@"
$(MAKE) --silent --directory=$@
# -----------------------------------------------------------------------------
# Create XML symlinks
# -----------------------------------------------------------------------------
# After this step, the following symlinks will exist:
# * global/data/texts/.texts.<lang>.xml for each language
# * global/data/topbanner/.topbanner.<lang>.xml for each language
# Each of these symlinks will point to the corresponding file without a dot at
# the beginning of the filename, if present, and to the English version
# otherwise. This symlinks make sure that phase 2 can easily use the right file
# for each language, also as a prerequisite in the Makefile.
LANGUAGES := $(shell ls -xw0 global/languages)
TEXTS_LINKS := $(foreach lang,$(LANGUAGES),global/data/texts/.texts.$(lang).xml)
all: $(TEXTS_LINKS)
global/data/texts/.texts.%.xml: .FORCE
if [ -f global/data/texts/texts.$*.xml ]; then \
ln -sf texts.$*.xml $@; \
else \
ln -sf texts.en.xml $@; \
fi
TOPBANNER_LINKS := $(foreach lang,$(LANGUAGES),global/data/topbanner/.topbanner.$(lang).xml)
all: $(TOPBANNER_LINKS)
global/data/topbanner/.topbanner.%.xml: .FORCE
if [ -f global/data/topbanner/topbanner.$*.xml ]; then \
ln -sf topbanner.$*.xml $@; \
else \
ln -sf topbanner.en.xml $@; \
fi
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# The following steps are handled in an external script, because the list of
# files to generate is not known when the Makefile starts - some new tags might
# be introduced when generating the .xml files in the news/* subdirectories.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# -----------------------------------------------------------------------------
# Create XSL symlinks
# -----------------------------------------------------------------------------
# After this step, each directory with source files for HTML pages contains a
# symlink named .default.xsl and pointing to the default.xsl "responsible" for
# this directory. These symlinks make it easier for the phase 2 Makefile to
# determine which XSL script should be used to build a HTML page from a source
# file.
.PHONY: default_xsl
all: default_xsl
default_xsl:
tools/update_defaultxsls.sh
# -----------------------------------------------------------------------------
# Update local menus
# -----------------------------------------------------------------------------
# After this step, all .localmenu.??.xml files will be up to date.
.PHONY: localmenus
all: localmenus
localmenus: $(SUBDIRS)
tools/update_localmenus.sh
# -----------------------------------------------------------------------------
# Update XML filelists
# -----------------------------------------------------------------------------
# After this step, the following files will be up to date:
# * tags/tagged-<tags>.en.xhtml for each tag used. Apart from being
# automatically created, these are regular source files for HTML pages, and
# in phase 2 are built into pages listing all news items and events for a
# tag.
# * tags/.tags.??.xml with a list of the tags useed.
# * <dir>/.<base>.xmllist for each <dir>/<base>.sources as well as for each
# tags/tagged-<tags>.en.xhtml. These files are used in phase 2 to include the
# correct XML files when generating the HTML pages. It is taken care that
# these files are only updated whenever their content actually changes, so
# they can serve as a prerequisite in the phase 2 Makefile.
.PHONY: xmllists
all: xmllists
xmllists: $(SUBDIRS)
tools/update_xmllists.sh

163
README.md
View File

@ -4,67 +4,56 @@ This repository contains the source files of [fsfe.org](https://fsfe.org), pdfre
## Table of Contents
- [Technical information](#technical-information)
- [Structure](#structure)
- [Contribute](#contribute)
- [Translate](#translate)
- [Build](#build)
* [Technical information](#technical-information)
* [Structure](#structure)
* [Contribute](#contribute)
* [Translate](#translate)
* [Build](#build)
## Technical information
Our web team has compiled some information about technology used for this website on the [Information for Webmasters](https://fsfe.org/contribute/web/) page. This is mainly focused on page content.
For information on how the build process works see [docs subfolder](./docs/overview.md). For more information on contributing to the buid process, please see the [contributor docs](./docs/contributing.md) for some useful tips.
Some tips for management can be found in the [management docs](./docs/management.md)
Our web team has compiled some information about technology used for this website on the [Information for Webmasters](https://fsfe.org/contribute/web/) page.
## Structure
Most files are XHTML files organised in a rather logical folder structure.
Every website served using this repo has its own folder with the full domain name it is to be served from.
### Domains
This repository also contains the source files of other websites the FSFE hosts:
- `fsfe.org` for [fsfe.org](http://fsfe.org)
- `activities/android` for [freeyourandroid.org](http://freeyourandroid.org)
- `activities/ilovefs` for [ilovefs.org](http://ilovefs.org)
- `drm.info` for [drm.info](http://drm.info)
- `pdfreaders.org` for [pdfreaders.org](http://pdfreaders.org)
- [test.fsfe.org](https://test.fsfe.org) is fsfe.org built from the test branch of this repository
Most files are XHTML files organised in a rather logical folder structure.
### Important folders
Notable top level directories are:
Notable directories are:
- `build`: Mostly custom Bash and XSL scripts to build the website
- `global`: Globally used data files and modules, also the static translated strings.
- `tools`: Contains miscellaneous XML, XSL, and SH files.
* `about`: Information about the FSFE itself, its team members etc
* `activities`: All specific FSFE activities
* `at`, `de`, `ee` etc: Folders used for the FSFE country teams
* `build`: Mostly custom Bash and XSL scripts to build the website
* `cgi-bin`: Our very few CGI scripts
* `error`: Custom 4xx and 5xx error pages
* `events`: Files for our events, ordered by year
* `freesoftware`: More timeless pages explaining Free Software and related topics
* `global`: Globally used data files and modules, also the static translated strings.
* `graphics`: Icons, pictures and logos
* `internal`: Forms used mostly by FSFE staff for internal processes
* `look`: CSS and other style files
* `news`: Files for news articles, press releases, and newsletters ordered by year
* `order`: Our web shop
* `scripts`: JavaScript files used on our pages
* `tags`: Files necessary to display used tags throughout the website. Mostly automatically generated
* `tools`: Contains miscellaneous XML, XSL, and SH files.
And of course the different website folders.
### Other domains
And here are dome notable directories inside the folder for the main webpage, fsfe.org.
This repository also contains the source files of other websites the FSFE hosts:
- `about`: Information about the FSFE itself, its team members etc
- `activities`: All specific FSFE activities
- `at`, `de`, `ee` etc: Folders used for the FSFE country teams
- `cgi-bin`: Our very few CGI scripts
- `error`: Custom 4xx and 5xx error pages
- `events`: Files for our events, ordered by year
- `freesoftware`: More timeless pages explaining Free Software and related topics
- `graphics`: Icons, pictures and logos
- `internal`: Forms used mostly by FSFE staff for internal processes
- `look`: CSS and other style files
- `news`: Files for news articles, press releases, and newsletters ordered by year
- `order`: Our web shop
- `scripts`: JavaScript files used on our pages
- `tags`: Files necessary to display used tags throughout the website. Mostly automatically generated
* `activities/android` for [freeyourandroid.org](http://freeyourandroid.org)
* `activities/ilovefs` for [ilovefs.org](http://ilovefs.org)
* `drm.info` for [drm.info](http://drm.info)
* `pdfreaders` for [pdfreaders.org](http://pdfreaders.org)
* [test.fsfe.org](https://test.fsfe.org) is build from the test branch of this repository
## Contribute
Become member of our awesome [webmaster team](https://fsfe.org/contribute/web/) and help to improve our online information platform!
Become member of our awesome [webmaster team](https://fsfe.org/contribute/web/) and help improving our online information platform! The [web teams wiki page](https://wiki.fsfe.org/Teams/Web) contains info how to join the mailing list, where a issue tracker can be found, and how to edit the website's source code.
## Translate
@ -72,88 +61,6 @@ We adore our voluntary translators who make information about Free Software avai
Join them to spread the message of our community in all over Europe and beyond. The [translators team page](https://fsfe.org/contribute/translators/) will introduce you to their amazing work.
You can see the current status of translation progress of fsfe.org at [status.fsfe.org/translations](https://status.fsfe.org/translations)
## Build
There are two ways to build and develop the directory locally. Initial builds of the webpages may take ~12 minutes, but subsequent builds should be much faster. Using the `--languages` flag to avoid building all supported languages can make this much faster. The `--sites` flag allows for building only some of the sites in this repo, which can also provide a speed boost to the developer experience. Run `./build.py --help` for more information.
Alterations to build scripts or the files used site-wide will result in near full rebuilds.
### Native
We can either install the required dependencies manually using our preferred package manager. If you are a nix use one can run `nix-shell` to enter a shell with the required build dependencies, with the python `virtualenv` already installed and activated.
If installing manually, the required binary names are
```
python3 pip
```
Also needed are the libraries
```
libxml2 libxslt
```
Then, we must activate a Python virtual env and install the python dependencies.
```
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
After getting the dependencies one way or another we can actually build and serve the pages.
The pages can be built and served by running `./build.py`. Try `--help` for more information. The simple web server used lacks the features of `apache` which used on the FSFE web servers. This is why no index is automatically selected for each directory and other behaviours.
### Docker
The docker build process is in some ways designed for deployment. This means that it expects some environment variables to be set to function. Namely, it will try and load ssh credentials and git credentials, and docker does not support providing default values to these.
So, to stub out this functionality, please set the environment variables
`KEY_PRIVATE KEY_PASSWORD GIT_TOKEN` to equal `none` when running docker. One can set them for the shell session, an example in bash is seen below.
```
export KEY_PRIVATE=none;
export KEY_PASSWORD=none;
export GIT_TOKEN=none;
```
One can then run Docker commands like `docker compose ...`.
Alternatively one can prefix the Docker commands with the required variables, like so
```
KEY_PRIVATE=none KEY_PASSWORD=none GIT_TOKEN=none docker compose
```
Once your preferred method has been chosen, simply running `docker compose run --service-ports build --serve` should build the webpages and make them available over localhost.
Some more explanation: we are essentially just using docker as a way to provide dependencies and then running the build script. All flags after `build` are passed to `build.py`. The `service-ports` flag is required to open ports from the container for serving the output, not needed if not using the `--serve` flag of the build script.
## Githooks
The repo contains some highly recommended githooks that one should enable. They check for several kinds of common issues. They are also run in CI, so enabling them locally speeds the development feedback loop.
One can enable them locally using
```sh
rm ./.git/hooks -r # remove git's sample hooks
ln -s ../tools/githooks/ .git/hooks # link our hooks to the right dir
```
The hooks have some extra dependencies, namely
```
git xmllint sed file grep bash perl mediainfo curl mktemp
```
The provided `nix-shell` includes the needed packages. Otherwise, they can be installed manually.
## Testing
While most small changes can be tested adequately by building locally some larger changes, particularly ones relating to the order pages, event registration and other forms may require more integrated testing. This can be achieved using the `test` branch. This branch is built and served in the same way as the main site, [fsfe.org](https://fsfe.org). The built version of the `test` branch may be viewed at [test.fsfe.org](https://test.fsfe.org).
## Status Viewing
The status of builds of [fsfe.org](https://fsfe.org) and [test.fsfe.org](https://test.fsfe.org) can be viewed at [status.fsfe.org](https://status.fsfe.org)
You can build the fsfe.org website on your own computer to make previews of single pages possible offline and without having to wait for an online website build. A [dedicated wiki page](https://wiki.fsfe.org/TechDocs/Mainpage/BuildLocally) tells you how to do it.

188
about/about.en.xhtml Normal file
View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<version>6</version>
<head>
<title>About the Free Software Foundation Europe</title>
<meta
name="keywords"
content="work people contact associates donations structure"/>
</head>
<body class="overview">
<h1>About</h1>
<div id="introduction">
<!-- please have a look at https://fsfe.org/about/mission for existing translations -->
<p>The Free Software Foundation Europe is a charity that empowers users to
control technology.</p>
<p>Software is deeply involved in all aspects of our lives, and it is
important that this technology empowers rather than restricts us. Free
Software gives everybody the rights to use, understand, adapt, and share
software. These rights help support
other fundamental freedoms like freedom of speech, press, and privacy.</p>
<p>The FSFE helps individuals and organisations to understand how Free
Software contributes to freedom, transparency, and self-determination. It
enhances users' rights by abolishing barriers to <a href="/freesoftware/freesoftware.html">Free Software</a> adoption,
encouraging people to use and develop Free Software, and providing resources to
enable everyone to further promote Free Software in Europe.</p>
</div>
<h2>Find out more about</h2>
<ul>
<li>
<a href="/about/ourwork.html"><img src="/graphics/icons/our-work.png" alt="Read about the three pillars of our work"/></a>
<div>
<h3><a href="/about/ourwork.html">Our Work</a></h3>
<p>
Read how we help individuals and organisations to understand how Free
Software contributes to freedom, transparency, and self-determination and
why we concentrate our daily work on three main pillars: public awareness,
policy advocacy, and legal support.
</p>
</div>
</li>
<li>
<a href="/about/people/testimonials.html"><img src="/graphics/icons/testimonials.png" alt="Voices from our community"/></a>
<div>
<h3><a href="/about/people/testimonials.html">Our Community</a></h3>
<p>
Hear voices and read testimonials from our diverse community, why they
support the FSFE and our mission. Some also answered interviews or even
made a video. Enjoy getting to know our community!
</p>
<p>
Software Freedom: What our community has to <a href="/about/softwarefreedom/testimonials.html">say about it</a>.
</p>
</div>
</li>
<li>
<a href="/about/people/index.html"><img src="/graphics/icons/team.png" alt="People who dedicate their time for the FSFE"/></a>
<div>
<h3><a href="/about/people/index.html">The Team</a></h3>
<p>
See who we are and get to know the people behind the FSFE. Here you
find the ones who are working for and with the FSFE and have been given
permanent responsibility or authority for certain areas - staffers
and volunteers.
</p>
</div>
</li>
<li>
<a href="/about/associates/associates.html"><img src="/graphics/icons/associates.png" alt="List of organisations that we share common goals with"/></a>
<div>
<h3><a href="/about/associates/associates.html">Associates</a></h3>
<p>
Empowering people to control technology is a goal which no single organisation
can achieve alone. With our associated organisations we exchange ideas, coordinate
efforts, motivate each other, and find opportunities to work together on specific
projects.
</p>
</div>
</li>
</ul>
<h2>Our foundation</h2>
<ul>
<li>
<a href="/about/legal/legal.html"><img src="/graphics/icons/legal-structure.png" alt="Constitution and minutes from the official annual meetings"/></a>
<div>
<h3><a href="/about/legal/legal.html">Legal Structure</a></h3>
<p>
In 2001 the FSFE was set up as a charitable, registered association ("e.V.")
under German law. Find our constitution and minutes from the official annual
meetings here.
</p>
</div>
</li>
<li>
<a href="/about/transparency-commitment.html"><img src="/graphics/icons/transparency.png" alt="Our Transparency Commitment"/></a>
<div>
<h3><a href="/about/transparency-commitment.html">Transparency Commitment</a></h3>
<p>
As part of its initiative “transparent civil society”, Transparency International
Germany provides a guide on how to make a transparency commitment. We support this
initiative and you find all relevant information here.
</p>
</div>
</li>
<li>
<a href="https://my.fsfe.org/donate"><img src="/graphics/icons/donations.png" alt="Support with donations"/></a>
<div>
<h3><a href="https://my.fsfe.org/donate">Donations</a></h3>
<p>
To be an independent voice for Free Software, we depend on donations. With
financial support you will contribute to a solid foundation on which we are building
our charitable work for freedom in the information society.
See <a href="/about/funds/funds.html">how we use our
funds</a> and <a href="/donate/thankgnus.html">who donates to us</a>.
</p>
</div>
</li>
</ul>
<h2>Get in touch</h2>
<ul>
<li>
<a href="/about/contact.html"><img src="/graphics/icons/contact.png" alt="Public and general contact information"/></a>
<div>
<h3><a href="/about/contact.html">Contact</a></h3>
<p>
Find contact information for general and legal enquiries, our office location, a link
to our public dicussion channels, and our social media accounts on our contact page.
FSFE public and community discussions are covered by our Code of Conduct.
</p>
</div>
</li>
<li>
<a href="/press/press.html"><img src="/graphics/icons/press.png" alt="Press information"/></a>
<div>
<h3><a href="/press/press.html">Press</a></h3>
<p>
If you are from the press, you will find our press portal useful. There you can
find all our press releases, our logos, news, general photos and contact information
for press inquiries.
</p>
</div>
</li>
<li>
<a href="/about/jobs/index.html"><img src="/graphics/icons/intern.png" alt="Job opportunities"/></a>
<div>
<h3><a href="/about/jobs/index.html">Job Opportunities</a></h3>
<p>
Besides the FSFE's volunteers, its permanent staff, interns and
trainees are a backbone of the organisation. We look for motivated
people who help us contributing to software freedom on many levels
in social, political, legal and technical areas.
</p>
</div>
</li>
</ul>
</body>
<description>Everything about the FSFE - Our work, the people we are, our contact and press information, associates, legal structure, and donations.</description>
</html>

145
about/about.it.xhtml Normal file
View File

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<version>5</version>
<head>
<title>Informazioni</title>
<meta
name="keywords"
content="work lavoro people persone contact contatti associates consociate donations donazioni structure struttura"/>
</head>
<body class="overview">
<h1>Informazioni</h1>
<div id="introduction">
<!-- please have a look at https://fsfe.org/about/mission for existing translations -->
<p>La Free Software Foundation Europe è una organizzazione benefica che dà agli utenti i mezzi per controllare la tecnologia.</p>
<p>Il Software è presente in tutti gli aspetti della nostra vita ed è importante che questa tecnologia ci dia più potere anziché limitarci. Il <a href="/freesoftware/freesoftware.html">Software Libero</a> garantisce a tutti il diritto di usare, studiare, modificare e condividere il software. Questi diritti aiutano a sostenere altre libertà fondamentali come il diritto di parola, la libertà di stampa e la privacy.</p>
<p>La Free Software Foundation Europe aiuta persone e organizzazioni a comprendere come il Software Libero contribuisce alla libertà, alla trasparenza e all'auto-determinazione. Potenziamo i diritti degli utenti abolendo le barriere che esistono nell'adottare il Software Libero, incoraggiamo le persone ad usare e sviluppare il Software Libero e forniamo le risorse per consentire a tutti di promuovere ulteriormente il Software Libero in Europa.</p>
</div>
<h2>Per conoscere di più</h2>
<ul>
<li>
<a href="/about/ourwork.html"><img src="/graphics/icons/our-work.png" alt="Leggi dei tre pilastri del nostro lavoro"/></a>
<div>
<h3><a href="/about/ourwork.html">Il nostro lavoro</a></h3>
<p>Leggi come aiutiamo le persone e le organizzazioni a comprendere come il Software Libero contribuisce alla libertà, alla trasparenza e all'auto-determinazione e perché concentriamo il nostro lavoro su tre pilastri principali: consapevolezza pubblica, promozione delle politiche, e supporto legale.</p>
</div>
</li>
<li>
<a href="/about/people/testimonials.html"><img src="/graphics/icons/testimonials.png" alt="Voci dalla nostra comunità"/></a>
<div>
<h3><a href="/about/people/testimonials.html">La nostra comunità</a></h3>
<p>Ascolta le voci e leggi le testimonianze dalle nostre varie comunità e perché sostengono la FSFE e la nostra missione. Alcuni hanno anche risposto ad una intervista o fatto un breve video. Conosci con piacere la nostra comunità!</p>
</div>
</li>
<li>
<a href="/about/people/index.html"><img src="/graphics/icons/team.png" alt="Persone che dedicano il loro tempo alla FSFE"/></a>
<div>
<h3><a href="/about/people/index.html">Il team</a></h3>
<p>Guarda chi siamo e conosci le persone che ci sono dietro la FSFE. Puoi trovare qui le persone che lavorano per e con la FSFE a cui sono state date responsabilità o autorità permanenti in certe aree: i membri dello staff e i volontari.</p>
</div>
</li>
<li>
<a href="/about/associates/associates.html"><img src="/graphics/icons/associates.png" alt="Lista delle organizzazioni che condividono obiettivi comuni"/></a>
<div>
<h3><a href="/about/associates/associates.html">Consociate</a></h3>
<p>Dare alle persone i mezzi per controllare la tecnologia è un obiettivo che nessuna singola organizzazione può raggiungere da sola. Con le nostre organizzazioni consociate scambiamo idee, coordiniamo gli sforzi, ci motiviamo scambievolmente e troviamo opportunità per lavorare insieme su specifici progetti.</p>
</div>
</li>
</ul>
<h2>Le nostre fondamenta</h2>
<ul>
<li>
<a href="/about/legal/legal.html"><img src="/graphics/icons/legal-structure.png" alt="Statuto e verbali degli incontri annuali ufficiali"/></a>
<div>
<h3><a href="/about/legal/legal.html">Struttura legale</a></h3>
<p>Nel 2001 la FSFE è stata registrata ("e.V.") come organizzazione benefica
nella legislazione tedesca. Qui puoi trovare il nostro statuto e i verbali degli incontri annuali ufficiali.
</p>
</div>
</li>
<li>
<a href="/about/transparency-commitment.html"><img src="/graphics/icons/transparency.png" alt="Il nostro impegno alla trasparenza"/></a>
<div>
<h3><a href="/about/transparency-commitment.html">Impegno alla trasparenza</a></h3>
<p>Come parte della propria iniziativa “società civile trasparente”, Transparency International
Germania fornisce una guida su come impegnarsi alla trasparenza. Sosteniamo questa iniziativa e puoi trovare qui tutte le informazioni rilevanti.
</p>
</div>
</li>
<li>
<a href="https://my.fsfe.org/donate"><img src="/graphics/icons/donations.png" alt="Sostegno con le donazioni"/></a>
<div>
<h3><a href="https://my.fsfe.org/donate">Donazioni</a></h3>
<p>Per rimanere una voce indipendente a favore del Software Libero, dipendiamo dalle vostre donazioni. Con il sostegno finanziario contribuisci ad una solida base sulla quale costruiamo il nostro benefico lavoro per la libertà nella società dell'informazione.
Controlla <a href="/about/funds/funds.html">come utilizziamo i nostri fondi</a> e <a href="/donate/thankgnus.html">da chi riceviamo le donazioni</a>.
</p>
</div>
</li>
</ul>
<h2>Mettersi in conttatto</h2>
<ul>
<li>
<a href="/about/contact.html"><img src="/graphics/icons/contact.png" alt="Informazioni di contatto pubbliche e generiche"/></a>
<div>
<h3><a href="/about/contact.html">Contatti</a></h3>
<p>Nella nostra pagina dedicata puoi trovare le informazioni di contatto per le richieste generiche e legali, dove è il nostro ufficio, un link ai nostri canali di discussione pubblica e i nostri account social.
Le discussioni pubbliche e della comunità della FSFE devono rispettare il nostro Codice di Condotta.
</p>
</div>
</li>
<li>
<a href="/press/press.html"><img src="/graphics/icons/press.png" alt="Informazioni e richieste di stampa"/></a>
<div>
<h3><a href="/press/press.html">Stampa</a></h3>
<p>Se sei nel settore giornalistico, troverai utile il nostro portale relativo alla stampa. Qui puoi trovare tutti i nostri comunicati stampa, i nostri loghi, le notizie, fotografie e informazioni di contatto per eventuali richieste.
</p>
</div>
</li>
<li>
<a href="/about/jobs/index.html"><img src="/graphics/icons/intern.png" alt="Opportunità di lavoro"/></a>
<div>
<h3><a href="/about/jobs/index.html">Opportunità di lavoro</a></h3>
<p>
Oltre ai volontari della FSFE, lo staff permanente, gli stagisti e i
praticanti sono la struttura portante dell'organizzazione. Cerchiamo persone
motivate che ci aiutino a contribuire alla libertà del software a vari livelli
in campo sociale, politico, legale e tecnico.
</p>
</div>
</li>
</ul>
</body>
<description>Tutto sulla FSFE - Il nostro lavoro, le persone, i contatti e informazioni stampa, consociate, struttura legale e donazioni.</description>
</html>

168
about/about.nl.xhtml Normal file
View File

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<version>5</version>
<head>
<title>Over de Free Software Foundation Europe</title>
<meta
name="keywords"
content="werk mensen contact geassocieerden donaties structuur"/>
</head>
<body class="overview">
<h1>Over ons</h1>
<div id="introduction">
<!-- please have a look at https://fsfe.org/about/mission for existing translations -->
<p>De Free Software Foundation Europe is een organisatie zonder winstoogmerk die gebruikers in staat wil stellen om technologie te controleren.</p>
<p>Software is sterk verweven met alle aspecten van onze levens. Het is belangrijk dat deze technologie ons tot iets in staat stelt in plaats van ons te beperken. <a href="/freesoftware/freesoftware.html">Vrije Software</a> geeft iedereen het recht om software te gebruiken, te begrijpen, aan te passen en te delen. Deze rechten helpen het ondersteunen van andere fundamentele vrijheden zoals de vrijheid van meningsuiting, pers en privacy.</p>
<p>De FSFE helpt individuen en organisaties te begrijpen hoe Vrije Software bijdraagt aan vrijheid, transparantie en zelfbeschikking. De FSFE vergroot de rechten van de gebruikers door het afbreken van barrières naar het overgaan op Vrije Software, moedigt mensen aan om Vrije Software te gebruiken en te ontwikkelen. Ze biedt hulpbronnen om iedereen in staat te stellen om Vrije Software verder te promoten in Europa.</p>
</div>
<h2>Kom meer te weten over</h2>
<ul>
<li>
<a href="/about/ourwork.html"><img src="/graphics/icons/our-work.png" alt="Lees meer over de drie pilaren van ons werk"/></a>
<div>
<h3><a href="/about/ourwork.html">Ons werk</a></h3>
<p>
Lees zowel over hoe we individuen en organisaties helpen om te begrijpen hoe Vrije
Software bijdraagt aan vrijheid, transparantie en zelfbeschikking als wel over waarom we ons dagelijks werk concentreren op drie hoofdpijlers: publieke bewustwording, beleidsbeïnvloeding, en juridische ondersteuning.
</p>
</div>
</li>
<li>
<a href="/about/people/testimonials.html"><img src="/graphics/icons/testimonials.png" alt="Stemmen uit onze gemeenschap"/></a>
<div>
<h3><a href="/about/people/testimonials.html">Onze gemeenschap</a></h3>
<p>
Hoor stemmen en lees getuigenissen van onze diverse gemeenschap, waarom ze
de FSFE en onze missie steunen. Sommigen hebben ook interviews beantwoord of zelfs
een video gemaakt. Veel plezier bij het leren kennen van onze gemeenschap!
</p>
</div>
</li>
<li>
<a href="/about/people/index.html"><img src="/graphics/icons/team.png" alt="Mensen die hun tijd besteden aan de FSFE"/></a>
<div>
<h3><a href="/about/people/index.html">Het team</a></h3>
<p>
Bekijk wie we zijn en leer de mensen achter de FSFE kennen. Hier vindt u
degenen die voor en met de FSFE werken en aan wie (stafleden en vrijwilligers) permanente verantwoordelijkheid of bevoegdheid voor bepaalde gebieden zijn gegeven.
</p>
</div>
</li>
<li>
<a href="/about/associates/associates.html"><img src="/graphics/icons/associates.png" alt="Lijst van organisaties waar we doelen mee delen"/></a>
<div>
<h3><a href="/about/associates/associates.html">Geassocieerden</a></h3>
<p>
Mensen in staat stellen technologie te controleren is een doel dat geen enkele organisatie
alleen kan bereiken. Met onze geassocieerde organisaties wisselen we ideeën uit, coördineren
we inspanningen, motiveren elkaar en vinden mogelijkheden om samen te werken aan specifieke
projecten.
</p>
</div>
</li>
</ul>
<h2>Onze basis</h2>
<ul>
<li>
<a href="/about/legal/legal.html"><img src="/graphics/icons/legal-structure.png" alt="Juridische structuur en notulen van officiële jaarvergaderingen"/></a>
<div>
<h3><a href="/about/legal/legal.html">Juridische structuur</a></h3>
<p>
In 2001 werd de FSFE opgericht als geregistreerde liefdadigheidsvereniging ("e.V.")
naar Duits recht. Vind onze statuten en notulen van de officiële jaarlijkse
vergaderingen hier.
</p>
</div>
</li>
<li>
<a href="/about/transparency-commitment.html"><img src="/graphics/icons/transparency.png" alt="Onze transparantieverklaring"/></a>
<div>
<h3><a href="/about/transparency-commitment.html">Transparantieverklaring</a></h3>
<p>
In het kader van het "Een transparante burgermaatschappij"-initiatief biedt Transparency International
Duitsland een gids voor het opstellen van een transparantieverklaring. Wij steunen dit
initiatief en u vindt hier alle relevante informatie.
</p>
</div>
</li>
<li>
<a href="https://my.fsfe.org/donate"><img src="/graphics/icons/donations.png" alt="Steun met donaties"/></a>
<div>
<h3><a href="https://my.fsfe.org/donate">Donaties</a></h3>
<p>
We zijn afhankelijk van donaties om een onafhankelijke stem voor Vrije Software te zijn. Met
financiële steun draagt u bij aan een solide basis waarop wij ons liefdadigheidswerk voor vrijheid in de informatiemaatschappij bouwen.
Bekijk <a href="/about/funds/funds.html">hoe we onze
financiën gebruiken</a> en <a href="/donate/thankgnus.html">wie er aan ons doneert</a>.
</p>
</div>
</li>
</ul>
<h2>Neem contact op</h2>
<ul>
<li>
<a href="/about/contact.html"><img src="/graphics/icons/contact.png" alt="Publieke en algemene contactinformatie"/></a>
<div>
<h3><a href="/about/contact.html">Contact</a></h3>
<p>
Op onze contactpagina vindt u contactinformatie voor algemene en juridische vragen, de locatie van ons kantoor, een link
naar onze publieke discussiekanalen en onze sociale media-accounts.
FSFE's publieke en gemeenschapsdiscussies vallen onder onze Gedragscode.
</p>
</div>
</li>
<li>
<a href="/press/press.html"><img src="/graphics/icons/press.png" alt="Informatie voor de pers"/></a>
<div>
<h3><a href="/press/press.html">Pers</a></h3>
<p>
Als u van de pers bent dan zult u ons persportaal nuttig vinden. Daar kunt u al onze persberichten, logo's, nieuws, algemene foto's en contactinformatie voor vragen van de pers vinden.
</p>
</div>
</li>
<li>
<a href="/about/jobs/index.html"><img src="/graphics/icons/intern.png" alt="Vacatures"/></a>
<div>
<h3><a href="/about/jobs/index.html">Vacatures</a></h3>
<p>
Naast de vrijwilligers van de FSFE vormen de vaste stafleden, de stagiairs en
trainees de ruggengraat van de organisatie. We zoeken gemotiveerde
mensen die ons helpen om bij te dragen aan softwarevrijheid op vele niveaus
op sociale, politieke, juridische en technische gebieden.
</p>
</div>
</li>
</ul>
</body>
<description>Alles over de FSFE - Ons werk, de mensen die we zijn, onze contact- en persinformatie, geassocieerden, juridische structuur en donaties.</description>
<translator>André Ockers</translator>
</html>

View File

@ -0,0 +1 @@
about/associates/*/associate:[]

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<associateset>
<version>1</version>
<associate id="ceata">
<name>Fundația Ceata</name>
<description>
<p>
Fundația Ceata is a Romanian Free Software and Free Culture foundation, aligned with the Free Software philosophy of the GNU Project. It is incorporated in Bucharest and has local teams in Cluj County and the Republic of Moldova. Ceata (Romanian for "the gang") was started as an informal group in June 2008 and it became a foundation in February 2013. Since its beginning, Ceata is heavily involved in Free Software activism, organization of digital freedom events, and development of Free Software and Free Cultural works.
</p>
</description>
<link>https://ceata.org/</link>
</associate>
</associateset>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<associateset>
<version>1</version>
<associate id="association of greek users">
<name>Ελληνική Ένωση Φίλων Ελεύθερου Λογισμικού (Free Software Friends Greek Association)</name>
<description>
<p>
The "Free Software Friends Greek Association" (also called "Greek Linux User Group" and "GNU Greece", the latter being a name given by Richard M. Stallman in June 2010) is a greek NGO/Society, whose purpose is to promote GNU/Linux and Free Software in Greece through various activities, such as seminars, introduction speeches at schools, daily operation of GNU/Linux Labs around Greece, and the struggle for Free Software in the Greek public sector.
</p>
</description>
<link>https://www.greeklug.gr/</link>
</associate>
</associateset>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<associateset>
<version>1</version>
<associate id="openlabs">
<name>Open Labs</name>
<description>
<p>
Open Labs' mission is to promote openness, freedom, transparency and
decentralization by amplifying our voice as a community
altogether.
</p>
</description>
<link>https://openlabs.cc/en/</link>
</associate>
</associateset>

Some files were not shown because too many files have changed in this diff Show More