This repository contains the source code for Blocknet's Block DX website.
Powered by Jekyll.
Block DX 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! For any questions or clarifications with translating, reach out to @hanniabu.
- 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://blockdx.com/.