Merge pull request #718 from mDuo13/ja_target

Add Japanese translation
This commit is contained in:
Rome Reginelli
2019-11-09 06:36:24 -08:00
committed by GitHub
296 changed files with 36177 additions and 305 deletions

View File

@@ -1,5 +1,6 @@
#!/bin/bash
mkdir -p out
rm -r out
# Pass forward dactyl "vars" arg if provided
if [ "$1" == "--vars" ] && [ -n "$2" ];
@@ -8,9 +9,41 @@ then
shift 2
fi
targets=`dactyl_build -lq | awk '{print $1}'`
linkerrors=0
builderrors=0
# Build language-based targets all together first
langs=(en ja)
for lang in ${langs[*]}; do
echo "======================================="
echo "Building language: en"
if [ "$lang" == "en" ]; then
if [ -n "$dactyl_vars" ]; then
dactyl_build -q -t "$lang" --vars "$dactyl_vars"
else
dactyl_build -q -t "$lang"
fi
else
if [ -n "$dactyl_vars" ]; then
dactyl_build -q -t "$lang" -o "out/$lang" --vars "$dactyl_vars"
else
dactyl_build -q -t "$lang" -o "out/$lang"
fi
fi
buildresult=$?
if [ $buildresult -ne 0 ]; then
builderrors=$(($buildresult + $builderrors))
echo "Error building this target; link checker may miss things."
fi
done
# Check language targets all at once
dactyl_link_checker -q "$@"
linkerrors=$(($? + $linkerrors))
# Build & check other targets individually afterwords
other_targets=`dactyl_build -lq | awk '/^(en|ja) / {next;} {print $1}'`
while read -r line; do
echo ""
echo "======================================="
@@ -30,7 +63,7 @@ while read -r line; do
builderrors=$(($buildresult + $builderrors))
echo "Error building this target; skipping link checker."
fi
done <<< "$targets"
done <<< "$other_targets"
totalerrors=$(($builderrors + $linkerrors))

7
tool/build_all_langs.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
## Run from the root directory of the repo to build all languages
## TODO: read the `-o` / `--out` argument and adapt it for non-en languages
dactyl_build --vars "$dactyl_vars"
dactyl_build -t ja -o out/ja --vars "$dactyl_vars"

View File

@@ -0,0 +1,62 @@
################################################################################
## Unicode-friendly header IDs ##
## Author: Rome Reginelli ##
## Copyright: Ripple Labs, Inc. 2016-2019 ##
## License: MIT https://github.com/ripple/xrpl-dev-portal/blob/master/LICENSE ##
## ##
## Changes the header ID formula to accept more unicode characters, so ##
## non-English, non-Latin-script headers can have nice IDs. Closely matches ##
## the behavior of GitHub-Flavored Markdown. ##
################################################################################
import re
## HTML5's 'id' attribute requirements are:
## - Must be at least one character in length.
## - Must not contain ASCII whitespace.
## - Must be unique within the document.
## - No other requirements. (HTML4 had stricter requirements.)
## Python-Markdown's default ID formula (as of v3.1.1) is:
## 1. normalize unicode to NFKD form (so it can strip accent marks)
## 2. remove all non-ASCII characters (this is the problem for us)
## 3. remove leading/trailing whitespace
## 4. convert to lowercase
## 5. remove everything except space, hyphen, alphanumerics, and underscores
## 6. replace each block of consecutive whitespace/hyphens with a single hyphen
## 7. add _1, _2 etc. suffixes to non-unique IDs
## Later, the dev portal uses a filter to replace underscores with dashes.
## The new formula is similar, but has some important differences:
## 1. No Unicode normalization. We'd rather leave things as-is.
## 2. Leave the string as unicode throughout.
## 5. Keep hyphens, unicode "space" and unicode "word" characters (includes
## underscores). Replace everything else with spaces, then strip trailing
## spaces.
## 7. Add -1, -2 suffixes to non-unique IDs.
## The end result is that this standard closely matches GitHub-flavored
## Markdown in almost all cases. (The exceptions are cases where GFM makes
## invalid empty IDs, for example with emoji headers...)
def idify(utext):
"""Make a string ID-friendly (but more unicode-friendly)"""
utext = re.sub(r'[^\w\s-]', '', utext).strip().lower()
utext = re.sub(r'[\s-]+', '-', utext)
if not len(utext):
# Headers must be non-empty
return '_'
return utext
def filter_soup(soup, **kwargs):
"""Generate new IDs for all headers"""
uniqIDs = {}
headers = soup.find_all(name=re.compile("h[0-9]"))
for h in headers:
new_id = idify(h.get_text())
if new_id not in uniqIDs.keys():
uniqIDs[new_id] = 0
else:
# not unique, append -1, -2, etc. to this instance
uniqIDs[new_id] += 1
new_id = "{id}-{n}".format(id=new_id, n=uniqIDs[new_id])
h["id"] = new_id

View File

@@ -20,4 +20,7 @@ fi
set -e
tool/conflictmarkers.sh
tool/all-target-link-checker.sh --vars "$dactyl_vars"
## Build all languages, then run the link checker once
tool/build_all_langs.sh
dactyl_link_checker -q

View File

@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<html lang="{{target.lang}}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width">
<title>{{ currentpage.name }} - XRP Ledger Dev Portal</title>
<title>{{ currentpage.name }} - {{target.display_name}}</title>
<!-- favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png">
@@ -19,8 +19,11 @@
<!-- jQuery -->
<script src="assets/vendor/jquery-1.11.1.min.js"></script>
<!-- Stylesheet -->
{% if target.lang=="ja" %}
<link href="assets/css/fonts-ja.css" rel="stylesheet" />
{% endif %}
<link href="assets/css/devportal.css" rel="stylesheet" />
<!-- Google Analytics -->
@@ -38,10 +41,10 @@
</head>
<body class="xrp-ledger-dev-portal {% if currentpage.sidebar is undefined or currentpage.sidebar != "disabled" %}sidebar-primary {% endif %}{% block bodyclasses %}{% endblock %}">
<body class="xrp-ledger-dev-portal {% if currentpage.sidebar is undefined or currentpage.sidebar != "disabled" %}sidebar-primary {% endif %}lang-{{target.lang}} {% block bodyclasses %}{% endblock %}">
<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-white">
<a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}" class="navbar-brand"><img src="assets/img/XRPLedger_DevPortal-black.svg" class="logo" height="44" alt="XRP Ledger Dev Portal" /></a>
<a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}" class="navbar-brand"><img src="assets/img/XRPLedger_DevPortal-black.svg" class="logo" height="44" alt="{{target.display_name}}" /></a>
<button class="navbar-toggler" type="button" data-toggle="slide-collapse" data-target="#navbarHolder" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
@@ -58,19 +61,31 @@
{% endif %}
{% endfor %}
<li class="nav-item">
<a class="nav-link" href="/blog/">Blog</a>
<a class="nav-link" href="/blog/">{{target.strings.blog}}</a>
</li>
</ul><!-- /.navbar-nav -->
{% include 'template-github-edit.html' %}
<form class="navbar-form navbar-right" id="navbar-search" role="search" method="get" action="https://www.google.com/search">
<div class="form-inline">
<label class="sr-only" for="topsearchbar">Search site with Google...</label>
<label class="sr-only" for="topsearchbar">{{target.strings.search}}</label>
<input name="q" value="site:xrpl.org" type="hidden">
<input id="topsearchbar" name="q" type="text" class="form-control" class="top-search" placeholder="Search site with Google...">
<input id="topsearchbar" name="q" type="text" class="form-control" class="top-search" placeholder="{{target.strings.search}}">
<button type="submit" class="btn btn-default fa fa-search">&nbsp;</button>
</div>
</form>
</div>
<div class="nav navbar-nav language-selector">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="language_selector_header_btn" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{(config.languages|selectattr('code', 'eq', target.lang)|first).display_name}}
</button>
<div class="dropdown-menu" aria-labelledby="language_selector_header_btn">
{% for lang in config.languages %}
<a class="dropdown-item" href="{{lang.prefix}}{{currentpage.html}}">{{lang.display_name}}</a>
{% endfor %}
</div><!--/.dropdown-menu-->
</div><!--/.dropdown-->
</div><!--/.language-selector-->
</div><!--/#navbarHolder-->
<div class="menu-overlay"></div>
</nav>

View File

@@ -1,20 +1,25 @@
<nav class="breadcrumbs-wrap {% if currentpage.sidebar is defined and currentpage.sidebar == 'disabled' %} px-0 pt-5 pb-3 {% else %}p-0 p-md-3{% endif %}" aria-label="breadcrumb">
<ul class="breadcrumb bg-white">
<li class="breadcrumb-item"><a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}">Home</a></li>
<li class="breadcrumb-item"><a href="{% if target.no_cover is defined and target.no_cover %}/{% else %}index.html{% endif %}">{{target.strings.bc_home}}</a></li>
{% if currentpage.funnel is defined and currentpage != pages|selectattr('funnel', 'defined_and_equalto', currentpage.funnel)|first %}
<li class="active breadcrumb-item"><a href="{{ (pages|selectattr('funnel', 'defined_and_equalto', currentpage.funnel)|first).html }}">{{ currentpage.funnel }}</a></li>
{% set funnelhead = (pages|selectattr('funnel', 'defined_and_equalto', currentpage.funnel)|first) %}
<li class="active breadcrumb-item"><a href="{{ funnelhead.html }}">{{ funnelhead.name }}</a></li>
{% endif %}
{% if currentpage.doc_type is defined and currentpage != pages|selectattr('doc_type', 'defined_and_equalto', currentpage.doc_type)|first%}
<li class="active breadcrumb-item"><a href="{{ (pages|selectattr('doc_type', 'defined_and_equalto', currentpage.doc_type)|first).html }}">{{ currentpage.doc_type }}</a></li>
{% set doctypehead = (pages|selectattr('doc_type', 'defined_and_equalto', currentpage.doc_type)|first) %}
<li class="active breadcrumb-item"><a href="{{ doctypehead.html }}">{{ doctypehead.name }}</a></li>
{% endif %}
{% if currentpage.supercategory is defined and currentpage != pages|selectattr('supercategory', 'defined_and_equalto', currentpage.supercategory)|first %}
<li class="active breadcrumb-item"><a href="{{ (pages|selectattr('supercategory', 'defined_and_equalto', currentpage.supercategory)|first).html }}">{{ currentpage.supercategory }}</a></li>
{% set supercathead = (pages|selectattr('supercategory', 'defined_and_equalto', currentpage.supercategory)|first) %}
<li class="active breadcrumb-item"><a href="{{ supercathead.html }}">{{ supercathead.name }}</a></li>
{% endif %}
{% if currentpage.category is defined and currentpage != pages|selectattr('category', 'defined_and_equalto', currentpage.category)|first %}
<li class="active breadcrumb-item"><a href="{{ (pages|selectattr('category', 'defined_and_equalto', currentpage.category)|first).html }}">{{ currentpage.category }}</a></li>
{% set cathead = (pages|selectattr('category', 'defined_and_equalto', currentpage.category)|first) %}
<li class="active breadcrumb-item"><a href="{{ cathead.html }}">{{ cathead.name }}</a></li>
{% endif %}
{% if currentpage.subcategory is defined and currentpage != pages|selectattr('subcategory', 'defined_and_equalto', currentpage.subcategory)|first %}
<li class="active breadcrumb-item"><a href="{{ (pages|selectattr('subcategory', 'defined_and_equalto', currentpage.subcategory)|first).html }}">{{ currentpage.subcategory }}</a></li>
{% set subcathead = (pages|selectattr('subcategory', 'defined_and_equalto', currentpage.subcategory)|first) %}
<li class="active breadcrumb-item"><a href="{{ subcathead.html }}">{{ subcathead.name }}</a></li>
{% endif %}
<li class="active breadcrumb-item">{{ currentpage.name }}</li>
</ul>

View File

@@ -22,6 +22,13 @@
{% block main %}
<article class="pt-3 p-md-3">
{% if target.lang != "en" and "en" in currentpage.targets %}
{# Add a "sorry this page isn't translated" banner. #}
{# TODO: pull from a strings file #}
<div class="devportal-callout note mb-5"><strong>{{target.strings.tl_banner.head}}</strong>
<p class="mb-0">{{target.strings.tl_banner.body}}</p>
</div><!--/.devportal-callout-->
{% endif %}
<div class="content">
{{ content }}
</div>
@@ -31,7 +38,7 @@
{% block right_sidebar %}
<div class="card" id="page-toc-wrapper">
<div class="card-header">
<h4>In this document</h4>
<h4>{{target.strings.pagetoc}}</h4>
</div>
<ul class="card-body">
{{ sidebar_content }}

View File

@@ -29,9 +29,9 @@
<div class="card-body">
<div class="children-display">
<ul>
<li class="level-1"><a href="https://ripple.com/company/careers/" target="_blank">Ripple Careers <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://github.com/ripple/" target="_blank">Ripple on GitHub <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/collateral/#xrp" target="_blank">XRP Resources <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/company/careers/" target="_blank">{{target.strings.footer.ripple.careers}} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://github.com/ripple/" target="_blank">{{target.strings.footer.ripple.github}} <i class="fa fa-external-link"></i></a></li>
<li class="level-1"><a href="https://ripple.com/collateral/#xrp" target="_blank">{{target.strings.footer.ripple.xrp_resources}} <i class="fa fa-external-link"></i></a></li>
</ul>
</div>
</div><!--/.card-body-->
@@ -41,14 +41,29 @@
<section class="container-fluid p-5 pl-sm-0">
<nav role="navigation" class="d-flex mb-3 language-selector">
<img class="language_selector_icon" src="assets/img/icon-language-selector.svg" width="32" height="40" alt="language selection icon" />
<ul class="nav">
{% for lang in config.languages %}
<li class="nav-item">
{% if lang.code == target.name %}
<a class="nav-link active" href="{{lang.prefix}}{{currentpage.html}}"><i class="fa fa-check-circle"></i> {{lang.display_name}}</a>
{% else %}
<a class="nav-link" href="{{lang.prefix}}{{currentpage.html}}">{{lang.display_name}}</a>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
<div class="absolute_bottom_footer">
<span>&copy; XRP Ledger Project 2019</span>
<span><a href="https://raw.githubusercontent.com/ripple/ripple-dev-portal/master/LICENSE">License</a></span>
<span><a href="https://raw.githubusercontent.com/ripple/ripple-dev-portal/master/LICENSE">{{target.strings.footer.license}}</a></span>
</div><!-- /.absolute_bottom_footer -->
</section>
</footer>
<!-- Jump to top button -->
<a href="#main_content_wrapper" class="jump-to-top btn btn-primary btn-lg" role="button" title="Jump to top of page">Top</a>
<a href="#main_content_wrapper" class="jump-to-top btn btn-primary btn-lg" role="button" title="{{target.strings.to_top.short}}">{{target.strings.to_top.short}}</a>
<script type="text/javascript" src="assets/js/jump-to-top.js"></script>

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>{{ currentpage.name }} - XRP Ledger Dev Portal</title>
<title>{{ currentpage.name }} - {{target.display_name}}</title>
<!-- favicon -->
<link rel="icon" href="favicon.ico" type="image/x-icon">

View File

@@ -23,6 +23,6 @@
{% if not have_edit_link %}
{% set githuburl = target.github_forkurl %}
{% endif %}
<a href="{{githuburl}}" target="_blank" class="github-edit">Edit</a>
<a href="{{githuburl}}" target="_blank" class="github-edit">{{target.strings.github_edit}}</a>
{% endif %}
</div><!-- /.github-edit -->

View File

@@ -19,81 +19,82 @@
<section class="container-fluid card-grid card-grid-2x2">
<div class="section-hero card justify-content-end">
<div>
<h1 class="display-4">Powering the Internet of Value.</h1>
<h1 class="display-4">{{target.strings.home.intro.head}}</h1>
<div class="blurb">
<p>The <a href="#xrp_ledger_intro">XRP Ledger</a> is open-source technology that anyone can use.</p>
<p>Use the tools and information provided here to integrate with and contribute to the open-source platform.</p>
<h5>Want more?</h5>
<p>Get updates about XRP Ledger webinars, releases, and documentation!</p>
<p>{{target.strings.home.intro.body1}}</p>
<p>{{target.strings.home.intro.body2}}</p>
<h5>{{target.strings.home.intro.subhead}}</h5>
<p>{{target.strings.home.intro.sub_body}}</p>
</div><!--/.blurb-->
<a class="btn btn-outline-secondary external-link" href="https://goo.gl/forms/sHMFxU8dKiTUaltE3" target="_blank">Sign up! <i class="fa fa-external-link" aria-hidden="true"></i></a>
<a class="btn btn-outline-secondary external-link" href="https://goo.gl/forms/sHMFxU8dKiTUaltE3" target="_blank">{{target.strings.home.intro.cta}} <i class="fa fa-external-link" aria-hidden="true"></i></a>
</div>
</div><!--/.section-hero-->
{% set flag_n = cycler(* range(1,99)) %}
<div class="card">
{% set cardpage = pages|selectattr('html', 'defined_and_equalto', 'get-started-with-the-rippled-api.html')|first %}
<div class="card-header">
<h3 class="card-title">Get Started with XRP Ledger APIs</h3>
<h3 class="card-title"><a href="{{cardpage.html}}">{{cardpage.name}}</a></h3>
</div><!--/.card-header-->
<div class="card-body">
<p>Get started with the APIs and libraries available for interacting with the XRP Ledger.</p>
<p>{{cardpage.blurb}}</p>
</div><!--/.card-body-->
<div class="card-footer">
<a href="get-started-with-the-rippled-api.html" class="btn btn-outline-secondary">Get Started</a>
<a href="get-started-with-the-rippled-api.html" class="btn btn-outline-secondary">{{cardpage.cta_text}}</a>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</div><!--/.card-->
<div class="card pr-0">
<div class="card-header">
<h3 class="card-title"><a href="concepts.html">Learn How It Works</a></h3>
<h3 class="card-title"><a href="concepts.html">{{target.strings.home.cards_1.learn.head}}</a></h3>
</div><!--/.card-header-->
<div class="card-body">
<div class="curated-links">
<ul>
<li><a href="intro-to-consensus.html">Intro to Consensus</a></li>
<li><a href="xrp.html">About XRP</a></li>
<li><a href="payment-system-basics.html">Payment System Basics</a></li>
<li><a href="decentralized-exchange.html">Decentralized Exchange</a></li>
<li><a href="intro-to-consensus.html">{{(pages|selectattr('html', 'defined_and_equalto', 'intro-to-consensus.html')|first).name}}</a></li>
<li><a href="xrp.html">{{target.strings.home.cards_1.learn.about_xrp}}</a></li>
<li><a href="payment-system-basics.html">{{(pages|selectattr('html', 'defined_and_equalto', 'payment-system-basics.html')|first).name}}</a></li>
<li><a href="decentralized-exchange.html">{{(pages|selectattr('html', 'defined_and_equalto', 'decentralized-exchange.html')|first).name}}</a></li>
</ul>
</div><!--/.curated-links-->
</div><!--/.card-body-->
<div class="card-footer">
<a href="concepts.html" class="btn btn-outline-secondary">All Concepts</a>
<a href="concepts.html" class="btn btn-outline-secondary">{{target.strings.home.cards_1.learn.cta}}</a>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</div><!--/.card-->
<div class="card">
<div class="card-header">
<h3 class="card-title"><a href="docs.html">Read Documentation</a></h3>
<h3 class="card-title"><a href="docs.html">{{target.strings.home.cards_1.read_docs.head}}</a></h3>
</div><!--/.card-header-->
<div class="card-body">
<div class="curated-links">
<ul>
<li><a href="references.html">API References</a></li>
<li><a href="concepts.html">Concepts</a></li>
<li><a href="tutorials.html">Tutorials</a></li>
<li><a href="docs.html#full-doc-index">Full Doc Index</a></li>
<li><a href="references.html">{{(pages|selectattr('html', 'defined_and_equalto', 'references.html')|first).longer_name}}</a></li>
<li><a href="concepts.html">{{(pages|selectattr('html', 'defined_and_equalto', 'concepts.html')|first).name}}</a></li>
<li><a href="tutorials.html">{{(pages|selectattr('html', 'defined_and_equalto', 'tutorials.html')|first).name}}</a></li>
<li><a href="docs.html#full-doc-index">{{target.strings.home.cards_1.read_docs.full_doc_index}}</a></li>
</ul>
</div><!--/.curated-links-->
</div><!--/.card-body-->
<div class="card-footer">
<a href="docs.html" class="btn btn-outline-secondary">All Docs</a>
<a href="docs.html" class="btn btn-outline-secondary">{{target.strings.home.cards_1.read_docs.cta}}</a>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</div><!--/.card-->
<div class="card pr-0">
<div class="card-header">
<h3 class="card-title">Explore the XRP Ledger</h3>
<h3 class="card-title">{{target.strings.home.cards_1.explore.head}}</h3>
</div><!--/.card-header-->
<div class="card-body">
<p>Use the XRPL Explorer to view a stream of ledger activity and see validator statuses.</p>
<p>{{target.strings.home.cards_1.explore.blurb}}</p>
</div><!--/.card-body-->
<div class="card-footer">
<div class="readmore">
<a href="https://livenet.xrpl.org/" class="btn btn-outline-secondary">Go to the Explorer</a>
<a href="https://livenet.xrpl.org/" class="btn btn-outline-secondary">{{target.strings.home.cards_1.explore.cta}}</a>
</div>
</div><!--/.card-footer-->
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
@@ -121,58 +122,58 @@
<section class="container-fluid card-grid card-grid-2x4" id="xrp_ledger_intro">
<div class="card section-hero pl-0">
<div class="card-header">
<h2><a href="xrp-ledger-overview.html">What is the XRP Ledger?</a></h2>
<h2><a href="xrp-ledger-overview.html">{{target.strings.home.what_is_xrpl.head}}</a></h2>
</div><!--/.card-header-->
<div class="card-body">
<p>The XRP Ledger is a decentralized cryptographic ledger, powered by a network of peer-to-peer servers. It is the home of XRP, a digital asset designed to bridge the many different currencies in use worldwide.</p>
<p>{{target.strings.home.what_is_xrpl.body_1}}</p>
</div>
</div><!--/.section-hero-->
<a href="xrp-ledger-overview.html#the-digital-asset-for-payments" class="card">
<a href="{{target.strings.home.what_is_xrpl.digital_asset.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-digital-asset.svg" alt="(digital asset icon)" /></div>
<div class="card-footer"><h3>The Digital Asset for Payments</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.digital_asset.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#censorship-resistant-transaction-processing" class="card">
<a href="{{target.strings.home.what_is_xrpl.censorship_resistant.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-censorship-resistant.svg" alt="(censorship resistance icon)" /></div>
<div class="card-footer"><h3>Censorship-Resistant Transaction Processing</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.censorship_resistant.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#fast-efficient-consensus-algorithm" class="card">
<a href="{{target.strings.home.what_is_xrpl.fast_algorithm.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-fast-algorithm.svg" alt="(consensus algorithm icon)" /></div>
<div class="card-footer"><h3>Fast, Efficient Consensus Algorithm</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.fast_algorithm.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#finite-xrp-supply" class="card">
<a href="{{target.strings.home.what_is_xrpl.finite_xrp.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-finite.svg" alt="(xrp supply icon)" /></div>
<div class="card-footer"><h3>Finite XRP Supply</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.finite_xrp.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#responsible-software-governance" class="card">
<a href="{{target.strings.home.what_is_xrpl.responsible_governance.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-responsible.svg" alt="(governance icon)" /></div>
<div class="card-footer"><h3>Responsible Software Governance</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.responsible_governance.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#secure-adaptable-cryptography" class="card">
<a href="{{target.strings.home.what_is_xrpl.secure_crypto.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-secure.svg" alt="(cryptography icon)" /></div>
<div class="card-footer"><h3>Secure, Adaptable Cryptography</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.secure_crypto.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#modern-features-for-smart-contracts" class="card">
<a href="{{target.strings.home.what_is_xrpl.smart_contracts.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-modern-smart-contracts.svg" alt="(smart contracts icon)" /></div>
<div class="card-footer"><h3>Modern Features for Smart Contracts</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.smart_contracts.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->
<a href="xrp-ledger-overview.html#on-ledger-decentralized-exchange" class="card">
<a href="{{target.strings.home.what_is_xrpl.decentralized_exchange.url}}" class="card">
<div class="card-header"><img class="card-img-top" src="assets/img/icon-xrp-on-ledger-decentralized.svg" alt="(decentralized exchange icon)" /></div>
<div class="card-footer"><h3>On-Ledger Decentralized Exchange</h3></div>
<div class="card-footer"><h3>{{target.strings.home.what_is_xrpl.decentralized_exchange.head}}</h3></div>
<div class="flag-vertical">{{"%02d"|format(flag_n.next())}}</div>
</a><!--/.card-->

View File

@@ -3,17 +3,14 @@
{% block main %}
{% if content %}
<article class="pt-3 p-md-3">
<div class='content'>
{{ content }}
</div>
</article>
<section class="pt-3 p-md-3">
<h2>Children of this page:</h2>
{% set show_blurbs = True %}
{% set depth= 1 %}
{% include 'template-page-children.html' %}
<article class="content">
{{ content }}
{% set show_blurbs = True %}
{% set depth= 1 %}
{% include 'template-page-children.html' %}
</article>
</section>
{% else %}

View File

@@ -10,25 +10,28 @@
{% if use_page.supercategory is defined %}
<div class="sidenav_parent">
{% if use_page == (pages|selectattr('supercategory', 'defined_and_equalto', use_page.supercategory)|first) %}
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.supercategory }}</a>
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.name }}</a>
{% else %}
<a href="{{ link_prefix}}{{ (pages|selectattr('supercategory', 'defined_and_equalto', use_page.supercategory)|first).html }}"> {{ use_page.supercategory }}</a>
{% set parent_page = (pages|selectattr('supercategory', 'defined_and_equalto', use_page.supercategory)|first) %}
<a href="{{ link_prefix}}{{ parent_page.html }}"> {{ parent_page.name }}</a>
{% endif %}
</div>
{% elif use_page.doc_type is defined %}
<div class="sidenav_parent">
{% if use_page == (pages|selectattr('doc_type', 'defined_and_equalto', use_page.doc_type)|first) %}
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.doc_type }}</a>
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.name }}</a>
{% else %}
<a href="{{ link_prefix}}{{ (pages|selectattr('doc_type', 'defined_and_equalto', use_page.doc_type)|first).html }}"> {{ use_page.doc_type }}</a>
{% set parent_page = (pages|selectattr('doc_type', 'defined_and_equalto', use_page.doc_type)|first) %}
<a href="{{ link_prefix}}{{ parent_page.html }}"> {{ parent_page.name }}</a>
{% endif %}
</div>
{% elif use_page.funnel is defined %}
<div class="sidenav_parent">
{% if use_page == (pages|selectattr('funnel', 'defined_and_equalto', use_page.funnel)|first) %}
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.funnel }}</a>
<a href="{{ link_prefix}}{{ use_page.html }}">{{ use_page.name }}</a>
{% else %}
<a href="{{ link_prefix}}{{ (pages|selectattr('funnel', 'defined_and_equalto', use_page.funnel)|first).html }}"> {{ use_page.funnel }}</a>
{% set parent_page = (pages|selectattr('funnel', 'defined_and_equalto', use_page.funnel)|first) %}
<a href="{{ link_prefix}}{{ parent_page.html }}"> {{ parent_page.name }}</a>
{% endif %}
</div>
{% endif %}
@@ -79,7 +82,7 @@
<a class="{% if use_page.category is undefined or use_page.category != cat %}collapsed {% endif %}sidenav_cat_toggler" role="button" data-toggle="collapse" href="#sidenav_collapse_{{loop.index}}" aria-expanded="true" aria-controls="sidenav_collapse_{{loop.index}}"></a>
{% endif %}
<h5 class="card-title">
<a class="sidenav_cat_title{% if use_page == (cat_parent) %} active{% elif use_page.category is defined and use_page.category == cat %} active-parent{% endif %}" href="{{ link_prefix}}{{ cat_parent.html }}">{{ cat }}</a>
<a class="sidenav_cat_title{% if use_page == (cat_parent) %} active{% elif use_page.category is defined and use_page.category == cat %} active-parent{% endif %}" href="{{ link_prefix}}{{ cat_parent.html }}">{{ cat_parent.name }}</a>
</h5>
</div><!-- /.card-header -->
@@ -152,7 +155,7 @@
<a class="collapsed sidenav_cat_toggler" role="button" data-toggle="collapse" href="#sidenav_collapse_{{loop.index}}" aria-expanded="true" aria-controls="sidenav_collapse_{{loop.index}}"></a>
{% endif %}
<h5 class="card-title">
<a class="sidenav_cat_title" href="{{ link_prefix}}{{ supercat_parent.html }}">{{ supercat }}</a>
<a class="sidenav_cat_title" href="{{ link_prefix}}{{ supercat_parent.html }}">{{ supercat_parent.name }}</a>
</h5>
</div><!-- /.card-header -->
@@ -203,7 +206,7 @@
<a class="{% if use_page.category is undefined or use_page.category != cat %}collapsed {% endif %}sidenav_cat_toggler" role="button" data-toggle="collapse" href="#sidenav_collapse_{{loop.index}}" aria-expanded="true" aria-controls="sidenav_collapse_{{loop.index}}"></a>
{% endif %}
<h5 class="card-title">
<a class="sidenav_cat_title{% if use_page == (cat_parent) %} active{% elif use_page.category is defined and use_page.category == cat %} active-parent{% endif %}" href="{{ link_prefix}}{{ cat_parent.html }}">{{ cat }}</a>
<a class="sidenav_cat_title{% if use_page == (cat_parent) %} active{% elif use_page.category is defined and use_page.category == cat %} active-parent{% endif %}" href="{{ link_prefix}}{{ cat_parent.html }}">{{ cat_parent.name }}</a>
<!-- <a class="sidenav_cat_title" href="{{ link_prefix}}{{ cat_parent.html }}">{{ cat }}</a> -->
</h5>
</div><!-- /.card-header -->

View File

@@ -82,7 +82,6 @@ h1, h2, h3, h4, h5 {
font-weight: 700;
color: $black;
}
.landing section,
.xrpl-footer .card-grid,
#main_content_wrapper {
@@ -256,28 +255,36 @@ h3 a:hover,
background-color: $gray-700;
}
.devportal-callout.tip {
.devportal-callout.tip,
.devportal-callout.ヒント {
border-color: $success;
}
.devportal-callout.tip > strong:first-child:before {
.devportal-callout.tip > strong:first-child:before,
.devportal-callout.ヒント > strong:first-child:before {
color: $success;
}
.devportal-callout.note > strong:first-child:before {
.devportal-callout.note > strong:first-child:before,
.devportal-callout.注記 > strong:first-child:before {
color: $info;
}
.devportal-callout.note {
.devportal-callout.note,
.devportal-callout.注記 {
border-color: $info;
}
.devportal-callout.caution {
.devportal-callout.caution,
.devportal-callout.注意 {
border-color: $warning; /* not a typo */
}
.devportal-callout.caution > strong:first-child:before {
.devportal-callout.caution > strong:first-child:before,
.devportal-callout.注意 > strong:first-child:before {
color: $warning; /* not a typo */
}
.devportal-callout.warning {
.devportal-callout.warning,
.devportal-callout.警告 {
border-color: $danger;
}
.devportal-callout.warning > strong:first-child:before {
.devportal-callout.warning > strong:first-child:before,
.devportal-callout.警告 > strong:first-child:before {
color: $danger;
}
@@ -472,8 +479,8 @@ aside a.active-parent {
/* Edit on GitHub link ------------------------------------------------------ */
.github-edit-wrap {
border: 1px solid $gray-400;
margin-right: 10px;
margin-left: 10px;
margin-right: 5px;
margin-left: 5px;
}
.github-edit-wrap:hover {
border-color: $black;
@@ -562,7 +569,7 @@ td:nth-child(1) {
margin: 0 48px;
}
@media (max-width: 1090px) {
@media (max-width: 1105px) {
.navbar.fixed-top {
margin: 0 20px;
}
@@ -581,12 +588,6 @@ td:nth-child(1) {
opacity: 0.5;
}
@media (max-width: 1010px) {
.navbar-brand {
margin-right: 5px;
}
}
.navbar .navbar-nav .nav-link {
font-size: 1rem;
line-height: 52px;
@@ -1138,7 +1139,6 @@ a.current {
list-style-type: square;
}
@media (max-width: 991px) {
.landing .card {
padding-left: 0px;
@@ -1495,7 +1495,7 @@ a.current {
padding-left: 14px;
}
.btn:not(.external-link)::after,
.btn:not(.external-link):not(.dropdown-toggle)::after,
.landing .card .level-1 a::after,
.landing .card .level-2 a::after,
.landing .card .curated-links li a::after,
@@ -1511,7 +1511,7 @@ a.current {
content: ""
}
.btn:not(.external-link):hover::after,
.btn:not(.external-link):not(.dropdown-toggle):hover::after,
.landing .card .level-1 a:hover::after,
.landing .card .level-2 a:hover::after,
.landing .card .curated-links li a:hover::after,
@@ -1647,8 +1647,50 @@ a.current {
text-indent: 0;
}
/* Language selector -------------------------------------------------------- */
.language-selector {
.nav-link {
font-size: 16px;
}
.nav-link.active {
color: $black;
font-weight: bold;
}
}
#navbarHolder .language-selector .btn {
font-size: 0.875rem;
padding: .375rem .75rem;
}
/* Japanese language font override ------------------------------------------ */
.lang-ja {
h1, h2, h3, h4, h5,
.github-edit-wrap .github-edit,
.navbar .navbar-nav .nav-link,
.content .children-display li a,
.right-sidebar .level-1 a,
.right-sidebar .separator,
.use-case-step-num {
//font-family: 'M PLUS 1p', 'Space Mono', sans-serif;
//font-family: '851Gkktt', 'Space Mono', sans-serif;
font-family: 'Makinas-4-Flat', 'Makinas-4-Square', 'Space Mono', sans-serif;
}
}
/* Responsive design for different viewscreens ------------------------------ */
@media (max-width: 1010px) {
.navbar-brand,
.github-edit-wrap,
#navbar-search {
margin-right: 3px;
}
}
@media (max-width: 991px) {
#main_content_wrapper {