[*] Initial commit
@ -0,0 +1,3 @@
|
||||
# DoubleFourteen - The DoubleFourteen Code Forge
|
||||
|
||||
Website sources for [DoubleFourteen - The DoubleFourteen Code Force](https://doublefourteen.io).
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
@ -0,0 +1,14 @@
|
||||
baseURL = "https://doublefourteen.io/"
|
||||
languageCode = "en-us"
|
||||
title = "The DoubleFourteen Code Forge"
|
||||
theme = "doublefourteen"
|
||||
disableKinds = ["taxonomy", "term"]
|
||||
timeout = 1000000
|
||||
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
DefaultContentLanguage = "en"
|
||||
[languages]
|
||||
[languages.en]
|
||||
weight = 1
|
@ -0,0 +1,3 @@
|
||||
---
|
||||
title: "404: Page not found"
|
||||
---
|
@ -0,0 +1,48 @@
|
||||
---
|
||||
title: Home
|
||||
mobile_menu_title: "Home"
|
||||
---
|
||||
|
||||
{{< flexrow style="justify-content:center;align-items:center" >}}
|
||||
{{% div class="headline" %}}
|
||||
The DoubleFourteen Code Forge is a community to produce and promote high quality free software.
|
||||
|
||||
{{% div style="text-align:left" %}}
|
||||
We encourage strict cooperation between research and practical coding.
|
||||
- Conscious research → pragmatic results.
|
||||
- Conscious development → code quality.
|
||||
- Synergy in both worlds.
|
||||
{{% /div %}}
|
||||
{{% /div %}}
|
||||
{{% div style="align-self:flex-end" %}}
|
||||
<a href="doublefourteen/" class="button">See our manifesto</a>
|
||||
{{% /div %}}
|
||||
{{< /flexrow >}}
|
||||
|
||||
{{% div class="alt-background" %}}
|
||||
{{% div class="container cards-list" %}}
|
||||
|
||||
{{% div title="Contribute" %}}
|
||||
The DoubleFourteen Code Forge is an open community.
|
||||
|
||||
{{% div style="text-align:left" %}}
|
||||
- Always looking for new ideas and projects.
|
||||
- Contributors sharing our vision are welcome.
|
||||
- There are many ways to support us.
|
||||
{{% /div %}}
|
||||
{{% /div %}}
|
||||
|
||||
{{% div title="Check out our projects" %}}
|
||||
Every DoubleFourteen project is free software, as in freedom.
|
||||
|
||||
Our source code repository is accessible at:
|
||||
[https://git.doublefourteen.io](https://git.doublefourteen.io/explore/repos).
|
||||
{{% div style="text-align:left" %}}
|
||||
- Contributions to our code is welcome.
|
||||
- Found a bug, got an improvement in mind? Let us know.
|
||||
- We would love to know if any of our project is being useful to you.
|
||||
{{% /div %}}
|
||||
{{% /div %}}
|
||||
|
||||
{{% /div %}}
|
||||
{{% /div %}}
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: Articles
|
||||
menu_title: Articles
|
||||
mobile_menu_title: Articles
|
||||
layout: rss-list
|
||||
---
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: Blog
|
||||
menu_title: Blog
|
||||
mobile_menu_title: Blog
|
||||
layout: rss-list
|
||||
---
|
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "The Micro BGP Suite has been released!"
|
||||
mobile_menu_title: "µbgpsuite now released!"
|
||||
date: 2021-06-15T00:00:00+00:00
|
||||
tags:
|
||||
- ubgpsuite
|
||||
- C Language
|
||||
- Networking
|
||||
- BGP
|
||||
- News
|
||||
---
|
||||
|
||||
**We are happy to announce that the first version of the micro BGP suite has now been released!**
|
||||
|
||||
## The Micro BGP Suite is now available
|
||||
|
||||
I am thrilled to announce that the very first version of the
|
||||
DoubleFourteen inaugural project, the Micro BGP suite (*µbgpsuite* for short
|
||||
-- or *ubgpsuite* for differently Greek keyboards ☺), is now available!
|
||||
|
||||
Source code for this project is available at:
|
||||
[https://git.doublefourteen.io/bgp/ubgpsuite](https://git.doublefourteen.io/bgp/ubgpsuite)
|
||||
|
||||
The Micro BGP Suite is an evolution of *bgpscanner*, originally developed under the
|
||||
Institute of Informatics and Telematics of the Italian National Research Council,
|
||||
see the forever unknown
|
||||
[HISTORY](https://git.doublefourteen.io/bgp/ubgpsuite/src/branch/master/doc/HISTORY.md)
|
||||
file included with the project documentation for more obscurities of this
|
||||
project.
|
||||
|
||||
The Micro BGP suite includes:
|
||||
- [lonetix](https://git.doublefourteen.io/bgp/ubgpsuite/src/branch/master/lonetix),
|
||||
a performance oriented static library for BGP and MRT data encoding/decoding written in C.
|
||||
I'd like to send a special thanks to my friend [Vernal Liu](https://covernal.github.io)
|
||||
for coming up with a name for this library (though, it originally meant
|
||||
*Lorenzo's Network library on Posix*), and for his saint-like patience in listening
|
||||
my ramblings all the time.
|
||||
- [bgpgrep](https://git.doublefourteen.io/bgp/ubgpsuite/src/branch/master/tools/bgpgrep),
|
||||
the very first utility using *lonetix*, an advanced replacement for *bgpscanner*,
|
||||
an utility capable of lightning fast MRT dump decoding and filtering. This utility
|
||||
is documented in its glorious `man` [page](https://git.doublefourteen.io/bgp/ubgpsuite/src/branch/master/tools/bgpgrep/bgpgrep.1.in).
|
||||
|
||||
`bgpgrep` is the first utility taking advantage of `lonetix`, but more tools
|
||||
are underway to demonstrate the capabilities of its API.
|
||||
|
||||
> **Hint** -- for a convenient PDF version of the manual page, you can run:
|
||||
> ```sh
|
||||
> $ sed s/@UTILITY@/bgpgrep/g tools/bgpgrep/bgpgrep.1.in | groffer
|
||||
> ```
|
||||
|
||||
Stay tuned for more news on this project, as I'm currently working on an article
|
||||
describing the BGP filtering engine exposed by `lonetix`.
|
||||
|
||||
Enjoy, and happy hacking,
|
||||
|
||||
Lorenzo Cogotti
|
@ -0,0 +1,110 @@
|
||||
---
|
||||
title: DoubleFourteen
|
||||
menu_title: "The DoubleFourteen Code Forge"
|
||||
mobile_menu_title: "1414° Code Forge"
|
||||
date: 2021-06-15T00:40:51+02:00
|
||||
---
|
||||
|
||||
# Vision
|
||||
|
||||
The DoubleFourteen Code Forge is an effort to promote synergy between developers
|
||||
and researchers, in order to promote good development practices,
|
||||
improve the software landscape and share common views and ethics.
|
||||
With hope to form a collaborative community made of competent
|
||||
individuals, practitioners, and researchers, working together and benefitting
|
||||
from each other's skills and inputs.
|
||||
|
||||
# Raison d'être
|
||||
|
||||
Computer science and software development has evolved dramatically crucial in the last decades
|
||||
for technological advancement and scientific research, consistently posing
|
||||
new challenges and offering new possibilities to us all.
|
||||
Facing such challenges and opening new applicative fields had an enormous impact
|
||||
over our lives as we can testify every day.
|
||||
|
||||
Despite the abundance of application fields, research institutes and commercial
|
||||
investments, oftentimes, topics and development practices are heavily
|
||||
conditioned by external factors -- such as commercial interest,
|
||||
nation-wide infrastructures, bureaucracy, budget choices, academic interest,
|
||||
knowledge availability. Similar constraints apply to development time --
|
||||
often seen as expensive by commercial entities and unnecessary to research
|
||||
institutes, to the point of settling for quick prototypes that slowly but
|
||||
surely become the definitive implementation.
|
||||
|
||||
As a matter of fact, computer science exhibits an uncanny dichotomy between
|
||||
theory and actual practice, whereas theory is often forgotten or
|
||||
ridiculed by practitioners and practical implementation is seen as a
|
||||
pesky and forgettable detail by researchers.
|
||||
|
||||
The DoubleFourteen Code Forge is an attempt to provide an international
|
||||
and diverse community to hoist and support any individual or group in their
|
||||
own research or development interest, providing an ecosystem where such
|
||||
limitations are absent or minimal.
|
||||
We strive to enact an alternative setup where researchers and developers
|
||||
may directly communicate with each other and understand the value of
|
||||
taking into proper consideration every aspect and every challenge of the
|
||||
computer science, creating premises for new innovative techniques.
|
||||
Where the only constraints are imposed by skill, motivation, imagination and
|
||||
perseverance in reaching our goals and improving ourselves.
|
||||
|
||||
Our community sole focus is raising the quality of the software world
|
||||
and raise awareness on computer science, by spreading the results of our work.
|
||||
Everyone is welcome to submit projects, take on research on their topic of
|
||||
interest, or offer support. Everyone is encouraged to contribute and share
|
||||
knowledge, as the more knowledge we share, the more contributions we can offer.
|
||||
|
||||
# Fundamental principles
|
||||
|
||||
The DoubleFourteen Code Forge is intended to be equally useful for
|
||||
scientists and the collectivity as a whole. We should never forget that the
|
||||
knowledge we produce and the code we write should be oriented to improving our
|
||||
lives, our society and raise scientific awareness to the general public.
|
||||
The following list summarizes the basic principles that everyone in the
|
||||
community is asked to agree on, in order to ensure our objectives and a
|
||||
productive environment.
|
||||
|
||||
* We value research, code, experience, knowledge, and share them
|
||||
publicly. Believing that our efforts may be of better use when freely available
|
||||
to a wider audience, as opposed to confined to few privileged entities.
|
||||
|
||||
* We promote ethical software and abhor restrictions to our Freedom. In no
|
||||
way ever shall we consciously suggest or endorse the use of any unethical
|
||||
software or service akin that ultimately results in:
|
||||
- mistreating users or developers;
|
||||
- violating the users' or developers' privacy or silently collecting their
|
||||
data;
|
||||
- severing the right to understand, learn, verify, modify or improve the
|
||||
original source code;
|
||||
- denying full control over the computing instruments;
|
||||
- tying the user or developer to a single software or service, constraining
|
||||
their freedom of choice.
|
||||
|
||||
* We place mutual respect at the foundation of our community.
|
||||
|
||||
* We believe in civilized debate. Personal offences and discrimination targeted
|
||||
to us or others alike, in any public or private form, are incompatible
|
||||
with our community. Any viable action shall be taken to condemn and eradicate
|
||||
such behaviour and make our environment cleaner.
|
||||
|
||||
* We firmly reject any misrepresentation of work.
|
||||
Our community as a whole is but a mean for each individual to fully express
|
||||
their potential in any useful way they are most proficient with.
|
||||
As such, every single effort is to be duly credited, fairly and transparently.
|
||||
|
||||
* We regard independence as a vital premise to ensure the impartiality
|
||||
of our work.
|
||||
|
||||
* We never compromise over quality, our work is our art and pride.
|
||||
|
||||
* We keep any social, political, religious or idealistic conviction to our
|
||||
personal individual relational sphere. Our community as a whole is neutral and
|
||||
refuses to take any stance or action whatsoever over matters extraneous to
|
||||
objective scientific debate on software development and computer science.
|
||||
|
||||
* We encourage any benevolent participation to our community, by actively
|
||||
extending ourselves to rule out any obstacle in its actuation.
|
||||
|
||||
* We offer support to any project or initiative compatible with our
|
||||
principles and goals.
|
||||
|
||||
* We are eager to learn, grateful to teach, motivated in our work.
|
@ -0,0 +1,6 @@
|
||||
<div class="{{ .Get "class" }}" style="{{ .Get "style" | safeCSS }}">
|
||||
{{ with .Get "title" }}
|
||||
<h1 class="section-title">{{ . }}</h1>
|
||||
{{ end }}
|
||||
{{ .Inner }}
|
||||
</div>
|
@ -0,0 +1,3 @@
|
||||
<div class="{{.Get "class"}}" style="display: flex; flex-direction: row; flex-wrap: wrap;{{.Get "style" | safeCSS }}">
|
||||
{{- .Inner -}}
|
||||
</div>
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
.path-yel-in {
|
||||
animation: draw 10s infinite;
|
||||
animation-delay: 1s;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
.path-yel-out {
|
||||
animation: draw 10s infinite;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
.path-left {
|
||||
animation-delay: 2s;
|
||||
}
|
||||
.path-bottom {
|
||||
animation-delay: 4s;
|
||||
}
|
||||
|
||||
|
||||
.circuit-path {
|
||||
animation: circuit 20s linear infinite;
|
||||
animation-delay: 2s;
|
||||
}
|
||||
|
||||
.circuit-static, .circuit-anim {
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%), translateZ(0);
|
||||
position: absolute;
|
||||
}
|
||||
.circuit-anim {
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
@keyframes circuit {
|
||||
100% {
|
||||
stroke-dashoffset: 0;
|
||||
stroke-opacity: 0.6;
|
||||
}
|
||||
}
|
||||
*/
|
@ -0,0 +1 @@
|
||||
{"Target":"css/circuit.min.d053cd5b7d1b8276398edb651c03a784e706faf0478345bec21786b70d6f6ece.css","MediaType":"text/css","Data":{"Integrity":"sha256-0FPNW30bgnY5jttlHAOnhOcG+vBHg0W+wheGtw1vbs4="}}
|
@ -0,0 +1 @@
|
||||
.alt-background{background-color:#efefef}.main{background-color:#737475;color:#fff;padding:10px 15px;font-size:.9em}.nav-spacer{display:none}.banner-burnin{position:absolute;width:100%;height:100%;z-index:-1;box-shadow:inset 0 0 1px 1px rgba(64,64,64,.1);background:radial-gradient(ellipse at center,#4e3d18 0%,rgba(64,64,64,0) 50%);transform-origin:50% 50%;transform:perspective(20px)rotateX(.5deg)skewX(2deg)scale(1.03);animation:burnin 1s linear infinite;opacity:.9}.banner-burnin::after{position:relative;background:radial-gradient(ellipse at center,rgba(0,0,0,.5) 0%,rgba(64,64,64,0) 100%);opacity:.1}.banner-terminal{position:relative;z-index:90;margin:0 auto;width:100%;height:550px;background-color:#0a1922;overflow:hidden}.banner-terminal::before{position:absolute;width:100%;height:550px;top:0;left:0;content:"";z-index:100;background:linear-gradient(#777 50%,#0a1922 50%);background-size:100% 4px;background-repeat:repeat-y;opacity:.14;box-shadow:inset 0 0 1px 1px rgba(0,0,0,.8);animation:pulse 5s linear infinite}.banner-terminal::after{position:absolute;content:"";top:0;left:0;width:100%;height:76%;z-index:99;background:radial-gradient(ellipse at center,black 0%,rgba(0,0,0,.62) 45%,rgba(0,9,4,.6) 47%,#c3993c 100%);background-color:#c3993c;box-shadow:inset 0 0 4px 4px rgba(100,100,100,.5);opacity:.1}.banner-scanline{--scanline-area:$term-height;position:relative;z-index:99;width:100%;height:5px;background:linear-gradient(to bottom,rgba(255,0,0,0) 0%,snow 50%,rgba(255,255,255,.98) 51%,rgba(255,0,0,0) 100%);background-color:#fff;background-size:100% 4px;opacity:.1;animation:scanline 3.25s ease-in-out infinite}.banner-textarea{position:relative;width:1500px;height:600px;margin:0 auto}.banner-prompt{position:relative;text-align:left;padding-left:1em;font-family:Inconsolata,Courier,unicase;text-shadow:0 0 8px rgba(255,255,255,.3);font-size:4em;color:#c3993c}.ghost,.pop{opacity:.27}.banner-msg-line{text-shadow:0 0 8px rgba(231,214,177,.3);font-family:Inconsolata,Courier,monospace;font-smoothing:antialiased;padding-left:6em;font-size:3em;white-space:pre;color:#c3993c;overflow:hidden}#banner-msg-animate{text-shadow:0 0 8px rgba(255,255,255,.1);color:#6d592c;bottom:0}.flicker{margin:0;color:#2d2d2d;letter-spacing:-.05rem}.flicker::before{content:attr(letter);position:absolute;overflow:hidden;color:#fc0;z-index:5;text-shadow:none;animation:flicker 3s linear infinite}.glitch{margin:0;letter-spacing:-.05rem;display:inline-block;animation:glitch 1s linear infinite}.glitch::before,.glitch::after{content:attr(text);position:absolute;overflow:hidden}.glitch::before{left:0;animation:glitch-top 1s linear infinite;clip-path:polygon(0 0,100% 0,100% 33%,0 33%)}.glitch::after{left:0;animation:glitch-bottom 1.5s linear infinite;clip-path:polygon(0 67%,100% 67%,100% 100%,0 100%)}@keyframes burnin{0%{transform:scale(1,1.002)}50%{transform:scale(1,1.0001)}100%{transform:scale(1.001,1)}}@keyframes scanline{to{transform:translateY(calc(var(--scanline-area) - $term-scanline-height))}}@keyframes pulse{0%{transform:scale(1.001);opacity:.14}8%{transform:scale(1);opacity:.13}15%{transform:scale(1.004);opacity:.14}30%{transform:scale(1.002);opacity:.11}100%{transform:scale(1);opacity:.14}}@keyframes flicker{0%,19.999%,22%,62.999%,64%,64.999%,70%,100%{opacity:.99;text-shadow:-1px -1px 0 rgba(255,255,255,.4),1px -1px 0 rgba(255,255,255,.4),-1px 1px 0 rgba(255,255,255,.4),1px 1px 0 rgba(255,255,255,.4),0 -2px 8px,0 0 2px,0 0 5px #ff7e00,0 0 15px #f44,0 0 2px #ff7e00,0 2px 3px #000}20%,21.999%,63%,63.999%,65%,69.999%{opacity:.4;text-shadow:none}}@keyframes glitch{2%,64%{transform:translate(2px,0)skew(0)}4%,60%{transform:translate(-2px,0)skew(0)}62%{transform:translate(0,0)skew(5deg)}}@keyframes glitch-top{2%,64%{transform:translate(2px,-2px)}4%,60%{transform:translate(-2px,2px)}62%{transform:translate(13px,-1px)skew(-13deg)}}@keyframes glitch-bottom{2%,64%{transform:translate(-2px,0)}4%,60%{transform:translate(-2px,0)}62%{transform:translate(-22px,5px)skew(21deg)}}@keyframes typing{to{width:100%}}@keyframes blinking{from,to{border-color:transparent}50%{border-color:orange}}h1.section-title{font-size:3em;color:#444;text-align:center}.motto{text-align:left;padding-top:1em}@media(prefers-color-scheme:dark){.alt-background{background-color:#292929}h1.section-title{color:#ddd}}@media only screen and (max-width:1200px){.banner-prompt{font-size:3em}.banner-msg-line{font-size:2em}}@media only screen and (max-width:1000px){html,body{overflow-x:hidden}body{-webkit-text-size-adjust:none}}@media only screen and (max-width:800px){.banner-scanline{--scanline-area:$term-height-mobile}.banner-prompt{font-size:2em}.banner-msg-line{font-size:1.5em;padding-left:3em}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/home.min.4c9feafeab8017f7a8a23fac16d131d3b087fbed2ec892551b95a3dd7e8e47d5.css","MediaType":"text/css","Data":{"Integrity":"sha256-TJ/q/quAF/eooj+sFtEx07CH++0uyJJVG5Wj3X6OR9U="}}
|
@ -0,0 +1 @@
|
||||
#mobile-navbar{display:none;overflow:hidden;color:#fff!important;font-weight:700}#mobile-subnav{background-color:#0a1922}#mobile-subnav{display:none}#menu{padding:5px 0;color:#fff;padding-right:5px;padding-left:5px;font-size:1.1rem!important}#navbar{display:block}.nav{background-color:#0a1922;padding:5px 0;border-top:4px solid var(--teal)}.nav-spacer{margin-bottom:30px}.df-community-link:before{content:"";background-image:url(/heart.svg)!important;background-size:12px 16px;width:12px;height:16px;margin-left:5px;margin-right:5px;vertical-align:middle;display:inline-block}#menu .navbar-item,.nav .navbar-item,.nav .navbar-item:visited{color:#fff;padding-right:5px;padding-left:5px}@media only screen and (max-width:340px){#mobile-navbar{font-size:1.1rem!important}#hamburger{padding-left:.5rem!important}}@media only screen and (max-width:1000px){#menu .navbar-item{display:block}#mobile-subnav{display:block}#mobile-toggle+#menu{display:none}#mobile-toggle:checked+#menu{display:block}#mobile-navbar,#menu{display:block;font-size:1.2rem;line-height:2.2rem}#mobile-navbar{margin-top:.4rem}#navbar{display:none}#mobile-toggle{display:none}#hamburger{float:right;padding-left:1.5rem;padding-right:.5rem;line-height:0}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/navigation.min.acad5d873b80dbbc3bfed76f876917d6fb8437b66d2018091c8bd51afdab0eb2.css","MediaType":"text/css","Data":{"Integrity":"sha256-rK1dhzuA27w7/tdvh2kX1vuEN7ZtIBgJHIvVGv2rDrI="}}
|
@ -0,0 +1 @@
|
||||
.notfound-page{position:relative;display:flex;width:1500px;height:100%;margin:0 auto}.notfound-content{position:relative;flex:1;padding-top:60px;min-height:500px;max-width:500px}.notfound-404-chan-wrapper{position:relative;flex:1}#particles-bg{z-index:100}.notfound-404-chan{suser-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/notfound.min.8fd670f1f7b146151ae2bd3cdbd2ab27b23a5d3b5a7b23093c4e28ee8d0db07f.css","MediaType":"text/css","Data":{"Integrity":"sha256-j9Zw8fexRhUa4r0829KrJ7I6XTtaeyMJPE4o7o0NsH8="}}
|
@ -0,0 +1 @@
|
||||
#particles-bg,canvas{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-10}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/particles.min.1267e7250414cb0155cba79bd9ff4780f779558db521b0059252823cd281dca9.css","MediaType":"text/css","Data":{"Integrity":"sha256-EmfnJQQUywFVy6eb2f9HgPd5VY21IbAFklKCPNKB3Kk="}}
|
@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}html,body{width:100%;height:100%}h1.section-title{font-size:2em}h1.section-title:first-letter{text-transform:capitalize}body{margin:0;font-family:var(--body-font);font-size:var(--body-font-size);line-height:var(--body-line-height);color:var(--body-color);background-color:var(--body-bg);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a{color:var(--link-color)}a:hover,a:focus{color:var(--link-hover-color)}a strong{color:inherit}a:not(:hover){text-decoration:none}.container{margin:0 auto;position:relative;max-width:1000px;padding:0 .2em}.external-link-light:after{background-image:url(/external-link-dark.svg)!important}.external-link:after{content:"";background-image:url(/external-link-light.svg);background-size:10px 10px;display:inline-block;width:10px;height:10px;margin-left:5px}img{display:block;max-width:100%;margin-bottom:var(--spacer);border-radius:var(--border-radius)}table{margin-bottom:1rem;width:100%;border:0 solid var(--border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border-color:inherit;border-style:solid;border-width:0;border-bottom-width:1px}th{text-align:left}thead th{border-bottom-color:initial}#header{display:flex;flex-direction:row;align-items:flex-end}#header-text{font-size:2em;color:#444;font-weight:700;display:inline-block;padding:1em .5em}#header-text-small{font-size:2em;color:#444;font-weight:700;display:none;padding:1em .5em}#header-image{background-image:url(/doublefourteen-logo-dark.svg);background-repeat:no-repeat;width:330px;height:180px;display:inline-block;margin:0 .5em}.footer{text-align:center;padding-top:2em}@media(max-width:1100px){#header-text{display:none}#header-text-small{display:inline-block}}@media(prefers-color-scheme:dark){.external-link:after{background-image:url(/external-link-dark.svg)}#header-text{color:#ddd}#header-text-small{color:#ddd}#header-image{background-image:url(/doublefourteen-logo-light.svg)}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/style.min.d944d9757086436e8d5b6bcad72f606958e62373e1d7ad0f79c4a5214e5e7ad9.css","MediaType":"text/css","Data":{"Integrity":"sha256-2UTZdXCGQ26NW2vK1y9gaVjmI3Ph160PecSlIU5eetk="}}
|
@ -0,0 +1,4 @@
|
||||
:root{--gray-000:#f8f9fa;--gray-100:#f1f3f5;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#868e96;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--red:#fa5252;--pink:#e64980;--grape:#be4bdb;--purple:#7950f2;--indigo:#4c6ef5;--blue:#228be6;--cyan:#15aabf;--teal:#12b886;--green:#40c057;--yellow:#fab005;--orange:#fd7e14;--gray:#454545;--blue-300:#74c0fc;--blue-400:#4dabf7;--yellow-100:#fff3bf;--body-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
|
||||
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--body-font-size:20px;--body-line-height:1.5;--body-color:var(--gray-700);--body-bg:#fff;--link-color:var(--blue);--link-hover-color:#1c7ed6;--heading-color:var(--gray-900);--border-color:var(--gray-300);--border-radius:0.25rem;--code-font:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
||||
"Courier New", monospace;--code-color:var(--grape);--code-bg:var(--gray-000);--spacer:1rem;--spacer-2:calc(var(--spacer) * 1.5);--spacer-3:calc(var(--spacer) * 3)}@media(prefers-color-scheme:dark){:root{--body-color:var(--gray-300);--body-bg:var(--gray-800);--heading-color:#fff;--link-color:var(--blue-300);--link-hover-color:var(--blue-400);--border-color:rgba(255, 255, 255, 0.15);--code-bg:var(--gray-900)}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/variables.min.64ab9ff349f04ea7ee51c5148a9834f9570ec7ceb652edba40d7abd5b2dc566b.css","MediaType":"text/css","Data":{"Integrity":"sha256-ZKuf80nwTqfuUcUUipg0+VcOx862Uu26QNer1bLcVms="}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/home.2c1adf72cf123c3b68c525dcadc082f1589a474f975956f30e8e051d71b43b36.css","MediaType":"text/css","Data":{"Integrity":"sha256-LBrfcs8SPDtoxSXcrcCC8ViaR0+XWVbzDo4FHXG0OzY="}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/home.min.fe9260a06c887cdf81a61aeac369079aa7e7a697acd29334e939ec6466473bdb.css","MediaType":"text/css","Data":{"Integrity":"sha256-/pJgoGyIfN+Bphrqw2kHmqfnppes0pM06TnsZGZHO9s="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #737475;--alt-background-color: #efefef;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}#mobile-navbar{display:none;overflow:hidden;color:white !important;font-weight:bold}#mobile-subnav{background-color:#0a1922}#mobile-subnav{display:none}#menu{padding:5px 0;color:white;padding-right:5px;padding-left:5px;font-size:1.1rem !important}#navbar{display:block}.nav{background-color:#0a1922;padding:5px 0;border-top:4px solid #12b886}.nav-spacer{margin-bottom:30px}.df-community-link:before{content:"";background-image:url(/heart.svg) !important;background-size:12px 16px;width:12px;height:16px;margin-left:5px;margin-right:5px;vertical-align:middle;display:inline-block}#menu .navbar-item,.nav .navbar-item,.nav .navbar-item:visited{color:white;padding-right:5px;padding-left:5px}@media only screen and (max-width: 340px){#mobile-navbar{font-size:1.1rem !important}#hamburger{padding-left:0.5rem !important}}@media only screen and (max-width: 1000px){#menu .navbar-item{display:block}#mobile-subnav{display:block}#mobile-toggle+#menu{display:none}#mobile-toggle:checked+#menu{display:block}#mobile-navbar,#menu{display:block;font-size:1.2rem;line-height:2.2rem}#mobile-navbar{margin-top:0.4rem}#navbar{display:none}#mobile-toggle{display:none}#hamburger{float:right;padding-left:1.5rem;padding-right:0.5rem;line-height:0}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/navigation.1a3e87cd446d5f1b61dd79f4152b3bb148649c8332e99134da0a231adc630f98.css","MediaType":"text/css","Data":{"Integrity":"sha256-Gj6HzURtXxth3Xn0FSs7sUhknIMy6ZE02gojGtxjD5g="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #737475;--alt-background-color: #efefef;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}.notfound-page{position:relative;display:flex;flex-wrap:wrap;width:1000px;margin:0 auto;gap:1.5rem}.notfound-content{position:relative;padding-top:1.5rem;max-width:400px}.notes{padding-top:1rem}.notfound-404-chan{position:relative;width:400px;height:500px;background-image:url("/404-chan_sm.png");background-position:bottom right 3rem;background-repeat:no-repeat;background-size:144px 256px}#particles-bg{position:absolute;width:100%;height:100%;top:0;left:0;z-index:100}@media (max-width: 800px){.notfound-content{text-align:center}.notfound-page{flex-direction:column}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/notfound.d5335f5ffd06a11724e785740f8a7c3510cafaba0e80a9f9631156d33c3a176f.css","MediaType":"text/css","Data":{"Integrity":"sha256-1TNfX/0GoRck54V0D4p8NRDK+roOgKn5YxFW0zw6F28="}}
|
@ -0,0 +1 @@
|
||||
.notfound-page{position:relative;display:flex;width:1500px;height:100%;margin:0 auto}.notfound-content{position:relative;flex:1;padding-top:60px;min-height:500px;max-width:500px}.notfound-404-chan-wrapper{position:relative;flex:1}#particles-bg{position:absolute;width:100%;height:100%;top:0;left:0;z-index:100}.notfound-404-chan{suser-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/notfound.min.7af2d4e98e0e95317dfd8f8e721927a5a4a16a51163c83d93a1fd266bbb782df.css","MediaType":"text/css","Data":{"Integrity":"sha256-evLU6Y4OlTF9/Y+OchknpaShalEWPIPZOh/SZru3gt8="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #737475;--alt-background-color: #efefef;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}@media only screen and (max-width: 600px){.on-pc-screen{display:none !important}}@media only screen and (min-width: 600px){.on-mobile-screen{display:none !important}}@media only screen and (max-width: 1200px){.on-largest-screen{display:none !important}}@media only screen and (min-width: 1200px){.up-to-largest-screen{display:none !important}}@media only screen and (max-width: 1000px){.on-large-screen{display:none !important}}@media only screen and (min-width: 1000px){.up-to-large-screen{display:none !important}}@media only screen and (max-width: 800px){.on-small-screen{display:none !important}}@media only screen and (min-width: 800px){.up-to-small-screen{display:none !important}}*{box-sizing:border-box;z-index:1}html,body{width:100%;height:100%;min-width:500px}h1.page-title{text-align:left;font-size:2em;color:var(--title-text-color)}h1.page-title:first-letter{text-transform:capitalize}body{margin:0;font-family:var(--body-font);font-size:20px;line-height:1.5;color:var(--foreground-color);background-color:var(--background-color);-webkit-text-size-adjust:100%;-webkit-text-size-adjust--ms-text-size-adjust:100%}a{color:var(--link-color)}a:hover,a:focus{color:var(--link-hover-color)}a strong{color:inherit}a:not(:hover){text-decoration:none}.container{margin:0 auto;position:relative;max-width:1000px;padding:0 0.2em}.external-link-light:after{background-image:url(/external-link-dark.svg) !important}.external-link:after{content:"";background-image:url(/external-link-light.svg);background-size:10px 10px;display:inline-block;width:10px;height:10px;margin-left:5px}img{display:block;max-width:100%;margin-bottom:1rem;border-radius:.25rem}table{margin-bottom:1rem;width:100%;border:0 solid var(--border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border-color:inherit;border-style:solid;border-width:0;border-bottom-width:1px}th{text-align:left}thead th{border-bottom-color:currentColor}.header{display:flex;align-items:flex-end}.header-text{font-size:2em;color:var(--title-text-color);font-weight:bold;display:inline-block;padding:1em 0.5em 1em 0.5em}.header-image{background-image:url(/doublefourteen-logo-dark.svg);background-repeat:no-repeat;width:330px;height:180px;display:inline-block;margin:0 0.5em 0 0.5em}.work-in-progress-content{display:flex;justify-content:space-between}.work-in-progress-text{position:relative}.work-in-progress-sign{width:400px;height:386px;background-image:url(/work-in-progress.png);background-position:bottom right;background-repeat:no-repeat;background-size:400px 386px}.button,.button:hover{background-color:transparent;border:2px solid #737475;color:#333;padding:7px 12px;display:block;margin:10px 0;font-size:20px;font-weight:700;text-decoration:none !important}.button a{display:inline;text-decoration:none !important;color:#666}.button:hover{background-color:#7f7f7f}.footer{text-align:center;padding-top:1.5rem}@media (prefers-color-scheme: dark){.external-link:after{background-image:url(/external-link-dark.svg)}.header-image{background-image:url(/doublefourteen-logo-light.svg)}.button,.button:hover{color:inherit}.button a{color:#ccc}.button:hover{background-color:#383838}}@media only screen and (max-width: 800px){.work-in-progress-content{flex-direction:column}.work-in-progress-text{text-align:center}}
|
@ -0,0 +1 @@
|
||||
{"Target":"css/style.14e9793f6c6b6d3683942f19e20cd9c2c21843299949df423dc286e6c113317c.css","MediaType":"text/css","Data":{"Integrity":"sha256-FOl5P2xrbTaDlC8Z4gzZwsIYQymZSd9CPcKG5sETMXw="}}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/home.78b660c2911b006de02237403706f63b4ea3283b7001b4594fd7ea78834f7962.css","MediaType":"text/css","Data":{"Integrity":"sha256-eLZgwpEbAG3gIjdANwb2O06jKDtwAbRZT9fqeINPeWI="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #efefef;--alt-background-color: #dfdfdf;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}#mobile-navbar{display:none;overflow:hidden;color:white !important;font-weight:bold}#mobile-subnav{background-color:#0a1922}#mobile-subnav{display:none}#menu{padding:5px 0;color:white;padding-right:5px;padding-left:5px;font-size:1.1rem !important}#navbar{display:block}.nav{background-color:#0a1922;padding:5px 0;border-top:4px solid #12b886}.nav-spacer{margin-bottom:30px}.df-community-link:before{content:"";background-image:url(/heart.svg) !important;background-size:12px 16px;width:12px;height:16px;margin-left:5px;margin-right:5px;vertical-align:middle;display:inline-block}#menu .navbar-item,.nav .navbar-item,.nav .navbar-item:visited{color:white;padding-right:5px;padding-left:5px}@media only screen and (max-width: 340px){#mobile-navbar{font-size:1.1rem !important}#hamburger{padding-left:0.5rem !important}}@media only screen and (max-width: 1000px){#menu .navbar-item{display:block}#mobile-subnav{display:block}#mobile-toggle+#menu{display:none}#mobile-toggle:checked+#menu{display:block}#mobile-navbar,#menu{display:block;font-size:1.2rem;line-height:2.2rem}#mobile-navbar{margin-top:0.4rem}#navbar{display:none}#mobile-toggle{display:none}#hamburger{float:right;padding-left:1.5rem;padding-right:0.5rem;line-height:0}}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/navigation.c2388a3ec6258b34c9437b1acabacf098ebf76d90868746e174520b47950528f.css","MediaType":"text/css","Data":{"Integrity":"sha256-wjiKPsYlizTJQ3sayrrPCY6/dtkIaHRuF0UgtHlQUo8="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #efefef;--alt-background-color: #dfdfdf;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}.notfound-page{position:relative;display:flex;flex-wrap:wrap;width:1000px;margin:0 auto;gap:1.5rem}.notfound-content{position:relative;padding-top:1.5rem;max-width:400px}.notes{padding-top:1rem}.notfound-404-chan{position:relative;width:400px;height:500px;background-image:url("/404-chan_sm.png");background-position:bottom right 3rem;background-repeat:no-repeat;background-size:144px 256px}#particles-bg{position:absolute;width:100%;height:100%;top:0;left:0;z-index:100}@media (max-width: 800px){.notfound-content{text-align:center}.notfound-page{flex-direction:column}}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/notfound.3230ae6a62d9e6fc90bed42f285492ba8b05f818abbd71e0c96e5ba56cdb320e.css","MediaType":"text/css","Data":{"Integrity":"sha256-MjCuamLZ5vyQvtQvKFSSuosF+BirvXHgyW5bpWzbMg4="}}
|
@ -0,0 +1 @@
|
||||
:root{--background-color: #efefef;--alt-background-color: #dfdfdf;--foreground-color: #495057;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-color: #fff;--title-text-color: #444;--link-color: #228be6;--link-hover-color: #1c7ed6;--heading-color: #212529;--border-color: #dee2e6}@media (prefers-color-scheme: dark){:root{--background-color: #292929;--alt-background-color: #0a1922;--foreground-color: #dee2e6;--text-color: #000;--title-text-color: #ddd;--heading-color: #fff;--link-color: #74c0fc;--link-hover-color: #4dabf7;--border-color: rgba(255, 255, 255, 0.15)}}@media only screen and (max-width: 600px){.on-pc-screen{display:none !important}}@media only screen and (min-width: 600px){.on-mobile-screen{display:none !important}}@media only screen and (max-width: 1200px){.on-largest-screen{display:none !important}}@media only screen and (min-width: 1200px){.up-to-largest-screen{display:none !important}}@media only screen and (max-width: 1000px){.on-large-screen{display:none !important}}@media only screen and (min-width: 1000px){.up-to-large-screen{display:none !important}}@media only screen and (max-width: 800px){.on-small-screen{display:none !important}}@media only screen and (min-width: 800px){.up-to-small-screen{display:none !important}}*{box-sizing:border-box;z-index:1}html,body{width:100%;height:100%;min-width:500px}h1.page-title{text-align:left;font-size:2em;color:var(--title-text-color)}h1.page-title:first-letter{text-transform:capitalize}body{margin:0;font-family:var(--body-font);font-size:20px;line-height:1.5;color:var(--foreground-color);background-color:var(--background-color);-webkit-text-size-adjust:100%;-webkit-text-size-adjust--ms-text-size-adjust:100%}a{color:var(--link-color)}a:hover,a:focus{color:var(--link-hover-color)}a strong{color:inherit}a:not(:hover){text-decoration:none}.container{margin:0 auto;position:relative;max-width:1000px;padding:0 0.2em}.external-link-light:after{background-image:url(/external-link-dark.svg) !important}.external-link:after{content:"";background-image:url(/external-link-light.svg);background-size:10px 10px;display:inline-block;width:10px;height:10px;margin-left:5px}img{display:block;max-width:100%;margin-bottom:1rem;border-radius:.25rem}table{margin-bottom:1rem;width:100%;border:0 solid var(--border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border-color:inherit;border-style:solid;border-width:0;border-bottom-width:1px}th{text-align:left}thead th{border-bottom-color:currentColor}.header{display:flex;align-items:flex-end}.header-text{font-size:2em;color:var(--title-text-color);font-weight:bold;display:inline-block;padding:1em 0.5em 1em 0.5em}.header-image{background-image:url(/doublefourteen-logo-dark.svg);background-repeat:no-repeat;width:330px;height:180px;display:inline-block;margin:0 0.5em 0 0.5em}.work-in-progress-content{display:flex;justify-content:space-between}.work-in-progress-text{position:relative}.work-in-progress-sign{width:400px;height:386px;background-image:url(/work-in-progress.png);background-position:bottom right;background-repeat:no-repeat;background-size:400px 386px}.button,.button:hover{background-color:transparent;border:2px solid #737475;color:#333;padding:7px 12px;display:block;margin:10px 0;font-size:20px;font-weight:700;text-decoration:none !important}.button a{display:inline;text-decoration:none !important;color:#666}.button:hover{background-color:#7f7f7f}.footer{text-align:center;padding-top:1.5rem}@media (prefers-color-scheme: dark){.external-link:after{background-image:url(/external-link-dark.svg)}.header-image{background-image:url(/doublefourteen-logo-light.svg)}.button,.button:hover{color:inherit}.button a{color:#ccc}.button:hover{background-color:#383838}}@media only screen and (max-width: 800px){.work-in-progress-content{flex-direction:column}.work-in-progress-text{text-align:center}}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/style.31c0df1af1c551ede13db9f99995a7ece9d2a3dfe4dc29bac27689d48a9e1392.css","MediaType":"text/css","Data":{"Integrity":"sha256-McDfGvHFUe3hPbn5mZWn7OnSo9/k3Cm6wnaJ1IqeE5I="}}
|
@ -0,0 +1 @@
|
||||
*{box-sizing:border-box;z-index:2}html,body{width:100%;height:100%}h1.section-title{font-size:3em;color:#444;text-align:center}body{margin:0;font-family:var(--body-font);font-size:var(--body-font-size);line-height:var(--body-line-height);color:var(--body-color);background-color:var(--body-bg);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a{color:var(--link-color)}a:hover,a:focus{color:var(--link-hover-color)}a strong{color:inherit}img{display:block;max-width:100%;margin-bottom:var(--spacer);border-radius:var(--border-radius)}table{margin-bottom:1rem;width:100%;border:0 solid var(--border-color);border-collapse:collapse}td,th{padding:.25rem .5rem;border-color:inherit;border-style:solid;border-width:0;border-bottom-width:1px}th{text-align:left}thead th{border-bottom-color:currentColor}mark{padding:.15rem;background-color:var(--yellow-100);border-radius:.125rem}motto{text-align:center;padding-top:2em}footer{text-align:center;padding-top:2em}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/base.css","MediaType":"text/css","Data":{}}
|
@ -0,0 +1 @@
|
||||
.notfound-page{position:relative;display:flex}.notfound-content{position:relative;flex:1;margin-top:60px;min-height:500px}.notfound-404-chan-wrapper{position:relative;flex:1}.notfound-404-chan{position:absolute;bottom:0;margin-left:50%;margin-right:50%;margin-bottom:0;z-index:-11;pointer-events:none;suser-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/notfound.css","MediaType":"text/css","Data":{}}
|
@ -0,0 +1 @@
|
||||
#particles-bg,canvas{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-10}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/particles.css","MediaType":"text/css","Data":{}}
|
@ -0,0 +1,4 @@
|
||||
:root{--gray-000: #f8f9fa;--gray-100: #f1f3f5;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-400: #ced4da;--gray-500: #adb5bd;--gray-600: #868e96;--gray-700: #495057;--gray-800: #343a40;--gray-900: #212529;--red: #fa5252;--pink: #e64980;--grape: #be4bdb;--purple: #7950f2;--indigo: #4c6ef5;--blue: #228be6;--cyan: #15aabf;--teal: #12b886;--green: #40c057;--yellow: #fab005;--orange: #fd7e14;--gray: #454545;--blue-300: #74c0fc;--blue-400: #4dabf7;--yellow-100: #fff3bf;--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
|
||||
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--body-font-size: 20px;--body-line-height: 1.5;--body-color: var(--gray-700);--body-bg: #fff;--link-color: var(--blue);--link-hover-color: #1c7ed6;--heading-color: var(--gray-900);--border-color: var(--gray-300);--border-radius: 0.25rem;--code-font: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
||||
"Courier New", monospace;--code-color: var(--grape);--code-bg: var(--gray-000);--spacer: 1rem;--spacer-2: calc(var(--spacer) * 1.5);--spacer-3: calc(var(--spacer) * 3)}@media (prefers-color-scheme: dark){:root{--body-color: var(--gray-300);--body-bg: var(--gray-800);--heading-color: #fff;--link-color: var(--blue-300);--link-hover-color: var(--blue-400);--border-color: rgba(255, 255, 255, 0.15);--code-bg: var(--gray-900)}}
|
@ -0,0 +1 @@
|
||||
{"Target":"sass/variables.css","MediaType":"text/css","Data":{}}
|
@ -0,0 +1,99 @@
|
||||
/* -----------------------------------------------
|
||||
* Rain background particle effect.
|
||||
*
|
||||
* @licstart The following is the entire license notice for the
|
||||
* JavaScript code in this page.
|
||||
*
|
||||
* Copyright (C) 2020 Lorenzo Cogotti
|
||||
*
|
||||
* The JavaScript code in this page is free software: you can
|
||||
* redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License (GNU GPL) as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option)
|
||||
* any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
*
|
||||
* As additional permission under GNU GPL version 3 section 7, you
|
||||
* may distribute non-source (e.g., minimized or compacted) forms of
|
||||
* that code without the copy of the GNU GPL normally required by
|
||||
* section 4, provided you include this license notice and a URL
|
||||
* through which recipients can access the Corresponding Source.
|
||||
*
|
||||
* @licend The above is the entire license notice
|
||||
* for the JavaScript code in this page.
|
||||
* ----------------------------------------------- */
|
||||
|
||||
particlesJS('particles-bg',
|
||||
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 80,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 200
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle"
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.3,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": true,
|
||||
"speed": 3000,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 2.8,
|
||||
"value_min": 1,
|
||||
"random": true
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": false
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 550, // in pixel-per-second
|
||||
"direction": "bottom",
|
||||
"random": false,
|
||||
"straight": true,
|
||||
"out_mode": "out",
|
||||
"attract": {
|
||||
"enable": true,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
},
|
||||
"trail": {
|
||||
"enable": true,
|
||||
"samples": 7,
|
||||
"discont_threshold": 4
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "repulse"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"repulse": {
|
||||
"distance": 150
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
}
|
||||
|
||||
);
|
@ -0,0 +1,168 @@
|
||||
window.requestAnimFrame = (function(){
|
||||
return window.requestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.oRequestAnimationFrame ||
|
||||
window.msRequestAnimationFrame ||
|
||||
function(callback){
|
||||
window.setTimeout(callback, 1000 / 8);
|
||||
};
|
||||
})();
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
// Initial setup
|
||||
function $(x) {return document.getElementById(x);}
|
||||
|
||||
let $container = $("banner-textarea");
|
||||
let $message = $("banner-msg");
|
||||
let $animate = $("banner-msg-animate");
|
||||
let $paragraph = null;
|
||||
|
||||
const asciiEscMap = {
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
"'": ''',
|
||||
'`': '`'
|
||||
};
|
||||
|
||||
function needsAsciiEsc(str) {
|
||||
for (let i of str) {
|
||||
if (asciiEscMap[i]) { return true; }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function isAsciiString(str) {
|
||||
for (let i of str) {
|
||||
if (i.codePointAt(0) > 127) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function maybeEscpDec(ch) {
|
||||
const cp = ch.codePointAt(0);
|
||||
return cp > 127 ? '&#' + cp + ';' : ch;
|
||||
}
|
||||
function escpAscii(str) {
|
||||
return [...str].map(x => asciiEscMap[x] || x).join("");
|
||||
}
|
||||
|
||||
function escp(text) {
|
||||
if (needsAsciiEsc(text)) {
|
||||
text = escpAscii(text);
|
||||
}
|
||||
return isAsciiString(text) ? text : [...text].map(maybeEscpDec).join("");
|
||||
}
|
||||
|
||||
// Messages setup
|
||||
|
||||
/* MESSAGES be like:
|
||||
* [ {"delay": 0, "text": "message 1"},
|
||||
* {"delay": 1200, "text": "message 2"},
|
||||
* {"delay": 2200, "text": "message 4"},
|
||||
* {"delay": 3600, "text": "message 5"},
|
||||
* {"delay": 5200, "text": "message 6"} ]
|
||||
*/
|
||||
const MESSAGES = JSON.parse($animate.getAttribute('data-msg'));
|
||||
|
||||
function scramble($element, text, options) {
|
||||
const defaults = {
|
||||
probability: 0.25,
|
||||
glitches: "-%¥¶!\"❏_△§*¢ ¿",
|
||||
blank: "",
|
||||
duration: text.length * 80,
|
||||
delay: 0.0
|
||||
};
|
||||
const settings = {...defaults, ...options};
|
||||
|
||||
function shuffle() {return (Math.random() < 0.5) ? 1 : -1;}
|
||||
function wrap(text, classes) {return "<span class=\"" + classes + "\">" + text + "</span>";}
|
||||
|
||||
const glitchCharacters = [...settings.glitches].map(escp);
|
||||
const glitchLength = glitchCharacters.length;
|
||||
const glitchProbability = settings.probability;
|
||||
const glitches = glitchCharacters.map(x => wrap(x, "pop"));
|
||||
|
||||
const ghostCharacters = [...$element.innerText].map(escp);
|
||||
const ghostLength = ghostCharacters.length;
|
||||
const ghosts = ghostCharacters.map(x => wrap(x, "ghost"));
|
||||
const textCharacters = [...text].map(escp);
|
||||
const textLength = textCharacters.length;
|
||||
const order = Array.from(Array(textLength).keys()).sort(shuffle);
|
||||
|
||||
let output = [];
|
||||
for (let i = 0; i < textLength; ++i) {
|
||||
const index = Math.floor(Math.random() * (glitchLength - 1));
|
||||
const glitchCharacter = glitches[index];
|
||||
const ghostCharacter = ghosts[i] || settings.blank;
|
||||
const character = Math.random() < glitchProbability ? glitchCharacter : ghostCharacter;
|
||||
output.push(character);
|
||||
}
|
||||
|
||||
// Animation
|
||||
const duration = settings.duration;
|
||||
const ease = settings.ease;
|
||||
|
||||
let start = null;
|
||||
const TRESH = 1000 / 8; // 8FPS, more than enough
|
||||
|
||||
function easeInOutQuad(t) {
|
||||
if (t < 0.5)
|
||||
return 2 * t * t;
|
||||
|
||||
return Math.min((4 - 2 * t) * t - 1, 1);
|
||||
}
|
||||
function refresh() {
|
||||
const now = Date.now();
|
||||
if (!start) { start = now; }
|
||||
|
||||
const elapsed = now - start;
|
||||
if (elapsed < TRESH) {
|
||||
window.requestAnimFrame(refresh);
|
||||
return;
|
||||
}
|
||||
if (elapsed > duration) {
|
||||
$element.innerHTML = text;
|
||||
return;
|
||||
}
|
||||
|
||||
const interp = easeInOutQuad(elapsed / duration);
|
||||
const progress = Math.floor(interp * (textLength - 1));
|
||||
for (let i = 0; i < progress; ++i) {
|
||||
const index = order[i];
|
||||
output[index] = textCharacters[index];
|
||||
}
|
||||
|
||||
$element.innerHTML = output.join('');
|
||||
window.requestAnimFrame(refresh);
|
||||
}
|
||||
|
||||
setTimeout(refresh, settings.delay);
|
||||
}
|
||||
|
||||
function animate() {
|
||||
for (let i = 0; i < MESSAGES.length; ++i) {
|
||||
let data = MESSAGES[i];
|
||||
let element = $paragraph.item(i);
|
||||
|
||||
element.innerText = '';
|
||||
let options = { delay: data.delay };
|
||||
|
||||
scramble(element, data.text, options);
|
||||
}
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
for (let _ in MESSAGES) {
|
||||
let elem = document.createElement("p");
|
||||
elem.className = "banner-msg-line";
|
||||
$message.appendChild(elem);
|
||||
}
|
||||
$paragraph = $container.getElementsByTagName("p");
|
||||
animate();
|
||||
}
|
||||
|
||||
initialize();
|
||||
}).call(this);
|
@ -0,0 +1,279 @@
|
||||
@import "variables"
|
||||
|
||||
// common variables for this page
|
||||
$-h1: rgba(45,45,45,1)
|
||||
$-outline: rgba(#fff, .4)
|
||||
$-shadow: rgba($yellow, .5)
|
||||
|
||||
$-term-color: #c3993c
|
||||
$-term-height: 550px
|
||||
$-term-height-mid: 400px
|
||||
$-term-height-mobile: 280px
|
||||
$-term-scanline-height: 5px
|
||||
|
||||
.main
|
||||
background-color: var(--background-color)
|
||||
color: var(--foreground-color)
|
||||
padding: 10px 15px
|
||||
font-size: 0.9em
|
||||
|
||||
.headline
|
||||
max-width: $page-width
|
||||
height: auto
|
||||
font-size: $bigger-font-size
|
||||
text-align: center
|
||||
|
||||
.alt-background
|
||||
background: var(--alt-background-color)
|
||||
|
||||
.cards-list
|
||||
max-width: $page-width
|
||||
height: 100%
|
||||
display: flex
|
||||
flex-direction: column
|
||||
justify-content: center
|
||||
align-items: center
|
||||
text-align: center
|
||||
padding: $large-spacer $huge-spacer
|
||||
|
||||
.nav-spacer
|
||||
display: none // so the banner is against the navbar
|
||||
|
||||
.banner-burnin
|
||||
position: absolute
|
||||
width: 100%
|
||||
height: 100%
|
||||
z-index: $back
|
||||
box-shadow: inset 0px 0px 1px 1px rgba(64, 64, 64, .1)
|
||||
background: radial-gradient(ellipse at center,darken($-term-color,30%) 0%,rgba(64,64,64,0) 50%)
|
||||
transform-origin : 50% 50%
|
||||
transform: perspective(20px) rotateX(.5deg) skewX(2deg) scale(1.03)
|
||||
animation: burnin 1s linear infinite
|
||||
opacity: .9
|
||||
|
||||
.banner-burnin::after
|
||||
position: relative
|
||||
background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%,rgba(64,64,64,0) 100%)
|
||||
opacity: .1
|
||||
|
||||
.banner-terminal
|
||||
position: relative
|
||||
z-index: 90
|
||||
margin: 0 auto
|
||||
width: 100%
|
||||
height: $-term-height
|
||||
background-color: #0a1922
|
||||
overflow: hidden
|
||||
|
||||
.banner-terminal::before
|
||||
position: absolute
|
||||
width: 100%
|
||||
height: 100%
|
||||
top: 0
|
||||
left: 0
|
||||
content: ""
|
||||
z-index: $front
|
||||
background: linear-gradient(#777 50%, #0a1922 50%)
|
||||
background-size: 100% 4px
|
||||
background-repeat: repeat-y
|
||||
opacity: .14
|
||||
box-shadow : inset 0px 0px 1px 1px rgba(0, 0, 0, .8)
|
||||
animation: pulse 5s linear infinite
|
||||
|
||||
.banner-terminal::after
|
||||
position: absolute
|
||||
content: ""
|
||||
top: 0
|
||||
left: 0
|
||||
width: 100%
|
||||
height: 76%
|
||||
z-index: 99
|
||||
background: radial-gradient(ellipse at center, rgba(0,0,0,1) 0%,rgba(0,0,0,0.62) 45%,rgba(0,9,4,0.6) 47%,$-term-color 100%)
|
||||
background-color: $-term-color
|
||||
box-shadow : inset 0px 0px 4px 4px rgba(100, 100, 100, .5)
|
||||
opacity : .1
|
||||
|
||||
.banner-scanline
|
||||
--scanline-area: #{$-term-height}
|
||||
|
||||
position: relative
|
||||
z-index: 99
|
||||
width: 100%
|
||||
height: 5px
|
||||
background: linear-gradient(to bottom, rgba(255,0,0,0) 0%,rgba(255,250,250,1) 50%,rgba(255,255,255,0.98) 51%,rgba(255,0,0,0) 100%)
|
||||
background-color: #fff
|
||||
background-size: 100% 4px
|
||||
opacity : .1
|
||||
animation: scanline 3.25s ease-in-out infinite
|
||||
|
||||
.banner-textarea
|
||||
position: relative
|
||||
width: 1500px
|
||||
height: 600px
|
||||
margin: 0 auto
|
||||
|
||||
.banner-prompt
|
||||
position: relative
|
||||
text-align: left
|
||||
padding-left: 1em
|
||||
font-family: Inconsolata, Courier, unicase
|
||||
text-shadow: 0 0 8px rgba(lighten($-term-color, 50%), 0.3)
|
||||
font-size: 4em
|
||||
color: $-term-color
|
||||
|
||||
.ghost, .pop
|
||||
opacity: 0.27
|
||||
|
||||
.banner-msg-line
|
||||
text-shadow: 0 0 8px rgba(lighten($-term-color, 30%), 0.3)
|
||||
font-family: Inconsolata, Courier, monospace
|
||||
font-smoothing: antialiased
|
||||
padding-left: 6em
|
||||
font-size: 3em
|
||||
white-space: pre
|
||||
color: $-term-color
|
||||
overflow: hidden
|
||||
|
||||
#banner-msg-animate
|
||||
text-shadow: 0 0 8px rgba(lighten($-term-color, 50%), 0.1)
|
||||
color: darken(desaturate($-term-color, 10%), 20%)
|
||||
bottom: 0
|
||||
|
||||
.flicker
|
||||
margin: 0
|
||||
color: $-h1
|
||||
letter-spacing: -.05rem
|
||||
|
||||
.flicker::before
|
||||
content: attr(letter)
|
||||
position: absolute
|
||||
overflow: hidden
|
||||
color: $yellow
|
||||
z-index: $above
|
||||
text-shadow: none
|
||||
animation: flicker 3s linear infinite
|
||||
|
||||
.glitch
|
||||
margin: 0
|
||||
letter-spacing: -0.05rem
|
||||
display: inline-block
|
||||
animation: glitch 1s linear infinite
|
||||
|
||||
.glitch::before, .glitch::after
|
||||
content: attr(text)
|
||||
position: absolute
|
||||
overflow: hidden
|
||||
|
||||
.glitch::before
|
||||
left: 0;
|
||||
animation: glitch-top 1s linear infinite
|
||||
clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%)
|
||||
|
||||
.glitch::after
|
||||
left: 0
|
||||
animation: glitch-bottom 1.5s linear infinite
|
||||
clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%)
|
||||
|
||||
@keyframes burnin
|
||||
0%
|
||||
transform: scale(1, 1.002)
|
||||
50%
|
||||
transform: scale(1, 1.0001)
|
||||
100%
|
||||
transform: scale(1.001, 1)
|
||||
|
||||
@keyframes scanline
|
||||
to
|
||||
transform: translateY(var(--scanline-area)) translateY(-$-term-scanline-height)
|
||||
|
||||
@keyframes pulse
|
||||
0%
|
||||
transform: scale(1.001)
|
||||
opacity: .14
|
||||
8%
|
||||
transform: scale(1.000)
|
||||
opacity: .13
|
||||
15%
|
||||
transform: scale(1.004)
|
||||
opacity: .14
|
||||
30%
|
||||
transform: scale(1.002)
|
||||
opacity: .11
|
||||
100%
|
||||
transform: scale(1.000)
|
||||
opacity: .14
|
||||
|
||||
@keyframes flicker
|
||||
0%, 19.999%, 22%, 62.999%, 64%, 64.999%, 70%, 100%
|
||||
opacity: .99
|
||||
text-shadow: -1px -1px 0 $-outline, 1px -1px 0 $-outline, -1px 1px 0 $-outline, 1px 1px 0 $-outline, 0 -2px 8px, 0 0 2px, 0 0 5px #ff7e00, 0 0 15px #ff4444, 0 0 2px #ff7e00, 0 2px 3px #000
|
||||
|
||||
20%, 21.999%, 63%, 63.999%, 65%, 69.999%
|
||||
opacity: 0.4
|
||||
text-shadow: none
|
||||
|
||||
@keyframes glitch
|
||||
2%, 64%
|
||||
transform: translate(2px,0) skew(0deg)
|
||||
4%, 60%
|
||||
transform: translate(-2px,0) skew(0deg)
|
||||
62%
|
||||
transform: translate(0,0) skew(5deg)
|
||||
|
||||
@keyframes glitch-top
|
||||
2%, 64%
|
||||
transform: translate(2px,-2px)
|
||||
4%, 60%
|
||||
transform: translate(-2px,2px)
|
||||
62%
|
||||
transform: translate(13px,-1px) skew(-13deg)
|
||||
|
||||
@keyframes glitch-bottom
|
||||
2%, 64%
|
||||
transform: translate(-2px,0)
|
||||
4%, 60%
|
||||
transform: translate(-2px,0)
|
||||
62%
|
||||
transform: translate(-22px,5px) skew(21deg)
|
||||
|
||||
@keyframes typing
|
||||
to
|
||||
width: 100%
|
||||
|
||||
@keyframes blinking
|
||||
from, to
|
||||
border-color: transparent
|
||||
50%
|
||||
border-color: orange
|
||||
|
||||
.motto
|
||||
text-align: left
|
||||
padding-top: $large-spacer
|
||||
|
||||
@media only screen and (max-width:1200px)
|
||||
.banner-terminal
|
||||
height: $-term-height-mid
|
||||
.banner-scanline
|
||||
--scanline-area: #{$-term-height-mid}
|
||||
.banner-prompt
|
||||
font-size: 3em
|
||||
.banner-msg-line
|
||||
font-size: 2em
|
||||
|
||||
@media only screen and (max-width:1000px)
|
||||
html, body
|
||||
overflow-x: hidden
|
||||
|
||||
body
|
||||
-webkit-text-size-adjust: none
|
||||
|
||||
@media only screen and (max-width:800px)
|
||||
.banner-terminal
|
||||
height: $-term-height-mobile
|
||||
.banner-scanline
|
||||
--scanline-area: #{$-term-height-mobile}
|
||||
.banner-prompt
|
||||
font-size: 2em
|
||||
.banner-msg-line
|
||||
font-size: 1.5em
|
||||
padding-left: 3em
|
@ -0,0 +1,87 @@
|
||||
@import "variables"
|
||||
|
||||
#mobile-navbar
|
||||
display: none
|
||||
overflow: hidden
|
||||
color: white !important
|
||||
font-weight: bold
|
||||
|
||||
#mobile-subnav
|
||||
background-color: #0a1922
|
||||
|
||||
#mobile-subnav
|
||||
display: none
|
||||
|
||||
#menu
|
||||
padding: 5px 0
|
||||
color: white
|
||||
padding-right: 5px
|
||||
padding-left: 5px
|
||||
font-size: 1.1rem !important
|
||||
|
||||
#navbar
|
||||
display: block
|
||||
|
||||
.nav
|
||||
background-color: #0a1922
|
||||
padding: 5px 0
|
||||
border-top: 4px solid $teal
|
||||
|
||||
.nav-spacer
|
||||
margin-bottom: $small-spacer
|
||||
|
||||
.df-community-link:before
|
||||
content: ""
|
||||
background-image: url(/heart.svg) !important
|
||||
background-size: 12px 16px
|
||||
width: 12px
|
||||
height: 16px
|
||||
margin-left: 5px
|
||||
margin-right: 5px
|
||||
vertical-align: middle
|
||||
display: inline-block
|
||||
|
||||
#menu .navbar-item, .nav .navbar-item, .nav .navbar-item:visited
|
||||
color: white
|
||||
padding-right: 5px
|
||||
padding-left: 5px
|
||||
|
||||
@media only screen and (max-width:340px)
|
||||
#mobile-navbar
|
||||
font-size: 1.1rem !important
|
||||
#hamburger
|
||||
padding-left: 0.5rem !important
|
||||
|
||||
@media only screen and (max-width: 1000px)
|
||||
#menu .navbar-item
|
||||
display: block
|
||||
|
||||
#mobile-subnav
|
||||
display: block
|
||||
|
||||
#mobile-toggle + #menu
|
||||
display: none
|
||||
|
||||
#mobile-toggle:checked + #menu
|
||||
display: block
|
||||
|
||||
#mobile-navbar, #menu
|
||||
display: block
|
||||
font-size: 1.2rem
|
||||
line-height: 2.2rem
|
||||
|
||||
#mobile-navbar
|
||||
margin-top: 0.4rem
|
||||
|
||||
#navbar
|
||||
display: none
|
||||
|
||||
#mobile-toggle
|
||||
display: none
|
||||
#hamburger
|
||||
float: right;
|
||||
padding:
|
||||
left: 1.5rem;
|
||||
right: 0.5rem;
|
||||
|
||||
line-height: 0;
|
@ -0,0 +1,41 @@
|
||||
@import "variables"
|
||||
|
||||
.notfound-page
|
||||
position: relative
|
||||
display: flex
|
||||
flex-wrap: wrap
|
||||
width: $page-width
|
||||
margin: 0 auto
|
||||
gap: $large-spacer
|
||||
|
||||
.notfound-content
|
||||
position: relative
|
||||
padding-top: $large-spacer
|
||||
max-width: $card-width
|
||||
|
||||
.notes
|
||||
padding-top: $spacer
|
||||
|
||||
.notfound-404-chan
|
||||
position: relative
|
||||
width: $card-width
|
||||
height: $card-height
|
||||
background:
|
||||
image: url("/404-chan_sm.png")
|
||||
position: bottom right $huge-spacer
|
||||
repeat: no-repeat
|
||||
size: 144px 256px
|
||||
|
||||
#particles-bg
|
||||
position: absolute
|
||||
width: 100%
|
||||
height: 100%
|
||||
top: 0
|
||||
left: 0
|
||||
z-index: $foremost
|
||||
|
||||
@media (max-width: 800px)
|
||||
.notfound-content
|
||||
text-align: center
|
||||
.notfound-page
|
||||
flex-direction: column
|
@ -0,0 +1,192 @@
|
||||
@import "variables"
|
||||
|
||||
// Some convenience class to manage resolution specific elements
|
||||
@media only screen and (max-width:600px)
|
||||
.on-pc-screen
|
||||
display: none !important
|
||||
@media only screen and (min-width:600px)
|
||||
.on-mobile-screen
|
||||
display: none !important
|
||||
|
||||
@media only screen and (max-width:1200px)
|
||||
.on-largest-screen
|
||||
display: none !important
|
||||
@media only screen and (min-width:1200px)
|
||||
.up-to-largest-screen
|
||||
display: none !important
|
||||
|
||||
@media only screen and (max-width:1000px)
|
||||
.on-large-screen
|
||||
display: none !important
|
||||
@media only screen and (min-width:1000px)
|
||||
.up-to-large-screen
|
||||
display: none !important
|
||||
|
||||
@media only screen and (max-width:800px)
|
||||
.on-small-screen
|
||||
display: none !important
|
||||
@media only screen and (min-width:800px)
|
||||
.up-to-small-screen
|
||||
display: none !important
|
||||
|
||||
*
|
||||
box-sizing: border-box
|
||||
z-index: $foreground
|
||||
|
||||
html, body
|
||||
width: 100%
|
||||
height: 100%
|
||||
min-width: $min-page-width
|
||||
|
||||
h1.page-title
|
||||
text-align: left
|
||||
font-size: $large-font-size
|
||||
color: var(--title-text-color)
|
||||
h1.page-title:first-letter
|
||||
text-transform: capitalize
|
||||
|
||||
body
|
||||
margin: 0
|
||||
font-family: var(--body-font)
|
||||
font-size: $body-font-size
|
||||
line-height: $body-line-height
|
||||
color: var(--foreground-color)
|
||||
background-color: var(--background-color)
|
||||
-webkit-text-size-adjust: 100%
|
||||
-ms-text-size-adjust: 100%
|
||||
|
||||
a
|
||||
color: var(--link-color)
|
||||
|
||||
// `:focus` is linked to `:hover` for basic accessibility
|
||||
&:hover, &:focus
|
||||
color: var(--link-hover-color)
|
||||
|
||||
strong
|
||||
color: inherit
|
||||
|
||||
a:not(:hover)
|
||||
text-decoration: none
|
||||
|
||||
.container
|
||||
margin: 0 auto
|
||||
position: relative
|
||||
max-width: $page-width
|
||||
padding: 0 0.2em
|
||||
|
||||
.external-link-light:after
|
||||
background-image: url(/external-link-dark.svg) !important
|
||||
.external-link:after
|
||||
content: ""
|
||||
background-image: url(/external-link-light.svg)
|
||||
background-size: 10px 10px
|
||||
display: inline-block
|
||||
width: 10px
|
||||
height: 10px
|
||||
margin-left: 5px
|
||||
|
||||
img
|
||||
display: block
|
||||
max-width: 100%
|
||||
margin-bottom: $spacer
|
||||
border-radius: $border-radius
|
||||
|
||||
table
|
||||
margin-bottom: $spacer
|
||||
width: 100%
|
||||
border: 0 solid var(--border-color)
|
||||
border-collapse: collapse
|
||||
|
||||
td, th
|
||||
padding: .25rem .5rem
|
||||
border:
|
||||
color: inherit
|
||||
style: solid
|
||||
width: 0
|
||||
bottom-width: 1px
|
||||
|
||||
th
|
||||
text-align: left
|
||||
|
||||
thead th
|
||||
border-bottom-color: currentColor
|
||||
|
||||
.header
|
||||
display: flex
|
||||
align-items: flex-end
|
||||
|
||||
.header-text
|
||||
font-size: $large-font-size
|
||||
color: var(--title-text-color)
|
||||
font-weight: bold
|
||||
display: inline-block
|
||||
padding: 1em 0.5em 1em 0.5em
|
||||
|
||||
.header-image
|
||||
background:
|
||||
image: url(/doublefourteen-logo-dark.svg)
|
||||
repeat: no-repeat
|
||||
|
||||
width: 330px
|
||||
height: 180px
|
||||
display: inline-block
|
||||
margin: 0 0.5em 0 0.5em
|
||||
|
||||
.work-in-progress-content
|
||||
display: flex
|
||||
justify-content: space-between
|
||||
|
||||
.work-in-progress-text
|
||||
position: relative
|
||||
|
||||
.work-in-progress-sign
|
||||
width: 400px
|
||||
height: 386px
|
||||
background:
|
||||
image: url(/work-in-progress.png)
|
||||
position: bottom right
|
||||
repeat: no-repeat
|
||||
size: 400px 386px
|
||||
|
||||
.button, .button:hover
|
||||
background-color: transparent
|
||||
border: 2px solid #737475
|
||||
color: #333
|
||||
padding: 7px 12px
|
||||
display: block
|
||||
margin: 10px 0
|
||||
font-size: $body-font-size
|
||||
font-weight: 700
|
||||
text-decoration: none !important
|
||||
.button a
|
||||
display: inline
|
||||
text-decoration: none !important
|
||||
color: #666
|
||||
.button:hover
|
||||
background-color: #7f7f7f
|
||||
|
||||
|
||||
.footer
|
||||
text-align: center
|
||||
padding-top: $large-spacer
|
||||
|
||||
@media (prefers-color-scheme:dark)
|
||||
.external-link:after
|
||||
background-image: url(/external-link-dark.svg)
|
||||
.header-image
|
||||
background-image: url(/doublefourteen-logo-light.svg)
|
||||
|
||||
// FIXME
|
||||
.button, .button:hover
|
||||
color: inherit
|
||||
.button a
|
||||
color: #ccc
|
||||
.button:hover
|
||||
background-color: #383838
|
||||
|
||||
|
||||
@media only screen and (max-width:800px)
|
||||
.work-in-progress-content
|
||||
flex-direction: column
|
||||
.work-in-progress-text
|
||||
text-align: center
|
@ -0,0 +1,118 @@
|
||||
// Standard page width
|
||||
$page-width: 1000px
|
||||
// Minimum supported page width (forced on html, body)
|
||||
$min-page-width: 500px
|
||||
|
||||
// Small card objects, wrap text or small images on lists
|
||||
$card-width: 400px
|
||||
$card-height: 500px
|
||||
|
||||
// Consistent spacing for elements
|
||||
$smallest-spacer: 10px
|
||||
$small-spacer: 30px
|
||||
$spacer: 1rem
|
||||
$large-spacer: $spacer * 1.5
|
||||
$huge-spacer: $spacer * 3
|
||||
|
||||
// Fonts
|
||||
$body-line-height: 1.5
|
||||
|
||||
$huge-font-size: 3em
|
||||
$large-font-size: 2em
|
||||
$bigger-font-size: 1em
|
||||
$body-font-size: 20px
|
||||
|
||||
// Consistent border radius
|
||||
$border-radius: 0.25rem
|
||||
|
||||
// Z indexes for consistent ordering across site
|
||||
$foremost: 100
|
||||
$above: 30
|
||||
$front: 20
|
||||
$foreground: 1
|
||||
$background: 0
|
||||
$back: -1
|
||||
$far: -20
|
||||
$farthest: -100
|
||||
|
||||
// Color palette
|
||||
$gray-000: #f8f9fa
|
||||
$gray-100: #f1f3f5
|
||||
$gray-200: #e9ecef
|
||||
$gray-300: #dee2e6
|
||||
$gray-400: #ced4da
|
||||
$gray-500: #adb5bd
|
||||
$gray-600: #868e96
|
||||
$gray-700: #495057
|
||||
$gray-800: #343a40
|
||||
$gray-900: #212529
|
||||
|
||||
$red: #fa5252
|
||||
$pink: #e64980
|
||||
$grape: #be4bdb
|
||||
$purple: #7950f2
|
||||
$indigo: #4c6ef5
|
||||
$blue: #228be6
|
||||
$cyan: #15aabf
|
||||
$teal: #12b886
|
||||
$green: #40c057
|
||||
$yellow: #fab005
|
||||
$orange: #fd7e14
|
||||
$gray: #454545
|
||||
|
||||
$blue-300: #74c0fc
|
||||
$blue-400: #4dabf7
|
||||
$yellow-100: #fff3bf
|
||||
|
||||
// Color Theme
|
||||
|
||||
$background-color: #efefef
|
||||
$background-color-dark: #292929
|
||||
$alt-background-color: #dfdfdf
|
||||
$alt-background-color-dark: #0a1922
|
||||
$foreground-color: $gray-700
|
||||
$foreground-color-dark: $gray-300
|
||||
$surface-color: $cyan
|
||||
$surface-color-dark: $cyan
|
||||
$accent-color: $cyan
|
||||
$accent-color-dark: $cyan
|
||||
|
||||
$text-color: #fff
|
||||
$text-color-dark: #000
|
||||
$title-text-color: #444
|
||||
$title-text-color-dark: #ddd
|
||||
|
||||
\:root
|
||||
--background-color: #{$background-color}
|
||||
--alt-background-color: #{$alt-background-color}
|
||||
--foreground-color: #{$foreground-color}
|
||||
|
||||
|
||||
--body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"
|
||||
|
||||
--text-color: #{$text-color}
|
||||
--title-text-color: #{$title-text-color}
|
||||
|
||||
--link-color: #{$blue}
|
||||
--link-hover-color: #1c7ed6
|
||||
|
||||
--heading-color: #{$gray-900}
|
||||
--border-color: #{$gray-300}
|
||||
|
||||
// --code-font: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
|
||||
|
||||
@media (prefers-color-scheme:dark)
|
||||
\:root
|
||||
--background-color: #{$background-color-dark}
|
||||
--alt-background-color: #{$alt-background-color-dark}
|
||||
--foreground-color: #{$foreground-color-dark}
|
||||
|
||||
--text-color: #{$text-color-dark}
|
||||
--title-text-color: #{$title-text-color-dark}
|
||||
|
||||
--heading-color: #fff
|
||||
|
||||
--link-color: #{$blue-300}
|
||||
--link-hover-color: #{$blue-400}
|
||||
|
||||
--border-color: rgba(255, 255, 255, 0.15)
|
@ -0,0 +1,8 @@
|
||||
[back-to-home]
|
||||
other = "← Back to <b>Home</b> page"
|
||||
|
||||
[back-to-parent]
|
||||
other = "← Back to <b>{{ . }}</b> section"
|
||||
|
||||
[menu-source]
|
||||
other = "Sources"
|
@ -0,0 +1,8 @@
|
||||
[back-to-parent]
|
||||
other = "← Torna alla sezione <b>{{ . }}</b>"
|
||||
|
||||
[back-to-home]
|
||||
other = "← Torna alla <b>Home</b>"
|
||||
|
||||
[menu-source]
|
||||
other = "Sorgenti"
|
@ -0,0 +1,37 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ⏎
|
||||
{{ end }}
|
||||
|
||||
{{ define "links" }}
|
||||
{{ $sassOptions := ( dict "outputStyle" "compressed" ) }}
|
||||
{{ $jsOptions := ( dict "target" "es2018" "minify" true ) }}
|
||||
|
||||
{{ $notfoundCss := resources.Get "sass/notfound.sass" | toCSS $sassOptions | fingerprint }}
|
||||
<link type="text/css" rel="stylesheet" href="{{ $notfoundCss.Permalink }}">
|
||||
{{ $particlesJs := resources.Get "js/lib/particles.js" | js.Build $jsOptions | fingerprint }}
|
||||
<script src="{{ $particlesJs.Permalink }}" type="text/javascript"></script>
|
||||
{{ end }}
|
||||
{{ define "main" }}
|
||||
{{ $jsOptions := ( dict "target" "es2018" "minify" true ) }}
|
||||
{{ $rainJs := resources.Get "js/rain.js" | js.Build $jsOptions | fingerprint }}
|
||||
|
||||
<h1 class="container page-title">404 – Page not found</h1>
|
||||
<div class="notfound-page">
|
||||
<div class="notfound-content">
|
||||
<p class="lead">
|
||||
Sorry, we've tried very hard but we couldn't find what you were looking for.<br>
|
||||
Honest, if you don't believe us just look how sad our HTTP server is.
|
||||
</p>
|
||||
<p class="notes">
|
||||
While we try to soothe our poor server,<br>
|
||||
you can <a href="{{ "/" | relURL }}">head back home</a> and try again.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="notfound-404-chan">
|
||||
<div id="particles-bg"></div>
|
||||
</div>
|
||||
|
||||
<script src="{{ $rainJs.Permalink }}" type="text/javascript" defer></script>
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1 @@
|
||||
<a href="{{ .Destination | safeURL }}" {{ with .Title}} title="{{ . }}"{{ end }} {{ $url := urls.Parse (absURL .Destination) }} {{ $website := urls.Parse (absURL "") }} {{ if ne $url.Host $website.Host }} class="external-link" target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
|
@ -0,0 +1,38 @@
|
||||
{{$lang := .Lang}}
|
||||
{{ if isset .Params "lang" }}
|
||||
{{ $lang = .Params.lang }}
|
||||
{{end}}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{$lang}}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>
|
||||
{{ block "title" . }} ⏎
|
||||
{{ end }}
|
||||
{{ .Site.Title }}
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
|
||||
{{ $sassOptions := ( dict "outputStyle" "compressed" ) }}
|
||||
{{ $styleCss := resources.Get "sass/style.sass" | toCSS $sassOptions | fingerprint }}
|
||||
<link type="text/css" rel="stylesheet" href="{{ $styleCss.Permalink }}">
|
||||
{{ $navigationCss := resources.Get "sass/navigation.sass" | toCSS $sassOptions | fingerprint }}
|
||||
<link type="text/css" rel="stylesheet" href="{{ $navigationCss.Permalink }}">
|
||||
|
||||
{{ block "links" . }}
|
||||
{{ end }}
|
||||
</head>
|
||||
<body>
|
||||
<div class="container header">
|
||||
<a href="{{ "" | relLangURL }}"><span class="header-image"></span></a>
|
||||
<div class="header-text on-large-screen">The DoubleFourteen Code Forge</div>
|
||||
<div class="header-text up-to-large-screen">Code Forge</div>
|
||||
</div>
|
||||
{{- partial "navigation.html" . -}}
|
||||
<div id="content" role="main">
|
||||
{{- block "main" . }}{{- end }}
|
||||
</div>
|
||||
{{- partial "footer.html" . -}}
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,20 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ⏎
|
||||
{{ end }}
|
||||
{{ define "main" }}
|
||||
{{- partial "parent-link" . -}}
|
||||
<div class="container">
|
||||
<h1 class="page-title">{{ .Section }}</h1>
|
||||
{{ if gt (len .Pages) 0 }}
|
||||
<ul>
|
||||
{{ range .Pages | }}
|
||||
<li>
|
||||
<a href="{{.Permalink}}">{{ dateFormat "2006-01-02" .Date.Local }} - {{ .Title }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ else }}
|
||||
{{- partial "work-in-progress" . -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1,23 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ⏎
|
||||
{{ end }}
|
||||
{{ define "main" }}
|
||||
{{ $enSite := index .Sites 0 }}
|
||||
{{ $posts := where $enSite.RegularPages "Section" .Section }}
|
||||
{{- partial "parent-link" . -}}
|
||||
<div class="container">
|
||||
<h1 class="page-title">{{ .Section }}</h1>
|
||||
{{ if gt (len .Pages) 0}}
|
||||
<p>This page is also available as an <a href="index.xml">RSS feed</a>.</p>
|
||||
<ul>
|
||||
{{ range $posts }}
|
||||
<li>
|
||||
<a href="{{.Permalink}}">{{ dateFormat "2006-01-02" .Date.Local }} - {{ .Title }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{- partial "work-in-progress" . -}}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1,13 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ⏎
|
||||
{{ end }}
|
||||
{{ define "main" }}
|
||||
{{- partial "parent-link" . -}}
|
||||
<div class="container">
|
||||
{{ if .Params.toc }}
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{ .TableOfContents }}
|
||||
{{ end }}
|
||||
{{ .Content }}
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1,39 @@
|
||||
{{ define "title" }}
|
||||
{{ .Title }} ⏎
|
||||
{{ end }}
|
||||
|
||||
{{ define "links" }}
|
||||
{{ $sassOptions := ( dict "outputStyle" "compressed" ) }}
|
||||
{{ $jsOptions := ( dict "target" "es2018" "minify" true ) }}
|
||||
|
||||
{{ $home := resources.Get "sass/home.sass" | toCSS $sassOptions | fingerprint }}
|
||||
<link type="text/css" rel="stylesheet" href="{{ $home.Permalink }}">
|
||||
{{ $transmissionJs := resources.Get "js/transmission.js" | js.Build $jsOptions | fingerprint }}
|
||||
<script src="{{ $transmissionJs.Permalink }}" type="text/javascript" defer></script>
|
||||
{{ end }}
|
||||
|
||||
{{ define "main" }}
|
||||
<div id="banner-terminal" class="banner-terminal">
|
||||
<div id="banner-scanline" class="banner-scanline"></div>
|
||||
<div id="banner-burnin" class="banner-burnin"></div>
|
||||
<div id="banner-textarea" class="banner-textarea">
|
||||
<div class="banner-prompt">
|
||||
<span class="flicker" letter=">[">>[</span><span class="glitch" text="C">C</span><span class="flicker" letter="⏻">⏻</span><span class="glitch" text="llEct">llEct</span><span class="flicker" letter="Iv">Iv</span><span class="glitch" text="E">E</span><span class="flicker" letter="]:">]:</span>
|
||||
</div>
|
||||
<div id="banner-msg" class="banner-msg">
|
||||
<div id="banner-msg-animate" data-msg='[{"delay": 1000, "text": "Coding··· ⮠"},
|
||||
{"delay": 5000, "text": " $ Knowledge. ▆"}]'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
<div class="container parent-link" style="display:flex; flex-direction: row; justify-content: space-around; margin-top: 2em;">
|
||||
</div>
|
||||
<div class="container motto">
|
||||
<small><em>For the glory of mankind.<em></small>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
@ -0,0 +1,2 @@
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="alternate icon" href="/favicon.ico">
|
@ -0,0 +1,12 @@
|
||||
<footer class="container footer">
|
||||
<small>
|
||||
©
|
||||
<time datetime="{{ now.UTC.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}">
|
||||
{{ now.UTC.Format "2006" }}</time> The DoubleFourteen Code Forge. All Rights Reserved.<br>
|
||||
<em>
|
||||
Code samples are MIT licensed, logos belong to their respective owners, everything else is
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/" class="external-link">
|
||||
CC BY-SA</a>.
|
||||
<em>
|
||||
</small>
|
||||
</footer>
|
@ -0,0 +1,49 @@
|
||||
<nav id="mobile-navbar" class="nav container">
|
||||
<span style="overflow:hidden; max-width: 80%; display: inline-block; vertical-align:bottom;">
|
||||
{{ .Params.mobile_menu_title }}
|
||||
</span>
|
||||
<label for="mobile-toggle" id="hamburger">
|
||||
<svg style="width:2em;height:2em;" viewBox="0 0 24 24">
|
||||
<path fill="currentColor" d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" />
|
||||
</svg>
|
||||
</label>
|
||||
</nav>
|
||||
<div id="mobile-subnav">
|
||||
<input type="checkbox" name="mobile-toggle" id="mobile-toggle">
|
||||
<div class="" id="menu">
|
||||
{{ with .Site.GetPage "articles" }}
|
||||
<a href="{{ "articles/" | relLangURL }}" class="navbar-item">{{ .Params.mobile_menu_title }}</a>
|
||||
{{ end }}
|
||||
{{ with .Site.GetPage "blog" }}
|
||||
<a href="{{ "blog/" | relLangURL }}" class="navbar-item">{{ .Params.mobile_menu_title }}</a>
|
||||
{{ end }}
|
||||
<a href="https://git.doublefourteen.io/explore/repos" class="navbar-item external-link external-link-light">{{ i18n "menu-source" }}</a>
|
||||
{{ with .Site.GetPage "doublefourteen"}}
|
||||
<a href="{{ "doublefourteen/" | relLangURL }}" class="navbar-item df-community-link">
|
||||
{{ .Params.mobile_menu_title }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav id="navbar" class="nav">
|
||||
<div class="container" style="display:flex; justify-content: space-between;">
|
||||
<div>
|
||||
{{ with .Site.GetPage "articles" }}
|
||||
<a href="{{ "articles/" | relLangURL }}" class="navbar-item">{{ .Params.menu_title }}</a>
|
||||
{{ end }}
|
||||
{{ with .Site.GetPage "blog" }}
|
||||
<a href="{{ "blog/" | relLangURL }}" class="navbar-item">{{ .Params.menu_title }}</a>
|
||||
{{ end }}
|
||||
<a href="https://git.doublefourteen.io/explore/repos" class="navbar-item external-link external-link-light">{{ i18n "menu-source" }}</a>
|
||||
{{ with .Site.GetPage "doublefourteen" }}
|
||||
<a href="{{ "doublefourteen/" | relLangURL }}" class="navbar-item df-community-link">
|
||||
{{ .Params.menu_title }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="nav-spacer"></div>
|
||||
|
@ -0,0 +1,12 @@
|
||||
<div class="container parent-link" style="display:flex; flex-direction: row; justify-content: space-between;">
|
||||
<a href="{{.Parent.Permalink}}" class="parent-link">
|
||||
{{ if eq .CurrentSection .Site.Home}}
|
||||
{{ i18n "back-to-home" | safeHTML }}
|
||||
{{ else }} {{ if eq .CurrentSection.Page .Page }}
|
||||
{{ i18n "back-to-home" | safeHTML }}
|
||||
{{ else }}
|
||||
{{ i18n "back-to-parent" .CurrentSection.Title | safeHTML }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</a>
|
||||
</div>
|
@ -0,0 +1,10 @@
|
||||
<div class="container work-in-progress-content">
|
||||
<div class="work-in-progress-text">
|
||||
<p>
|
||||
Sorry,
|
||||
there is nothing to show in this category, <b>yet</b>...
|
||||
</p>
|
||||
</div>
|
||||
<div class="work-in-progress-sign" title="Miku doesn't like to wait for new content."></img>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,3 @@
|
||||
<div class="box">
|
||||
{{ .Inner }}
|
||||
</div>
|
@ -0,0 +1,17 @@
|
||||
{{ $version := index $.Site.Params.downloads_release_order 1 }}
|
||||
{{ $lang := default "en" (.Get "lang") }}
|
||||
<div class="slogan alt-background">
|
||||
<div class="container slogan-message">
|
||||
<div style="max-width: 790px; margin: 10px 0;padding: 0 5px;">
|
||||
{{ .Inner | markdownify }}
|
||||
</div>
|
||||
<div class="cta-buttons">
|
||||
<a href="{{ ref . (dict "path" "learn/getting-started.md" "lang" $lang) }}" class="button main" style="margin-bottom: 5px;">{{ .Get "get_started" }}</a>
|
||||
<span class="slogan-separator" style= "font-size: 0.5em;"> {{ i18n "slogan-latest-release" $version | safeHTML }} </span>
|
||||
<div style="display:flex; flex-direction: row; margin-top: 5px;">
|
||||
<a href="https://ziglang.org/documentation/{{ $version }}/" class="button" style="flex-grow: 1; margin-top: 0px;">{{ .Get "docs" }}</a>
|
||||
<a href="https://ziglang.org/download/{{ $version }}/release-notes.html" class="button" style="margin-left:5px; margin-top: 0px;">{{ .Get "notes" }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,19 @@
|
||||
<style type="text/css">
|
||||
.logos img {
|
||||
margin: 20px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.logos.monetary img {
|
||||
max-width: 320px;
|
||||
max-height: 320px;
|
||||
}
|
||||
|
||||
.logos.services img {
|
||||
max-width: 170px;
|
||||
max-height: 170px;
|
||||
}
|
||||
</style>
|
||||
<div class="logos {{.Get 0}}">
|
||||
{{ .Inner }}
|
||||
</div>
|
@ -0,0 +1,6 @@
|
||||
<div style="display:flex; flex-direction: row; flex-wrap: wrap; align-items: center;">
|
||||
<h1>{{.Get 0}} </h1>
|
||||
<a href="https://github.com/sponsors/ziglang" target="_blank" style="margin-left: 35px; margin-bottom:0px; transform: scale(1.3);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133" height="20" role="img" aria-label="Sponsor on GitHub: "><title>Sponsor on GitHub</title><style>a:hover #llink{fill:url(#b);stroke:#ccc}a:hover #rlink{fill:#4183c4}</style><linearGradient id="a" x2="0" y2="100%"><stop offset="0" stop-color="#fcfcfc" stop-opacity="0"></stop><stop offset="1" stop-opacity=".1"></stop></linearGradient><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#ccc" stop-opacity=".1"></stop><stop offset="1" stop-opacity=".1"></stop></linearGradient><g stroke="#d5d5d5"><rect stroke="none" fill="#fcfcfc" x="0.5" y="0.5" width="132" height="19" rx="2"></rect></g><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMTgxNzE3IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2l0SHViIGljb248L3RpdGxlPjxwYXRoIGQ9Ik0xMiAuMjk3Yy02LjYzIDAtMTIgNS4zNzMtMTIgMTIgMCA1LjMwMyAzLjQzOCA5LjggOC4yMDUgMTEuMzg1LjYuMTEzLjgyLS4yNTguODItLjU3NyAwLS4yODUtLjAxLTEuMDQtLjAxNS0yLjA0LTMuMzM4LjcyNC00LjA0Mi0xLjYxLTQuMDQyLTEuNjFDNC40MjIgMTguMDcgMy42MzMgMTcuNyAzLjYzMyAxNy43Yy0xLjA4Ny0uNzQ0LjA4NC0uNzI5LjA4NC0uNzI5IDEuMjA1LjA4NCAxLjgzOCAxLjIzNiAxLjgzOCAxLjIzNiAxLjA3IDEuODM1IDIuODA5IDEuMzA1IDMuNDk1Ljk5OC4xMDgtLjc3Ni40MTctMS4zMDUuNzYtMS42MDUtMi42NjUtLjMtNS40NjYtMS4zMzItNS40NjYtNS45MyAwLTEuMzEuNDY1LTIuMzggMS4yMzUtMy4yMi0uMTM1LS4zMDMtLjU0LTEuNTIzLjEwNS0zLjE3NiAwIDAgMS4wMDUtLjMyMiAzLjMgMS4yMy45Ni0uMjY3IDEuOTgtLjM5OSAzLS40MDUgMS4wMi4wMDYgMi4wNC4xMzggMyAuNDA1IDIuMjgtMS41NTIgMy4yODUtMS4yMyAzLjI4NS0xLjIzLjY0NSAxLjY1My4yNCAyLjg3My4xMiAzLjE3Ni43NjUuODQgMS4yMyAxLjkxIDEuMjMgMy4yMiAwIDQuNjEtMi44MDUgNS42MjUtNS40NzUgNS45Mi40Mi4zNi44MSAxLjA5Ni44MSAyLjIyIDAgMS42MDYtLjAxNSAyLjg5Ni0uMDE1IDMuMjg2IDAgLjMxNS4yMS42OS44MjUuNTdDMjAuNTY1IDIyLjA5MiAyNCAxNy41OTIgMjQgMTIuMjk3YzAtNi42MjctNS4zNzMtMTItMTItMTIiLz48L3N2Zz4="></image><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="132" height="19" rx="2"></rect><text aria-hidden="true" x="745" y="150" fill="#fff" transform="scale(.1)" textLength="1050">Sponsor on GitHub</text><text x="745" y="140" transform="scale(.1)" textLength="1050">Sponsor on GitHub</text></g></svg>
|
||||
</a>
|
||||
</div>
|
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 51 KiB |
@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 329.9996 180"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
sodipodi:docname="doublefourteen-logo-dark.svg"
|
||||
inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#c1c1c1"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:pageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="true"
|
||||
inkscape:zoom="2.0367199"
|
||||
inkscape:cx="258.74937"
|
||||
inkscape:cy="157.36086"
|
||||
inkscape:window-width="1050"
|
||||
inkscape:window-height="1001"
|
||||
inkscape:window-x="870"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1"
|
||||
showguides="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2554"
|
||||
originx="-10"
|
||||
originy="-49.999993" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="fill_between_many"
|
||||
method="originald"
|
||||
linkedpaths="#rect31,0,1|#g1476,0,1|#g831,0,1|#path2606,0,1|#g2614,0,1"
|
||||
id="path-effect2893"
|
||||
is_visible="true"
|
||||
lpeversion="0"
|
||||
join="true"
|
||||
close="true"
|
||||
autoreverse="true"
|
||||
applied="false" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Livello 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-10,-49.999999)">
|
||||
<path
|
||||
inkscape:original-d="M 0,0"
|
||||
inkscape:path-effect="#path-effect2893"
|
||||
d="M 0,0"
|
||||
id="path2895" />
|
||||
<g
|
||||
id="g30">
|
||||
<path
|
||||
id="rect31"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.246992;paint-order:fill markers stroke"
|
||||
d="M 10,110 35,80 V 200 H 10 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g1476"
|
||||
style="fill:#1c2224;fill-opacity:1"
|
||||
transform="translate(10.000221)">
|
||||
<g
|
||||
id="g1480"
|
||||
style="fill:#1c2224;fill-opacity:1">
|
||||
<g
|
||||
id="g2792"
|
||||
style="fill:#1c2224;fill-opacity:1">
|
||||
<path
|
||||
id="rect911"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 79.999779,80 H 110 L 59.999779,200 h -30 z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="rect1354"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 84.999779,190 H 110 v 40 H 84.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g38">
|
||||
<path
|
||||
id="path4756"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.246992;paint-order:fill markers stroke"
|
||||
d="M 150,110 175.00001,80 V 200 H 150 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g4766"
|
||||
style="fill:#1c2224;fill-opacity:1"
|
||||
transform="translate(150.00023)">
|
||||
<g
|
||||
id="g4764"
|
||||
style="fill:#1c2224;fill-opacity:1">
|
||||
<g
|
||||
id="g4762"
|
||||
style="fill:#1c2224;fill-opacity:1">
|
||||
<path
|
||||
id="path4758"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 79.99977,80 H 110 L 59.99977,200 H 29.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path4760"
|
||||
style="fill:#1c2224;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 84.999779,190 H 110 v 40 H 84.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g831"
|
||||
transform="matrix(0.97539005,0,0,0.97539005,88.743554,-24.606556)"
|
||||
style="fill:#535d6c;fill-opacity:1">
|
||||
<path
|
||||
id="path4548"
|
||||
style="fill:#535d6c;fill-opacity:1;stroke-width:0.476198;paint-order:fill markers stroke"
|
||||
d="m 226.54388,76.488944 c -8.49961,0.0046 -16.62581,3.460019 -22.48344,9.560509 l 0.0863,19.039167 h 12.74917 c 1.08192,-4.60106 5.23423,-8.125154 10.02525,-8.137771 5.69898,-1.85e-4 10.31883,4.553711 10.31918,10.171841 -7e-5,5.61831 -4.62029,10.17277 -10.31945,10.17258 -4.09567,-0.007 -8.38623,-1.72488 -10.02498,-5.42518 -3.93798,0.0365 -15.96437,0 -21.70072,0 2.73019,14.5445 16.41344,26.10115 31.34874,26.13271 17.14925,-1.3e-4 31.05142,-13.77054 31.05154,-30.75725 -4.8e-4,-16.986451 -13.90255,-30.756474 -31.05154,-30.7566 z"
|
||||
sodipodi:nodetypes="sccccccccccss" />
|
||||
</g>
|
||||
<path
|
||||
id="rect9243"
|
||||
style="fill:#6f7c91;fill-opacity:1;stroke-width:0.265045;paint-order:fill markers stroke"
|
||||
d="m 313.41205,120 25.00005,2.5e-4 L 313.41205,150 Z"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.0 KiB |
@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 329.9996 180"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
sodipodi:docname="doublefourteen-logo-light.svg"
|
||||
inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#c1c1c1"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:pageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="true"
|
||||
inkscape:zoom="2.0367199"
|
||||
inkscape:cx="77.821207"
|
||||
inkscape:cy="157.36086"
|
||||
inkscape:window-width="1089"
|
||||
inkscape:window-height="1001"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1"
|
||||
showguides="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2554"
|
||||
originx="-10"
|
||||
originy="-49.999993" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="fill_between_many"
|
||||
method="originald"
|
||||
linkedpaths="#rect31,0,1|#g1476,0,1|#g831,0,1|#path2606,0,1|#g2614,0,1"
|
||||
id="path-effect2893"
|
||||
is_visible="true"
|
||||
lpeversion="0"
|
||||
join="true"
|
||||
close="true"
|
||||
autoreverse="true"
|
||||
applied="false" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Livello 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-10,-49.999999)">
|
||||
<path
|
||||
inkscape:original-d="M 0,0"
|
||||
inkscape:path-effect="#path-effect2893"
|
||||
d="M 0,0"
|
||||
id="path2895" />
|
||||
<g
|
||||
id="g30"
|
||||
style="fill:#d4f5ff;fill-opacity:1;image-rendering:crisp-edges">
|
||||
<path
|
||||
id="rect31"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.246992;paint-order:fill markers stroke"
|
||||
d="M 10,110 35,80 V 200 H 10 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g1476"
|
||||
style="fill:#d4f5ff;fill-opacity:1"
|
||||
transform="translate(10.000221)">
|
||||
<g
|
||||
id="g1480"
|
||||
style="fill:#d4f5ff;fill-opacity:1">
|
||||
<g
|
||||
id="g2792"
|
||||
style="fill:#d4f5ff;fill-opacity:1">
|
||||
<path
|
||||
id="rect911"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 79.999779,80 H 110 L 59.999779,200 h -30 z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="rect1354"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 84.999779,190 H 110 v 40 H 84.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g38"
|
||||
style="fill:#d4f5ff;fill-opacity:1">
|
||||
<path
|
||||
id="path4756"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.246992;paint-order:fill markers stroke"
|
||||
d="M 150,110 175.00001,80 V 200 H 150 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g4766"
|
||||
style="fill:#d4f5ff;fill-opacity:1"
|
||||
transform="translate(150.00023)">
|
||||
<g
|
||||
id="g4764"
|
||||
style="fill:#d4f5ff;fill-opacity:1">
|
||||
<g
|
||||
id="g4762"
|
||||
style="fill:#d4f5ff;fill-opacity:1">
|
||||
<path
|
||||
id="path4758"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 79.99977,80 H 110 L 59.99977,200 H 29.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path4760"
|
||||
style="fill:#d4f5ff;fill-opacity:1;stroke-width:0.264999;paint-order:fill markers stroke"
|
||||
d="M 84.999779,190 H 110 v 40 H 84.999779 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g831"
|
||||
transform="matrix(0.97539005,0,0,0.97539005,88.743554,-24.606556)"
|
||||
style="fill:#87decd;fill-opacity:1">
|
||||
<path
|
||||
id="path4548"
|
||||
style="fill:#87decd;fill-opacity:1;stroke-width:0.476198;paint-order:fill markers stroke"
|
||||
d="m 226.54388,76.488944 c -8.49961,0.0046 -16.62581,3.460019 -22.48344,9.560509 l 0.0863,19.039167 h 12.74917 c 1.08192,-4.60106 5.23423,-8.125154 10.02525,-8.137771 5.69898,-1.85e-4 10.31883,4.553711 10.31918,10.171841 -7e-5,5.61831 -4.62029,10.17277 -10.31945,10.17258 -4.09567,-0.007 -8.38623,-1.72488 -10.02498,-5.42518 -3.93798,0.0365 -15.96437,0 -21.70072,0 2.73019,14.5445 16.41344,26.10115 31.34874,26.13271 17.14925,-1.3e-4 31.05142,-13.77054 31.05154,-30.75725 -4.8e-4,-16.986451 -13.90255,-30.756474 -31.05154,-30.7566 z"
|
||||
sodipodi:nodetypes="sccccccccccss" />
|
||||
</g>
|
||||
<path
|
||||
id="rect9243"
|
||||
style="fill:#afe9dd;fill-opacity:1;stroke-width:0.265045;paint-order:fill markers stroke"
|
||||
d="m 313.41205,120 25.00005,2.5e-4 L 313.41205,150 Z"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<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 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<g id="XMLID_2_">
|
||||
<path id="XMLID_6_" style="fill:#ccc" d="M426.4,266.2V107.1c0-5.6-1.9-11.2-6.5-14.9c-4.7-4.7-9.3-6.5-14.9-6.5H245.8
|
||||
c-9.3,0-15.8,4.7-19.5,13c-3.7,9.3-1.9,16.8,4.7,23.3l48.4,48.4L100.5,347.2c-4.7,4.7-6.5,9.3-6.5,14.9c0,5.6,1.9,11.2,6.5,14.9
|
||||
l34.4,34.4c4.7,4.7,9.3,6.5,14.9,6.5c5.6,0,11.2-1.9,14.9-6.5l177.8-177.8l48.4,48.4c3.7,4.7,9.3,6.5,14.9,6.5
|
||||
c2.8,0,5.6-0.9,8.4-1.9C422.6,283,426.4,275.5,426.4,266.2z M512,95.9v320.2c0,26.1-9.3,49.3-27.9,68c-18.6,18.6-41,27.9-68,27.9
|
||||
H95.9c-26.1,0-49.3-9.3-68-27.9C9.3,465.5,0,443.1,0,416.1V95.9c0-26.1,9.3-49.3,27.9-68S68.9,0,95.9,0h320.2
|
||||
c26.1,0,49.3,9.3,68,27.9C502.7,46.5,512,69.8,512,95.9z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<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 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<g id="XMLID_2_">
|
||||
<path id="XMLID_6_" style="fill:#555" d="M426.4,266.2V107.1c0-5.6-1.9-11.2-6.5-14.9c-4.7-4.7-9.3-6.5-14.9-6.5H245.8
|
||||
c-9.3,0-15.8,4.7-19.5,13c-3.7,9.3-1.9,16.8,4.7,23.3l48.4,48.4L100.5,347.2c-4.7,4.7-6.5,9.3-6.5,14.9c0,5.6,1.9,11.2,6.5,14.9
|
||||
l34.4,34.4c4.7,4.7,9.3,6.5,14.9,6.5c5.6,0,11.2-1.9,14.9-6.5l177.8-177.8l48.4,48.4c3.7,4.7,9.3,6.5,14.9,6.5
|
||||
c2.8,0,5.6-0.9,8.4-1.9C422.6,283,426.4,275.5,426.4,266.2z M512,95.9v320.2c0,26.1-9.3,49.3-27.9,68c-18.6,18.6-41,27.9-68,27.9
|
||||
H95.9c-26.1,0-49.3-9.3-68-27.9C9.3,465.5,0,443.1,0,416.1V95.9c0-26.1,9.3-49.3,27.9-68S68.9,0,95.9,0h320.2
|
||||
c26.1,0,49.3,9.3,68,27.9C502.7,46.5,512,69.8,512,95.9z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="127.99994mm"
|
||||
height="127.99994mm"
|
||||
viewBox="0 0 127.99994 127.99994"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="favicon.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
x="9.005331"
|
||||
y="9.1077509"
|
||||
width="41.574905"
|
||||
height="31.786575"
|
||||
id="rect50" />
|
||||
<rect
|
||||
x="9.005331"
|
||||
y="9.1077509"
|
||||
width="41.574905"
|
||||
height="31.786575"
|
||||
id="rect50-3" />
|
||||
<rect
|
||||
x="9.005331"
|
||||
y="9.1077509"
|
||||
width="41.574905"
|
||||
height="31.786575"
|
||||
id="rect881" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.63777852"
|
||||
inkscape:cx="-199.25441"
|
||||
inkscape:cy="278.8347"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer3"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1013"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-text-baseline="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Sfondo"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 41.072968,463.95393 C 32.173393,461.17119 23.658185,453.60304 18.84129,444.19483 l -2.844526,-5.55584 V 239.63894 40.638886 l 2.750075,-5.594452 c 5.566773,-11.324432 16.690323,-19.405201 29.202069,-21.214013 9.349383,-1.351633 379.372032,-1.252085 387.732272,0.104312 16.18683,2.626214 28.44754,14.588494 31.41711,30.652419 0.60729,3.285055 0.87171,77.898948 0.70445,198.769508 l -0.26779,193.51025 -4.04061,7.91328 c -4.71053,9.22529 -11.14119,15.13031 -20.14632,18.49955 l -5.68836,2.12829 -196.18423,-0.0676 C 83.039702,465.28588 44.479545,465.01909 41.072968,463.95393 Z"
|
||||
id="path167"
|
||||
transform="scale(0.26458333)" />
|
||||
<path
|
||||
id="rect109-1"
|
||||
style="display:inline;fill:#40517d;fill-opacity:1;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 9.999907,0 C 4.459907,0 0,4.459907 0,9.999907 V 118.00003 c 0,5.54 4.459907,9.99991 9.999907,9.99991 H 118.00003 c 5.54,0 9.99991,-4.45991 9.99991,-9.99991 V 9.999907 C 127.99994,4.459907 123.54003,0 118.00003,0 Z"
|
||||
sodipodi:nodetypes="sssssssss" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Border"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:none">
|
||||
<path
|
||||
id="rect109"
|
||||
style="stroke-width:0.264583"
|
||||
d="M 9.9999062,0 C 4.4599067,0 0,4.4599068 0,9.9999063 V 118.00003 c 0,5.54 4.4599067,9.99991 9.9999062,9.99991 H 118.00003 c 5.54,0 9.99991,-4.45991 9.99991,-9.99991 V 9.9999063 C 127.99994,4.4599068 123.54003,0 118.00003,0 Z M 12.831775,3.3920411 H 114.94802 c 5.54,0 8.94209,3.4020897 8.94209,8.9420899 V 114.45037 c 0,5.54 -2.87292,8.9421 -8.41292,8.9421 H 10.715109 c -5.5400007,0 -6.8254239,-3.4021 -6.8254239,-8.9421 V 12.334131 c 0,-5.5400002 3.4020898,-8.9420899 8.9420899,-8.9420899 z"
|
||||
sodipodi:nodetypes="ssssssssssssssssss" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Text">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:109.302px;line-height:1.25;font-family:'Proxima Nova Alt Condensed';-inkscape-font-specification:'Proxima Nova Alt Condensed, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#d5f8ff;fill-opacity:1;stroke-width:2.73302;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
x="26.724163"
|
||||
y="116.00568"
|
||||
id="text28"
|
||||
transform="scale(1.0474729,0.95467862)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26"
|
||||
x="26.724163"
|
||||
y="116.00568"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:109.302px;font-family:'Proxima Nova Alt Condensed';-inkscape-font-specification:'Proxima Nova Alt Condensed, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#d5f8ff;fill-opacity:1;stroke-width:2.73302;stroke-miterlimit:4;stroke-dasharray:none">Si</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:'Proxima Nova Alt';-inkscape-font-specification:'Proxima Nova Alt Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect50-3);display:inline;fill:#d5f8ff;fill-opacity:1;"
|
||||
transform="matrix(3.896444,0,0,3.9665333,-29.18386,-37.205039)"><tspan
|
||||
x="9.0058594"
|
||||
y="18.791141"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:10.5833px;font-family:'Proxima Nova Alt Extra Condensed';-inkscape-font-specification:'Proxima Nova Alt Extra Condensed, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#d5f8ff;fill-opacity:1">14</tspan></tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="fill:#008080;" viewBox="0 0 12 16" version="1.1" preserveAspectRatio="xMinYMin meet" aria-hidden="true"><path fill-rule="evenodd" d="M9 2c-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-1.632.086-2.954 1.333-3 3 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.047-1.69-1.342-2.913-3-3z"></path></svg>
|
After Width: | Height: | Size: 437 B |
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none" /><path style="fill:#ddd" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>
|
After Width: | Height: | Size: 453 B |
After Width: | Height: | Size: 112 KiB |
@ -0,0 +1,22 @@
|
||||
# theme.toml template for a Hugo theme
|
||||
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
|
||||
|
||||
name = "DoubleFourteen Original"
|
||||
license = "GPL-3.0-or-later"
|
||||
licenselink = "https://www.gnu.org/licenses/gpl-3.0.txt"
|
||||
description = "Theme for https://doublefourteen.io website"
|
||||
homepage = "https://doublefourteen.io"
|
||||
tags = []
|
||||
features = []
|
||||
min_version = "0.83.1"
|
||||
|
||||
[author]
|
||||
name = "Lorenzo Cogotti"
|
||||
homepage = "https://doublefourteen.io"
|
||||
|
||||
DefaultContentLanguage = "en"
|
||||
[languages]
|
||||
[languages.en]
|
||||
weight = 1
|
||||
[languages.it]
|
||||
weight = 2
|