This repository contains the source code for Clack Clack website.
Powered by Jekyll.
Clack Github | Join Our Discord |
---|
Using Linux or MacOS:
- Install dependencies:
bundle install
- Update dependencies:
bundle update
- Start local server:
bundle exec jekyll serve
You can now see the docs at http://localhost:4400. This will reload automatically when changes are saved.
- Content - All text content should be constrained to the respective
source/_i18n/[lang].yml
file. - Links:
- Language-specific permalinks specified in page Front Matter (Spanish example):
permalink_es: /listados/
- Add language-specific link to YAML under
global
(Spanish example):link_listings: 'listados/'
- Use the YAML variable to reference links with Liquid, regardless of language
[Fees]({{ baseurl | append: lang.global.link_fees }})
- All external links should be constrained to the
_config.yml
file.
- Language-specific permalinks specified in page Front Matter (Spanish example):
- Components:
- Sections - All reusable sections should be placed in
source/_includes/sections
. - Repetitive - Templates should be created for all reptitive content and placed in
source/_includes/templates
. - Core - All core components used on every page should be placed in
source/_includes
.
- Sections - All reusable sections should be placed in
- Tags/Variables:
- Naming - Should be all lowercase and use underscores, no hyphens
- Usage - Should have a space inside the brackets;
- Correct:
{{ nav.downloads }}
- Incorrect:
{{nav.downloads}}
- Correct:
- Asset Info:
- Manifest - Data found in
source/_data/manifest-latest.json
; used to populate Listings table. - Profiles - Data found in
source/_data/profiles/
; used to populate asset profiles.
- Manifest - Data found in
- Resources:
Follow these steps if you'd like to contribute to translating the website to another language. If you are not familiar with how to create a PR, put the translations in a Google Doc and reach out to @hanniabu on Discord with the link. Also feel free to reach out for clarifications on these instructions. Collaborations are encouraged to help cross check the translations!
- Create a YAML language file in the
source/_i18n/
directory for the language you want to translate the site into. The files should be named after the language abbreviation. For example with French, it would besource/_i18n/fr.yml
. - Copy the contents of
source/_i18n/en.yml
into this new file and begin translating. For those unfamiliar with YAML, each line starts with a key, followed by a colon delimiter, and then the associated text for that key. For example inlang: English
, lang is the key and English is the test you'd actually want to translate. For French the translated line would becomelang: Français
. The top level keys (non-indented keys), for examplenav:
, are used for context. So withnav:
, all the keys/text underneath it (up to the next top level key) is pertaining to the navigation menu. - Skip any line that specifies
# Do not translate
(a#
signifies a comment). - Special case examples:
- For links, maintain the slashes.
- Original:
link_fees: 'fees/'
- Translated: `link_fees: 'frais/'
- Original:
- For Markdown, maintain the special characters.
- Original:
Many exchanges *claim* to be __decentralized__
- Translated: `Beaucoup d'échanges prétendent être décentralisés'
- Original:
- For Markdown links, ONLY translate what's between the
[ ]
brackets.- Original:
[Fees]({{ lang.global.link_fees }})
- Translated: `[Frais]({{ lang.global.link_fees }})'
- Original:
- For Liquid syntax, DO NOT translate anything.
- Original:
{{ site.exlink_docs }}
- Translated: `{{ site.exlink_docs }}'
- Original:
- For links, maintain the slashes.
- If the translations for the entire site are complete:
- Edit
_config.yml
and enable your language by adding it to the languages array (line ~28):languages: ["en"]
. For example if you completed translation for French, it would becomelanguages: ["en", "fr"]
. The language abbreviation must match that used for the translation file, in this casesource/_i18n/fr.yml
. - Add the language option to the nav menu dropdown in
source/_includes/nav.html
(line ~50).
- Edit
- Run HTMLProofer to check links:
bundle exec htmlproofer ./build
- Make sure
url:
in_config.yml
is correct (not the staging URL). - Build the docs with the
bundle exec jekyll build
command. - Deploy
build/
contents to staging site for testing. - Deploy
build/
contents to https://clack.uno/.