Compare commits
No commits in common. "2e6fdd2b925c541de8a9ba48e327ce23dd0a5e1c" and "9419ccc9cc7e2fc24910ade1ade98d7efd7f11ec" have entirely different histories.
2e6fdd2b92
...
9419ccc9cc
|
@ -1,5 +0,0 @@
|
||||||
src/uploads
|
|
||||||
_vendor
|
|
||||||
_site
|
|
||||||
_bin
|
|
||||||
deno.lock
|
|
8
404.md
8
404.md
|
@ -1,8 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
url: /404.html
|
|
||||||
---
|
|
||||||
|
|
||||||
# Content not found.
|
|
||||||
|
|
||||||
Go [home](/).
|
|
445
LICENSE.md
445
LICENSE.md
|
@ -1,445 +0,0 @@
|
||||||
# GNU Free Documentation License
|
|
||||||
|
|
||||||
Version 1.3, 3 November 2008
|
|
||||||
|
|
||||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation,
|
|
||||||
Inc. <https://fsf.org/>
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies of this
|
|
||||||
license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
## 0. PREAMBLE
|
|
||||||
|
|
||||||
The purpose of this License is to make a manual, textbook, or other
|
|
||||||
functional and useful document "free" in the sense of freedom: to
|
|
||||||
assure everyone the effective freedom to copy and redistribute it,
|
|
||||||
with or without modifying it, either commercially or noncommercially.
|
|
||||||
Secondarily, this License preserves for the author and publisher a way
|
|
||||||
to get credit for their work, while not being considered responsible
|
|
||||||
for modifications made by others.
|
|
||||||
|
|
||||||
This License is a kind of "copyleft", which means that derivative
|
|
||||||
works of the document must themselves be free in the same sense. It
|
|
||||||
complements the GNU General Public License, which is a copyleft
|
|
||||||
license designed for free software.
|
|
||||||
|
|
||||||
We have designed this License in order to use it for manuals for free
|
|
||||||
software, because free software needs free documentation: a free
|
|
||||||
program should come with manuals providing the same freedoms that the
|
|
||||||
software does. But this License is not limited to software manuals; it
|
|
||||||
can be used for any textual work, regardless of subject matter or
|
|
||||||
whether it is published as a printed book. We recommend this License
|
|
||||||
principally for works whose purpose is instruction or reference.
|
|
||||||
|
|
||||||
## 1. APPLICABILITY AND DEFINITIONS
|
|
||||||
|
|
||||||
This License applies to any manual or other work, in any medium, that
|
|
||||||
contains a notice placed by the copyright holder saying it can be
|
|
||||||
distributed under the terms of this License. Such a notice grants a
|
|
||||||
world-wide, royalty-free license, unlimited in duration, to use that
|
|
||||||
work under the conditions stated herein. The "Document", below, refers
|
|
||||||
to any such manual or work. Any member of the public is a licensee,
|
|
||||||
and is addressed as "you". You accept the license if you copy, modify
|
|
||||||
or distribute the work in a way requiring permission under copyright
|
|
||||||
law.
|
|
||||||
|
|
||||||
A "Modified Version" of the Document means any work containing the
|
|
||||||
Document or a portion of it, either copied verbatim, or with
|
|
||||||
modifications and/or translated into another language.
|
|
||||||
|
|
||||||
A "Secondary Section" is a named appendix or a front-matter section of
|
|
||||||
the Document that deals exclusively with the relationship of the
|
|
||||||
publishers or authors of the Document to the Document's overall
|
|
||||||
subject (or to related matters) and contains nothing that could fall
|
|
||||||
directly within that overall subject. (Thus, if the Document is in
|
|
||||||
part a textbook of mathematics, a Secondary Section may not explain
|
|
||||||
any mathematics.) The relationship could be a matter of historical
|
|
||||||
connection with the subject or with related matters, or of legal,
|
|
||||||
commercial, philosophical, ethical or political position regarding
|
|
||||||
them.
|
|
||||||
|
|
||||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
|
||||||
are designated, as being those of Invariant Sections, in the notice
|
|
||||||
that says that the Document is released under this License. If a
|
|
||||||
section does not fit the above definition of Secondary then it is not
|
|
||||||
allowed to be designated as Invariant. The Document may contain zero
|
|
||||||
Invariant Sections. If the Document does not identify any Invariant
|
|
||||||
Sections then there are none.
|
|
||||||
|
|
||||||
The "Cover Texts" are certain short passages of text that are listed,
|
|
||||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
|
||||||
the Document is released under this License. A Front-Cover Text may be
|
|
||||||
at most 5 words, and a Back-Cover Text may be at most 25 words.
|
|
||||||
|
|
||||||
A "Transparent" copy of the Document means a machine-readable copy,
|
|
||||||
represented in a format whose specification is available to the
|
|
||||||
general public, that is suitable for revising the document
|
|
||||||
straightforwardly with generic text editors or (for images composed of
|
|
||||||
pixels) generic paint programs or (for drawings) some widely available
|
|
||||||
drawing editor, and that is suitable for input to text formatters or
|
|
||||||
for automatic translation to a variety of formats suitable for input
|
|
||||||
to text formatters. A copy made in an otherwise Transparent file
|
|
||||||
format whose markup, or absence of markup, has been arranged to thwart
|
|
||||||
or discourage subsequent modification by readers is not Transparent.
|
|
||||||
An image format is not Transparent if used for any substantial amount
|
|
||||||
of text. A copy that is not "Transparent" is called "Opaque".
|
|
||||||
|
|
||||||
Examples of suitable formats for Transparent copies include plain
|
|
||||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
|
||||||
or XML using a publicly available DTD, and standard-conforming simple
|
|
||||||
HTML, PostScript or PDF designed for human modification. Examples of
|
|
||||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
|
||||||
include proprietary formats that can be read and edited only by
|
|
||||||
proprietary word processors, SGML or XML for which the DTD and/or
|
|
||||||
processing tools are not generally available, and the
|
|
||||||
machine-generated HTML, PostScript or PDF produced by some word
|
|
||||||
processors for output purposes only.
|
|
||||||
|
|
||||||
The "Title Page" means, for a printed book, the title page itself,
|
|
||||||
plus such following pages as are needed to hold, legibly, the material
|
|
||||||
this License requires to appear in the title page. For works in
|
|
||||||
formats which do not have any title page as such, "Title Page" means
|
|
||||||
the text near the most prominent appearance of the work's title,
|
|
||||||
preceding the beginning of the body of the text.
|
|
||||||
|
|
||||||
The "publisher" means any person or entity that distributes copies of
|
|
||||||
the Document to the public.
|
|
||||||
|
|
||||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
|
||||||
title either is precisely XYZ or contains XYZ in parentheses following
|
|
||||||
text that translates XYZ in another language. (Here XYZ stands for a
|
|
||||||
specific section name mentioned below, such as "Acknowledgements",
|
|
||||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
|
||||||
of such a section when you modify the Document means that it remains a
|
|
||||||
section "Entitled XYZ" according to this definition.
|
|
||||||
|
|
||||||
The Document may include Warranty Disclaimers next to the notice which
|
|
||||||
states that this License applies to the Document. These Warranty
|
|
||||||
Disclaimers are considered to be included by reference in this
|
|
||||||
License, but only as regards disclaiming warranties: any other
|
|
||||||
implication that these Warranty Disclaimers may have is void and has
|
|
||||||
no effect on the meaning of this License.
|
|
||||||
|
|
||||||
## 2. VERBATIM COPYING
|
|
||||||
|
|
||||||
You may copy and distribute the Document in any medium, either
|
|
||||||
commercially or noncommercially, provided that this License, the
|
|
||||||
copyright notices, and the license notice saying this License applies
|
|
||||||
to the Document are reproduced in all copies, and that you add no
|
|
||||||
other conditions whatsoever to those of this License. You may not use
|
|
||||||
technical measures to obstruct or control the reading or further
|
|
||||||
copying of the copies you make or distribute. However, you may accept
|
|
||||||
compensation in exchange for copies. If you distribute a large enough
|
|
||||||
number of copies you must also follow the conditions in section 3.
|
|
||||||
|
|
||||||
You may also lend copies, under the same conditions stated above, and
|
|
||||||
you may publicly display copies.
|
|
||||||
|
|
||||||
## 3. COPYING IN QUANTITY
|
|
||||||
|
|
||||||
If you publish printed copies (or copies in media that commonly have
|
|
||||||
printed covers) of the Document, numbering more than 100, and the
|
|
||||||
Document's license notice requires Cover Texts, you must enclose the
|
|
||||||
copies in covers that carry, clearly and legibly, all these Cover
|
|
||||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
|
||||||
the back cover. Both covers must also clearly and legibly identify you
|
|
||||||
as the publisher of these copies. The front cover must present the
|
|
||||||
full title with all words of the title equally prominent and visible.
|
|
||||||
You may add other material on the covers in addition. Copying with
|
|
||||||
changes limited to the covers, as long as they preserve the title of
|
|
||||||
the Document and satisfy these conditions, can be treated as verbatim
|
|
||||||
copying in other respects.
|
|
||||||
|
|
||||||
If the required texts for either cover are too voluminous to fit
|
|
||||||
legibly, you should put the first ones listed (as many as fit
|
|
||||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
|
||||||
pages.
|
|
||||||
|
|
||||||
If you publish or distribute Opaque copies of the Document numbering
|
|
||||||
more than 100, you must either include a machine-readable Transparent
|
|
||||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
|
||||||
a computer-network location from which the general network-using
|
|
||||||
public has access to download using public-standard network protocols
|
|
||||||
a complete Transparent copy of the Document, free of added material.
|
|
||||||
If you use the latter option, you must take reasonably prudent steps,
|
|
||||||
when you begin distribution of Opaque copies in quantity, to ensure
|
|
||||||
that this Transparent copy will remain thus accessible at the stated
|
|
||||||
location until at least one year after the last time you distribute an
|
|
||||||
Opaque copy (directly or through your agents or retailers) of that
|
|
||||||
edition to the public.
|
|
||||||
|
|
||||||
It is requested, but not required, that you contact the authors of the
|
|
||||||
Document well before redistributing any large number of copies, to
|
|
||||||
give them a chance to provide you with an updated version of the
|
|
||||||
Document.
|
|
||||||
|
|
||||||
## 4. MODIFICATIONS
|
|
||||||
|
|
||||||
You may copy and distribute a Modified Version of the Document under
|
|
||||||
the conditions of sections 2 and 3 above, provided that you release
|
|
||||||
the Modified Version under precisely this License, with the Modified
|
|
||||||
Version filling the role of the Document, thus licensing distribution
|
|
||||||
and modification of the Modified Version to whoever possesses a copy
|
|
||||||
of it. In addition, you must do these things in the Modified Version:
|
|
||||||
|
|
||||||
- A. Use in the Title Page (and on the covers, if any) a title
|
|
||||||
distinct from that of the Document, and from those of previous
|
|
||||||
versions (which should, if there were any, be listed in the
|
|
||||||
History section of the Document). You may use the same title as a
|
|
||||||
previous version if the original publisher of that version
|
|
||||||
gives permission.
|
|
||||||
- B. List on the Title Page, as authors, one or more persons or
|
|
||||||
entities responsible for authorship of the modifications in the
|
|
||||||
Modified Version, together with at least five of the principal
|
|
||||||
authors of the Document (all of its principal authors, if it has
|
|
||||||
fewer than five), unless they release you from this requirement.
|
|
||||||
- C. State on the Title page the name of the publisher of the
|
|
||||||
Modified Version, as the publisher.
|
|
||||||
- D. Preserve all the copyright notices of the Document.
|
|
||||||
- E. Add an appropriate copyright notice for your modifications
|
|
||||||
adjacent to the other copyright notices.
|
|
||||||
- F. Include, immediately after the copyright notices, a license
|
|
||||||
notice giving the public permission to use the Modified Version
|
|
||||||
under the terms of this License, in the form shown in the
|
|
||||||
Addendum below.
|
|
||||||
- G. Preserve in that license notice the full lists of Invariant
|
|
||||||
Sections and required Cover Texts given in the Document's
|
|
||||||
license notice.
|
|
||||||
- H. Include an unaltered copy of this License.
|
|
||||||
- I. Preserve the section Entitled "History", Preserve its Title,
|
|
||||||
and add to it an item stating at least the title, year, new
|
|
||||||
authors, and publisher of the Modified Version as given on the
|
|
||||||
Title Page. If there is no section Entitled "History" in the
|
|
||||||
Document, create one stating the title, year, authors, and
|
|
||||||
publisher of the Document as given on its Title Page, then add an
|
|
||||||
item describing the Modified Version as stated in the
|
|
||||||
previous sentence.
|
|
||||||
- J. Preserve the network location, if any, given in the Document
|
|
||||||
for public access to a Transparent copy of the Document, and
|
|
||||||
likewise the network locations given in the Document for previous
|
|
||||||
versions it was based on. These may be placed in the "History"
|
|
||||||
section. You may omit a network location for a work that was
|
|
||||||
published at least four years before the Document itself, or if
|
|
||||||
the original publisher of the version it refers to
|
|
||||||
gives permission.
|
|
||||||
- K. For any section Entitled "Acknowledgements" or "Dedications",
|
|
||||||
Preserve the Title of the section, and preserve in the section all
|
|
||||||
the substance and tone of each of the contributor acknowledgements
|
|
||||||
and/or dedications given therein.
|
|
||||||
- L. Preserve all the Invariant Sections of the Document, unaltered
|
|
||||||
in their text and in their titles. Section numbers or the
|
|
||||||
equivalent are not considered part of the section titles.
|
|
||||||
- M. Delete any section Entitled "Endorsements". Such a section may
|
|
||||||
not be included in the Modified Version.
|
|
||||||
- N. Do not retitle any existing section to be Entitled
|
|
||||||
"Endorsements" or to conflict in title with any Invariant Section.
|
|
||||||
- O. Preserve any Warranty Disclaimers.
|
|
||||||
|
|
||||||
If the Modified Version includes new front-matter sections or
|
|
||||||
appendices that qualify as Secondary Sections and contain no material
|
|
||||||
copied from the Document, you may at your option designate some or all
|
|
||||||
of these sections as invariant. To do this, add their titles to the
|
|
||||||
list of Invariant Sections in the Modified Version's license notice.
|
|
||||||
These titles must be distinct from any other section titles.
|
|
||||||
|
|
||||||
You may add a section Entitled "Endorsements", provided it contains
|
|
||||||
nothing but endorsements of your Modified Version by various
|
|
||||||
parties—for example, statements of peer review or that the text has
|
|
||||||
been approved by an organization as the authoritative definition of a
|
|
||||||
standard.
|
|
||||||
|
|
||||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
|
||||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
|
||||||
of Cover Texts in the Modified Version. Only one passage of
|
|
||||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
|
||||||
through arrangements made by) any one entity. If the Document already
|
|
||||||
includes a cover text for the same cover, previously added by you or
|
|
||||||
by arrangement made by the same entity you are acting on behalf of,
|
|
||||||
you may not add another; but you may replace the old one, on explicit
|
|
||||||
permission from the previous publisher that added the old one.
|
|
||||||
|
|
||||||
The author(s) and publisher(s) of the Document do not by this License
|
|
||||||
give permission to use their names for publicity for or to assert or
|
|
||||||
imply endorsement of any Modified Version.
|
|
||||||
|
|
||||||
## 5. COMBINING DOCUMENTS
|
|
||||||
|
|
||||||
You may combine the Document with other documents released under this
|
|
||||||
License, under the terms defined in section 4 above for modified
|
|
||||||
versions, provided that you include in the combination all of the
|
|
||||||
Invariant Sections of all of the original documents, unmodified, and
|
|
||||||
list them all as Invariant Sections of your combined work in its
|
|
||||||
license notice, and that you preserve all their Warranty Disclaimers.
|
|
||||||
|
|
||||||
The combined work need only contain one copy of this License, and
|
|
||||||
multiple identical Invariant Sections may be replaced with a single
|
|
||||||
copy. If there are multiple Invariant Sections with the same name but
|
|
||||||
different contents, make the title of each such section unique by
|
|
||||||
adding at the end of it, in parentheses, the name of the original
|
|
||||||
author or publisher of that section if known, or else a unique number.
|
|
||||||
Make the same adjustment to the section titles in the list of
|
|
||||||
Invariant Sections in the license notice of the combined work.
|
|
||||||
|
|
||||||
In the combination, you must combine any sections Entitled "History"
|
|
||||||
in the various original documents, forming one section Entitled
|
|
||||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
|
||||||
and any sections Entitled "Dedications". You must delete all sections
|
|
||||||
Entitled "Endorsements".
|
|
||||||
|
|
||||||
## 6. COLLECTIONS OF DOCUMENTS
|
|
||||||
|
|
||||||
You may make a collection consisting of the Document and other
|
|
||||||
documents released under this License, and replace the individual
|
|
||||||
copies of this License in the various documents with a single copy
|
|
||||||
that is included in the collection, provided that you follow the rules
|
|
||||||
of this License for verbatim copying of each of the documents in all
|
|
||||||
other respects.
|
|
||||||
|
|
||||||
You may extract a single document from such a collection, and
|
|
||||||
distribute it individually under this License, provided you insert a
|
|
||||||
copy of this License into the extracted document, and follow this
|
|
||||||
License in all other respects regarding verbatim copying of that
|
|
||||||
document.
|
|
||||||
|
|
||||||
## 7. AGGREGATION WITH INDEPENDENT WORKS
|
|
||||||
|
|
||||||
A compilation of the Document or its derivatives with other separate
|
|
||||||
and independent documents or works, in or on a volume of a storage or
|
|
||||||
distribution medium, is called an "aggregate" if the copyright
|
|
||||||
resulting from the compilation is not used to limit the legal rights
|
|
||||||
of the compilation's users beyond what the individual works permit.
|
|
||||||
When the Document is included in an aggregate, this License does not
|
|
||||||
apply to the other works in the aggregate which are not themselves
|
|
||||||
derivative works of the Document.
|
|
||||||
|
|
||||||
If the Cover Text requirement of section 3 is applicable to these
|
|
||||||
copies of the Document, then if the Document is less than one half of
|
|
||||||
the entire aggregate, the Document's Cover Texts may be placed on
|
|
||||||
covers that bracket the Document within the aggregate, or the
|
|
||||||
electronic equivalent of covers if the Document is in electronic form.
|
|
||||||
Otherwise they must appear on printed covers that bracket the whole
|
|
||||||
aggregate.
|
|
||||||
|
|
||||||
## 8. TRANSLATION
|
|
||||||
|
|
||||||
Translation is considered a kind of modification, so you may
|
|
||||||
distribute translations of the Document under the terms of section 4.
|
|
||||||
Replacing Invariant Sections with translations requires special
|
|
||||||
permission from their copyright holders, but you may include
|
|
||||||
translations of some or all Invariant Sections in addition to the
|
|
||||||
original versions of these Invariant Sections. You may include a
|
|
||||||
translation of this License, and all the license notices in the
|
|
||||||
Document, and any Warranty Disclaimers, provided that you also include
|
|
||||||
the original English version of this License and the original versions
|
|
||||||
of those notices and disclaimers. In case of a disagreement between
|
|
||||||
the translation and the original version of this License or a notice
|
|
||||||
or disclaimer, the original version will prevail.
|
|
||||||
|
|
||||||
If a section in the Document is Entitled "Acknowledgements",
|
|
||||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
|
||||||
its Title (section 1) will typically require changing the actual
|
|
||||||
title.
|
|
||||||
|
|
||||||
## 9. TERMINATION
|
|
||||||
|
|
||||||
You may not copy, modify, sublicense, or distribute the Document
|
|
||||||
except as expressly provided under this License. Any attempt otherwise
|
|
||||||
to copy, modify, sublicense, or distribute it is void, and will
|
|
||||||
automatically terminate your rights under this License.
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your license
|
|
||||||
from a particular copyright holder is reinstated (a) provisionally,
|
|
||||||
unless and until the copyright holder explicitly and finally
|
|
||||||
terminates your license, and (b) permanently, if the copyright holder
|
|
||||||
fails to notify you of the violation by some reasonable means prior to
|
|
||||||
60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, receipt of a copy of some or all of the same material does
|
|
||||||
not give you any rights to use it.
|
|
||||||
|
|
||||||
## 10. FUTURE REVISIONS OF THIS LICENSE
|
|
||||||
|
|
||||||
The Free Software Foundation may publish new, revised versions of the
|
|
||||||
GNU Free Documentation License from time to time. Such new versions
|
|
||||||
will be similar in spirit to the present version, but may differ in
|
|
||||||
detail to address new problems or concerns. See
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Each version of the License is given a distinguishing version number.
|
|
||||||
If the Document specifies that a particular numbered version of this
|
|
||||||
License "or any later version" applies to it, you have the option of
|
|
||||||
following the terms and conditions either of that specified version or
|
|
||||||
of any later version that has been published (not as a draft) by the
|
|
||||||
Free Software Foundation. If the Document does not specify a version
|
|
||||||
number of this License, you may choose any version ever published (not
|
|
||||||
as a draft) by the Free Software Foundation. If the Document specifies
|
|
||||||
that a proxy can decide which future versions of this License can be
|
|
||||||
used, that proxy's public statement of acceptance of a version
|
|
||||||
permanently authorizes you to choose that version for the Document.
|
|
||||||
|
|
||||||
## 11. RELICENSING
|
|
||||||
|
|
||||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
|
||||||
World Wide Web server that publishes copyrightable works and also
|
|
||||||
provides prominent facilities for anybody to edit those works. A
|
|
||||||
public wiki that anybody can edit is an example of such a server. A
|
|
||||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
|
|
||||||
means any set of copyrightable works thus published on the MMC site.
|
|
||||||
|
|
||||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
|
||||||
license published by Creative Commons Corporation, a not-for-profit
|
|
||||||
corporation with a principal place of business in San Francisco,
|
|
||||||
California, as well as future copyleft versions of that license
|
|
||||||
published by that same organization.
|
|
||||||
|
|
||||||
"Incorporate" means to publish or republish a Document, in whole or in
|
|
||||||
part, as part of another Document.
|
|
||||||
|
|
||||||
An MMC is "eligible for relicensing" if it is licensed under this
|
|
||||||
License, and if all works that were first published under this License
|
|
||||||
somewhere other than this MMC, and subsequently incorporated in whole
|
|
||||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
|
||||||
and (2) were thus incorporated prior to November 1, 2008.
|
|
||||||
|
|
||||||
The operator of an MMC Site may republish an MMC contained in the site
|
|
||||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
|
||||||
provided the MMC is eligible for relicensing.
|
|
||||||
|
|
||||||
## ADDENDUM: How to use this License for your documents
|
|
||||||
|
|
||||||
To use this License in a document you have written, include a copy of
|
|
||||||
the License in the document and put the following copyright and
|
|
||||||
license notices just after the title page:
|
|
||||||
|
|
||||||
Copyright (C) 2024 DECENTRALIZED CLIMATE FOUNDATION A.C.
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3
|
|
||||||
or any later version published by the Free Software Foundation;
|
|
||||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
|
||||||
A copy of the license is included in the section entitled "GNU
|
|
||||||
Free Documentation License".
|
|
||||||
|
|
||||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
|
||||||
Texts, replace the "with … Texts." line with this:
|
|
||||||
|
|
||||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
|
||||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|
||||||
|
|
||||||
If you have Invariant Sections without Cover Texts, or some other
|
|
||||||
combination of the three, merge those two alternatives to suit the
|
|
||||||
situation.
|
|
||||||
|
|
||||||
If your document contains nontrivial examples of program code, we
|
|
||||||
recommend releasing these examples in parallel under your choice of
|
|
||||||
free software license, such as the GNU General Public License, to
|
|
||||||
permit their use in free software.
|
|
160
_cms.ts
160
_cms.ts
|
@ -1,160 +0,0 @@
|
||||||
import lumeCMS from "lume/cms.ts";
|
|
||||||
|
|
||||||
const cms = lumeCMS();
|
|
||||||
|
|
||||||
cms.document(
|
|
||||||
"settings: Global settings for the site",
|
|
||||||
"src:_data.yml",
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: "lang",
|
|
||||||
type: "text",
|
|
||||||
label: "Language",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "home",
|
|
||||||
type: "object",
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "welcome",
|
|
||||||
type: "text",
|
|
||||||
label: "Title",
|
|
||||||
description: "Welcome message in the homepage",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "menu_links",
|
|
||||||
type: "object-list",
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "title",
|
|
||||||
type: "text",
|
|
||||||
label: "Title",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "url",
|
|
||||||
type: "text",
|
|
||||||
label: "URL",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "extra_head",
|
|
||||||
type: "code",
|
|
||||||
description: "Extra content to include in the <head> tag",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "metas",
|
|
||||||
type: "object",
|
|
||||||
description: "Meta tags configuration.",
|
|
||||||
fields: [
|
|
||||||
"site: text",
|
|
||||||
"description: text",
|
|
||||||
"title: text",
|
|
||||||
"image: text",
|
|
||||||
"twitter: text",
|
|
||||||
"lang: text",
|
|
||||||
"generator: checkbox",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
cms.collection(
|
|
||||||
"posts: Blog posts",
|
|
||||||
"src:posts/*.md",
|
|
||||||
[
|
|
||||||
"title: text",
|
|
||||||
"date: date",
|
|
||||||
{
|
|
||||||
name: "draft",
|
|
||||||
label: "Draft",
|
|
||||||
type: "checkbox",
|
|
||||||
description: "If checked, the post will not be published.",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "tags",
|
|
||||||
type: "list",
|
|
||||||
label: "Tags",
|
|
||||||
init(field) {
|
|
||||||
const { data } = field.cmsContent;
|
|
||||||
field.options = data.site?.search.values("tags");
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "comments",
|
|
||||||
type: "object",
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "src",
|
|
||||||
label: "Link to mastodon post",
|
|
||||||
type: "url",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "extra_head",
|
|
||||||
type: "code",
|
|
||||||
description: "Extra content to include in the <head> tag",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "content",
|
|
||||||
type: "markdown",
|
|
||||||
label: "Content",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
cms.collection(
|
|
||||||
"pages: Additional pages, like about, contact, etc.",
|
|
||||||
"src:pages/*.md",
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: "layout",
|
|
||||||
type: "hidden",
|
|
||||||
value: "layouts/page.vto",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "title",
|
|
||||||
type: "text",
|
|
||||||
label: "Title",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "url",
|
|
||||||
type: "text",
|
|
||||||
description: "The public URL of the page (must start with /)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "menu",
|
|
||||||
type: "object",
|
|
||||||
label: "Whether to include in the menu",
|
|
||||||
fields: [
|
|
||||||
{
|
|
||||||
name: "visible",
|
|
||||||
type: "checkbox",
|
|
||||||
label: "Show in menu",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "order",
|
|
||||||
type: "number",
|
|
||||||
label: "Order",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "extra_head",
|
|
||||||
type: "code",
|
|
||||||
description: "Extra content to include in the <head> tag",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "content",
|
|
||||||
type: "markdown",
|
|
||||||
label: "Content",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
cms.upload("uploads: Uploaded files", "src:uploads");
|
|
||||||
|
|
||||||
export default cms;
|
|
15
_config.ts
15
_config.ts
|
@ -1,15 +0,0 @@
|
||||||
import lume from "lume/mod.ts";
|
|
||||||
import relativeUrls from "lume/plugins/relative_urls.ts";
|
|
||||||
import blog from "blog/mod.ts";
|
|
||||||
|
|
||||||
const site = lume({
|
|
||||||
location: new URL("https://dev.deca.eco"),
|
|
||||||
//location: new URL("https://deca.eco"),
|
|
||||||
});
|
|
||||||
|
|
||||||
site.copy("img");
|
|
||||||
|
|
||||||
site.use(relativeUrls());
|
|
||||||
site.use(blog());
|
|
||||||
|
|
||||||
export default site;
|
|
42
_data.yml
42
_data.yml
|
@ -1,42 +0,0 @@
|
||||||
lang: en
|
|
||||||
|
|
||||||
logo_dark: /img/deca-logo-dark.png
|
|
||||||
|
|
||||||
logo_light: /img/deca-logo-light.png
|
|
||||||
|
|
||||||
home:
|
|
||||||
welcome: DECA PROTOCOL
|
|
||||||
icon: favicon.png
|
|
||||||
|
|
||||||
menu_links: [
|
|
||||||
{
|
|
||||||
text: CCDB,
|
|
||||||
href: "https://search.deca.eco"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Docs,
|
|
||||||
href: "https://docs.deca.eco"},
|
|
||||||
{
|
|
||||||
text: Devs,
|
|
||||||
href: "https://git.decentralizedscience.org/DECA"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: DAO,
|
|
||||||
href: "https://snapshot.org/#/decentralizedcarbon.eth"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Forum,
|
|
||||||
href: "https://forum.deca.eco/"
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
extra_head: []
|
|
||||||
|
|
||||||
# Metas plugin https://lume.land/plugins/metas/#description
|
|
||||||
metas:
|
|
||||||
site: DECA
|
|
||||||
description: The DECA Protocol site
|
|
||||||
title: "=title"
|
|
||||||
image: "=image"
|
|
||||||
twitter: "@decatokens"
|
|
||||||
lang: en
|
|
|
@ -1,133 +0,0 @@
|
||||||
.comments-section {
|
|
||||||
margin-top: 5em;
|
|
||||||
}
|
|
||||||
.comments-header {
|
|
||||||
& h2 {
|
|
||||||
font: var(--font-title);
|
|
||||||
letter-spacing: var(--font-title-spacing);
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
& p {
|
|
||||||
font: var(--font-ui);
|
|
||||||
color: var(--color-dim);
|
|
||||||
margin: .5em 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comments {
|
|
||||||
display: block;
|
|
||||||
padding: 2em;
|
|
||||||
margin-top: 2em;
|
|
||||||
background: var(--color-highlight);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
border: solid 1px var(--color-line);
|
|
||||||
color: var(--color-dim);
|
|
||||||
font: var(--font-small);
|
|
||||||
|
|
||||||
& a {
|
|
||||||
color: currentColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
& ul {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
& li + li {
|
|
||||||
margin-top: 2em;
|
|
||||||
padding-top: 2em;
|
|
||||||
border-top: solid 1px var(--color-line);
|
|
||||||
}
|
|
||||||
& article {
|
|
||||||
max-width: 600px;
|
|
||||||
}
|
|
||||||
& ul ul {
|
|
||||||
margin-top: 2em;
|
|
||||||
padding-top: 2em;
|
|
||||||
border-top: solid 1px var(--color-line);
|
|
||||||
|
|
||||||
@media (min-width: 600px) {
|
|
||||||
margin-left: 64px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comment-avatar {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 6px;
|
|
||||||
float: left;
|
|
||||||
margin-right: 14px;
|
|
||||||
box-shadow: 0 0 1px #0009;
|
|
||||||
}
|
|
||||||
.comment-user {
|
|
||||||
text-decoration: none;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.comment-author {
|
|
||||||
position: absolute;
|
|
||||||
left: 35px;
|
|
||||||
top: 35px;
|
|
||||||
background: var(--color-highlight);
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
color: var(--color-primary);
|
|
||||||
}
|
|
||||||
.comment-user:hover .comment-username {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
.comment-username {
|
|
||||||
margin-right: .5em;
|
|
||||||
color: var(--color-text);
|
|
||||||
}
|
|
||||||
.comment-useraddress {
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
.comment-time {
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
.comment-address {
|
|
||||||
color: currentColor;
|
|
||||||
text-decoration: none;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.comment-address:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
.comment-body {
|
|
||||||
margin-top: 1em;
|
|
||||||
margin-left: 64px;
|
|
||||||
line-height: 1.5;
|
|
||||||
|
|
||||||
.invisible {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.ellipsis::after {
|
|
||||||
content: "…";
|
|
||||||
}
|
|
||||||
.mention {
|
|
||||||
text-decoration: none;
|
|
||||||
color: var(--color-text);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comment-body p {
|
|
||||||
margin: 0.5em 0 0;
|
|
||||||
}
|
|
||||||
.comment-counts {
|
|
||||||
display: flex;
|
|
||||||
column-gap: 1em;
|
|
||||||
font-size: small;
|
|
||||||
|
|
||||||
& svg {
|
|
||||||
color: var(--color-primary);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comment-counts > span {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
column-gap: .3em;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
.navbar {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
column-gap: 1rem;
|
|
||||||
row-gap: 1rem;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 1rem min(5vw, 5rem);
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-links {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
column-gap: 1.5rem;
|
|
||||||
font: var(--font-ui-bold);
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
& [aria-current="page"] {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-search {
|
|
||||||
padding: 0 1em;
|
|
||||||
margin-left: auto;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-home {
|
|
||||||
display: flex;
|
|
||||||
align-self: center;
|
|
||||||
align-items: center;
|
|
||||||
color: var(--color-foreground);
|
|
||||||
column-gap: 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
font: var(--text-body-bold);
|
|
||||||
letter-spacing: var(--text-title-spacing);
|
|
||||||
|
|
||||||
|
|
||||||
& img {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
width:100px;
|
|
||||||
height:100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
& span {
|
|
||||||
@media (max-width: 820px) {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,173 +0,0 @@
|
||||||
.page-header {
|
|
||||||
margin-bottom: var(--row-gap-small);
|
|
||||||
|
|
||||||
& > p:first-child {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.body-home {
|
|
||||||
padding: var(--row-gap-xsmall) 0;
|
|
||||||
max-width: min(100% - 15vw, 45em);
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-title {
|
|
||||||
font: var(--font-display);
|
|
||||||
letter-spacing: var(--font-display-spacing);
|
|
||||||
margin: 0;
|
|
||||||
text-wrap: balance;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-title-landing {
|
|
||||||
font: var(--font-display);
|
|
||||||
letter-spacing: var(--font-display-spacing);
|
|
||||||
text-align: center;
|
|
||||||
margin: 0;
|
|
||||||
text-wrap: balance;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-navigation {
|
|
||||||
margin-bottom: var(--row-gap-medium);
|
|
||||||
|
|
||||||
& ul {
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
gap: .5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
& h2 { font: var(--font-body-bold);
|
|
||||||
letter-spacing: var(--font-body-spacing);
|
|
||||||
margin: .5em 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-pagination {
|
|
||||||
border-top: solid 1px var(--color-line);
|
|
||||||
margin-top: var(--row-gap-medium);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create a section for the index component instead of the base */
|
|
||||||
|
|
||||||
.container {
|
|
||||||
text-align: center;
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-button-group {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 20px; /* Space between the main button and the right button */
|
|
||||||
flex-wrap: wrap; /* Allow wrapping if screen space is limited */
|
|
||||||
padding: 10px; /* Some padding to avoid touching screen edges */
|
|
||||||
position: relative;
|
|
||||||
margin-bottom: 70px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-button, .specification-button {
|
|
||||||
background-color: inherit;
|
|
||||||
color: inherit;
|
|
||||||
padding: 15px 30px;
|
|
||||||
border-radius: 50px;
|
|
||||||
font-size: 24px;
|
|
||||||
text-decoration: none;
|
|
||||||
border-style: double;
|
|
||||||
position: relative;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
box-shadow: 0 5px 15px var(--color-link-hover, rgba(0, 0, 0, 0.1));
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-button:hover, .main-button:focus,
|
|
||||||
.specification-button:hover, .specification-button:focus {
|
|
||||||
color: var(--color-link-hover);
|
|
||||||
border-style: solid;
|
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 8px 20px var(--color-link-hover, rgba(0, 0, 0, 0.4));
|
|
||||||
}
|
|
||||||
|
|
||||||
.hover-buttons {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
top: 100%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-button:hover .hover-buttons,
|
|
||||||
.main-button:focus .hover-buttons {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.specification-button {
|
|
||||||
margin: 5px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.secondary-button {
|
|
||||||
display: block;
|
|
||||||
margin: 10px 5px;
|
|
||||||
padding: 10px 20px;
|
|
||||||
background-color: inherit;
|
|
||||||
color: inherit;
|
|
||||||
border-radius: 20px;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: background-color 0.2s ease, transform 0.2s ease;
|
|
||||||
gap: 20px; /* Space between the main button and the right button */
|
|
||||||
flex-wrap: wrap; /* Allow wrapping if screen space is limited */
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.secondary-button:hover, .secondary-button:focus {
|
|
||||||
border-style: solid;
|
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 8px 20px var(--color-link-hover, rgba(0, 0, 0, 0.4));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ensure this section gets called from footer.css instead */
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
max-width: var(--max-width);
|
|
||||||
margin: auto;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-links {
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
padding: 10px 0;
|
|
||||||
display: flex;
|
|
||||||
gap: 10px;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
& svg {
|
|
||||||
display: block;
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
fill: currentColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
& a {
|
|
||||||
font: var(--font-display);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
column-gap: 10px;
|
|
||||||
padding: 10px;
|
|
||||||
border-radius: 5px;
|
|
||||||
transition: background-color 0.2s ease,
|
|
||||||
transform 0.2s ease,
|
|
||||||
box-shadow 0.5s;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: var(--color-link-hover);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 8px 20px var(--color-link-hover, rgba(0, 0, 0, 0.4));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
.postList {
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
& article.post + article.post {
|
|
||||||
margin-top: var(--row-gap-medium);
|
|
||||||
}
|
|
||||||
& li.post + li.post {
|
|
||||||
margin-top: var(--row-gap-small);
|
|
||||||
}
|
|
||||||
|
|
||||||
& .post-header {
|
|
||||||
margin-bottom: var(--row-gap-xsmall);
|
|
||||||
}
|
|
||||||
|
|
||||||
& .post-details {
|
|
||||||
font: var(--font-small);
|
|
||||||
}
|
|
||||||
|
|
||||||
& .post-title {
|
|
||||||
font: var(--font-title);
|
|
||||||
letter-spacing: var(--font-title-spacing);
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
& a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
.post-header {
|
|
||||||
margin-bottom: var(--row-gap-small);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-title {
|
|
||||||
font: var(--font-display);
|
|
||||||
letter-spacing: var(--font-display-spacing);
|
|
||||||
margin: 0 0 0.2em;
|
|
||||||
text-wrap: balance;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-details {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
row-gap: 1em;
|
|
||||||
column-gap: .5em;
|
|
||||||
align-items: center;
|
|
||||||
font: var(--font-small);
|
|
||||||
color: var(--color-dim);
|
|
||||||
|
|
||||||
& p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
& p:nth-child(-n+2)::after {
|
|
||||||
content: "•";
|
|
||||||
padding-left: .5em;
|
|
||||||
align-self: stretch;
|
|
||||||
}
|
|
||||||
|
|
||||||
& p:last-of-type {
|
|
||||||
margin-right: .5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
& a {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-tags {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
gap: .5em;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-link {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-tag
|
|
||||||
---
|
|
||||||
<header class="page-header">
|
|
||||||
<h1 class="page-title">{{ title }}</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="3" cy="13" r="2" fill="currentColor"/><path d="M14 13C14 6.925 9.075 2 3 2M9 13a6 6 0 0 0-6-6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg> RSS:
|
|
||||||
<a href="/feed.xml">Atom</a>, <a href="/feed.json">JSON</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{{ if pagination.page === 1 }}
|
|
||||||
<div class="search" id="search"></div>
|
|
||||||
{{ /if }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{ if pagination.page === 1 }}
|
|
||||||
{{ set pageTags = search.pages("type=tag", "tag") }}
|
|
||||||
{{ if pageTags.length }}
|
|
||||||
<nav class="page-navigation">
|
|
||||||
<h2>{{ i18n.search.tags }}:</h2>
|
|
||||||
|
|
||||||
<ul class="page-navigation-tags">
|
|
||||||
{{ for page of pageTags }}
|
|
||||||
<li><a href="{{ page.url }}" class="badge">{{ page.tag }}</a></li>
|
|
||||||
{{ /for }}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
{{ /if }}
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
{{ include "templates/post-list.vto" { postslist: results } }}
|
|
||||||
|
|
||||||
{{ if pagination.totalPages !== 1 }}
|
|
||||||
<nav class="page-pagination pagination">
|
|
||||||
<ul>
|
|
||||||
{{- if pagination.previous }}
|
|
||||||
<li class="pagination-prev">
|
|
||||||
<a href="{{ pagination.previous }}" rel="prev">{{ i18n.nav.previous }}</a>
|
|
||||||
</li>
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
<li class="pagination-page">
|
|
||||||
{{ i18n.nav.page }} {{ pagination.page }}
|
|
||||||
</li>
|
|
||||||
|
|
||||||
{{- if pagination.next }}
|
|
||||||
<li class="pagination-next">
|
|
||||||
<a href="{{ pagination.next }}" rel="next">{{ i18n.nav.next }}</a>
|
|
||||||
</li>
|
|
||||||
{{ /if }}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
{{ /if }}
|
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-tag
|
|
||||||
---
|
|
||||||
<header class="page-header">
|
|
||||||
<p><a href="/archive/">{{ i18n.nav.back }}</a></p>
|
|
||||||
<h1 class="page-title">{{ title }}</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{ include "templates/post-list.vto" { postslist: search.pages(search_query) } }}
|
|
|
@ -1,78 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
|
|
||||||
<html lang="{{ it.lang }}">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>{{ it.title || metas.title }} - {{ metas.site }}</title>
|
|
||||||
|
|
||||||
<!-- Color Scheme Meta Tags -->
|
|
||||||
<meta name="supported-color-schemes" content="light dark">
|
|
||||||
<meta name="theme-color" content="hsl(220, 20%, 100%)" media="(prefers-color-scheme: light)">
|
|
||||||
<meta name="theme-color" content="hsl(220, 20%, 10%)" media="(prefers-color-scheme: dark)">
|
|
||||||
|
|
||||||
<!-- External Stylesheets and Scripts -->
|
|
||||||
<link rel="stylesheet" href="/styles.css">
|
|
||||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="{{ metas.site }}">
|
|
||||||
<link rel="alternate" href="/feed.json" type="application/json" title="{{ metas.site }}">
|
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon.png">
|
|
||||||
<link rel="canonical" href="{{ url |> url(true) }}">
|
|
||||||
<script src="/js/main.js" type="module"></script>
|
|
||||||
{{ it.extra_head?.join("\n") }}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<nav class="navbar">
|
|
||||||
<a href="/" class="navbar-home">
|
|
||||||
<img id="theme-logo" alt="{{ metas.site }}">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<ul class="navbar-links">
|
|
||||||
{{- for link of it.menu_links }}
|
|
||||||
<li>
|
|
||||||
<a href="{{ link.href }}" target="_blank">
|
|
||||||
{{ link.text }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
{{- for entry of search.pages("menu.visible=true", "menu.order") }}
|
|
||||||
<li>
|
|
||||||
<a href="{{ entry.url }}"{{ if entry.url == url }} aria-current="page"{{ /if }}>
|
|
||||||
{{ entry.menu.title || entry.title }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
<li>
|
|
||||||
<script>
|
|
||||||
const lightLogo = "/img/deca-logo-light.png";
|
|
||||||
const darkLogo = "/img/deca-logo-dark.png";
|
|
||||||
|
|
||||||
// Set initial theme and logo
|
|
||||||
let theme = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
||||||
? "dark"
|
|
||||||
: "light");
|
|
||||||
document.documentElement.dataset.theme = theme;
|
|
||||||
document.getElementById("theme-logo").src = theme === "dark" ? darkLogo : lightLogo;
|
|
||||||
|
|
||||||
function changeTheme() {
|
|
||||||
theme = theme === "dark" ? "light" : "dark";
|
|
||||||
localStorage.setItem("theme", theme);
|
|
||||||
document.documentElement.dataset.theme = theme;
|
|
||||||
document.getElementById("theme-logo").src = theme === "dark" ? darkLogo : lightLogo;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<button class="button" onclick="changeTheme()">
|
|
||||||
<span class="icon">◐</span>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main class="{{ it.bodyClass }}">
|
|
||||||
{{ content }}
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Current page: {{ url }} -->
|
|
||||||
{{ include "templates/footer.vto" }}
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,38 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-tag
|
|
||||||
---
|
|
||||||
<article class="post" data-pagefind-body>
|
|
||||||
<header class="post-header">
|
|
||||||
<h1 class="post-title">{{ it.title }}</h1>
|
|
||||||
|
|
||||||
{{ it.subtitle |> md }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{ if toc.length }}
|
|
||||||
<nav class="toc">
|
|
||||||
<h1>Table of contents</h2>
|
|
||||||
<ol>
|
|
||||||
{{ for item of toc }}
|
|
||||||
<li>
|
|
||||||
<a href="#{{ item.slug }}">{{ item.text }}</a>
|
|
||||||
|
|
||||||
{{ if item.children.length }}
|
|
||||||
<ul>
|
|
||||||
{{ for child of item.children }}
|
|
||||||
<li>
|
|
||||||
<a href="#{{ child.slug }}">{{ child.text }}</a>
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
</ul>
|
|
||||||
{{ /if }}
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
<div class="post-body">
|
|
||||||
{{ content }}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
|
@ -1,87 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-post
|
|
||||||
---
|
|
||||||
<article class="post" data-pagefind-body data-title="{{ title }}" data-pagefind-index-attrs="data-title">
|
|
||||||
<header class="post-header">
|
|
||||||
<h1 class="post-title">{{ title }}</h1>
|
|
||||||
|
|
||||||
{{ include "templates/post-details.vto" }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{ if toc.length }}
|
|
||||||
<nav class="toc">
|
|
||||||
<h2>Table of contents</h2>
|
|
||||||
<ol>
|
|
||||||
{{ for item of toc }}
|
|
||||||
<li>
|
|
||||||
<a href="#{{ item.slug }}">{{ item.text }}</a>
|
|
||||||
|
|
||||||
{{ if item.children.length }}
|
|
||||||
<ul>
|
|
||||||
{{ for child of item.children }}
|
|
||||||
<li>
|
|
||||||
<a href="#{{ child.slug }}">{{ child.text }}</a>
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
</ul>
|
|
||||||
{{ /if }}
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
<div class="post-body body">
|
|
||||||
{{ content }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ if it.footnotes.length }}
|
|
||||||
<aside role="note" class="footnotes">
|
|
||||||
<dl>
|
|
||||||
{{ for note of footnotes }}
|
|
||||||
<div id={{ note.id }} class="footnote">
|
|
||||||
<dt><a href="#{{ note.refId }}">{{ note.label }}</a></dt>
|
|
||||||
<dd>{{ note.content }}</dd>
|
|
||||||
</div>
|
|
||||||
{{ /for }}
|
|
||||||
</dl>
|
|
||||||
</aside>
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
{{ if it.comments?.src }}
|
|
||||||
<aside class="comments-section">
|
|
||||||
<header class="comments-header">
|
|
||||||
<h2>{{ i18n.comments.title }}</h2>
|
|
||||||
<p>{{ i18n.comments.description.replace(":src:", it.comments.src) }}</p>
|
|
||||||
</header>
|
|
||||||
<mastodon-comments src="{{ it.comments.src }}" cache="{{ it.comments.cache ?? 60 }}" class="comments">
|
|
||||||
{{ i18n.comments.empty }}
|
|
||||||
</mastodon-comments>
|
|
||||||
{{ /if }}
|
|
||||||
</aside>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
<nav class="page-pagination pagination">
|
|
||||||
<ul>
|
|
||||||
{{- set previousPost = search.previousPage(url, "type=post") }}
|
|
||||||
{{- if previousPost }}
|
|
||||||
<li class="pagination-prev">
|
|
||||||
<a href="{{ previousPost.url }}" rel="prev">
|
|
||||||
<span>{{ i18n.nav.previous_post }}</span>
|
|
||||||
<strong>{{ previousPost.title }}</strong>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
{{- set nextPost = search.nextPage(url, "type=post") }}
|
|
||||||
{{- if nextPost }}
|
|
||||||
<li class="pagination-next">
|
|
||||||
<a href="{{ nextPost.url }}" rel="next">
|
|
||||||
<span>{{ i18n.nav.next_post }}</span>
|
|
||||||
<strong>{{ nextPost.title }}</strong>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{ /if }}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
|
@ -1,35 +0,0 @@
|
||||||
<footer class="footer">
|
|
||||||
<ul class="footer-links">
|
|
||||||
<li>
|
|
||||||
<a href="https://t.me/deca_currency" target="_blank">
|
|
||||||
<svg height="512px" version="1.1" viewBox="0 0 512 512" width="512px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="comp_x5F_335-telegram"><g><path d=" M477.805,102.98l-67.327,317.516c-5.08,22.41-18.326,27.984-37.15,17.431l-102.585-75.596l-49.497,47.607 c-5.477,5.478-10.06,10.061-20.617,10.061l7.37-104.479l190.129-171.805c8.268-7.37-1.792-11.454-12.848-4.083L150.233,287.633 l-101.19-31.672c-22.011-6.873-22.408-22.012,4.581-32.568L449.419,70.911C467.744,64.039,483.779,74.993,477.805,102.98z"/></g></g><g id="Layer_1"/></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://x.com/@decatokens" target="_blank">
|
|
||||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"><path d="M14.095479,10.316482L22.286354,1h-1.940718l-7.115352,8.087682L7.551414,1H1l8.589488,12.231093L1,23h1.940717 l7.509372-8.542861L16.448587,23H23L14.095479,10.316482z M11.436522,13.338465l-0.871624-1.218704l-6.924311-9.68815h2.981339 l5.58978,7.82155l0.867949,1.218704l7.26506,10.166271h-2.981339L11.436522,13.338465z"/></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://matrix.to/#/#DECA:matrix.org" target="_blank">
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 520 520" style="enable-background:new 0 0 520 520;" xml:space="preserve">
|
|
||||||
<path d="M13.7,11.9v496.2h35.7V520H0V0h49.4v11.9H13.7z"/>
|
|
||||||
<path d="M166.3,169.2v25.1h0.7c6.7-9.6,14.8-17,24.2-22.2c9.4-5.3,20.3-7.9,32.5-7.9c11.7,0,22.4,2.3,32.1,6.8 c9.7,4.5,17,12.6,22.1,24c5.5-8.1,13-15.3,22.4-21.5c9.4-6.2,20.6-9.3,33.5-9.3c9.8,0,18.9,1.2,27.3,3.6c8.4,2.4,15.5,6.2,21.5,11.5 c6,5.3,10.6,12.1,14,20.6c3.3,8.5,5,18.7,5,30.7v124.1h-50.9V249.6c0-6.2-0.2-12.1-0.7-17.6c-0.5-5.5-1.8-10.3-3.9-14.3 c-2.2-4.1-5.3-7.3-9.5-9.7c-4.2-2.4-9.9-3.6-17-3.6c-7.2,0-13,1.4-17.4,4.1c-4.4,2.8-7.9,6.3-10.4,10.8c-2.5,4.4-4.2,9.4-5,15.1 c-0.8,5.6-1.3,11.3-1.3,17v103.3h-50.9v-104c0-5.5-0.1-10.9-0.4-16.3c-0.2-5.4-1.3-10.3-3.1-14.9c-1.8-4.5-4.8-8.2-9-10.9 c-4.2-2.7-10.3-4.1-18.5-4.1c-2.4,0-5.6,0.5-9.5,1.6c-3.9,1.1-7.8,3.1-11.5,6.1c-3.7,3-6.9,7.3-9.5,12.9c-2.6,5.6-3.9,13-3.9,22.1 v107.6h-50.9V169.2H166.3z"/>
|
|
||||||
<path d="M506.3,508.1V11.9h-35.7V0H520v520h-49.4v-11.9H506.3z"/>
|
|
||||||
</svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://git.decentralizedscience.org/deca" target="_blank">
|
|
||||||
<svg role="img" fill="currentColor" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true"><path fill-rule="evenodd" d="M4.209 4.603c-.247 0-.525.02-.84.088-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768 1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367 2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068 0 0 2.107-4.471 2.107-8.823-.042-1.318-.367-1.55-.443-1.627-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12zm8.33 2.554c.26.003.509.127.509.127l.868.422-.529 1.075a.686.686 0 0 0-.614.359.685.685 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527.687.687 0 0 0 .347.763.686.686 0 0 0 .867-.206.688.688 0 0 0-.069-.882l.916-1.874a.667.667 0 0 0 .237-.02.657.657 0 0 0 .271-.137 8.826 8.826 0 0 1 1.016.512.761.761 0 0 1 .286.282c.073.21-.073.569-.073.569-.087.29-.702 1.55-.702 1.55a.692.692 0 0 0-.676.477.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431.19-.397.515-1.16.515-1.16.035-.066.218-.394.103-.814-.095-.435-.48-.638-.48-.638-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.688.688 0 0 0-.148-.241l.516-1.062 2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.065 1.065 0 0 1-.393-.045l-.202-.08-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.855.855 0 0 1 .35-.077z" clip-rule="evenodd"></path></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://www.youtube.com/channel/UC-HId3XrWUFuJcyK8DL8ZEQ" target="_blank">
|
|
||||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#000"><path d="M12.04 3.5c.59 0 7.54.02 9.34.5a3.02 3.02 0 0 1 2.12 2.15C24 8.05 24 12 24 12v.04c0 .43-.03 4.03-.5 5.8A3.02 3.02 0 0 1 21.38 20c-1.76.48-8.45.5-9.3.51h-.17c-.85 0-7.54-.03-9.29-.5A3.02 3.02 0 0 1 .5 17.84c-.42-1.61-.49-4.7-.5-5.6v-.5c.01-.9.08-3.99.5-5.6a3.02 3.02 0 0 1 2.12-2.14c1.8-.49 8.75-.51 9.34-.51zM9.54 8.4v7.18L15.82 12 9.54 8.41z"/></svg>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
<div class="post-details">
|
|
||||||
{{ if author }}
|
|
||||||
{{ set page = search.page(`type=author author="author"`) }}
|
|
||||||
{{ if page }}
|
|
||||||
<p>{{ i18n.post.by}} <a data-pagefind-filter="author" href="{{ page.url }}">{{ author }}</a></p>
|
|
||||||
{{ else }}
|
|
||||||
<p>{{ i18n.post.by}} {{ author }}</p>
|
|
||||||
{{ /if }}
|
|
||||||
{{ /if }}
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<time datetime="{{ date |> date('DATETIME') }}">
|
|
||||||
{{ date |> date('HUMAN_DATE') }}
|
|
||||||
</time>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>{{ it.readingInfo.minutes }} {{ i18n.post.reading_time}}</p>
|
|
||||||
|
|
||||||
<div class="post-tags">
|
|
||||||
{{ for tag of tags }}
|
|
||||||
{{ set page = search.page(`type=tag tag="${tag}"`) }}
|
|
||||||
|
|
||||||
{{ if page }}
|
|
||||||
<a data-pagefind-filter="filter" class="badge" href="{{ page.url }}">{{ tag }}</a>
|
|
||||||
{{ /if }}
|
|
||||||
{{ /for }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,18 +0,0 @@
|
||||||
<ul class="postList">
|
|
||||||
{{ for post of postslist }}
|
|
||||||
<li class="post">
|
|
||||||
<h2 class="post-title">
|
|
||||||
<a href="{{ post.url }}" {{ if post.url == url }} aria-current="page"{{ /if }}>
|
|
||||||
{{ post.title || post.url }}
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
{{ include "templates/post-details.vto" {
|
|
||||||
date: post.date,
|
|
||||||
tags: post.tags,
|
|
||||||
author: post.author,
|
|
||||||
readingInfo: post.readingInfo
|
|
||||||
} }}
|
|
||||||
</li>
|
|
||||||
{{ /for }}
|
|
||||||
</ul>
|
|
17
deno.json
17
deno.json
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"imports": {
|
|
||||||
"lume/": "https://deno.land/x/lume@v2.1.2/",
|
|
||||||
"blog/": "https://deno.land/x/lume_theme_simple_blog@v0.15.1/"
|
|
||||||
},
|
|
||||||
"tasks": {
|
|
||||||
"lume": "echo \"import 'lume/cli.ts'\" | DENO_DIR=_vendor deno run -A -",
|
|
||||||
"build": "deno task lume",
|
|
||||||
"serve": "deno task lume -s",
|
|
||||||
"cms": "deno task lume cms"
|
|
||||||
},
|
|
||||||
"compilerOptions": {
|
|
||||||
"types": [
|
|
||||||
"lume/types.ts"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 247 KiB |
Binary file not shown.
Before Width: | Height: | Size: 218 KiB |
BIN
img/favicon.png
BIN
img/favicon.png
Binary file not shown.
Before Width: | Height: | Size: 5.9 KiB |
29
index.vto
29
index.vto
|
@ -1,29 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-home
|
|
||||||
title: Home
|
|
||||||
---
|
|
||||||
|
|
||||||
<header class="page-header">
|
|
||||||
<h1 class="page-title-landing">{{ home.welcome }}</h1>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="container">
|
|
||||||
<div class="main-button-group">
|
|
||||||
<a href="https://docs.google.com/presentation/d/1H4V5X0X-9jnulwmmQBKk7PiStqKoPh_t_h7F0R3kLw0/edit?usp=sharing" target="_blank" class="specification-button">Specification</a>
|
|
||||||
<div class="main-button">
|
|
||||||
Get Deca
|
|
||||||
<div class="hover-buttons">
|
|
||||||
<a href="https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x3556a5005d5411603e0115efd9b875fdfb3ad7e9&chain=mainnet" target="_blank" class="secondary-button">Mainnet</a>
|
|
||||||
<a href="https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x02f1cb850799d651d56775dae04f66362eb8e4b2&chain=arbitrum" target="_blank" class="secondary-button">Arbitrum</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<a href="./faq/#don't-trust%2C-verify!">VERIFY YOUR DECA TOKENS</a>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<a href="https://certificate.quantstamp.com/full/deca-d-ecentralized-c-arbon-tokens-itde-initial-token-distribution-event.pdf">DECA SECURITY AUDIT</a>
|
|
||||||
</section>
|
|
||||||
<br>
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/base.vto
|
|
||||||
bodyClass: body-home
|
|
||||||
title: Blog
|
|
||||||
url: /blog/
|
|
||||||
menu:
|
|
||||||
visible: true
|
|
||||||
order: 2
|
|
||||||
---
|
|
||||||
|
|
||||||
<header class="page-header">
|
|
||||||
<h1 class="page-title">{{ home.welcome }}</h1>
|
|
||||||
<div class="search" id="search"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<section class="postList">
|
|
||||||
{{ for post of search.pages("type=post", "date=desc", 3) }}
|
|
||||||
<article class="post">
|
|
||||||
<header class="post-header">
|
|
||||||
<h2 class="post-title">
|
|
||||||
<a href="{{ post.url }}" {{ if post.url == url }} aria-current="page"{{ /if }}>
|
|
||||||
{{ post.title || post.url }}
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
{{ include "templates/post-details.vto" {
|
|
||||||
date: post.date,
|
|
||||||
tags: post.tags,
|
|
||||||
author: post.author,
|
|
||||||
readingInfo: post.readingInfo
|
|
||||||
} }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="post-excerpt body">
|
|
||||||
{{ post.excerpt |> md }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a href="{{ post.url }}" class="post-link">
|
|
||||||
{{ i18n.nav.continue_reading }}
|
|
||||||
</a>
|
|
||||||
</article>
|
|
||||||
{{ /for }}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<p>{{ i18n.nav.archive }}</p>
|
|
258
pages/faq.md
258
pages/faq.md
|
@ -1,258 +0,0 @@
|
||||||
---
|
|
||||||
layout: layouts/page.vto
|
|
||||||
title: FAQs
|
|
||||||
url: /faq/
|
|
||||||
menu:
|
|
||||||
visible: true
|
|
||||||
order: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
## What is DECA Token?
|
|
||||||
|
|
||||||
DECA Token is a token backed up by <a href="https://search.deca.eco" target="_blank" >decentralized carbon credits</a>.
|
|
||||||
The goal is to create governance for the open collective DAO and develop the
|
|
||||||
DECA protocol as a public good that supports projects with social and
|
|
||||||
environmental impact and avoids that CO2 gets into the atmosphere in order to
|
|
||||||
fulfill the Paris Agreement goals.
|
|
||||||
|
|
||||||
### How to get the DECA Token?
|
|
||||||
|
|
||||||
Currently DECA Token has two liquidity pools at uniswap Ethereum and Arbitrum
|
|
||||||
Networks
|
|
||||||
|
|
||||||
* <a href="https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x3556a5005d5411603e0115efd9b875fdfb3ad7e9&chain=mainnet" target="_blank"> Uniswap on the Ethereum Network</a>
|
|
||||||
* <a href="https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x02f1cb850799d651d56775dae04f66362eb8e4b2&chain=arbitrum" target="_blank"> Uniswap Arbitrum L2 Network</a>
|
|
||||||
|
|
||||||
It is up to the comunity to provide liquidity and bridge into other Ethereum
|
|
||||||
Layers or Dexes. If you did please contact us to verify and update this section.
|
|
||||||
|
|
||||||
> Disclossure Agreement:
|
|
||||||
> You should be aware of your own country cryptocurrency regulations and it is
|
|
||||||
your own responsability to comply with the laws of your country.
|
|
||||||
|
|
||||||
### Don't trust, VERIFY!
|
|
||||||
|
|
||||||
**IMPORTANT:** Always verify the address of the DECA Smart contract. Here is a
|
|
||||||
list of DECA contracts in multiple Networks:
|
|
||||||
|
|
||||||
| Network | Contract |
|
|
||||||
|----------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
||||||
| Ethereum | <a href="https://etherscan.io/token/0x3556a5005d5411603e0115efd9b875fdfb3ad7e9" target="_blank"> 0x3556a5005d5411603e0115efd9b875fdfb3ad7e9</a>|
|
|
||||||
| Arbitrum | <a href="https://arbiscan.io/token/0x02f1CB850799D651d56775dAe04F66362eb8e4B2" target="_blank"> 0x02f1CB850799D651d56775dAe04F66362eb8e4B2</a>|
|
|
||||||
| Linea | <a href="https://lineascan.build/token/0x380d8b3fbdd15ad5ff4bc5fb5393fcd10dc2a68b?a=0x3D038bA1e06e1d600E3e68F0dbD7b28828786C25" target="_blank">0x380D8b3FbDD15Ad5ff4Bc5Fb5393FCd10dc2A68b</a> |
|
|
||||||
| ZKEVM | <a href="https://zkevm.polygonscan.com/token/0x34f4e513517f7aea7d6ef797b30ed56af8000344?a=0xDDd93CEC5843f471Eb2b8B2886b2Be32555B5209" target="_blank">0x34f4E513517f7aEA7D6Ef797b30Ed56AF8000344</a> |
|
|
||||||
| ZKSync | Unknown |
|
|
||||||
|
|
||||||
> Notice: There might be some fake smart contracts trying to look like the DECA
|
|
||||||
> smart contract or fake DECA tokens.
|
|
||||||
|
|
||||||
|
|
||||||
### Can I mine DECA Token?
|
|
||||||
|
|
||||||
DECA Token cannot be mined or minted. It is based on the ERC20 created by an
|
|
||||||
ICO that previously backed up the DECA Token minting with Decentralized Carbon
|
|
||||||
Credits, DECA Token has a limited supply, and its security has been audited.
|
|
||||||
DECA Governance token will be able to be minted/mined in the future, and there
|
|
||||||
will be the possibility to migrate DECA Token to the DECA Protocol as DECA
|
|
||||||
Governance tokens if requested.
|
|
||||||
|
|
||||||
## What is the difference between the DECA Token and the DECA Governance Token?
|
|
||||||
|
|
||||||
Currently, the DECA Token works with the ERC20 standard and is used in the
|
|
||||||
<a href="https://snapshot.org/#/decentralizedcarbon.eth" target="_blank">snapshot DAO</a>
|
|
||||||
for governance purposes. It also includes a record of the decentralized carbon
|
|
||||||
credits database (A.K.A decentralized backlog) which holds a record of the
|
|
||||||
previous migrated carbon credits to back up the emissions on the DECA Token.
|
|
||||||
|
|
||||||
The DECA Governance Token will be an updated version of the DECA token with
|
|
||||||
added Governance feautures and tokenomics model with <a href="https://medium.com/@MarBlueBucket.AI/what-does-ultrasound-money-mean-aa6f1eb1da4" target="_blank">ultrasound money like properties</a>
|
|
||||||
. The goal is to create a model that controls the DECA Governance Token
|
|
||||||
minting as reward to the participants of the [DECA Minting/Mining Use Case]()
|
|
||||||
Process, which also mints a secondary token (Carbon Token) as backup by the
|
|
||||||
same mechanism. This secondary token represents the decentralized carbon credits
|
|
||||||
or a reduction proof of 1 ton CO2 offset 1:1 equivalence following some ISO standards
|
|
||||||
and technical DAO Approval.
|
|
||||||
|
|
||||||
## More about the carbon token
|
|
||||||
|
|
||||||
The carbon token is the representation of 1 tco2 offset, either backup by
|
|
||||||
previously decentralized carbon credits in the early phase, or by a verified
|
|
||||||
technical DAO Committee that approves that it was created following the ISO 14064
|
|
||||||
standard as compliance.
|
|
||||||
|
|
||||||
## What is the DECA Protocol?
|
|
||||||
|
|
||||||
Since the model is very abstract, it serves many use cases. Also, the base proto
|
|
||||||
col design intends to be modular and upgradeable if the DAO Decides to make
|
|
||||||
changes, and thus, we consider this a base protocol that can support green
|
|
||||||
energy and carbon offset decentralized solutions.
|
|
||||||
|
|
||||||
|
|
||||||
## What are the DECA Offset Certificates?
|
|
||||||
|
|
||||||
The carbon token will have inflationary and burnable properties, and in the
|
|
||||||
event of being burned, there will be burning proof added to the DECA Offset
|
|
||||||
Certificates (Soulbound tokens with offset tracing features capabilities)
|
|
||||||
> Think of it as a proof of carbon offset in a certificate
|
|
||||||
|
|
||||||
The DECA Offset Certificates are [Non-Transferable NFTs](https://vitalik.eth.limo/general/2022/01/26/soulbound.html)
|
|
||||||
|
|
||||||
## What are carbon credits?
|
|
||||||
|
|
||||||
Basically, they are digital assets that are equivalent to one metric ton
|
|
||||||
(1000kg/2205 lbs) of CO2 equivalent. The different kinds of certificates (CER,
|
|
||||||
ERU, AAU, RMU, etc.), the virtual currency of the carbon market, are called
|
|
||||||
carbon credits or carbon offsets. In the literature, two definitions of carbon
|
|
||||||
credits are common.
|
|
||||||
|
|
||||||
A carbon credit is a tradable instrument that represents either:
|
|
||||||
|
|
||||||
- A permit which gives the holder the right to emit one ton of carbon dioxide or
|
|
||||||
equivalent greenhouse gas (tCO2e) into the atmosphere, or
|
|
||||||
- A certificate from a project that represents the removal or avoidance of one
|
|
||||||
tCO2e from the atmosphere.
|
|
||||||
|
|
||||||
## What is the Paris Agreement?
|
|
||||||
|
|
||||||
The Paris Agreement set out to improve upon and replace the Kyoto Protocol, an
|
|
||||||
earlier international treaty designed to curb the release of greenhouse gases.
|
|
||||||
It entered into force on November 4, 2016, and has been signed by 197 countries
|
|
||||||
and ratified by 187 as of November 2019.
|
|
||||||
|
|
||||||
Paris Agreement, in full Paris Agreement Under the United Nations Framework
|
|
||||||
The Convention on Climate Change, also called the Paris Climate Agreement, or
|
|
||||||
COP21, is an international treaty, named for the city of Paris, France. It was
|
|
||||||
adopted in December 2015 and aimed to reduce the emissions of gases that
|
|
||||||
contribute to global warming.
|
|
||||||
|
|
||||||
|
|
||||||
## What are the carbon markets?
|
|
||||||
|
|
||||||
Carbon markets arise with the intention of obtaining the necessary emission
|
|
||||||
reductions (targets) at the lowest cost: whoever can carry out the reduction
|
|
||||||
actions at a not very high cost performs them. Whoever costs more, buys and
|
|
||||||
helps finance, in this way, the projects of the former: this is how the
|
|
||||||
efficiency of the system is achieved.
|
|
||||||
|
|
||||||
With this in mind, the European emissions trading market emerged in 2005. The
|
|
||||||
objective was to meet the objectives established by the Kyoto protocol and for
|
|
||||||
the European industry to contribute in the most optimal way. Each issuing
|
|
||||||
facility had a reduction target to meet and could meet it either by making
|
|
||||||
technological changes that would reduce its own emissions or, if that option
|
|
||||||
was complicated and expensive, by purchasing emission rights.
|
|
||||||
|
|
||||||
## Why should I trust DECA?
|
|
||||||
|
|
||||||
|
|
||||||
DECA seeks to create a fair and transparent way for parties to easily
|
|
||||||
participate in a decentralized, low-carbon economy. With DECA, individuals are
|
|
||||||
part of the carbon credit process and can vote on the way they get generated,
|
|
||||||
used, and allocated. This means that DECA community members can use the
|
|
||||||
platform to enhance the scientific rigor of their local jurisdiction or to seek
|
|
||||||
validation of carbon credit from one jurisdiction to another. The DECA Protocol
|
|
||||||
seeks to redress the wrongs of carbon emissions by adhering to the principles of
|
|
||||||
the protocol and by opening the process of the Paris Agreement to a worldwide
|
|
||||||
audience.
|
|
||||||
|
|
||||||
DECA smart contract was audited by Quantstamp, a trusted leader in blockchain
|
|
||||||
security, and delivers end-to-end blockchain solutions for the world’s largest
|
|
||||||
enterprises. The entire project is completely open-source and can be accessed by
|
|
||||||
everyone.
|
|
||||||
|
|
||||||
* 100% FOSS software
|
|
||||||
* A community-based project
|
|
||||||
* DAO decision-making
|
|
||||||
* **Don't trust; verify!**
|
|
||||||
|
|
||||||
## How does the GAS thing work on an EVM-based blockchain?
|
|
||||||
|
|
||||||
DECA Token and DECA Protocol operate on the Ethereum blockchain and Layer 2
|
|
||||||
blockchains, which uses a technology called the Ethereum Virtual Machine to
|
|
||||||
execute Smart Contracts.
|
|
||||||
|
|
||||||
As with any blockchain, you need to pay a fee to make a transaction. In
|
|
||||||
Ethereum, the name of this fee is gas, and it is required to run processes or
|
|
||||||
make transactions. These transaction fees are covered in Ethereum (yes, you
|
|
||||||
must have some ether in the wallet). There are two parameters you need to set
|
|
||||||
in the gas amount or fee to make it work properly: one is GAS AMOUNT or UNITS
|
|
||||||
the other is the gas price.
|
|
||||||
|
|
||||||
- The GAS UNITS are the minimum required to process the transaction.
|
|
||||||
|
|
||||||
- The GAS PRICE is an amount related to how fast the transaction will be
|
|
||||||
processed.
|
|
||||||
|
|
||||||
The GAS UNITS are recommended to have 100 000 for two main reasons: in test
|
|
||||||
need, we need more, it is easy to remember, and you get back the units the
|
|
||||||
transaction did not use as change (IMPORTANT: if you use less than 65 000, You
|
|
||||||
might lose your transaction and the fee/gas).
|
|
||||||
|
|
||||||
The GAS PRICE depends on how much congestion is in the network, we used to say
|
|
||||||
30 GWEI is an average good amount but for some reasons, this may vary a lot, so
|
|
||||||
the best way is always to verify the congestion and check how fast you want your
|
|
||||||
transaction to be done by the site [eth gas station](https://www.ethgasstation.info/)
|
|
||||||
which will give you some recommendations on how much GWEI you should use
|
|
||||||
depending on how fast you want your transaction.
|
|
||||||
|
|
||||||
|
|
||||||
## When DECA cancels carbon credits, why doesn't the token lose value?
|
|
||||||
|
|
||||||
DECA creates value through the cancellation of carbon credits in two ways:
|
|
||||||
|
|
||||||
* It supports projects with social and environmental aspects and prevents CO2
|
|
||||||
from entering the atmosphere. Each carbon credit is unique, and the purchase
|
|
||||||
price of the carbon credit is frozen in the blockchain and represented in the
|
|
||||||
secondary carbon token.
|
|
||||||
|
|
||||||
You can compare it with contracting a service; the value of the service isn't calculated during the project's development but only in its execution afterward.
|
|
||||||
|
|
||||||
## What happens if DECA doesn't reach or surpasses the soft cap?
|
|
||||||
|
|
||||||
DECA has an ambitious goal to save the environment: The project team wants to
|
|
||||||
raise 10 Million USD. If DECA doesn´t reach the softcap, the business plan will
|
|
||||||
be adjusted but not stop the development of The DECA Platform.
|
|
||||||
|
|
||||||
If DECA surpasses the soft cap, the carbon credit percentage will be increased
|
|
||||||
in order to support more environmental and social projects.
|
|
||||||
|
|
||||||
Furthermore, the DECA Protocol Development will include a new tokenomics model
|
|
||||||
to incentivize its community and carbon market participants with their
|
|
||||||
reduction of carbon footprints and carbon credits integration into the protocol
|
|
||||||
to further the DECA Governance Token.
|
|
||||||
|
|
||||||
## Who is behind DECA?
|
|
||||||
|
|
||||||
### Currently
|
|
||||||
The DECA DAO will follow up on the development as an open collective group
|
|
||||||
to develop the DECA Protocol as a common good and fully free software project.
|
|
||||||
|
|
||||||
We still get support from other organizations and previous project developers.
|
|
||||||
|
|
||||||
### 2022-2024
|
|
||||||
The Decentralized Climate Foundation, which is a non-profit organization, is
|
|
||||||
currently leading the DECA Project and other green energy and footprint
|
|
||||||
offset projects.
|
|
||||||
|
|
||||||
### 2019-2022
|
|
||||||
DECA token and Deca Search where originaly developed by two Canadian companies:
|
|
||||||
Neetsec International Inc (NSI) & Innovative Hydrogen Solutions (IHS);
|
|
||||||
|
|
||||||
Innovative Hydrogen Solutions is a company founded in 2004 and based
|
|
||||||
in Aurora, Ontario; Innovative Hydrogen Solutions develops and commercializes
|
|
||||||
new hydrogen-based energy and power technologies that improve internal
|
|
||||||
combustion engine performance.
|
|
||||||
|
|
||||||
NSI is an open-source, cybersecurity, and blockchain solutions company founded
|
|
||||||
in 2019 in Aurora, Ontario.
|
|
||||||
|
|
||||||
|
|
||||||
DECA Ecosystem is a project filled with visionaries, experts, and believers
|
|
||||||
unified by the possibility that there is a better tomorrow.
|
|
||||||
|
|
||||||
## How to support DECA
|
|
||||||
|
|
||||||
- Help Solve Development Issues at git.
|
|
||||||
- Provide Liquidity and/or donate to the DAO Vault.
|
|
||||||
- Join our community groups and ask us.
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
type: post
|
|
||||||
layout: layouts/post.vto
|
|
||||||
|
|
||||||
metas:
|
|
||||||
title: "=title"
|
|
|
@ -1,54 +0,0 @@
|
||||||
---
|
|
||||||
title: Partners
|
|
||||||
date: '2024-04-29'
|
|
||||||
author: p1r0
|
|
||||||
tags:
|
|
||||||
- PARTNERS
|
|
||||||
---
|
|
||||||
|
|
||||||
Our partners and the main project developers who start on the DECA Project.
|
|
||||||
|
|
||||||
Thanks for the support!
|
|
||||||
|
|
||||||
<!--more-->
|
|
||||||
|
|
||||||
## Decentralized Climate foundation.
|
|
||||||
> Governance and legal assistance
|
|
||||||
|
|
||||||
The Decentralized Climate Foundation (DCF) is a non-profit organization based
|
|
||||||
in Mexico City which supports decentralization of environmental and social
|
|
||||||
projects. We believe open governance of projects through decentralization will
|
|
||||||
provide transparency and trust.
|
|
||||||
|
|
||||||
[visit website](https://decentralizedclimate.org)
|
|
||||||
|
|
||||||
## Decentralized Science
|
|
||||||
> Research and decentralized tech.
|
|
||||||
|
|
||||||
The Decentralized Science Project is an open collective group which develops free and
|
|
||||||
decentralized technologies with a non profit perspective. The goal is to
|
|
||||||
give an open consensus and science debate. By dedicating itself to the development of public goods and promoting an open,
|
|
||||||
egalitarian platform for scientific exploration and education, Decentralized
|
|
||||||
Science is reshaping how scientific inquiry and innovation are pursued, making
|
|
||||||
it more inclusive, transparent, and focused on genuine discovery and
|
|
||||||
advancement.
|
|
||||||
|
|
||||||
|
|
||||||
[visit website](https://decentralizedscience.org)
|
|
||||||
|
|
||||||
## Innovative Hydrogen Solutions Inc.
|
|
||||||
> Project Funding
|
|
||||||
|
|
||||||
Innovative Hydrogen Solutions Inc. is a team of professionals supported by
|
|
||||||
expert scientists dedicated to the development of hydrogen technologies.
|
|
||||||
|
|
||||||
[visit website](https://innovativehydrogen.com/)
|
|
||||||
|
|
||||||
## Neetsec International Inc.
|
|
||||||
> Original Developers
|
|
||||||
|
|
||||||
NSI is looking to be a step ahead in the field of security systems and modern
|
|
||||||
cryptography to provide solutions against threats into the digital world.
|
|
||||||
|
|
||||||
[visit website](https://neetsec.com/)
|
|
||||||
|
|
Loading…
Reference in New Issue