The source for the GTK website
GTK.org is a official website for GTK Project. The site is developed with and maintained using Jekyll, a Static Site Generator developed with Ruby. The site uses following types of files for the content generation:
.html
.md
The data used by the site is stored in the form of following files:
.yml
.json
...
āāā _data #contains site's data files
ā āāā apps.yml #list of apps to show on index.html slider section
ā āāā navigation.yml #links to be added to the site's header and footer sections
ā āāā sample_codes.yml #codes for language bindings
ā āāā labels.json
āāā _includes #contains site's include files
ā āāā footer.html #the footer of the site
ā āāā header.html #the meta data of the site
ā āāā navbar.html #the navbar of the site
āāā _layouts #contains layout designs for site's pages
ā āāā documentation.html #layout design for pages that belong to GTK documentation
āāā .gitlab #contains gitlab template files for bugs and merge requests
āāā assets #contains site's valuable entities
ā āāā font #contains site's font: Red Hat Display
ā āāā img #contains site's images and illustrations
ā āāā scss #contains site's preprocessor stylesheets
ā āāā colorful.scss #stylesheet for syntax highlighting
ā āāā index.scss #stylesheet for user defined styles
ā āāā markdown.scss #stylesheet for styling the markdown content
ā āāā theme.scss #stylesheet for website's theme. Generated from Bootstrap
āāā _pages #contains site's main pages
āāā _docs #contains pages for GTK documentation
āāā _config.yml #contains Jekyll settings for the site
āāā .gitignore
āāā .gitlab-ci.yml #for Gitlab Continuous Integration and Deployment
āāā 404.html
āāā CODE_OF_CONDUCT.md
āāā CONTRIBUTING.md
āāā Gemfile #contains gem dependencies for the site.
āāā Gemfile.lock
āāā LICENSE.txt
āāā package-lock.json
āāā package.json #contains node dependencies for the site.
āāā README.md
āāā setuid.html #referenced in code, **cannot be moved**
āāā setup.sh #script for setting up the website
We always welcome people who want to contribute towards our project. For suitable information on how can you contribute to the website, on how to report bugs, on how to request new features or anything that can make the website a better experience for the end users, please read on how to contribute.
To get the site up and running locally, follow the below steps:
git clone https://gitlab.gnome.org/Infrastructure/gtk-web.git
cd gtk-web
chmod +x setup.sh && bash setup.sh
$ bundle exec jekyll serve
GTK.org relies on the dependencies as well. These dependencies are provided
in the Ruby Gemfile
or NPM's package.json
. Following table shows the
list of dependencies used by this project:
Package | Version | File | Source |
---|---|---|---|
bootstrap | 4.6.0 |
[package.json][package.json] | Github |
@fortawesome/fontawesome-free | 5.15.3 |
[package.json][package.json] | Github |
jquery | 3.6.0 |
[package.json][package.json] | Github |
popper.js | 1.16.1 |
[package.json][package.json] | Github |
slick-carousel | 1.8.1 |
[package.json][package.json] | Github |
moment | 2.29.1 |
[package.json][package.json] | Github |
node-sass | 5.0.0 |
[package.json][package.json] | Github |
html-minifier | 4.0.0 |
[package.json][package.json] | Github |
jekyll | 4.0.1 |
[Gemfile][gemfile] | Github |
Read about adding/updating/removing dependencies on how to contribute.
The pipeline used by the website is the top-level component of continuous integration, delivery, and deployment.
The pipeline defined by the GTK.org uses the Ruby2.5
image. The pipeline
consists of a script that runs before the site is tested/deployed. The
script that runs before the test/deployment of the website basically
installs all the gem/npm dependencies
, fetches the API data regarding the
GTK from its gitlab instance and then structurizes the website
before testing/deploying.
test
stage is performed on all branches but master
. deploy
stage on
the other hand is performed only on master
branch.
You can reach out to the following individuals if you have any doubt or suggestion regarding the GTK.org:
Ravgeet Dhillon
ravgeetdhillon
on irc.gnome.org
in the #gtk
or
#gnome-hackers
channels.Emmanuele Bassi
GTK is an open source project with a contributor community that spans across the globe. We want everyone in our community to feel safe and encourage the participation of people from all forms of backgrounds, regardless of experience level, age, gender, identity, race, religion, or nationality. We expect all contributors to uphold the Code of Conduct.
GTK.org is licensed under the Creative Commons BY-SA-4.0.