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
ravgeetdhillon
onirc.gnome.org
in the#gtk
or#gnome-hackers
channels.
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.