You've already forked nakamoto-archive
358 lines
15 KiB
HTML
358 lines
15 KiB
HTML
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="{{ site.lang | default: 'en-US' }}">
|
|
{% include head.html %}
|
|
<body>
|
|
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
|
<symbol id="svg-link" viewBox="0 0 24 24">
|
|
<title>Link</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
|
|
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
|
|
</svg>
|
|
</symbol>
|
|
<symbol id="svg-search" viewBox="0 0 24 24">
|
|
<title>Search</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
|
|
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
</svg>
|
|
</symbol>
|
|
<symbol id="svg-menu" viewBox="0 0 24 24">
|
|
<title>Menu</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
|
|
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
|
|
</svg>
|
|
</symbol>
|
|
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
|
|
<title>Expand</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
|
|
<polyline points="9 18 15 12 9 6"></polyline>
|
|
</svg>
|
|
</symbol>
|
|
<symbol id="svg-doc" viewBox="0 0 24 24">
|
|
<title>Document</title>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
|
|
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
|
|
</svg>
|
|
</symbol>
|
|
</svg>
|
|
|
|
<div class="side-bar">
|
|
<div class="site-header">
|
|
<a href="{{ '/' | absolute_url }}" class="site-title lh-tight">{% include title.html %}</a>
|
|
<a href="#" id="menu-button" class="site-button">
|
|
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
|
|
</a>
|
|
</div>
|
|
<nav role="navigation" aria-label="Main" id="site-nav" class="site-nav">
|
|
{% if site.just_the_docs.collections %}
|
|
{% assign collections_size = site.just_the_docs.collections | size %}
|
|
{% for collection_entry in site.just_the_docs.collections %}
|
|
{% assign collection_key = collection_entry[0] %}
|
|
{% assign collection_value = collection_entry[1] %}
|
|
{% assign collection = site[collection_key] %}
|
|
{% if collection_value.nav_exclude != true %}
|
|
{% if collections_size > 1 %}
|
|
<div class="nav-category">{{ collection_value.name }}</div>
|
|
{% endif %}
|
|
{% include nav.html pages=collection %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
{% include nav.html pages=site.html_pages %}
|
|
{% endif %}
|
|
</nav>
|
|
<footer class="site-footer">
|
|
This site uses <a href="https://github.com/wakgill/bitcoin-archive">Jekyll</a>.
|
|
</footer>
|
|
</div>
|
|
<div class="main" id="top">
|
|
<div id="main-header" class="main-header">
|
|
{% if site.search_enabled != false %}
|
|
<div class="search">
|
|
<div class="search-input-wrap">
|
|
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" autocomplete="off">
|
|
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
|
|
</div>
|
|
<div id="search-results" class="search-results"></div>
|
|
</div>
|
|
{% endif %}
|
|
{% include header_custom.html %}
|
|
{% if site.aux_links %}
|
|
<nav aria-label="Auxiliary" class="aux-nav">
|
|
<ul class="aux-nav-list">
|
|
{% for link in site.aux_links %}
|
|
<li class="aux-nav-list-item">
|
|
<a href="{{ link.last }}" class="site-button"
|
|
{% if site.aux_links_new_tab %}
|
|
target="_blank" rel="noopener noreferrer"
|
|
{% endif %}
|
|
>
|
|
{{ link.first }}
|
|
</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</nav>
|
|
{% endif %}
|
|
</div>
|
|
<div id="main-content-wrap" class="main-content-wrap">
|
|
{% unless page.url == "/" %}
|
|
{% if page.parent %}
|
|
{%- for node in pages_list -%}
|
|
{%- if node.parent == nil -%}
|
|
{%- if page.parent == node.title or page.grand_parent == node.title -%}
|
|
{%- assign first_level_url = node.url | absolute_url -%}
|
|
{%- endif -%}
|
|
{%- if node.has_children -%}
|
|
{%- assign children_list = pages_list | where: "parent", node.title -%}
|
|
{%- for child in children_list -%}
|
|
{%- if page.url == child.url or page.parent == child.title -%}
|
|
{%- assign second_level_url = child.url | absolute_url -%}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
{%- endif -%}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
|
|
<ol class="breadcrumb-nav-list">
|
|
{% if page.grand_parent %}
|
|
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
|
|
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
|
|
{% else %}
|
|
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
|
|
{% endif %}
|
|
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
|
</ol>
|
|
</nav>
|
|
{% endif %}
|
|
{% endunless %} <span id="CONTENT">
|
|
<div id="main-content" class="main-content" role="main">
|
|
{% if site.heading_anchors != false %}
|
|
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
|
|
{% else %}
|
|
|
|
|
|
{{ content }}
|
|
{% endif %}
|
|
|
|
|
|
{% if page.has_children == true and page.has_toc != false %}
|
|
<hr>
|
|
<h2 class="text-delta">Contents</h2>
|
|
<ul>
|
|
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%}
|
|
{% for child in children_list %}
|
|
<li>
|
|
<a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
|
|
{% capture footer_custom %}
|
|
{%- include footer_custom.html -%}
|
|
{% endcapture %}
|
|
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
|
|
<hr>
|
|
<footer>
|
|
{% if site.back_to_top %}
|
|
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
|
|
|
|
{% endif %}<button class="btn-toggle">Toggle Dark-Mode</button>
|
|
|
|
|
|
<p class="text-small text-grey-dk-100 mb-0">Support this site with BTC, BCH, or BSV: <code>17MEahERxZH6pwWy4z7wWBZvH4rRnv3F7i</code></p>
|
|
|
|
{{ footer_custom }}
|
|
|
|
{% if site.last_edit_timestamp or site.gh_edit_link %}
|
|
<div class="d-flex mt-2">
|
|
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
|
|
<p class="text-small text-grey-dk-000 mb-0 mr-2">
|
|
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
|
|
</p>
|
|
{% endif %}
|
|
{% if
|
|
site.gh_edit_link and
|
|
site.gh_edit_link_text and
|
|
site.gh_edit_repository and
|
|
site.gh_edit_branch and
|
|
site.gh_edit_view_mode
|
|
%}
|
|
<p class="text-small text-grey-dk-000 mb-0">
|
|
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</footer>
|
|
{% endif %}
|
|
|
|
</div>
|
|
</div>
|
|
|
|
{% if site.search_enabled != false %}
|
|
{% if site.search.button %}
|
|
<a href="#" id="search-button" class="search-button">
|
|
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg>
|
|
</a>
|
|
{% endif %}
|
|
|
|
<div class="search-overlay"></div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
</span>
|
|
<script type="text/javascript">
|
|
function findPos(obj) {
|
|
var curtop = 0;
|
|
while (obj && obj.offsetParent) {
|
|
curtop += obj.offsetTop; // todo: + webkit-transform
|
|
obj = obj.offsetParent;
|
|
}
|
|
return curtop;
|
|
}
|
|
var artificial = null;
|
|
var prevhash = "";
|
|
function scrollToHash() {
|
|
if (document.location.hash.replace(/^#/, "")==prevhash.replace(/^#/, ""))
|
|
return;
|
|
prevhash = document.location.hash;
|
|
if (document.location.hash.match(/#[0-9.]+%/)) {
|
|
var p = parseFloat(document.location.hash.substring(1));
|
|
if (0 < p && p < 100 /*&& p%5 != 0*/) {
|
|
var content = document.getElementById("CONTENT")
|
|
var y = findPos(content) + (content.offsetHeight)*p/100;
|
|
window.scrollTo(0, y-16);
|
|
}
|
|
}
|
|
|
|
var adr = document.location.hash.match(/selection-(\d+).(\d+)-(\d+).(\d+)/);
|
|
if (adr) {
|
|
var pos=0,begin=null,end=null;
|
|
function recur(e) {
|
|
if (e.nodeType==1) pos = (pos&~1)+2;
|
|
if (e.nodeType==3) pos = pos|1;
|
|
if (pos==adr[1]) begin=[e, adr[2]];
|
|
if (pos==adr[3]) end =[e, adr[4]];
|
|
for (var i=0; i<e.childNodes.length; i++)
|
|
recur(e.childNodes[i]);
|
|
if (e.childNodes.length>0 && e.lastChild.nodeType==3)
|
|
pos = (pos&~1)+2;
|
|
}
|
|
// remove old "artificial" span if any
|
|
if (artificial) {
|
|
artificial.previousSibling.data += artificial.childNodes[0].data;
|
|
artificial.parentNode.removeChild(artificial);
|
|
}
|
|
var content = document.getElementById("CONTENT");
|
|
recur(content.childNodes[content.childNodes[0].nodeType==3 ? 1 : 0]);
|
|
if (begin!=null && end!=null) {
|
|
// scroll to selection
|
|
if (begin[0].nodeType==3) {
|
|
var text = document.createTextNode(begin[0].data.substr(0, begin[1]));
|
|
artificial = document.createElement("SPAN");
|
|
artificial.appendChild(document.createTextNode(begin[0].data.substr(begin[1])));
|
|
|
|
begin[0].parentNode.insertBefore(text, begin[0]);
|
|
begin[0].parentNode.replaceChild(artificial, begin[0]);
|
|
|
|
if (end[0]===begin[0])
|
|
end = [artificial.childNodes[0], end[1]-begin[1]];
|
|
begin = [artificial.childNodes[0], 0];
|
|
/* window.scrollTo(0, findPos(artificial)-8); */ artificial.scrollIntoView(true);
|
|
} else if (begin[0].nodeType==1) {
|
|
/* window.scrollTo(0, findPos(begin[0])-8); */ begin[0].scrollIntoView(true);
|
|
}
|
|
|
|
if (window.getSelection) {
|
|
var sel = window.getSelection();
|
|
sel.removeAllRanges();
|
|
var range = document.createRange();
|
|
range.setStart(begin[0], begin[1]);
|
|
range.setEnd ( end[0], end[1]);
|
|
sel.addRange(range);
|
|
} else if (document.selection) { // IE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
window.onhashchange = scrollToHash;
|
|
var initScrollToHashDone = false;
|
|
function initScrollToHash() {
|
|
if (!initScrollToHashDone) {
|
|
initScrollToHashDone = true;
|
|
scrollToHash();
|
|
}
|
|
}
|
|
window.onload = initScrollToHash;
|
|
setTimeout(initScrollToHash, 500); /* onload can be delayed by counter code */
|
|
|
|
//document.onselectionchange = /* only webkit has working document.onselectionchange */
|
|
document.onmousedown = document.onmouseup = function(e) {
|
|
var newhash = "";
|
|
if (window.getSelection) {
|
|
var sel=window.getSelection();
|
|
if (!sel.isCollapsed) {
|
|
var pos=0,begin=[0,0],end=[0,0];
|
|
var range=sel.getRangeAt(0);
|
|
function recur(e) {
|
|
if (e===artificial) {
|
|
if (range.startContainer===e.childNodes[0]) begin=[pos, e.previousSibling.data.length+range.startOffset];
|
|
if (range.endContainer ===e.childNodes[0]) end =[pos, e.previousSibling.data.length+range.endOffset ];
|
|
} else {
|
|
if (e.nodeType==1) pos = (pos&~1)+2;
|
|
if (e.nodeType==3) pos = pos|1;
|
|
if (range.startContainer===e) begin=[pos, range.startOffset];
|
|
if (range.endContainer ===e) end =[pos, range.endOffset ];
|
|
for (var i=0; i<e.childNodes.length; i++)
|
|
recur(e.childNodes[i]);
|
|
if (e.childNodes.length>0 && e.lastChild.nodeType==3)
|
|
pos = (pos&~1)+2;
|
|
}
|
|
}
|
|
|
|
var content = document.getElementById("CONTENT");
|
|
recur(content.childNodes[content.childNodes[0].nodeType==3 ? 1 : 0]);
|
|
if (begin[0]>0 && end[0]>0) {
|
|
newhash = "selection-"+begin[0]+"."+begin[1]+"-"+end[0]+"."+end[1];
|
|
}
|
|
}
|
|
} else if (document.selection) { // IE
|
|
}
|
|
|
|
try {
|
|
var oldhash = location.hash.replace(/^#/, "");
|
|
if (oldhash != newhash) {
|
|
prevhash = newhash; /* avoid firing window.onhashchange and scrolling */
|
|
if (history.replaceState)
|
|
history.replaceState('', document.title, newhash=="" ? window.location.pathname : '#'+newhash);
|
|
else
|
|
location.hash = newhash;
|
|
}
|
|
} catch(e) {
|
|
}
|
|
};
|
|
</script>
|
|
<script>const btn = document.querySelector(".btn-toggle");
|
|
|
|
const currentTheme = localStorage.getItem("theme");
|
|
if (currentTheme == "dark") {
|
|
document.body.classList.add("dark-theme");
|
|
}
|
|
|
|
btn.addEventListener("click", function () {
|
|
document.body.classList.toggle("dark-theme");
|
|
|
|
let theme = "light";
|
|
if (document.body.classList.contains("dark-theme")) {
|
|
theme = "dark";
|
|
}
|
|
localStorage.setItem("theme", theme);
|
|
});</script>
|
|
<!---The Times 03/Jan/2009 Chancellor on brink of second bailout for banks--->
|
|
|
|
</body>
|
|
</html>
|