Skip to content

ubuntu-mate/ubuntu-mate.org

Repository files navigation

ubuntu-mate.org

CI

The website for discovering and downloading the Ubuntu MATE operating system.

Powered by Jekyll, a static site generator.

Screenshot of website

Getting Started

See EDITING.md for notes on adding/editing pages on this website.

Edit on GitHub

The easiest way to edit ubuntu-mate.org is to use GitHub to edit the page. Simply find the page you want and create a pull request!

Translators, please see the Translations section instead.

Edit Locally

Install Jekyll as follows:

sudo apt install ruby ruby-dev make gcc
sudo gem install bundler --version 2.2.16
sudo gem install jekyll

To install gem dependencies for the project;

bundle install

Some additional packages are needed to build the project:

sudo apt install python3-requests python3-yaml transmission-cli python3-polib rsync translate-toolkit webp

To watch for changes locally:

./scripts/watch.sh

The first build may take a while to complete, but will be substantially faster afterwards.

You can preview the website on your computer at http://localhost:4000.

Building

This website has a few programmatically generated files, such as localized pages and automatic magnet link generation for torrents. These can be enabled by passing the parameters to either build.sh or watch.sh. To obtain the magnet link automagically, set the magnet-uri key to autogen.

Parameter What it does
--magnet-uri Fetch torrent files and generate magnet links.
--locales Build localized pages.

For example:

./scripts/build.sh --locales --magnet-uri

Testing

Continuous Integration will perform validation checks to ensure the website maintains a high quality standard for visitors around the world. Before running tests on your local machine, install the Ruby gem:

gem install html-proofer

Then thereon after, you may run:

./scripts/test.sh

This will check internal links, images and page metadata for errors.

From time to time, you may wish to run the test with --external to check links to other websites, blogs or people pages in case of link rot.

Translations

We are ready to speak multiple languages! Visit Transifex to translate this website. The Ubuntu MATE team will pull in completed translations.

Please refer to the guidelines for the best practices.

We use the polyglot gem to provide i18n support.

As part of the build script, the website will generate the markdown files for other languages via scripts/manage-translations.py. This can be ran manually too:

Parameter Action
--generate Creates POT and updates PO files from pages.
--build Process translated PO files for use with Jekyll.

When pages change, run --generate. Before building the site, run --build.

Language lists are to be updated in:

  • _i18n/locales.txt
  • _config.yml (under languages:)
  • _data/lang.yml

File Structure

Content Editor

Folder Purpose
_data Structured YAML data used for things like download lists.
_drafts Blog posts (markdown) not ready to publish. Use --drafts parameter to preview.
images Images used across the site.
pages Page contents (markdown)
_posts Blog posts (markdown)

Development

Folder Purpose
_includes HTML to build up sections of the website.
_layouts HTML base layouts.
_sass Ubuntu MATE theme
assets Global website resources, like favicons and libraries.
scripts For building and deployment.

Other

Folder Purpose
_i18n Source files (.pot, .po) for translating.
redirects Meta redirects from legacy links.

License

Refer to the LICENSE.md file for copyright and licensing notices for this website.