/ethical-digital-standards-ui

Primary LanguageHTMLMozilla Public License 2.0MPL-2.0

Ethical Digital Standards UI

This project is part of the Barcelona Ethical Digital Standards initiative by the Barcelona City Hall. The aim of this project is to provide a User Interface for the guides and landing page generated with the Ethical Digital Standards Site project.

This UI project is based on Antora Default UI, where you can find out more information and documentation. You can also find out more about the Antora project at the Antora website.

The Ethical Digital Standards UI can be used as a standalone with demo content; or in combination with Ethical Digital Standards Site, with proper content: the guides and the landing page.

Installation & Use

Prerequisites

To preview and bundle the UI, you need the following software on your computer:

git

First, make sure you have git installed.

$ git --version

If not, download and install the git package for your system.

Node 8

Next, make sure that you have Node 8 installed.

$ node --version

If this command fails with an error, you don’t have Node installed. If the command doesn’t report a Node 8 version (e.g., v8.9.4), you don’t have a suitable version of Node installed.

While you can install Node from the official packages, we strongly recommend that you use nvm (Node Version Manager) to install and manage Node. Follow the nvm installation instructions to set up nvm on your machine.

Once you’ve installed nvm, open a new terminal and install Node 8 using the following command:

$ nvm install 8

You can switch to this version of Node at any time using the following command:

$ nvm use 8

To make Node 8 the default in new terminals, type:

$ nvm alias default 8

Now that you have Node 8 installed, you can proceed with installing the Gulp CLI and Yarn.

Gulp CLI

Next, you’ll need the Gulp command-line interface (CLI). This package provides the gulp command which executes the version of Gulp declared by the project.

You should install the Gulp CLI globally (which resolves to a location in your user directory if you’re using nvm) using the following command:

$ npm install -g gulp-cli

Yarn

Finally, you’ll need Yarn, which is the preferred package manager for the Node ecosystem.

You should install Yarn globally (which resolves to a location in your user directory if you’re using nvm) using the following command:

$ npm install -g yarn

Now that you have the prerequisites installed, you can fetch and build the default UI project.

Clone and Initialize the UI Project

Clone the UI project using git:

$ git clone https://github.com/AjuntamentdeBarcelona/ethical-digital-standards-ui &&
  cd "`basename $_`"

The example above clones Antora’s default UI project and then switches to the project folder on your filesystem. Stay in this project folder in order to initialize the project using Yarn.

Use Yarn to install the project’s dependencies. In your terminal, execute the following command (while inside the project folder):

$ yarn install

This command installs the dependencies listed in package.json into the node_modules/ folder inside the project. This folder does not get included in the UI bundle.

Preview the UI

The UI project is configured to preview offline. That’s what the files in the preview-site-src/ folder are for. This folder contains HTML file fragments that provide a representative sample of content from the site.

To build the UI and preview it in a local web server, run the preview command:

$ gulp preview

You’ll see two URLs listed in the output of this command:

[BS] Access URLs:
 ----------------------------------
    Local: http://localhost:5252
 External: http://192.168.1.7:5252
 ----------------------------------
[BS] Serving files from: build
[BS] Watching files...

Navigate to the first URL to see the preview site.

While this command is running, any changes you make to the source files will be instantly reflected in the browser. This works by monitoring the project for changes, running the build task if a change is detected, and sending the updates to the browser.

Press Ctrl+C to stop the preview server and end the continuous build.

Package for Use with Antora/Ethical Digital Standards Site

In order to preview the UI on the real site in local development, run the following command:

$ gulp pack

The UI bundle will be available at build/ui-bundle.zip. You can then point the Antora/Site project at this bundle in the site.yml or site-local.yml configuration.

Updating the UI

Content/guides structure

Guides content is structured using the AsciiDoc syntax and developed in separate repositories, loaded through the Ethical Digital Standards Site project.

HTML structure

This project is using Handlebars for templating. Please checkout its documentation for further reference.

Translations are handled with an i18n helper. You can use it as in {{i18n 'NameOfTheString'}} where NameOfTheString is the code name for the translation string. You can find out the translation files in /src/helpers/i18n.js.

CSS structure

This project is using PostCSS and Gulp to pre-process the CSS files. A Scss interpreter plugin was added to allow simple CSS nesting and Scss variables.

You can find the main template variables (colors, fonts, breakpoints…) in the src/css/base/variables.css file.

PDF styling

Ethical Digital Standards Site’s generated PDF files are generated using Weasyprint. You can find out the styles used in this UI to present these PDF files in the src/css/print/ folder, and further documentation regarding PDF styling in Weasyprint documentation.