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 files with extension
.html - Markdown files with extension
.md
The data used by the site is stored in the form of following files:
- YAML files with extension
.yml - JSON files with extension
.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:
- Install a full Ruby development environment.
- Create a local clone of the website:
git clone https://gitlab.gnome.org/Infrastructure/gtk-web.git
- Change into the gtk-web directory
cd gtk-web
- Perform the following commands to install dependencies and structure the website properly:
chmod +x setup.sh && bash setup.sh
- Build the site and make it available on your local server
$ bundle exec jekyll serve
- Browse to http://localhost:4000 to view the website.
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 | Github |
| @fortawesome/fontawesome-free | 5.15.3 |
package.json | Github |
| jquery | 3.6.0 |
package.json | Github |
| popper.js | 1.16.1 |
package.json | Github |
| slick-carousel | 1.8.1 |
package.json | Github |
| moment | 2.29.1 |
package.json | Github |
| node-sass | 5.0.0 |
package.json | Github |
| html-minifier | 4.0.0 |
package.json | Github |
| jekyll | 4.0.1 |
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
- You can contact me via my email or through my website.
- You can also find me on IRC. I am
ravgeetdhillononirc.gnome.orgin the#gtkor#gnome-hackerschannels.
Emmanuele Bassi
- You can contact me via my email.
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.