mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-17 10:15:50 +00:00
Merge pull request #319 from mDuo13/doc1308_2
Update dev portal styles and page categories
This commit is contained in:
@@ -10,11 +10,8 @@
|
||||
display:table-cell;
|
||||
}
|
||||
#command_list {
|
||||
display:table-cell;
|
||||
list-style-type:none;
|
||||
padding:36px 0 0 0;
|
||||
margin:0;
|
||||
height:100%;
|
||||
padding:0 0 0 0;
|
||||
}
|
||||
|
||||
aside.sidebar {
|
||||
@@ -40,37 +37,6 @@ aside.sidebar {
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#command_table {
|
||||
height:100%;
|
||||
}
|
||||
#io_wrapper {
|
||||
float:right;
|
||||
display:table;
|
||||
height:500px;
|
||||
padding:0;
|
||||
table-layout:fixed;
|
||||
border-spacing:24px 0;
|
||||
width:96%;
|
||||
height: 100%;
|
||||
margin-top: 30px;
|
||||
}
|
||||
#io_wrapper > div {
|
||||
width:100%;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
#response, #response_body {
|
||||
min-height:100px;
|
||||
border-top-left-radius:0px !important;
|
||||
border-top-right-radius:0px !important;
|
||||
}
|
||||
#input {
|
||||
width: 30%;
|
||||
}
|
||||
#output {
|
||||
width: 60%;
|
||||
}
|
||||
h3 {
|
||||
margin:16px 0;
|
||||
font-family:'open sans';
|
||||
@@ -149,7 +115,6 @@ h3 {
|
||||
cursor:pointer;
|
||||
}
|
||||
#online_state {
|
||||
position:absolute;
|
||||
top:10px;
|
||||
line-height:30px;
|
||||
font-size:14px;
|
||||
@@ -378,8 +343,7 @@ span.cm-atom {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
#rest_url div label,
|
||||
#rest_url div label,
|
||||
#rest_url div input {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
.no-sidebar aside.sidebar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.devportal-callout {
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
@@ -65,14 +69,18 @@
|
||||
.draft-warning {
|
||||
background-color: red;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
padding: 2px 6px;
|
||||
margin: 10px;
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
left: calc(calc(calc(100% - 1070px) / 2) + 90px);
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Images should occupy the full main column width if possible */
|
||||
.page-template-template-dev-portal-php .content img {
|
||||
width: 100%;
|
||||
/* Images should not exceed the main column */
|
||||
.content img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@@ -81,24 +89,54 @@
|
||||
width: initial;
|
||||
}
|
||||
|
||||
/* dev portal content h5 should stand out from paragraph text */
|
||||
.content h5 {
|
||||
font-weight: bold;
|
||||
.no-1st-head h1:first-child,
|
||||
.no-1st-head h2:first-child,
|
||||
.no-1st-head h3:first-child,
|
||||
.no-1st-head h4:first-child,
|
||||
.no-1st-head h5:first-child,
|
||||
.no-1st-head h6:first-child {
|
||||
display: none;
|
||||
}
|
||||
.content p {
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
/* Underline links in Dev Portal content */
|
||||
.page-template-template-dev-portal-php .main a {
|
||||
text-decoration: underline !important;
|
||||
.content h1 {
|
||||
margin-top: 32px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.content h2 {
|
||||
margin-top: 28px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.content h3 {
|
||||
margin-top: 24px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.content h4 {
|
||||
margin-top: 20px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.content h5 {
|
||||
margin-top: 16px;
|
||||
line-height: 1.2;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content h6 {
|
||||
margin-top: 12px
|
||||
line-height: 1.2;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* "Button-style" links should look like buttons, not links */
|
||||
.page-template-template-dev-portal-php a.button {
|
||||
a.button {
|
||||
cursor: pointer;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
/* Code Tabs stuff */
|
||||
.page-template-template-dev-portal-php .multicode {
|
||||
.multicode {
|
||||
color: #000;
|
||||
margin: 12px 0px 0px 0px;
|
||||
padding: 0 0 0 0;
|
||||
@@ -106,15 +144,15 @@
|
||||
padding-left: 10px;
|
||||
position: relative;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode ul {
|
||||
.multicode ul {
|
||||
margin: 0 !important;
|
||||
padding: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode pre {
|
||||
.multicode pre {
|
||||
padding-top: 0;
|
||||
clear: both;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode li {
|
||||
.multicode li {
|
||||
display: block;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
@@ -122,12 +160,12 @@
|
||||
margin-right: 5px;
|
||||
border-top: 1px solid #DBDDE2;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode ul > li:before {
|
||||
.multicode ul > li:before {
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode a,
|
||||
.page-template-template-dev-portal-php a.current {
|
||||
.multicode a,
|
||||
a.current {
|
||||
color: black;
|
||||
background: #DFE2E7;
|
||||
border: 1px solid #DBDDE2;
|
||||
@@ -135,18 +173,18 @@
|
||||
margin: 0px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode a.current {
|
||||
.multicode a.current {
|
||||
background: #fff;
|
||||
border-bottom: 1px solid #fff;
|
||||
color: black;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode a:hover {
|
||||
.multicode a:hover {
|
||||
color: black;
|
||||
background: white;
|
||||
}
|
||||
/* End of code tabs stuff */
|
||||
|
||||
.page-template-template-dev-portal-php .button {
|
||||
.button {
|
||||
border-radius: 5px;
|
||||
background-color: #27a2db;
|
||||
padding: 5px 20px;
|
||||
@@ -164,297 +202,129 @@
|
||||
-webkit-transition: .5s;
|
||||
transition: .5s;
|
||||
}
|
||||
.page-template-template-dev-portal-php .button:hover {
|
||||
.button:hover {
|
||||
background-color: #43bded;
|
||||
-o-transition: .5s;
|
||||
-webkit-transition: .5s;
|
||||
transition: .5s;
|
||||
}
|
||||
.page-template-template-dev-portal-php pre {
|
||||
pre {
|
||||
overflow: visible;
|
||||
word-wrap: normal;
|
||||
}
|
||||
.page-template-template-dev-portal-php pre code {
|
||||
pre code {
|
||||
white-space: pre;
|
||||
}
|
||||
.page-template-template-dev-portal-php .code_sample pre {
|
||||
.code_sample pre {
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .code_sample pre code {
|
||||
.code_sample pre code {
|
||||
overflow: auto;
|
||||
max-height: 14em;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .code_sample pre code.expanded {
|
||||
.code_sample pre code.expanded {
|
||||
overflow: visible;
|
||||
max-height: none;
|
||||
position: absolute;
|
||||
min-width: 661px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .code_sample .code_toggler {
|
||||
.code_sample .code_toggler {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .navbar-default {
|
||||
border-bottom: none;
|
||||
.xrp-ledger-dev-portal.sidebar-primary .sidebar {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .wrap.container {
|
||||
margin-top: 110px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main {
|
||||
.xrp-ledger-dev-portal.sidebar-primary .main {
|
||||
z-index: 5;
|
||||
border-left: 1px solid #cccccc;
|
||||
padding-left: 40px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .content {
|
||||
.content {
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-1 {
|
||||
margin: 10px 0 3px 0;
|
||||
text-transform: uppercase;
|
||||
#dactyl_toc_sidebar a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-1 a {
|
||||
color: #000000;
|
||||
font-family: 'open_sansbold', sans-serif;
|
||||
letter-spacing: .04em;
|
||||
#dactyl_toc_sidebar a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-2 {
|
||||
margin-left: 2em;
|
||||
.level-1 {
|
||||
margin-top: 15px;
|
||||
padding-left: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-3 {
|
||||
margin-left: 4em;
|
||||
.level-1:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-3 a {
|
||||
color: #999999;
|
||||
.level-2 {
|
||||
padding-left: 30px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-3 a:hover {
|
||||
color: #666;
|
||||
.level-3 {
|
||||
padding-left: 45px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .dev_nav_sidebar {
|
||||
padding-left: 5px;
|
||||
.level-3 a {
|
||||
color: #888;
|
||||
}
|
||||
.level-3 a:hover {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.dev_nav_sidebar {
|
||||
padding-left: 10px;
|
||||
padding-top: 0;
|
||||
list-style-type: none;
|
||||
max-width: 370px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper {
|
||||
.dev_nav_sidebar li:before {
|
||||
content: "\f105"; /* fontawesome angle-right */
|
||||
font-family: FontAwesome;
|
||||
position: relative;
|
||||
left: -15px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
|
||||
.dev_nav_wrapper {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
overflow-y: scroll;
|
||||
top: 130px;
|
||||
}
|
||||
.page-template-template-dev-portal-php td {
|
||||
td {
|
||||
border: 1px solid #dbdde2;
|
||||
padding: 0.2em;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
.page-template-template-dev-portal-php th {
|
||||
th {
|
||||
padding: 0.2em;
|
||||
}
|
||||
.page-template-template-dev-portal-php .content a[title="Source"] {
|
||||
.content a[title="Source"] {
|
||||
float: right;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.page-template-template-dev-portal-php .content table {
|
||||
.content table {
|
||||
clear: right;
|
||||
}
|
||||
.page-template-template-dev-portal-php h1:before,
|
||||
.page-template-template-dev-portal-php h2:before,
|
||||
.page-template-template-dev-portal-php h3:before {
|
||||
.main h1:before,
|
||||
.main h2:before,
|
||||
.main h3:before,
|
||||
.main h4:before,
|
||||
.main h5:before,
|
||||
.main h6:before,
|
||||
#main_content_wrapper:before {
|
||||
display: block;
|
||||
content: " ";
|
||||
margin-top: -130px;
|
||||
height: 130px;
|
||||
margin-top: -67px;
|
||||
height: 67px;
|
||||
visibility: hidden;
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper {
|
||||
max-width: 290px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 992px) {
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper {
|
||||
max-width: 230px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper,
|
||||
.page-template-template-dev-portal-php .sidebar {
|
||||
display: block;
|
||||
clear: both;
|
||||
overflow-y: inherit;
|
||||
position: static;
|
||||
max-width: 100%;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main {
|
||||
position: static;
|
||||
clear: both;
|
||||
border-left: none;
|
||||
padding-left: 0px;
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.page-template-template-dev-portal-php .main {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.page-template-template-dev-portal-php html {
|
||||
overflow-x: hidden !important;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
.page-template-template-dev-portal-php {
|
||||
/* undo code tabs */
|
||||
/* wrap code, not scroll */
|
||||
/* Source URLs are too big to float */
|
||||
/* Show URLs after links - even for anchors */
|
||||
/* Drop header, footer, google translate */
|
||||
/* table of contents can't scroll */
|
||||
/* better margins on main content */
|
||||
/* crazy print-section-numbering idea */
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode > div {
|
||||
display: block !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode > ul {
|
||||
display: none !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode > em,
|
||||
.page-template-template-dev-portal-php .multicode > p > em {
|
||||
display: block !important;
|
||||
page-break-after: avoid;
|
||||
}
|
||||
.page-template-template-dev-portal-php .multicode > p {
|
||||
display: block !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php pre {
|
||||
white-space: pre-wrap;
|
||||
max-height: none !important;
|
||||
overflow: visible;
|
||||
page-break-inside: auto;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.page-template-template-dev-portal-php pre code {
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .content a[title="Source"] {
|
||||
float: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main a:after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
.page-template-template-dev-portal-php header,
|
||||
.page-template-template-dev-portal-php footer {
|
||||
display: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php #goog-gt-tt {
|
||||
display: none;
|
||||
}
|
||||
.page-template-template-dev-portal-php .wrap.container {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper {
|
||||
position: static !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .sidebar:before {
|
||||
display: none !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .sidebar {
|
||||
padding-top: 0 !important;
|
||||
display: block !important;
|
||||
float: none !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php h1 {
|
||||
page-break-before: always;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main {
|
||||
float: none !important;
|
||||
width: 85% !important;
|
||||
border-left: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
display: block !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main {
|
||||
counter-reset: level1;
|
||||
counter-reset: level2;
|
||||
counter-reset: level3;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main h1 {
|
||||
counter-increment: level1;
|
||||
counter-reset: level2;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main h1:before {
|
||||
content: counter(level1) ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
visibility: visible !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main h2 {
|
||||
counter-reset: level3;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main h2:before {
|
||||
counter-increment: level2;
|
||||
content: counter(level1) "." counter(level2) ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
visibility: visible !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .main h3:before {
|
||||
counter-increment: level3;
|
||||
content: counter(level1) "." counter(level2) "." counter(level3) ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
visibility: visible !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .menubar,
|
||||
.page-template-template-dev-portal-php .dev_nav_wrapper {
|
||||
counter-reset: toclevel1;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-1 {
|
||||
counter-reset: toclevel2;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-1:before {
|
||||
counter-increment: toclevel1;
|
||||
content: counters(toclevel1, ".") ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-2 {
|
||||
counter-reset: toclevel3;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-2:before {
|
||||
counter-increment: toclevel2;
|
||||
content: counters(toclevel1, ".") "." counters(toclevel2, ".") ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.page-template-template-dev-portal-php .level-3:before {
|
||||
counter-increment: toclevel3;
|
||||
content: counters(toclevel1, ".") "." counters(toclevel2, ".") "." counters(toclevel3, ".") ". " !important;
|
||||
display: inline !important;
|
||||
background: none !important;
|
||||
position: static !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*------------- Code Tabs -----------------------------------------*/
|
||||
.multicode {
|
||||
@@ -504,4 +374,482 @@
|
||||
background: white;
|
||||
}
|
||||
|
||||
.multicode a.current:hover {}
|
||||
.navbar-default {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #27a2db;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
text-decoration: none;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.navbar-default .logo {
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-brand .brand-text {
|
||||
font-family: open_sansbold, sans-serif;
|
||||
font-weight: bold;
|
||||
line-height: 36px;
|
||||
margin-bottom: -5px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.navbar-default a.active {
|
||||
color: #27a2db !important;
|
||||
}
|
||||
|
||||
.wrap-container {
|
||||
margin-top: 106px;
|
||||
}
|
||||
|
||||
.no-sidebar main .container {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#main_content_wrapper {
|
||||
margin-top: 67px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.jump-to-top {
|
||||
display: none;
|
||||
position: fixed;
|
||||
bottom: 15px;
|
||||
right: 30px;
|
||||
background-color: #333;
|
||||
font-weight: bolder;
|
||||
z-index: 1000;
|
||||
color: white;
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
.jump-to-top {
|
||||
bottom: 40px;
|
||||
right: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
margin: 0;
|
||||
padding: 15px;
|
||||
padding-left: 5px;
|
||||
background: transparent;
|
||||
float: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.breadcrumb li {
|
||||
margin: 0;
|
||||
margin-bottom: -4px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.breadcrumb > li + li:before {
|
||||
content: "\f105"; /* fontawesome angle-right */
|
||||
font-family: FontAwesome;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.breadcrumb > li.active {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* "← Back to guide" link in sidebar */
|
||||
.back_to_guide a {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
padding: 27px 0 14px 15px;
|
||||
color: #666;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.back_to_guide a:before {
|
||||
content: "\f100"; /* fontawesome angle-double-left */
|
||||
font-family: FontAwesome;
|
||||
padding-right: 15px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* Accordion styling for sidebar navigation */
|
||||
.sidebar_cat_pagelist {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#sidenav_accordion a {
|
||||
text-decoration: none;
|
||||
}
|
||||
#sidenav_accordion .panel-body a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel + .panel {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-default {
|
||||
border-width: 0;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#sidenav_accordion .collapse {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel.active {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
#sidenav_accordion .panel:hover {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-heading {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel {
|
||||
padding: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-heading h5 {
|
||||
margin-bottom: 0;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-heading h5 a {
|
||||
display: block;
|
||||
padding: 16px 15px;
|
||||
font-family: "open_sansregular", sans-serif;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel-heading a:before {
|
||||
content: "\f106"; /* fontawesome angle-up */
|
||||
font-family: FontAwesome;
|
||||
margin-left: -20px;
|
||||
padding-right: 5px;
|
||||
float: right;
|
||||
}
|
||||
#sidenav_accordion .panel-heading a.collapsed:before {
|
||||
content: "\f107"; /* fontawesome angle-down */
|
||||
}
|
||||
|
||||
|
||||
#sidenav_accordion .panel .sidebar_cat_pagelist li a {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
padding: 4px 15px 4px 55px;
|
||||
text-indent: -20px;
|
||||
font-size: 14px;
|
||||
color: #27a2db;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel .sidebar_cat_pagelist a.active {
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sidenav_accordion .panel .sidebar_cat_pagelist a:hover {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* Edit on GitHub link --------- */
|
||||
.github-edit-wrap {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
background-image: linear-gradient(180deg, #fafafa 0%, #ddd 90%);
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
margin: 15px;
|
||||
}
|
||||
.github-edit-wrap:hover {
|
||||
border-color: #777;
|
||||
}
|
||||
.github-edit-wrap:active {
|
||||
background-image: linear-gradient(180deg, #ddd 0%, #fafafa 90%);
|
||||
}
|
||||
.github-edit-wrap .github-edit {
|
||||
/* background-color: black; */
|
||||
background-image: url(../vendor/github-marks/GitHub-Mark-32px.png);
|
||||
background-size: 24px 24px;
|
||||
background-position: left 5px center;
|
||||
background-repeat: no-repeat;
|
||||
padding: 8px 8px 8px 34px;
|
||||
color: #777;
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.portal-index ul {
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.portal-index li {
|
||||
font-size: 14px;
|
||||
list-style: outside none none;
|
||||
padding: 5px;
|
||||
padding-left: 25px;
|
||||
text-indent: 20px;
|
||||
}
|
||||
|
||||
.portal-index li.top {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.portal-index .dev_heading {
|
||||
font-family: "Open Sans",sans-serif;
|
||||
letter-spacing: 0.04em;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
color: #202020;
|
||||
}
|
||||
.portal-index a.dev_heading:hover {
|
||||
color: #27a2db;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.build-disclaimer {
|
||||
font-size: 10pt;
|
||||
margin: 2em 0;
|
||||
padding-top: 2em;
|
||||
border-top: 1px solid #777;
|
||||
}
|
||||
|
||||
.related-projects {
|
||||
position: absolute;
|
||||
top: 70px;
|
||||
right: 15px;
|
||||
width: 375px;
|
||||
border: 1px solid #777;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.related-projects a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.related-projects .project {
|
||||
clear: left;
|
||||
}
|
||||
.related-projects h3 {
|
||||
margin: 0;
|
||||
padding: 5px 15px;
|
||||
border-bottom: 1px dashed #777;
|
||||
}
|
||||
.related-projects .project-name {
|
||||
font-family: open_sanslight, sans-serif;
|
||||
font-size: 18px;
|
||||
display: block;
|
||||
}
|
||||
.related-projects .login-required {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
.related-projects p {
|
||||
margin: 10px;
|
||||
}
|
||||
.related-projects .project-icon {
|
||||
width: 120px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Responsive design for different viewscreens -------------------------------*/
|
||||
@media (min-width: 1200px) {
|
||||
#page-toc-wrapper {
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
}
|
||||
.draft-warning {
|
||||
left: calc(calc(calc(100% - 1170px) / 2) + 140px);
|
||||
}
|
||||
}
|
||||
@media (min-width: 1400px) {
|
||||
.container {
|
||||
margin-right: calc(calc(calc(100% - 1370px) / 2) + 195px);
|
||||
}
|
||||
#page-toc-wrapper {
|
||||
position: fixed;
|
||||
right: 10px;
|
||||
top: 80px;
|
||||
max-width: calc(75% - 970px);
|
||||
max-height: calc(100% - 150px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
.draft-warning {
|
||||
left: calc(calc(calc(100% - 1370px) / 2) + 140px);
|
||||
}
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
#page-toc-wrapper {
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
}
|
||||
.dev_nav_wrapper {
|
||||
max-width: 290px;
|
||||
}
|
||||
.draft-warning {
|
||||
left: calc(calc(calc(100% - 870px) / 2) + 90px);
|
||||
}
|
||||
|
||||
}
|
||||
@media (max-width: 992px) {
|
||||
#page-toc-wrapper {
|
||||
position: static;
|
||||
float: none;
|
||||
max-width: none;
|
||||
}
|
||||
.dev_nav_wrapper {
|
||||
max-width: 230px;
|
||||
}
|
||||
.draft-warning {
|
||||
left: 140px;
|
||||
}
|
||||
|
||||
/* Move "Related Projects" to bottom */
|
||||
.related-projects {
|
||||
position: static;
|
||||
width: auto;
|
||||
border: none;
|
||||
margin-top: 0;
|
||||
}
|
||||
.related-projects .project-icon {
|
||||
display: none;
|
||||
}
|
||||
.related-projects h3 {
|
||||
padding: inherit;
|
||||
border-bottom: none;
|
||||
margin-top: 50px;
|
||||
}
|
||||
.related-projects .project-name,
|
||||
.related-projects .login-required {
|
||||
display: inline;
|
||||
font-size: inherit;
|
||||
}
|
||||
.related-projects p {
|
||||
margin-left: 25px;
|
||||
}
|
||||
.related-projects .project-summary {
|
||||
padding-left: 20px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
#main_content_wrapper {
|
||||
margin-top: 0;
|
||||
}
|
||||
.navbar-fixed-top {
|
||||
position: static;
|
||||
margin-bottom: -70px;
|
||||
}
|
||||
.dev_nav_wrapper,
|
||||
.sidebar {
|
||||
display: block;
|
||||
clear: both;
|
||||
overflow-y: inherit;
|
||||
position: static;
|
||||
max-width: 100%;
|
||||
}
|
||||
.main {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
}
|
||||
.github-edit-wrap {
|
||||
display: none;
|
||||
}
|
||||
.nav {
|
||||
min-width: 350px;
|
||||
}
|
||||
.nav .breadcrumb .crumb-top:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
html {
|
||||
overflow-x: hidden !important;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
{
|
||||
/* undo code tabs */
|
||||
/* wrap code, not scroll */
|
||||
/* Source URLs are too big to float */
|
||||
/* Show URLs after links - even for anchors */
|
||||
/* Drop header, footer, google translate */
|
||||
/* table of contents can't scroll */
|
||||
/* better margins on main content */
|
||||
/* crazy print-section-numbering idea */
|
||||
}
|
||||
.multicode > div {
|
||||
display: block !important;
|
||||
}
|
||||
.multicode > ul {
|
||||
display: none !important;
|
||||
}
|
||||
.multicode > em,
|
||||
.multicode > p > em {
|
||||
display: block !important;
|
||||
page-break-after: avoid;
|
||||
}
|
||||
.multicode > p {
|
||||
display: block !important;
|
||||
}
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
max-height: none !important;
|
||||
overflow: visible;
|
||||
page-break-inside: auto;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
pre code {
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
.content a[title="Source"] {
|
||||
float: none;
|
||||
}
|
||||
header,
|
||||
footer {
|
||||
display: none;
|
||||
}
|
||||
#goog-gt-tt {
|
||||
display: none;
|
||||
}
|
||||
.dev_nav_wrapper {
|
||||
position: static !important;
|
||||
}
|
||||
.sidebar:before {
|
||||
display: none !important;
|
||||
}
|
||||
.sidebar {
|
||||
padding-top: 0 !important;
|
||||
display: block !important;
|
||||
float: none !important;
|
||||
}
|
||||
h1 {
|
||||
page-break-before: always;
|
||||
}
|
||||
.main {
|
||||
float: none !important;
|
||||
width: 85% !important;
|
||||
border-left: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
display: block !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
.page-template-template-dev-portal-php .main {
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
/************
|
||||
jumbotron
|
||||
*********** */
|
||||
|
||||
.jumbotron {
|
||||
margin-top: 50px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.jumbotron p {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.main_callout {
|
||||
padding-top:10px;
|
||||
}
|
||||
|
||||
.join {
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
|
||||
img.large_logo {
|
||||
padding: 10px 20px 10px 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.jumbotron p.api_btn {
|
||||
/* text-align: center;
|
||||
padding: 20px;*/
|
||||
}
|
||||
|
||||
.jumbotron h4 {
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
|
||||
.jumbotron .col-md-6 {
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/************
|
||||
Main content
|
||||
*********** */
|
||||
|
||||
.main_title {
|
||||
font-size: 30px;
|
||||
font-weight: 300;
|
||||
margin-top:10px;
|
||||
}
|
||||
|
||||
.description h2{
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
margin: 20px 0 15px 0;
|
||||
}
|
||||
|
||||
.build-index .top {
|
||||
background: #f4f6f7 none repeat scroll 0 0;
|
||||
}
|
||||
|
||||
.build-index ul {
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.build-index ul li {
|
||||
border: 1px solid #ccc;
|
||||
border-top-width: 0;
|
||||
font-size: 14px;
|
||||
list-style: outside none none;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.build-index ul li.top {
|
||||
border-top-width: 1px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.build-index .dev_heading {
|
||||
font-family: "Open Sans",sans-serif;
|
||||
letter-spacing: 0.04em;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.last {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.description.highlight {
|
||||
background: #f5f5f5;
|
||||
padding-bottom: 15px;
|
||||
margin: 22px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.description.highlight {
|
||||
padding-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +14,3 @@ a[href^="#"]:after {
|
||||
background: transparent;
|
||||
box-decoration-break: slice;
|
||||
}
|
||||
|
||||
/* Disable header numbering */
|
||||
.page-template-template-dev-portal.page-template-template-dev-portal-php h1:before,
|
||||
.page-template-template-dev-portal.page-template-template-dev-portal-php h2:before,
|
||||
.page-template-template-dev-portal.page-template-template-dev-portal-php h3:before {
|
||||
content: none !important;
|
||||
}
|
||||
|
||||
@@ -286,13 +286,11 @@ textarea {
|
||||
line-height: inherit;
|
||||
}
|
||||
a {
|
||||
color: #346aa9;
|
||||
text-decoration: none !important;
|
||||
color: #27a2db;
|
||||
}
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: #22456e;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
@@ -529,7 +527,7 @@ mark,
|
||||
color: #777777;
|
||||
}
|
||||
.text-primary {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
}
|
||||
a.text-primary:hover {
|
||||
color: #285282;
|
||||
@@ -560,7 +558,7 @@ a.text-danger:hover {
|
||||
}
|
||||
.bg-primary {
|
||||
color: #fff;
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
}
|
||||
a.bg-primary:hover {
|
||||
background-color: #285282;
|
||||
@@ -2184,7 +2182,7 @@ fieldset[disabled] .btn-default.active {
|
||||
}
|
||||
.btn-primary {
|
||||
color: #ffffff;
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
border-color: #2e5e96;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
@@ -2216,11 +2214,11 @@ fieldset[disabled] .btn-primary:active,
|
||||
.btn-primary.disabled.active,
|
||||
.btn-primary[disabled].active,
|
||||
fieldset[disabled] .btn-primary.active {
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
border-color: #2e5e96;
|
||||
}
|
||||
.btn-primary .badge {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.btn-success {
|
||||
@@ -2388,7 +2386,7 @@ fieldset[disabled] .btn-danger.active {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.btn-link {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
border-radius: 0;
|
||||
@@ -2539,12 +2537,12 @@ tbody.collapse.in {
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
text-decoration: none;
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
}
|
||||
.dropdown-menu > .active > a,
|
||||
.dropdown-menu > .active > a:hover,
|
||||
.dropdown-menu > .active > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
}
|
||||
@@ -2975,7 +2973,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
|
||||
.nav .open > a:hover,
|
||||
.nav .open > a:focus {
|
||||
background-color: #eeeeee;
|
||||
border-color: #346aa9;
|
||||
border-color: #27a2db;
|
||||
}
|
||||
.nav .nav-divider {
|
||||
height: 1px;
|
||||
@@ -3068,7 +3066,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
|
||||
.nav-pills > li.active > a:hover,
|
||||
.nav-pills > li.active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
}
|
||||
.nav-stacked > li {
|
||||
float: none;
|
||||
@@ -3191,7 +3189,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
|
||||
.container-fluid > .navbar-header,
|
||||
.container > .navbar-collapse,
|
||||
.container-fluid > .navbar-collapse {
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
@@ -3482,7 +3479,7 @@ ul#menu-primary-navigation {
|
||||
.home .navbar-default .navbar-nav > .active > a,
|
||||
.home .navbar-default .navbar-nav > .active > a:hover,
|
||||
.home .navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.home .navbar-default .navbar-nav > .disabled > a,
|
||||
@@ -3555,7 +3552,7 @@ fieldset[disabled] .home .navbar-default .btn-link:focus {
|
||||
.navbar-default {
|
||||
z-index: 99999;
|
||||
background-color: #ffffff;
|
||||
border-bottom: 1px solid #346aa9;
|
||||
border-bottom: 1px solid #27a2db;
|
||||
}
|
||||
.navbar-default .navbar-brand {
|
||||
color: #777777;
|
||||
@@ -3573,13 +3570,13 @@ fieldset[disabled] .home .navbar-default .btn-link:focus {
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a:hover,
|
||||
.navbar-default .navbar-nav > li > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-nav > .disabled > a,
|
||||
@@ -3596,7 +3593,7 @@ fieldset[disabled] .home .navbar-default .btn-link:focus {
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-toggle .icon-bar {
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
}
|
||||
.navbar-default .navbar-collapse,
|
||||
.navbar-default .navbar-form {
|
||||
@@ -3652,7 +3649,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
|
||||
.navbar-default.scrolled {
|
||||
z-index: 99999;
|
||||
background-color: #ffffff !important;
|
||||
border-bottom: 1px solid #346aa9;
|
||||
border-bottom: 1px solid #27a2db;
|
||||
-o-transition: .3s;
|
||||
-ms-transition: .3s;
|
||||
-moz-transition: .3s;
|
||||
@@ -3680,7 +3677,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
|
||||
}
|
||||
.navbar-default.scrolled .navbar-nav > li > a:hover,
|
||||
.navbar-default.scrolled .navbar-nav > li > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: transparent;
|
||||
-o-transition: 1s;
|
||||
-ms-transition: 1s;
|
||||
@@ -3691,7 +3688,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
|
||||
.navbar-default.scrolled .navbar-nav > .active > a,
|
||||
.navbar-default.scrolled .navbar-nav > .active > a:hover,
|
||||
.navbar-default.scrolled .navbar-nav > .active > a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.navbar-default.scrolled .navbar-nav > .disabled > a,
|
||||
@@ -3705,7 +3702,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default.scrolled .navbar-toggle .icon-bar {
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
}
|
||||
.navbar-default.scrolled .navbar-collapse,
|
||||
.navbar-default.scrolled .navbar-form {
|
||||
@@ -3894,7 +3891,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
|
||||
padding: 6px 12px;
|
||||
line-height: 1.42857143;
|
||||
text-decoration: none;
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #dddddd;
|
||||
margin-left: -1px;
|
||||
@@ -3926,8 +3923,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
|
||||
.pagination > .active > span:focus {
|
||||
z-index: 2;
|
||||
color: #ffffff;
|
||||
background-color: #346aa9;
|
||||
border-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
border-color: #27a2db;
|
||||
cursor: default;
|
||||
}
|
||||
.pagination > .disabled > span,
|
||||
@@ -4043,7 +4040,7 @@ a.label:focus {
|
||||
background-color: #5e5e5e;
|
||||
}
|
||||
.label-primary {
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
}
|
||||
.label-primary[href]:hover,
|
||||
.label-primary[href]:focus {
|
||||
@@ -4110,7 +4107,7 @@ a.badge:focus {
|
||||
}
|
||||
a.list-group-item.active > .badge,
|
||||
.nav-pills > .active > a > .badge {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.nav-pills > li > a > .badge {
|
||||
@@ -4174,7 +4171,7 @@ a.list-group-item.active > .badge,
|
||||
a.thumbnail:hover,
|
||||
a.thumbnail:focus,
|
||||
a.thumbnail.active {
|
||||
border-color: #346aa9;
|
||||
border-color: #27a2db;
|
||||
}
|
||||
.thumbnail .caption {
|
||||
padding: 9px;
|
||||
@@ -4288,7 +4285,7 @@ a.thumbnail.active {
|
||||
line-height: 20px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
background-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-webkit-transition: width 0.6s ease;
|
||||
@@ -4439,8 +4436,8 @@ a.list-group-item:focus {
|
||||
.list-group-item.active:focus {
|
||||
z-index: 2;
|
||||
color: #ffffff;
|
||||
background-color: #346aa9;
|
||||
border-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
border-color: #27a2db;
|
||||
}
|
||||
.list-group-item.active .list-group-item-heading,
|
||||
.list-group-item.active:hover .list-group-item-heading,
|
||||
@@ -4772,22 +4769,22 @@ a.list-group-item-danger.active:focus {
|
||||
border-bottom-color: #dddddd;
|
||||
}
|
||||
.panel-primary {
|
||||
border-color: #346aa9;
|
||||
border-color: #27a2db;
|
||||
}
|
||||
.panel-primary > .panel-heading {
|
||||
color: #ffffff;
|
||||
background-color: #346aa9;
|
||||
border-color: #346aa9;
|
||||
background-color: #27a2db;
|
||||
border-color: #27a2db;
|
||||
}
|
||||
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
|
||||
border-top-color: #346aa9;
|
||||
border-top-color: #27a2db;
|
||||
}
|
||||
.panel-primary > .panel-heading .badge {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
|
||||
border-bottom-color: #346aa9;
|
||||
border-bottom-color: #27a2db;
|
||||
}
|
||||
.panel-success {
|
||||
border-color: #d6e9c6;
|
||||
@@ -5560,9 +5557,6 @@ body {
|
||||
.main {
|
||||
background: #ffffff;
|
||||
}
|
||||
.sidebar-primary .wrap.container {
|
||||
margin: 100px auto;
|
||||
}
|
||||
section#comments,
|
||||
section#respond {
|
||||
visibility: hidden;
|
||||
@@ -5652,7 +5646,7 @@ Dev subnav
|
||||
.banner .dev_nav {
|
||||
background: #f4f6f7;
|
||||
padding: 5px;
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.banner .dev_nav li {
|
||||
@@ -5697,7 +5691,7 @@ Style subnav
|
||||
.style_nav {
|
||||
background: #f4f6f7;
|
||||
padding: 5px;
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.style_nav li {
|
||||
@@ -5717,7 +5711,7 @@ Company subnav
|
||||
.company_nav {
|
||||
background: #f4f6f7;
|
||||
padding: 5px;
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.company_nav li {
|
||||
@@ -5737,7 +5731,7 @@ News subnav
|
||||
.news_nav {
|
||||
background: #f4f6f7;
|
||||
padding: 5px;
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.news_nav li {
|
||||
@@ -5964,7 +5958,7 @@ i.fa.fa-share {
|
||||
display: none;
|
||||
}
|
||||
.scrolled .nav_x {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
}
|
||||
.white_x {
|
||||
display: none;
|
||||
@@ -5972,7 +5966,7 @@ i.fa.fa-share {
|
||||
.nav_x {
|
||||
margin-top: -4px;
|
||||
display: none;
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
width: 20px;
|
||||
}
|
||||
.page-header {
|
||||
@@ -6016,14 +6010,14 @@ img.ripple_stack {
|
||||
font-size: 21px;
|
||||
}
|
||||
.title_border hr {
|
||||
border-bottom: 1px solid #346aa9;
|
||||
border-bottom: 1px solid #27a2db;
|
||||
width: 100px;
|
||||
}
|
||||
.top_border_section {
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
.ripple_page_heading h3 hr {
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
width: 200px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
@@ -6352,7 +6346,7 @@ Thank You page
|
||||
}
|
||||
.error404 h1 {
|
||||
font-size: 48px;
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
}
|
||||
.error404 ul {
|
||||
list-style-type: none;
|
||||
@@ -6562,7 +6556,7 @@ Media Queries
|
||||
.dev_nav {
|
||||
background: #f4f6f7;
|
||||
padding: 5px;
|
||||
border-top: 1px solid #346aa9;
|
||||
border-top: 1px solid #27a2db;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.dev_nav li {
|
||||
@@ -6594,12 +6588,6 @@ Media Queries
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.sidebar {
|
||||
padding-top: 75px;
|
||||
padding-left: 30px !important;
|
||||
}
|
||||
}
|
||||
@media (max-width: 1024px) {
|
||||
.hidden-ipad {
|
||||
display: none !important;
|
||||
@@ -6613,55 +6601,7 @@ Media Queries
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
/*
|
||||
******************
|
||||
Transifex
|
||||
******************
|
||||
*/
|
||||
#translation {
|
||||
display: inline-block;
|
||||
}
|
||||
#tx-live-lang-toggle {
|
||||
display: none;
|
||||
}
|
||||
.txlive-langselector-list {
|
||||
position: absolute;
|
||||
margin: 50px 0 0 0 !important;
|
||||
padding: 0 !important;
|
||||
display: inline-block !important;
|
||||
background-color: transparent !important;
|
||||
box-shadow: none !important;
|
||||
color: #999999 !important;
|
||||
width: auto !important;
|
||||
top: 0 !important;
|
||||
left: 0;
|
||||
}
|
||||
.txlive-langselector-list > li {
|
||||
padding: 0 16px;
|
||||
display: inline-block !important;
|
||||
width: auto !important;
|
||||
-o-transition: .5s;
|
||||
-ms-transition: .5s;
|
||||
-moz-transition: 5s;
|
||||
-webkit-transition: .5s;
|
||||
transition: .5s;
|
||||
}
|
||||
.txlive-langselector-list > li:hover {
|
||||
background-color: transparent !important;
|
||||
-o-transition: .5s;
|
||||
-ms-transition: .5s;
|
||||
-moz-transition: 5s;
|
||||
-webkit-transition: .5s;
|
||||
transition: .5s;
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.txlive-langselector-list {
|
||||
position: relative !important;
|
||||
}
|
||||
.txlive-langselector-list > li {
|
||||
padding: 0 5px 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.aligncenter {
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
@@ -6710,7 +6650,7 @@ figure.alignnone {
|
||||
}
|
||||
}
|
||||
.banner .main_nav_wrapper {
|
||||
border-bottom: 1px solid #346aa9;
|
||||
border-bottom: 1px solid #27a2db;
|
||||
height: 60px;
|
||||
}
|
||||
.banner ul#menu-primary-navigation li:hover {
|
||||
@@ -6930,7 +6870,7 @@ figure.alignnone {
|
||||
}
|
||||
.content-info .absolute_bottom_footer .social-iconer a:hover,
|
||||
.content-info .absolute_bottom_footer .social-iconer a:focus {
|
||||
color: #346aa9;
|
||||
color: #27a2db;
|
||||
-o-transition: .5s;
|
||||
-ms-transition: .5s;
|
||||
-moz-transition: .5s;
|
||||
|
||||
935
assets/img/RippleNet-condensed.svg
Normal file
935
assets/img/RippleNet-condensed.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 60 KiB |
1
assets/img/ilp_logo.svg
Normal file
1
assets/img/ilp_logo.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 25 KiB |
@@ -17,6 +17,16 @@ var toggle_cs = function(eo) {
|
||||
$(eo.target).val(current_button_text == 'Expand' ? "Collapse" : "Expand");
|
||||
}
|
||||
|
||||
function has_scrollbars(e) {
|
||||
if ($(e).parents(".multicode").length > 0) {
|
||||
//TODO: figure out if we can detect scrollbars on non-default tabs of
|
||||
// multicode samples. For now, always consider multi-code sections to need
|
||||
// scrollbars.
|
||||
return true;
|
||||
}
|
||||
return (e.scrollHeight > e.clientHeight) || (e.scrollWidth > e.clientWidth);
|
||||
}
|
||||
|
||||
function make_code_expandable() {
|
||||
var newid = 0;
|
||||
$(".content > pre > code").parent().wrap(function() {
|
||||
@@ -24,14 +34,20 @@ function make_code_expandable() {
|
||||
return "<div class='code_sample' id='code_autoid_"+newid+"'>";
|
||||
});
|
||||
|
||||
var cs = $('.code_sample');
|
||||
cs.find("code").dblclick(toggle_cs);
|
||||
cs.find("code").attr('title', 'Double-click to expand/collapse');
|
||||
var newbtn = $("<input type='button' class='code_toggler' value='Expand' />");
|
||||
newbtn.appendTo(cs);
|
||||
var code_samples = $('.code_sample');
|
||||
code_samples.find("code").each(function() {
|
||||
let jqThis = $(this);
|
||||
if (has_scrollbars(this)) {
|
||||
jqThis.dblclick(toggle_cs);
|
||||
jqThis.attr('title', 'Double-click to expand/collapse');
|
||||
var newbtn = $("<input type='button' class='code_toggler' value='Expand' />");
|
||||
newbtn.appendTo(jqThis.parents(".code_sample"));
|
||||
}
|
||||
});
|
||||
|
||||
$(".code_toggler").click(toggle_cs);
|
||||
|
||||
|
||||
/* fix expand/collapse and tab click hierarchy */
|
||||
cs.css("position","relative");
|
||||
code_samples.css("position","relative");
|
||||
$(".multicode .code_sample").css("position","static");
|
||||
}
|
||||
|
||||
15
assets/js/jump-to-top.js
Normal file
15
assets/js/jump-to-top.js
Normal file
@@ -0,0 +1,15 @@
|
||||
$(document).ready(function() {
|
||||
var TO_TOP_MIN = 50;
|
||||
var TO_TOP_SPEED = 500;
|
||||
var TO_TOP_POS = 0;
|
||||
$(window).scroll(function () {
|
||||
if ($(this).scrollTop() > TO_TOP_MIN) {
|
||||
$('.jump-to-top').fadeIn();
|
||||
} else {
|
||||
$('.jump-to-top').fadeOut();
|
||||
}
|
||||
});
|
||||
$(".jump-to-top").click(function() {
|
||||
$("body").animate({scrollTop: TO_TOP_POS}, TO_TOP_SPEED)
|
||||
});
|
||||
});
|
||||
BIN
assets/vendor/github-marks/GitHub-Mark-32px.png
vendored
Normal file
BIN
assets/vendor/github-marks/GitHub-Mark-32px.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
@@ -80,7 +80,7 @@ The XRP Ledger allows an account to authorize a secondary key pair, called a _re
|
||||
|
||||
You generate a key pair to use as a regular key pair using the [`wallet_propose`](reference-rippled.html#wallet-propose) method. However, unlike with a [master key pair](#master-key-pair), which is generated alongside and intrinsically related to the `account_id` of an account it supports, you must explicitly create the relationship between a regular key pair and the account you want it to sign transactions for. You use the [`SetRegularKey`](reference-transaction-format.html#setregularkey) method to assign a regular key pair to an account.
|
||||
|
||||
For a tutorial on assigning a regular key pair, see [Working with a Regular Key Pair](working-regular-key-pair.html).
|
||||
For a tutorial on assigning a regular key pair, see [Working with a Regular Key Pair](tutorial-regular-keys.html).
|
||||
|
||||
After you assign a regular key pair to an account, the account has two key pairs associated with it:
|
||||
|
||||
@@ -91,7 +91,7 @@ You can assign one regular key pair to an account and use it to sign all transac
|
||||
|
||||
You can remove or change a regular key pair at any time. This means that if a regular private key is compromised (but the master private key is not), you can regain control of your account by simply removing or changing the regular key pair.
|
||||
|
||||
For a tutorial on changing or removing a regular key pair, see [Working with a Regular Key Pair](working-regular-key-pair.html).
|
||||
For a tutorial on changing or removing a regular key pair, see [Working with a Regular Key Pair](tutorial-regular-keys.html).
|
||||
|
||||
|
||||
## Signing Algorithms
|
||||
@@ -1,5 +1,4 @@
|
||||
Freeze Features
|
||||
===============
|
||||
# Freezing Issued Currencies
|
||||
|
||||
The XRP Ledger gives addresses the ability to freeze non-XRP balances, which can be useful to meet regulatory requirements, or while investigating suspicious activity. There are three settings related to freezes:
|
||||
|
||||
@@ -12,8 +11,7 @@ Because no party has a privileged place in the XRP Ledger, the freeze feature ca
|
||||
All freeze settings can be enacted regardless of whether the balance(s) to be frozen are positive or negative. Either the currency issuer or the currency holder can freeze a trust line; however, the effect of a currency holder freezing an issuer is minimal.
|
||||
|
||||
|
||||
Individual Freeze
|
||||
-----------------
|
||||
## Individual Freeze
|
||||
|
||||
The **Individual Freeze** feature is a setting on a trust line. When an issuing address enables the Individual Freeze setting, the following rules apply:
|
||||
|
||||
@@ -31,8 +29,7 @@ The Individual Freeze applies to a single currency only. To freeze multiple curr
|
||||
An address cannot enable the Individual Freeze setting if it has enabled the [No Freeze](#no-freeze) setting.
|
||||
|
||||
|
||||
Global Freeze
|
||||
-------------
|
||||
## Global Freeze
|
||||
|
||||
The **Global Freeze** feature is a setting on an address. When an issuing address enables the Global Freeze feature, the following rules apply:
|
||||
|
||||
@@ -49,8 +46,7 @@ Global Freeze applies to _all_ currencies issued and held by the address. You ca
|
||||
An address can always enable the Global Freeze setting. However, if the address has enabled the [No Freeze](#no-freeze) setting, it can never _disable_ Global Freeze.
|
||||
|
||||
|
||||
No Freeze
|
||||
---------
|
||||
## No Freeze
|
||||
|
||||
The **No Freeze** feature is a setting on an address that permanently gives up the ability to freeze counterparties. A business can use this feature to treat its issued funds as "more like physical money" in the sense that the business cannot interfere with customers trading it among themselves. The NoFreeze setting has two effects:
|
||||
|
||||
@@ -64,11 +60,11 @@ The No Freeze setting applies to all currencies issued to and from an address. I
|
||||
You can only enable the No Freeze setting with a transaction signed by your address's master key secret. You cannot use a [Regular Key](reference-transaction-format.html#setregularkey) or a [multi-signed transaction](reference-transaction-format.html#multi-signing) to enable No Freeze.
|
||||
|
||||
|
||||
# Technical Details #
|
||||
# Technical Details
|
||||
|
||||
## Enabling or Disabling Individual Freeze ##
|
||||
## Enabling or Disabling Individual Freeze
|
||||
|
||||
### Using `rippled` ###
|
||||
### Using `rippled`
|
||||
|
||||
To enable or disable Individual Freeze on a specific trust line, send a `TrustSet` transaction. Use the [`tfSetFreeze` flag](reference-transaction-format.html#trustset-flags) to enable a freeze, and the `tfClearFreeze` flag to disable it. The fields of the transaction should be as follows:
|
||||
|
||||
@@ -112,7 +108,7 @@ Example of submitting a TrustSet transaction to enable an individual freeze usin
|
||||
**Caution:** Never send your secret key to an untrusted server or over an insecure channel.
|
||||
|
||||
|
||||
### Using RippleAPI ###
|
||||
### Using RippleAPI
|
||||
|
||||
To enable or disable Individual Freeze on a specific trust line, prepare a *Trustline* transaction using the [prepareTrustline](reference-rippleapi.html#preparetrustline) method. The fields of the `trustline` parameter should be set as follows:
|
||||
|
||||
@@ -132,9 +128,9 @@ Example JavaScript (ECMAScript 6) code to enable Individual Freeze on a trust li
|
||||
```
|
||||
|
||||
|
||||
## Enabling or Disabling Global Freeze ##
|
||||
## Enabling or Disabling Global Freeze
|
||||
|
||||
### Using `rippled` ###
|
||||
### Using `rippled`
|
||||
|
||||
To enable Global Freeze on an address, send an `AccountSet` transaction with the [asfGlobalFreeze flag value](reference-transaction-format.html#accountset-flags) in the `SetFlag` field. To disable Global Freeze, put the asfGlobalFreeze flag value in the `ClearFlag` field instead.
|
||||
|
||||
@@ -162,7 +158,7 @@ Example of submitting an AccountSet transaction to enable Global Freeze using th
|
||||
**Caution:** Never send your secret key to an untrusted server or over an insecure channel.
|
||||
|
||||
|
||||
### Using RippleAPI ###
|
||||
### Using RippleAPI
|
||||
|
||||
To enable or disable Global Freeze on an address, prepare a **Settings** transaction using the [prepareSettings](reference-rippleapi.html#preparesettings) method. The `settings` parameter should be an object set as follows:
|
||||
|
||||
@@ -180,9 +176,9 @@ Example JavaScript (ECMAScript 6) code to enable Global Freeze on an address:
|
||||
|
||||
|
||||
|
||||
## Enabling No Freeze ##
|
||||
## Enabling No Freeze
|
||||
|
||||
### Using `rippled` ###
|
||||
### Using `rippled`
|
||||
|
||||
To enable No Freeze on an address, send an `AccountSet` transaction with the [asfNoFreeze flag value](reference-transaction-format.html#accountset-flags) in the `SetFlag` field. You must sign this transaction using the master key. Once enabled, you cannot disable No Freeze.
|
||||
|
||||
@@ -211,7 +207,7 @@ WebSocket request:
|
||||
|
||||
**Caution:** Never send your secret key to an untrusted server or over an insecure channel.
|
||||
|
||||
### Using RippleAPI ###
|
||||
### Using RippleAPI
|
||||
|
||||
To enable No Freeze on an address, prepare a **Settings** transaction using the [prepareSettings](reference-rippleapi.html#preparesettings) method. Once enabled, you cannot disable No Freeze. The `settings` parameter should be an object set as follows:
|
||||
|
||||
@@ -228,9 +224,9 @@ Example JavaScript (ECMAScript 6) code to enable No Freeze on an address:
|
||||
```
|
||||
|
||||
|
||||
## Checking for Individual Freeze ##
|
||||
## Checking for Individual Freeze
|
||||
|
||||
### Using `rippled` ###
|
||||
### Using `rippled`
|
||||
|
||||
To see if a trust line has an Individual Freeze enabled, use the [`account_lines` method](reference-rippled.html#account-lines) with the following parameters:
|
||||
|
||||
@@ -288,7 +284,7 @@ Example WebSocket response:
|
||||
The field `"freeze": true` indicates that rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn has enabled Individual Freeze on the USD trust line to rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW. The lack of a field `"freeze_peer": true` indicates that the counterparty has _not_ frozen the trust line.
|
||||
|
||||
|
||||
### Using RippleAPI ###
|
||||
### Using RippleAPI
|
||||
|
||||
To see if a trust line has an Individual Freeze enabled, use the [`getTrustlines` method](reference-rippleapi.html#gettrustlines) with the following parameters:
|
||||
|
||||
@@ -311,9 +307,9 @@ Example JavaScript (ECMAScript 6) code to check whether a trust line is frozen:
|
||||
```
|
||||
|
||||
|
||||
## Checking for Global Freeze and No Freeze ##
|
||||
## Checking for Global Freeze and No Freeze
|
||||
|
||||
### Using `rippled` ###
|
||||
### Using `rippled`
|
||||
|
||||
To see if an address has enabled Global Freeze, No Freeze, or both, use the [`account_info` method](reference-rippled.html#account-lines) with the following parameters:
|
||||
|
||||
@@ -385,7 +381,7 @@ console.log(currentFlags & lsfNoFreeze); //0
|
||||
//therefore, No Freeze is not enabled
|
||||
```
|
||||
|
||||
### Using RippleAPI ###
|
||||
### Using RippleAPI
|
||||
|
||||
To see if an address has enabled Global Freeze, No Freeze, or both, use the [`getSettings` method](reference-rippleapi.html#getsettings) with the following parameters:
|
||||
|
||||
@@ -406,7 +402,7 @@ Example JavaScript (ECMAScript 6) code to check whether an address has Global Fr
|
||||
{% include 'code_samples/freeze/check-global-freeze-no-freeze.js' %}
|
||||
```
|
||||
|
||||
# See Also #
|
||||
# See Also
|
||||
|
||||
* [GB-2014-02 New Feature: Balance Freeze](https://ripple.com/files/GB-2014-02.pdf)
|
||||
* [Freeze Code Samples](https://github.com/ripple/ripple-dev-portal/tree/master/content/code_samples/freeze)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
***TODO: Question: Added this concept section based on fantastic source material from Rome -- thought we should publish it. Useful? May be good to associate it with a flow diagram - like the one for address encoding: https://ripple.com/build/accounts/#address-encoding. Address both single and multi-sign flows.***
|
||||
|
||||
In the XRP Ledger, a digital signature proves that a transaction is authorized to do a specific set of actions. A digital signature is created based on a [key pair](cryptographic-keys.html) associated with the transaction's sending account.
|
||||
In the XRP Ledger, a digital signature proves that a transaction is authorized to do a specific set of actions. A digital signature is created based on a [key pair](concept-cryptographic-keys.html) associated with the transaction's sending account.
|
||||
|
||||
Here's an overview of some of the more common signature-related fields used in the XRP Ledger.
|
||||
|
||||
@@ -20,7 +20,7 @@ To verify whether a single-signed transaction is valid, a `rippled` server check
|
||||
|
||||
1. This key hashes to an address that's authorized by the transaction's sender.
|
||||
|
||||
The default is that only the address of an account is authorized to send all transactions for that account. That address is [derived from](concept-accounts.html#address-encoding) the public key from the master key pair that was generated during address creation. Regular keys add a different address (derived from a different key pair) that's authorized to send most transactions. And of course, you can also disable the [master key](cryptographic-keys.html) or add a [multi-signing list](reference-transaction-format.html#multi-signing). ***TODO: address from Ryan: "And of course" - Nit: this seems a little informal. Maybe just drop it and go into the next sentence? JHA take a closer look at what this sentence is trying to say.***
|
||||
The default is that only the address of an account is authorized to send all transactions for that account. That address is [derived from](concept-accounts.html#address-encoding) the public key from the master key pair that was generated during address creation. Regular keys add a different address (derived from a different key pair) that's authorized to send most transactions. And of course, you can also disable the [master key](concept-cryptographic-keys.html) or add a [multi-signing list](reference-transaction-format.html#multi-signing). ***TODO: address from Ryan: "And of course" - Nit: this seems a little informal. Maybe just drop it and go into the next sentence? JHA take a closer look at what this sentence is trying to say.***
|
||||
|
||||
2. This key matches the signature on the transaction.
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ As an entity that is obligated to hold large amounts of XRP for the long term, R
|
||||
|
||||
Cryptography is one of the hardest parts of any distributed system, and a mistake can lead to money stolen by malicious actors anywhere in the world. The XRP Ledger uses industry-standard schemes for signing and verifying transactions, algorithms that have successfully protected hundreds of billions of US dollars' worth of value for many years. The XRP Ledger also layers multi-signing functionality so you can use multi-factor authorization or split keys across multiple people as a backup, and provides new algorithms with a path to migrate the keys you use if a breakthrough in cryptography makes the old algorithms obsolete.
|
||||
|
||||
For more information, see [Cryptographic Keys](cryptographic-keys.html) and [Multi-signing](reference-transaction-format.html#multi-signing).
|
||||
For more information, see [Cryptographic Keys](concept-cryptographic-keys.html) and [Multi-signing](reference-transaction-format.html#multi-signing).
|
||||
|
||||
|
||||
## Modern Features for Smart Contracts
|
||||
|
||||
@@ -25,7 +25,7 @@ Any signature type can authorize any type of transaction, with the following exc
|
||||
* Only the master private key can [permanently give up the ability to freeze](concept-freeze.html#no-freeze).
|
||||
* You can never remove the last method of signing transactions from an address.
|
||||
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html).
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](concept-cryptographic-keys.html).
|
||||
|
||||
<!--{# Add this reference after signatures concept doc is published. For more information about signatures, see [Understanding Signatures](concept-signatures.html). #}-->
|
||||
|
||||
@@ -175,7 +175,7 @@ Example response from the `tx` command:
|
||||
|
||||
### Multi-Signing
|
||||
|
||||
Multi-signing in the XRP Ledger is the act of [authorizing transactions](#authorizing-transactions) for the XRP Ledger by using a combination of multiple secret keys. You can have any combination of authorization methods enabled for your address, including multi-signing, a [master key pair](cryptographic-keys.html#master-key-pair), and a [regular key pair](cryptographic-keys.html#regular-key-pair). (The only requirement is that _at least one_ method must be enabled.)
|
||||
Multi-signing in the XRP Ledger is the act of [authorizing transactions](#authorizing-transactions) for the XRP Ledger by using a combination of multiple secret keys. You can have any combination of authorization methods enabled for your address, including multi-signing, a [master key pair](concept-cryptographic-keys.html#master-key-pair), and a [regular key pair](concept-cryptographic-keys.html#regular-key-pair). (The only requirement is that _at least one_ method must be enabled.)
|
||||
|
||||
The [SignerListSet transaction][] defines which addresses can authorize transactions from your address. You can include up to 8 addresses in a SignerList. You can control how many signatures are needed, in which combinations, by using the quorum and weight values of the SignerList.
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ The response follows the [standard format](#response-formatting), with a success
|
||||
* `noPermission` - The request included the `url` field, but you are not connected as an admin.
|
||||
* `malformedStream` - The `streams` field of the request is not formatted properly.
|
||||
* `malformedAccount` - One of the addresses in the `accounts` or `accounts_proposed` fields of the request is not a properly-formatted XRP Ledger address.
|
||||
* **Note:**: You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded.
|
||||
* **Note:** You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded.
|
||||
* `srcCurMalformed` - One or more `taker_pays` sub-fields of the `books` field in the request is not formatted properly.
|
||||
* `dstAmtMalformed` - One or more `taker_gets` sub-fields of the `books` field in the request is not formatted properly.
|
||||
* `srcIsrMalformed` - The `issuer` field of one or more `taker_pays` sub-fields of the `books` field in the request is not valid.
|
||||
|
||||
@@ -180,7 +180,7 @@ You can also use this method to generate a key pair to use as a regular key pair
|
||||
|
||||
In addition to using it as a regular key pair, you can also use it as a member of a multi-signing list (SignerList).
|
||||
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html)
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](concept-cryptographic-keys.html)
|
||||
|
||||
For more information about multi-signing and signer lists, see [Multi-Signing](reference-transaction-format.html#multi-signing).
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ A `SetRegularKey` transaction assigns, changes, or removes the regular key pair
|
||||
|
||||
You can protect your account by assigning a regular key pair to it and using it instead of the master key pair to sign transactions whenever possible. If your regular key pair is compromised, but your master key pair is not, you can use a `SetRegularKey` transaction to regain control of your account.
|
||||
|
||||
For more information about regular and master key pairs, see [Cryptographic Keys](cryptographic-keys.html).
|
||||
For more information about regular and master key pairs, see [Cryptographic Keys](concept-cryptographic-keys.html).
|
||||
|
||||
For a tutorial on assigning a regular key pair to an account, see [Working with a Regular Key Pair](working-regular-key-pair.html).
|
||||
For a tutorial on assigning a regular key pair to an account, see [Working with a Regular Key Pair](tutorial-regular-keys.html).
|
||||
|
||||
For even greater security, you can use [multi-signing](#multi-signing), but multi-signing requires additional XRP for the [transaction cost](concept-transaction-cost.html) and [reserve](concept-reserves.html).
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
The XRP Ledger allows an account to authorize a secondary key pair, called a _regular key pair_, to sign future transactions. If the private key of a regular key pair is compromised, you can remove or replace it without changing the rest of your account and re-establishing its relationships to other accounts. You can also rotate a regular key pair proactively. (Neither of those things is possible for the master key pair of an account, which is intrinsically linked to the account's address.)
|
||||
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html).
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](concept-cryptographic-keys.html).
|
||||
|
||||
This article provides the following tutorials:
|
||||
|
||||
@@ -684,7 +684,7 @@ If your account's regular key pair is compromised, or if you just want to period
|
||||
|
||||
The steps to change your existing regular key pair are almost the same as the steps to [assign a regular key](#assigning-a-regular-key-pair) for the first time. You generate the key pair and assign it to your account as a regular key pair, overwriting the existing regular key pair. However, the main difference is that when changing the existing regular key pair, you can use the existing regular private key to replace itself, whereas when assigning a regular key pair to an account for the first time, you have to use the account's master private key to do it.
|
||||
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html).
|
||||
For more information about master and regular key pairs, see [Cryptographic Keys](concept-cryptographic-keys.html).
|
||||
|
||||
|
||||
### Removing a Regular Key Pair
|
||||
|
||||
@@ -40,9 +40,15 @@ targets:
|
||||
# First member is the default that gets built when target not specified
|
||||
- name: local
|
||||
display_name: Ripple Developer Portal
|
||||
# These github_ fields are used by the template's "Edit on GitHub" link.
|
||||
# Override them with --vars to change which fork/branch to edit.
|
||||
github_forkurl: https://github.com/ripple/ripple-dev-portal
|
||||
github_branch: master
|
||||
|
||||
- name: ripple.com
|
||||
display_name: Ripple Developer Center
|
||||
github_forkurl: https://github.com/ripple/ripple-dev-portal
|
||||
github_branch: master
|
||||
template: template-contentwithtoc.html
|
||||
link_subs:
|
||||
"reference-rippled.html": https://ripple.com/build/rippled-apis/
|
||||
@@ -60,8 +66,8 @@ targets:
|
||||
"tutorial-paychan.html": https://ripple.com/build/payment-channels-tutorial/
|
||||
"tutorial-escrow.html": https://ripple.com/build/escrow-tutorials/
|
||||
"tutorial-listing-xrp.html": https://ripple.com/build/listing-xrp-exchange/
|
||||
"cryptographic-keys.html": https://ripple.com/build/cryptographic-keys/
|
||||
"working-regular-key-pair.html": https://ripple.com/build/working-regular-key-pair/
|
||||
"concept-cryptographic-keys.html": https://ripple.com/build/cryptographic-keys/
|
||||
"tutorial-regular-keys.html": https://ripple.com/build/working-regular-key-pair/
|
||||
"tutorial-build-run-rippled-ubuntu.html": https://ripple.com/build/build-run-rippled-ubuntu/
|
||||
"concept-accounts.html": https://ripple.com/build/accounts/
|
||||
"concept-amendments.html": https://ripple.com/build/amendments/
|
||||
@@ -124,24 +130,296 @@ targets:
|
||||
"img/demurrage-currency-code-format.png": https://cdn.ripple.com/wp-content/uploads/2017/11/demurrage-currency-code-format.png
|
||||
"img/xrp-ledger-network-ledger-store-and-shard-store.png": https://cdn.ripple.com/wp-content/uploads/2018/02/xrp-ledger-network-ledger-store-and-shard-store1.png
|
||||
|
||||
- name: rippled-setup
|
||||
display_name: rippled Setup Guide
|
||||
link_subs:
|
||||
"reference-rippled.html": https://ripple.com/build/rippled-apis/
|
||||
|
||||
pages:
|
||||
# I. Introduction ------------------------------------------------------------
|
||||
|
||||
- md: concept-xrp-ledger-intro.md
|
||||
category: Introduction
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# References are exhaustive lists of commands and options
|
||||
- name: RippleAPI
|
||||
category: References
|
||||
html: reference-rippleapi.html
|
||||
# Currently this is the only page that's fetched remotely.
|
||||
# "XRP Ledger Ecosystem Overview" goes here
|
||||
|
||||
# II. Technical Overview -----------------------------------------------------
|
||||
|
||||
- md: concept-consensus.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-reaching-consensus.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# "Transaction Processing" goes here (broken off from transaction reference)
|
||||
|
||||
- md: concept-accounts.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-cryptographic-keys.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-fees.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-fee-voting.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-amendments.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-amendments.md
|
||||
category: Technical Overview
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# III. About XRP -----------------------------------------------------------
|
||||
|
||||
- md: concept-money.md # TODO: maybe split this up into just an XRP intro?
|
||||
category: About XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-reserves.md
|
||||
category: About XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-transaction-cost.md
|
||||
category: About XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-partial-payments.md
|
||||
category: About XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-escrow.md
|
||||
category: About XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-depositauth.md
|
||||
category: About XRP # Not strictly an XRP feature, but most relevant to XRP
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# DOC-696 "About Payment Channels" goes here
|
||||
|
||||
# IV. XRP Tasks --------------------------------------------------------------
|
||||
|
||||
# "Connecting to rippled" goes here (extracted from rippled reference)
|
||||
|
||||
- md: tutorial-rippleapi-beginners-guide.md
|
||||
category: XRP Tasks
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# DOC-1299 "Create an XRP Ledger Account" goes here
|
||||
|
||||
# DOC-1322 "Sending Exact XRP Payments" goes here
|
||||
|
||||
- md: tutorial-reliable-transaction-submission.md
|
||||
category: XRP Tasks
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# "Robustly Monitoring for Payments" goes here (adapted from gateway guide?)
|
||||
|
||||
# "Bouncing Payments" goes here (adapted from gateway guide?)
|
||||
|
||||
- md: tutorial-multisign.md
|
||||
category: XRP Tasks # This isn't strictly XRP-related though...
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-escrow.md
|
||||
category: XRP Tasks
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-paychan.md
|
||||
category: XRP Tasks
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-regular-keys.md
|
||||
category: XRP Tasks # Not strictly XRP-related, either...
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# V. Issued Currencies -------------------------------------------------------
|
||||
|
||||
# TODO: stand-alone issued currencies intro?
|
||||
|
||||
- md: concept-freeze.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-transfer-fees.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-noripple.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-authorized-trust-lines.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# DOC-78 "Decentralized Exchange" goes here
|
||||
|
||||
# DOC-844 "TickSize Settings" goes here
|
||||
|
||||
- md: concept-paths.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-demurrage.md
|
||||
category: Issued Currencies
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# DOC-1237 "About Checks" goes here
|
||||
|
||||
# VI. The rippled Server -----------------------------------------------------
|
||||
|
||||
- md: tutorial-rippled-setup.md
|
||||
category: The rippled Server
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# - md: reference-rippled.md # TODO: break out the concept parts for here
|
||||
# category: The rippled Server
|
||||
# targets:
|
||||
# - local
|
||||
# - ripple.com
|
||||
|
||||
- md: concept-stand-alone-mode.md
|
||||
category: The rippled Server
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-history-sharding.md
|
||||
category: The rippled Server
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-build-run-rippled-ubuntu.md
|
||||
category: The rippled Server
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# VII. The Exchange Business Model -------------------------------------------
|
||||
- md: tutorial-listing-xrp.md
|
||||
category: The Exchange Business Model
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# VIII. The Gateway Business Model -------------------------------------------
|
||||
- md: concept-issuing-and-operational-addresses.md
|
||||
category: The Gateway Business Model
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-gateway-guide.md
|
||||
category: The Gateway Business Model
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: gb-2015-06.md
|
||||
category: The Gateway Business Model
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: gb-2015-05.md
|
||||
category: The Gateway Business Model
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# IX. Reference Material
|
||||
- md: reference-rippled.md
|
||||
category: Reference Material
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-currency.md
|
||||
category: Reference Material
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-transaction-format.md
|
||||
category: Reference Material
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-ledger-format.md
|
||||
category: Reference Material
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: RippleAPI Reference # name is required for remote-sourced files
|
||||
md: https://raw.githubusercontent.com/ripple/ripple-lib/e6d71471e26ca253e762fc7034859951b5d31c47/docs/index.md
|
||||
html: reference-rippleapi.html
|
||||
category: Reference Material
|
||||
filters:
|
||||
- remove_doctoc
|
||||
- add_version
|
||||
@@ -149,316 +427,13 @@ pages:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: rippled
|
||||
category: References
|
||||
html: reference-rippled.html
|
||||
md: reference-rippled.md
|
||||
- md: reference-data-api.md
|
||||
category: Reference Material
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Transaction Format
|
||||
category: References
|
||||
html: reference-transaction-format.html
|
||||
md: reference-transaction-format.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Ledger Format
|
||||
category: References
|
||||
html: reference-ledger-format.html
|
||||
md: reference-ledger-format.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Ripple Data API v2
|
||||
category: References
|
||||
html: reference-data-api.html
|
||||
md: reference-data-api.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-currency.md
|
||||
category: References
|
||||
html: reference-currency.html
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: reference-amendments.md
|
||||
category: References
|
||||
html: reference-amendments.html
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# Tutorials are step-by-step guides to a specific goal
|
||||
- name: How to Multi-Sign
|
||||
category: Tutorials
|
||||
html: tutorial-multisign.html
|
||||
md: tutorial-multisign.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- category: Tutorials
|
||||
html: tutorial-paychan.html
|
||||
md: tutorial-paychan.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# This is more like a "best practices" doc than Tutorials...
|
||||
- name: Issuing and Operational Addresses
|
||||
category: Tutorials
|
||||
html: concept-issuing-and-operational-addresses.html
|
||||
md: concept-issuing-and-operational-addresses.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Reliable Transaction Submission
|
||||
category: Tutorials
|
||||
html: tutorial-reliable-transaction-submission.html
|
||||
md: tutorial-reliable-transaction-submission.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: RippleAPI Beginners Guide
|
||||
category: Tutorials
|
||||
html: tutorial-rippleapi-beginners-guide.html
|
||||
md: tutorial-rippleapi-beginners-guide.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: rippled Setup
|
||||
category: Tutorials
|
||||
html: tutorial-rippled-setup.html
|
||||
md: tutorial-rippled-setup.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
- rippled-setup
|
||||
|
||||
# The Gateway Guide is also a poor fit for the "tutorials" category
|
||||
- name: Gateway Guide
|
||||
category: Tutorials
|
||||
html: tutorial-gateway-guide.html
|
||||
md: tutorial-gateway-guide.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# Listing XRP as an Exchange
|
||||
- category: Tutorials
|
||||
html: tutorial-listing-xrp.html
|
||||
md: tutorial-listing-xrp.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-escrow.md
|
||||
html: tutorial-escrow.html
|
||||
category: Tutorials
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: tutorial-regular-keys.md
|
||||
html: working-regular-key-pair.html
|
||||
category: Tutorials
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Build and Run rippled on Ubuntu
|
||||
md: tutorial-build-run-rippled-ubuntu.md
|
||||
html: tutorial-build-run-rippled-ubuntu.html
|
||||
category: Tutorials
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
#Features describe how the XRP Ledger works in a mostly conceptual manner
|
||||
- name: Accounts
|
||||
category: Features
|
||||
html: concept-accounts.html
|
||||
md: concept-accounts.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Amendments
|
||||
category: Features
|
||||
html: concept-amendments.html
|
||||
md: concept-amendments.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Consensus Process
|
||||
category: Features
|
||||
html: concept-consensus.html
|
||||
md: concept-consensus.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Reaching Consensus in the XRP Ledger
|
||||
category: Features
|
||||
html: concept-reaching-consensus.html
|
||||
md: concept-reaching-consensus.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- category: Features
|
||||
html: cryptographic-keys.html
|
||||
md: concept-keys.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-depositauth.md
|
||||
category: Features
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-escrow.md
|
||||
category: Features
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Fee Voting
|
||||
category: Features
|
||||
html: concept-fee-voting.html
|
||||
md: concept-fee-voting.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Fees (Disambiguation)
|
||||
category: Features
|
||||
html: concept-fees.html
|
||||
md: concept-fees.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Freeze
|
||||
category: Features
|
||||
html: concept-freeze.html
|
||||
md: concept-freeze.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-money.md
|
||||
category: Features
|
||||
html: concept-money.html
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-demurrage.md
|
||||
category: Features
|
||||
html: concept-demurrage.html
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-partial-payments.md
|
||||
category: Features
|
||||
html: concept-partial-payments.html
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Paths
|
||||
category: Features
|
||||
html: concept-paths.html
|
||||
md: concept-paths.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Reserves
|
||||
category: Features
|
||||
html: concept-reserves.html
|
||||
md: concept-reserves.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- category: Features
|
||||
html: concept-history-sharding.html
|
||||
md: concept-history-sharding.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Stand-Alone Mode
|
||||
category: Features
|
||||
html: concept-stand-alone-mode.html
|
||||
md: concept-stand-alone-mode.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Transaction Cost
|
||||
category: Features
|
||||
html: concept-transaction-cost.html
|
||||
md: concept-transaction-cost.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Transfer Fees
|
||||
category: Features
|
||||
html: concept-transfer-fees.html
|
||||
md: concept-transfer-fees.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: Understanding the NoRipple flag
|
||||
category: Features
|
||||
html: concept-noripple.html
|
||||
md: concept-noripple.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- md: concept-authorized-trust-lines.md
|
||||
category: Features
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: "GB-2015-06: Corrections to Autobridging"
|
||||
category: Gateway Bulletins
|
||||
html: gb-2015-06.html
|
||||
md: gb-2015-06.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
- name: "GB-2015-05: Historical Ledger Query Migration"
|
||||
category: Gateway Bulletins
|
||||
html: gb-2015-05.html
|
||||
md: gb-2015-05.md
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
|
||||
# API tools are interactive software for interfacing with real APIs
|
||||
# Appendix: API Tools --------------------------------------------------------
|
||||
- name: WebSocket API Tool
|
||||
category: API Tools
|
||||
html: ripple-api-tool.html
|
||||
@@ -480,19 +455,7 @@ pages:
|
||||
- ripple.com
|
||||
template: template-rest-api-tool.html
|
||||
|
||||
- name: rippled JSON-RPC Tool
|
||||
# This tool requires a local server w/ reverse proxy
|
||||
category: API Tools
|
||||
html: tool-jsonrpc.html
|
||||
methods_js: js/apitool-methods-jsonrpc.js
|
||||
rest_host: http://localhost/rippled
|
||||
doc_page: reference-rippled.html
|
||||
sidebar: custom
|
||||
targets:
|
||||
- local
|
||||
- ripple.com
|
||||
template: template-rest-api-tool.html
|
||||
|
||||
# Non-canonical pages
|
||||
- name: Page Manifest
|
||||
# Used to inform the ripple.com code what pages it should map
|
||||
html: devportal-manifest.php
|
||||
@@ -513,6 +476,9 @@ known_broken_links:
|
||||
# Strangely, Python doesn't like the cert here. Firefox is OK with it.
|
||||
- https://validators.ripple.com
|
||||
|
||||
# Login required for the client portal.
|
||||
- https://clients.ripple.com/
|
||||
|
||||
# These PDFs download OK in a browser
|
||||
- http://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX%3A32015R0847
|
||||
- http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
#!/bin/bash
|
||||
mkdir -p out
|
||||
## One-liner syntax doesn't handle exit codes properly...
|
||||
#./build.sh -lq | awk '{print "rm -r out/ && ./build.sh -t "$1" && ./check-links.sh"}' | xargs -0 bash -c
|
||||
|
||||
# Pass forward dactyl "vars" arg if provided
|
||||
if [ "$1" == "--vars" ] && [ -n "$2" ];
|
||||
then
|
||||
dactyl_vars=$2
|
||||
shift 2
|
||||
fi
|
||||
|
||||
targets=`dactyl_build -lq | awk '{print $1}'`
|
||||
linkerrors=0
|
||||
@@ -11,7 +16,11 @@ while read -r line; do
|
||||
echo "======================================="
|
||||
echo "Checking Target: $line"
|
||||
rm -r out
|
||||
dactyl_build -sq -t "$line"
|
||||
if [ -n "$dactyl_vars" ]; then
|
||||
dactyl_build -q -t "$line" --vars "$dactyl_vars"
|
||||
else
|
||||
dactyl_build -q -t "$line"
|
||||
fi
|
||||
buildresult=$?
|
||||
if [ $buildresult -eq 0 ]
|
||||
then
|
||||
|
||||
@@ -2,7 +2,22 @@
|
||||
|
||||
# meant to be run from the root directory of the repo
|
||||
|
||||
## Test: show pull request data in build results
|
||||
echo "ghprbAuthorRepoGitUrl is: " ${ghprbAuthorRepoGitUrl}
|
||||
echo "ghprbSourceBranch is: " ${ghprbSourceBranch}
|
||||
echo "ghprbPullId is: " ${ghprbPullId}
|
||||
|
||||
gitForkWithoutSuffix=${ghprbAuthorRepoGitUrl%.git}
|
||||
|
||||
if [ -n "$ghprbPullId" ];
|
||||
then
|
||||
echo '{"github_forkurl": "'"$gitForkWithoutSuffix"'", "github_branch": "'"$ghprbSourceBranch"'", "github_pr_id": "'"$ghprbPullId"'", "is_pr_build": true}' > pr_vars.json
|
||||
dactyl_vars="pr_vars.json"
|
||||
else
|
||||
dactyl_vars=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
tool/conflictmarkers.sh
|
||||
tool/all-target-link-checker.sh
|
||||
tool/all-target-link-checker.sh --vars "$dactyl_vars"
|
||||
|
||||
@@ -5,7 +5,13 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<title>{{ currentpage.name }} - {{ target.display_name }}</title>
|
||||
<title>{{ currentpage.name }} - XRP Ledger Dev Portal</title>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/dist/js/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="/dist/js/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<!-- favicon -->
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon">
|
||||
@@ -21,54 +27,70 @@
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="assets/vendor/bootstrap.min.js"></script>
|
||||
|
||||
<!-- fontawesome icons -->
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/css/font-awesome.min.css" />
|
||||
|
||||
{% block head %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
</head>
|
||||
|
||||
<body class="page page-template page-template-template-dev-portal page-template-template-dev-portal-php {% if currentpage.sidebar != 'off' %}sidebar-primary{% endif %} wpb-js-composer js-comp-ver-3.6.2 vc_responsive">
|
||||
<body class="{% block bodyclasses %} xrp-ledger-dev-portal sidebar-primary{% endblock %}">
|
||||
<header role="banner" class="banner navbar navbar-default navbar-fixed-top initial_header">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<a href="index.html" class="navbar-brand"><img src="assets/img/ripple-logo-color.png" class="logo"></a>
|
||||
<a href="index.html" class="navbar-brand"><img src="assets/img/dev-logo.png" class="logo" width="36" height="36" /><span class="brand-text">XRP Ledger Dev Portal</span></a>
|
||||
</div><!-- /.navbar-header -->
|
||||
<div class="nav">
|
||||
{% block breadcrumbs %}
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb-top"><a href="index.html" style="display: none;"> </a></li>
|
||||
{% if currentpage.category %}
|
||||
<li class="active crumb-category"><a href="{{ (pages|selectattr('category', 'equalto', currentpage.category)|first).html }}">{{ currentpage.category }}</a></li>
|
||||
{% endif %}
|
||||
<li class="active crumb-current">{{ currentpage.name }}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
<div class="draft-warning">DRAFT PAGE</div>
|
||||
<div class="github-edit-wrap">
|
||||
{% set have_edit_link = False %}
|
||||
{% if currentpage.md is defined %}
|
||||
{% if currentpage.md.startswith("http://") or
|
||||
currentpage.md.startswith("https://") %}
|
||||
{# Leave have_edit_link = False #}
|
||||
{% else %}
|
||||
{% set have_edit_link = True %}
|
||||
{% set githuburl = target.github_forkurl + "/edit/"
|
||||
+ target.github_branch
|
||||
+ "/content/" + currentpage.md %}
|
||||
{% endif %}
|
||||
{% elif currentpage.template is defined %}
|
||||
{% set have_edit_link = True %}
|
||||
{% set githuburl = target.github_forkurl + "/edit/"
|
||||
+ target.github_branch + "/tool/" + currentpage.template %}
|
||||
{% endif %}
|
||||
{% if target.is_pr_build and have_edit_link %}
|
||||
{% set githuburl = githuburl + "?pr=/ripple/ripple-dev-portal/pull/"
|
||||
+ target.github_pr_id %}
|
||||
{% endif %}
|
||||
{% if not have_edit_link %}
|
||||
{% set githuburl = target.github_forkurl %}
|
||||
{% endif %}
|
||||
<a href="{{githuburl}}" class="github-edit">Edit on GitHub</a>
|
||||
</div><!-- /.github-edit -->
|
||||
</div><!-- /.nav -->
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<div class="subnav dev_nav">
|
||||
<div class="container">
|
||||
<ul id="menu-dev-menu" class="menu">
|
||||
{% for cat in categories %}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{cat}} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{% for page in pages %}
|
||||
{% if page.category == cat %}
|
||||
<li><a href="{{ page.html }}">{{ page.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
<li><a href="https://github.com/ripple/ripple-dev-portal" title="GitHub">Site Source</a></li>
|
||||
</ul><!-- /#dev-menu -->
|
||||
</div><!-- /.subnav .container -->
|
||||
</div><!-- /.subnav -->
|
||||
</header>
|
||||
|
||||
|
||||
<div class="wrap container" role="document">
|
||||
{% if currentpage.sidebar != 'off' %}
|
||||
<div class="wrap container" role="document" id="main_content_wrapper">
|
||||
<aside class="sidebar" role="complementary">
|
||||
{% block sidebar %}{% endblock %}
|
||||
</aside>
|
||||
{% endif %}
|
||||
<main class="main" role="main">
|
||||
<main class="main" role="main" id="main_content_body">
|
||||
{% block main %}{% endblock %}
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
<link rel="stylesheet" href="assets/vendor/docco.min.css" />
|
||||
<script src="assets/vendor/highlight.min.js"></script>
|
||||
|
||||
<!-- syntax selection js -->
|
||||
<!-- expandable code samples -->
|
||||
<script src="assets/js/expandcode.js"></script>
|
||||
<!-- multi-code selection tabs -->
|
||||
<script src="assets/js/multicodetab.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
@@ -15,38 +17,27 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="assets/js/expandcode.js"></script>
|
||||
<script src="assets/js/fixsidebarscroll.js"></script>
|
||||
|
||||
<!-- fontawesome icons -->
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/css/font-awesome.min.css" />
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
{% if currentpage.sidebar != 'off' %}
|
||||
<div class="dev_nav_wrapper">
|
||||
<div id="cont">
|
||||
<h5>In this category:</h5>
|
||||
<ul class="dev_nav_sidebar">
|
||||
<li class="level-1"><a href="index.html">Category: {{ currentpage.category }}</a></li>
|
||||
{% for page in pages %}
|
||||
{% if page.category == currentpage.category %}
|
||||
<li class="level-2"><a href="{{ page.html }}">{{ page.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<hr />
|
||||
<h5>In this page:</h5>
|
||||
<ul class="dev_nav_sidebar" id="dactyl_toc_sidebar">
|
||||
{{ page_toc }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if currentpage.sidebar != "disabled" %}
|
||||
|
||||
{% include "template-sidebar_nav.html" %}
|
||||
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class='content'>
|
||||
<h1 class="main-page-header">{{ currentpage.name }}</h1>
|
||||
|
||||
<aside id="page-toc-wrapper" class="panel panel-default">
|
||||
<p class="in-this-doc panel-heading">In this document:</p>
|
||||
<ul class="dev_nav_sidebar panel-body" id="dactyl_toc_sidebar">
|
||||
{{ sidebar_content }}
|
||||
</ul>
|
||||
</aside>
|
||||
<div class='content no-1st-head'>
|
||||
{{ content }}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -3,12 +3,17 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12 absolute_bottom_footer">
|
||||
<div class="col-sm-8">
|
||||
<span>© 2013 - 2017 Ripple Labs, Inc. All Rights Reserved.</span>
|
||||
<span><a href="/terms-of-use/">Terms</a></span>
|
||||
<span><a href="/privacy-policy/">Privacy</a></span>
|
||||
<span>© 2013 - 2018 Ripple. All Rights Reserved.</span>
|
||||
<span><a href="https://ripple.com/terms-of-use/">Terms</a></span>
|
||||
<span><a href="https://ripple.com/privacy-policy/">Privacy</a></span>
|
||||
<span><a href="https://raw.githubusercontent.com/ripple/ripple-dev-portal/master/LICENSE">License</a></span>
|
||||
</div>
|
||||
</div><!-- /.absolute_bottom_footer -->
|
||||
|
||||
</div><!-- /.row -->
|
||||
</div><!-- /.container -->
|
||||
</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</span></a>
|
||||
<script type="text/javascript" src="assets/js/jump-to-top.js"></script>
|
||||
|
||||
@@ -7,50 +7,58 @@
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<link href="assets/css/landing.css" rel="stylesheet">
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
|
||||
<!-- jumbotron -->
|
||||
<!-- <div class="container theme-showcase" role="main"> -->
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-3">
|
||||
<img class="large_logo" src="assets/img/dev-logo.png" />
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<h4>Welcome to the Developer Center</h4>
|
||||
<p class="main_callout">
|
||||
Ripple’s distributed settlement network is built on open-source technology that anyone can use. Here are the tools developers can use to build solutions around the open-source platform.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block bodyclasses %}xrp-ledger-dev-portal no-sidebar{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container portal-index">
|
||||
<h2>XRP Ledger Documentation</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{% for cat in categories %}
|
||||
<ul>
|
||||
<li class="top"><h5><a class="dev_heading" href="{{ (pages|selectattr('category', 'equalto', cat)|first).html }}">{{ cat }}</a></h5></li>
|
||||
{% for page in pages %}
|
||||
{% if page.category == cat and page.name != category and not page.toc_omit %}
|
||||
<li><a href="{{ page.html }}">{{ page.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- main container -->
|
||||
<div class="container build-index">
|
||||
<div class="row">
|
||||
{% for cat in categories %}
|
||||
<div class="col-md-3">
|
||||
<ul>
|
||||
<li class="top"><h5 class="dev_heading">{{ cat }}</h5></li>
|
||||
{% for page in pages %}
|
||||
{% if page.category == cat %}
|
||||
<li><a href="{{ page.html }}">{{ page.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<aside class="related-projects">
|
||||
<h3>Related Projects</h3>
|
||||
<div class="project">
|
||||
<p><a class="client-portal-link" href="https://clients.ripple.com/">
|
||||
<img class="project-icon" src="assets/img/RippleNet-condensed.svg" />
|
||||
<span class="project-name">Ripple Client Portal</span>
|
||||
<span class="login-required">(login required)</span>
|
||||
</a></p>
|
||||
<p class="project-summary">For financial institutions using Ripple's proprietary solutions to send money globally.</p>
|
||||
</div>
|
||||
<div class="project">
|
||||
<p><a class="interledger-link" href="https://interledger.org/">
|
||||
<img class="project-icon" src="assets/img/ilp_logo.svg" />
|
||||
<span class="project-name">Interledger</span>
|
||||
</a></p>
|
||||
<p class="project-summary">An open protocol suite for connecting all forms of digital money.</p>
|
||||
</aside>
|
||||
|
||||
<!-- Disclaimer block -->
|
||||
<div class="container build-disclaimer">
|
||||
<p>
|
||||
These resources are provided for informational purposes only, as illustrative references for your independent development of products or services designed to interface with Ripple’s open-source technologies. These resources are not intended to direct or influence how you or any other person interacts with Ripple’s open-source technologies. Ripple <strong><em>does not</em></strong> endorse any specific resource and makes no representations or warranties with respect to the resources listed.
|
||||
</p>
|
||||
<p>
|
||||
Note that anti-money laundering and counter-terrorism financing laws and regulations, such as the U.S. Bank Secrecy Act and regulations issued by the Financial Crimes Enforcement Network (FinCEN), require certain parties to take certain precautions against financial crime. In particular, you may be interested in the <a href="https://www.fincen.gov/resources/statutes-regulations/guidance/application-fincens-regulations-persons-administering">2013 guidance issued by FinCEN</a> in response to questions concerning the regulatory treatment of persons who use or make a business of exchanging, accepting, or transmitting certain virtual currencies. Additional FinCEN references are available at <a href="https://www.fincen.gov">https://www.fincen.gov</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{% extends "template-base.html" %}
|
||||
|
||||
{% block sidebar %}
|
||||
<h2>API Methods</h2>
|
||||
<ul id='command_list'>
|
||||
<li class='selected'><a href='#server_info'>server_info</a></li>
|
||||
<li><a href='#server_state'>server_state</a></li>
|
||||
@@ -78,7 +79,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block endbody %}
|
||||
<link rel='stylesheet' type='text/css' href='assets/css/api-tools.css'/>
|
||||
<link rel='stylesheet' type='text/css' href='assets/vendor/codemirror.css'/>
|
||||
@@ -88,4 +89,3 @@
|
||||
<script type='text/javascript' src='assets/js/ripple-0.11.0-min.js'></script>
|
||||
<script type='text/javascript' src='assets/js/apitool-websocket.js'></script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
33
tool/template-sidebar_nav.html
Normal file
33
tool/template-sidebar_nav.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<div class="guide_toc">
|
||||
<div id="sidenav_accordion" class="panel-group" role="tablist" aria-multiselectable="true">
|
||||
{% for cat in categories %}
|
||||
<div class="panel panel-default{% if currentpage.category == cat %} active{% endif %}">
|
||||
<div class="panel-heading" role="tab" id="sidenav_cat_head_{{loop.index}}">
|
||||
<h5 class="panel-title">
|
||||
<a {% if currentpage.category != cat %}class="collapsed"{% endif %} role="button" data-toggle="collapse" data-parent="#sidenav_accordion" href="#sidenav_collapse_{{loop.index}}" aria-expanded="true" aria-controls="sidenav_collapse_{{loop.index}}">
|
||||
{{ cat }}
|
||||
</a>
|
||||
</h5>
|
||||
</div><!-- /.panel-heading -->
|
||||
|
||||
<div id="sidenav_collapse_{{loop.index}}" class="collapse{% if currentpage.category == cat %} in{% endif %}" role="tabpanel" aria-labelledby="sidenav_cat_head_{{loop.index}}">
|
||||
<div class="panel-body">
|
||||
<ul class="sidebar_cat_pagelist">
|
||||
{% for page in pages %}
|
||||
{% if page.category == cat %}
|
||||
{% if page == currentpage %}
|
||||
<li><a class="active" href="#main_content_body">{{ page.name }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ page.html }}">{{ page.name }}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div><!-- /.panel-body -->
|
||||
</div><!-- /#sidenav_collapse{{loop.index}} -->
|
||||
|
||||
</div><!-- /.panel -->
|
||||
{% endfor %}
|
||||
|
||||
</div><!-- /#sidenav_accordion -->
|
||||
</div><!-- /.guide_toc -->
|
||||
Reference in New Issue
Block a user