Initial commit

This commit is contained in:
Set Hallstrom 2020-07-24 14:34:09 +02:00
commit ad49d77297
151 changed files with 24662 additions and 0 deletions

28
.gitignore vendored Normal file
View file

@ -0,0 +1,28 @@
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# mousepad shit #
*.*~
#### JEKYLL
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
_data/.~lock.*.csv
## vcode
.vscode
.vscode/*
## No cover artwork or Mp3
*.mp3
assets/albums/

93
404.html Normal file
View file

@ -0,0 +1,93 @@
---
layout: nil
title: Error 404 This is not a page
description: The page you are looking for has moved to the darknet.
image: /assets/img/Chain_1.png
permalink: /404.html
---
<!DOCTYPE html>
<!--
Based on _Story_ by html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Remixed and Jekyllified by Setto
-->
<html lang="en">
<head>
{% include seo.html %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="/assets/css/main20200710.css" />
<noscript><link rel="stylesheet" href="/assets/css/noscript20200710.css" /></noscript>
</head>
<body id="body">
<span id="top" style="display: none;"></span>
<!-- Wrapper -->
<div id="wrapper" class="divided">
<!-- Banner -->
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:100vh;">
<div class="content editable">
<h1 class="editable">{{ page.title }}</h1>
<p>{{ page.description }}</p>
<ul class="actions stacked">
<li><a href="/" class="button big wide">Take me back!</a></li>
</ul>
</div>
<div class="image">
<img src="{{ page.image }}" alt="unfound page" />
</div>
</section>
<!-- Footer -->
<footer id="footer" class="wrapper style1 align-center">
<div class="footflex">
<div>
<h4>{{ site.title }}</h4>
<p>{{ site.description }}
</p></div>
<div>
<ul>
<li><a href="{{ relBase }}/">{{ site.data.translations[page.lang].home }}</a></li>
{% for entry in site.data.navigation %}
<li><a href="{{ entry.url }}">{{ entry.name }}</a></li>
{% endfor %}
</ul>
</div>
<div><img src="{{ site.logo }}" style="max-width:300px" /></div>
</div>
<div class="inner">
<p>&copy;2020 Basspistol | <a href="/webcreds/">Credits</a> | <a href="/cookies/">Cookies & Privacy</a></p>
</div>
</footer>
</div>
{% include navigation.html %}
<!-- Scripts -->
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/jquery.scrollex.min.js"></script>
<script src="/assets/js/jquery.scrolly.min.js"></script>
<script src="/assets/js/browser.min.js"></script>
<script src="/assets/js/breakpoints.min.js"></script>
<script src="/assets/js/util.js"></script>
<script src="/assets/js/main.js"></script>
<script src="/assets/js/set.js"></script>
{% include cookie-consent.html %}
</body>
</html>

8
Gemfile Normal file
View file

@ -0,0 +1,8 @@
source 'https://rubygems.org'
gem 'jekyll', '4.0.0'
group :jekyll_plugins do
gem 'jekyll-sitemap', '1.4.0'
gem 'jekyll-last-modified-at','1.1.0'
end

75
Gemfile.lock Normal file
View file

@ -0,0 +1,75 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.6)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.13.1)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.4)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (>= 0.9.5, < 2)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-last-modified-at (1.1.0)
jekyll (>= 3.7, < 5.0)
posix-spawn (~> 0.3.9)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.3.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
posix-spawn (0.3.15)
public_suffix (4.0.5)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.21.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
unicode-display_width (1.7.0)
PLATFORMS
ruby
DEPENDENCIES
jekyll (= 4.0.0)
jekyll-last-modified-at (= 1.1.0)
jekyll-sitemap (= 1.4.0)
BUNDLED WITH
2.1.4

28
LICENSE Normal file
View file

@ -0,0 +1,28 @@
This is free and unencumbered software released into the public domain applied to
the code written by Sakrecoer. Code present in this repository written by other
people will be subject to their own licensing-model respectfully, with credit
served where credits are due.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute the
software written by Sakrecoer, either in source code form or as a compiled binary,
for any purpose, commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org>

2
README.md Normal file
View file

@ -0,0 +1,2 @@
# sakrecoer.com
Webiste for Sakrecoer

117
_albums/cyber-grany.md Normal file
View file

@ -0,0 +1,117 @@
---
layout: album
slug: cyber-grany
name: Cyber Grany
artists: 徒 Setto セット
bitrate: 320000
trackCount: 1
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
date: 2019-1-1
tracks:
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
slug: cyber-grany/1-grandma-got-the-ssh-keys
albumSlug: cyber-grany
trackSlug: 1-grandma-got-the-ssh-keys
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 320000
codecProfile: CBR
numberOfSamples: 8909568
duration: 202.03102040816327
native:
ID3v2.3:
- id: TIT2
value: Grandma got the SSH keys
- id: TPE1
value: 徒 Setto セット
- id: TRCK
value: 1/1
- id: TALB
value: Cyber Grany
- id: TPE2
value: To Setto Setto
- id: TCON
value: Acid Trap
- id: 'TXXX:CDDB DiscID'
value: 0200ca01
- id: 'TXXX:discid'
value: 0200ca01
- id: 'TXXX:MusicBrainz DiscID'
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
- id: 'TXXX:musicbrainz_discid'
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
- id: COMM
value:
language: XXX
description: WEBSITE
text: 'https://setto.basspistol.com'
- id: COMM
value:
language: XXX
description: Comment
text: Special track for Acid December 2019
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 1
of: 1
disk:
'no': null
of: null
title: Grandma got the SSH keys
artists:
- 徒 Setto セット
artist: 徒 Setto セット
album: Cyber Grany
albumartist: To Setto Setto
genre:
- Acid Trap
comment:
- 'https://setto.basspistol.com'
- Special track for Acid December 2019
year: 2019
transformed:
ID3v2.3:
TIT2: Grandma got the SSH keys
TPE1: 徒 Setto セット
TRCK: 1/1
TALB: Cyber Grany
TPE2: To Setto Setto
TCON: Acid Trap
'TXXX:CDDB DiscID': 0200ca01
'TXXX:discid': 0200ca01
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
WEBSITE: 'https://setto.basspistol.com'
Comment: Special track for Acid December 2019
TYER: '2019'
all:
TIT2: Grandma got the SSH keys
TPE1: 徒 Setto セット
TRCK: 1/1
TALB: Cyber Grany
TPE2: To Setto Setto
TCON: Acid Trap
'TXXX:CDDB DiscID': 0200ca01
'TXXX:discid': 0200ca01
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
WEBSITE: 'https://setto.basspistol.com'
Comment: Special track for Acid December 2019
TYER: '2019'
---

618
_albums/darkweb.md Normal file
View file

@ -0,0 +1,618 @@
---
layout: album
slug: darkweb
name: Darkweb
artists: 徒 Setto セット
bitrate: 128000
trackCount: 4
cover: /assets/albums/darkweb/1-swipe.jpeg
date: 2019-1-1
tracks:
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
audio: /assets/albums/darkweb/1-swipe.mp3
slug: darkweb/1-swipe
albumSlug: darkweb
trackSlug: 1-swipe
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
cover: /assets/albums/darkweb/1-swipe.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12388608
duration: 280.9208163265306
native:
ID3v2.3:
- id: TIT2
value: Swipe
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: Swipe
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
audio: /assets/albums/darkweb/2-darkweb.mp3
slug: darkweb/2-darkweb
albumSlug: darkweb
trackSlug: 2-darkweb
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
cover: /assets/albums/darkweb/2-darkweb.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12566016
duration: 284.94367346938776
native:
ID3v2.3:
- id: TIT2
value: Darkweb
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
- id: TCON
value: Cypher Rap
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Darkweb
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
all:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
slug: darkweb/3-swipe-instrumental-
albumSlug: darkweb
trackSlug: 3-swipe-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12436992
duration: 282.0179591836735
native:
ID3v2.3:
- id: TIT2
value: Swipe (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '3'
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings:
- message: Illegal ID3v2 tag length
common:
track:
'no': 3
of: null
disk:
'no': null
of: null
title: Swipe (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
slug: darkweb/4-darkweb-instrumental-
albumSlug: darkweb
trackSlug: 4-darkweb-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12526848
duration: 284.05551020408166
native:
ID3v2.3:
- id: TIT2
value: Darkweb (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: ''
- id: TALB
value: Darkweb
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cypher Rap
- id: TRCK
value: '4'
- id: COMM
value:
language: XXX
description: Comment
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 4
of: null
disk:
'no': null
of: null
title: Darkweb (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- ''
- Cover art and music by To&nbsp;Setto&nbsp;Setto
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
all:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
---

View file

@ -0,0 +1,89 @@
---
layout: album
slug: live-with-hardware
name: Live with hardware
artists: 徒 Setto セット
bitrate: 192000
trackCount: 1
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
date: 2020-4-20
tracks:
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
slug: live-with-hardware/1-ep-life-of-a-dudelini
albumSlug: live-with-hardware
trackSlug: 1-ep-life-of-a-dudelini
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
format:
tagTypes:
- ID3v2.4
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 48000
numberOfChannels: 2
bitrate: 192000
codecProfile: CBR
tool: LAME3.100
duration: 683.472
native:
ID3v2.4:
- id: TIT2
value: EP-Life of a Dudelini
- id: TPE1
value: 徒 Setto セット
- id: TALB
value: Live with hardware
- id: COMM
value: &ref_0
language: eng
description: ''
text: Live take
- id: TDRC
value: '2020-04-20'
- id: TRCK
value: '1'
- id: TCON
value: Cybersoul
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: EP-Life of a Dudelini
artists:
- 徒 Setto セット
artist: 徒 Setto セット
album: Live with hardware
comment:
- Live take
year: 2020
date: '2020-04-20'
genre:
- Cybersoul
transformed:
ID3v2.4:
TIT2: EP-Life of a Dudelini
TPE1: 徒 Setto セット
TALB: Live with hardware
COMM: *ref_0
TDRC: '2020-04-20'
TRCK: '1'
TCON: Cybersoul
all:
TIT2: EP-Life of a Dudelini
TPE1: 徒 Setto セット
TALB: Live with hardware
COMM: *ref_0
TDRC: '2020-04-20'
TRCK: '1'
TCON: Cybersoul
---

191
_albums/satoshi-mon-ami.md Normal file
View file

@ -0,0 +1,191 @@
---
layout: album
slug: satoshi-mon-ami
name: Satoshi mon ami
artists: 徒 Setto セット
bitrate: 128000
trackCount: 2
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
date: 2018-1-1
tracks:
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
albumSlug: satoshi-mon-ami
trackSlug: 1-k-as-tu-fait-de-nous-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 13433472
duration: 304.6138775510204
native:
ID3v2.3:
- id: TIT2
value: K'as-tu fait de nous?
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: K'as-tu fait de nous?
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
- path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
slug: satoshi-mon-ami/2-r-ve-de-toi
albumSlug: satoshi-mon-ami
trackSlug: 2-r-ve-de-toi
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 8195328
duration: 185.83510204081634
native:
ID3v2.3:
- id: TIT2
value: Rêve de toi
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_1
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Rêve de toi
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
---

9
_authors/_defaults.md Normal file
View file

@ -0,0 +1,9 @@
---
name:
position:
image:
url_staff:
email:
gpg:
blurb_markup:
---

9
_authors/setto.md Normal file
View file

@ -0,0 +1,9 @@
---
name: 徒 setto セット
position: 'Geek'
image: /siteicon.png
url_staff: 'https://setto.basspistol.com'
email: 'setto@basspistol.com'
gpg: 'https://keyserver.ubuntu.com/pks/lookup?search=setto%40basspistol.com&fingerprint=on&op=index'
blurb_markup: 'Set, Party, Gang'
---

118
_config.yml Normal file
View file

@ -0,0 +1,118 @@
url: "https://setto.basspistol.com" # the base hostname & protocol for your site
permalink: /:categories/:title/
exclude:
- changelog.md
- '*.*~'
- '*.xcf'
- '*.blend*'
- Gemfile
- Gemfile.lock
- README.md
- LICENCE
title : 徒 setto セット
description: 'Set, Party, Gang! &#35;Cybersoul.'
geo:
timezone: "Europe/Switzerland"
lat: '46.203918'
long: '6.133011'
region: 'CH-GE'
town: 'Geneva'
country: 'Switzerland'
postalcode: '1201'
banner: /images/setto-logo.svg
icon: /images/setto-logoicon.svg
logo: /images/setto-logo.svg
logo-footer: /images/setto-logo-dark.svg
mediaurl: https://media.basspistol.com/setto.basspistol.com
publisher:
name: To Setto Setto
domain: setto.basspistol.com
mail: setto@basspistol.com
social:
name: To Setto Setto
links:
- https://twitter.com/ToSettoSetto
- https://instagram.com/ToSettoSetto
categories:
- releases
- ramblings
collections:
albums:
output: false
permalink: /albums/:name/
tracks:
output: true
permalink: /albums/:path/
authors:
output: false
# defaults
sass:
sass_dir: _sass
defaults:
- scope:
path: ""
values:
lang: en
- scope:
path: ""
type: "tracks"
values:
layout: "track"
lang: en
seo:
type: "AudioObject"
- scope:
path: ""
type: "albums"
values:
layout: "album"
lang: en
seo:
type: "AudioObject"
- scope:
path: ""
type: "pages"
values:
layout: "default"
lang: en
_options:
image:
width: 1024
height: 720
resize_style: cover
uploads_dir: "/images/pages"
content:
width: 720
height: 720
resize_style: cover
uploads_dir: "/images/pages"
- scope:
path: ""
type: "posts"
values:
layout: "post"
lang: en
permalink: /:title/
_options:
image:
width: 1024
height: 720
resize_style: cover
uploads_dir: "/images/posts"
content:
width: 720
height: 720
resize_style: cover
uploads_dir: "/images/posts"
# ---------
# Translate
lang: en

1045
_data/albums.yml Normal file

File diff suppressed because it is too large Load diff

44
_data/links.yml Normal file
View file

@ -0,0 +1,44 @@
- title: Good Karma Records
url: http://www.goodkarma.ru
banner:
image: /assets/img/linkbanners/goodkarma%20copy.banner.png
- title: Villamagica Records
url: https://villamagica.bandcamp.com/
banner:
image: /assets/img/linkbanners/VILLAMAGICAREBOOT99XX%20copy.banner.png
- title: Finsta
url: https://www.finstafari.com
banner:
image: /assets/img/linkbanners/finsta.gif
- title: Camera X
url: http://www.camerax.tv/
banner:
image: /assets/img/linkbanners/graphstyle2011_logo_small6_1.png
- title: Alex Understands
url: https://www.alexunderstands.com/
banner:
image: /assets/img/linkbanners/alexunderstands.png
- title: Basspistol
url: https://basspistol.com
banner:
image: /assets/img/linkbanners/basspistol_logo3_1mini.png
- title: Alsenet
url: http://www.alsenet.com/
banner:
image: /assets/img/linkbanners/logo-alsenet.png
- title: Linux Audio
url: https://www.linuxaudio.org/
banner:
image: /assets/img/linkbanners/linuxaudio.png
- title: Ubuntu Studio
url: http://www.ubuntustudio.org/
banner:
image: /assets/img/linkbanners/us-logo.png
- title: Rasta Soft
url: https://rastasoft.org/
banner:
image: /assets/img/linkbanners/rastalion.jpg
- title: Dyne
url: https://www.dyne.org/
banner:
image: /assets/img/linkbanners/moebius-band.png

17
_data/navigation.yml Normal file
View file

@ -0,0 +1,17 @@
- icon: fa-disc
url: /discography/
name: Discog
external_site: false
- icon: fa-newspaper
url: /log/
name: Log
external_site: false
- icon: fa-finger-print
url: /about/
name: About
external_site: false
- icon: fa-link
url: /links/
name: Links
external_site: false

21
_data/social.yml Normal file
View file

@ -0,0 +1,21 @@
- name: Twitter
url: https://twitter.com/ToSettoSetto
icon: fa-twitter
share_link: 'https://twitter.com/share?url={{ site.url }}{{ page.url | xml_escape }}&text={{ page.description | xml_escape }}%20via%20&#64;ToSettoSetto&hashtags=cybersoul'
we_have_account: true
- name: Instagram
url: https://www.instagram.com/tosettosetto/
icon: fa-instagram
share_link:
we_have_account: true
- name: Telegram
url: https://t.me/basspistol
icon: fa-telegram
share_link: 'https://telegram.me/share/url?url={{ site.url }}{{ page.url }}&text={{ page.description }}%20via%20&#64;basspistol'
we_have_account: true
- name: Reddit
url: https://www.reddit.com/r/basspistol
icon: fa-reddit
share_link: 'https://reddit.com/submit/?url={{ site.url }}{{ page.url }}&title={{ page.title | xml_escape }}'
we_have_account: true

24
_data/stores.yml Normal file
View file

@ -0,0 +1,24 @@
- name: Bandcamp
url: https://shop.basspistol.com
icon: fa-bandcamp
download: true
- name: Spotify
url: https://open.spotify.com/artist/0gus2IdSkfrvFDBPqeiksM/
icon: fa-spotify
download: false
- name: Apple Music
url: https://itunes.apple.com/us/artist/%E5%BE%92-setto-%E3%82%BB%E3%83%83%E3%83%88/1447055514
icon: fa-apple
download: false
- name: Google Play
url: https://play.google.com/store/music/artist/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88?id=Ayi4avjpfyinbrepzebpsvpjc5a
icon: fa-google-play
download: false
- name: Deezer
url: https://www.deezer.com/fr/artist/56004012
icon: fa-creative-commons-sampling
download: false
- name: Napster
url: https://us.napster.com/artist/-setto-
icon: fa-napster
download: false

52
_data/translations.yml Normal file
View file

@ -0,0 +1,52 @@
en:
navigation:
-
read-post: 'Read post'
name: Name
lastname: Last name
email: E-mail
message: Message
privacy: 'I agree with the <a href=''/cookies/#privacythingy''>privacy policy.</a>'
newsletter: I want the newsletter!
required: Required field
contact-us: Get in touch
contact: Contact
write-msg: Write your message...
send: Send Message
news: News
top: Back to top
cookies: >-
<p>I only use cookies if you consent to it. They don't contain any identifiable info: they just let me know if you enjoyed this enough to come back.
<br />Click <a href="#" id="cookie-notice-decline">here</a> if you want this shit to go away without cookies.
<br />Read more about how me & basspistol <a href="/cookies/">use cookies</a>
</p>
cookie-agree: I'm in!
back: Take me back!
home: Home
post-nav: Read more posts
sv:
navigation:
read-post: 'Läs post'
name: Namn
lastname: Efternamn
email: e-post
message: Meddelande
privacy: 'Jag godkänner <a href=''/cookies/''>sekretesspolicyn</a>'
newsletter: Jag vill ha nyhetsutskick
required: Obligatoriskt fält
contact-us: Kontakta oss
contact: Kontakt
write-msg: Skriv ditt meddelande...
send: Skicka Meddelande
news: Nyheter
top: Tillbaka till toppen
cookies: >-
<p>Vi använder bara cookies om du går med på det. Hjälp oss förbättra våran marknadsföring!
<br />Klicka <a href="#" id="cookie-notice-decline">här</a> om du inte vill hjälpa till
<br />Läs mer om <a href="/cookies/">hur vi använder cookies</a>
</p>
cookie-agree: Jag hjälper gärna!
back: Ta mig tillbaka!
home: Hem
post-nav: Läs fler inlägg

33
_includes/analytics.js Normal file
View file

@ -0,0 +1,33 @@
{% if page.url == '/404/' %}
//* Matomo *//
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['setDocumentTitle', '404/URL = ' + encodeURIComponent(document.location.pathname+document.location.search) + '/From = ' + encodeURIComponent(document.referrer)]);
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://terminalnetwork.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '11']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
//* End Matomo *//
{% else %}
//* Matomo Tag Manager *//
var _mtm = _mtm || [];
_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://cdn.matomo.cloud/terminalnetwork.matomo.cloud/container_kJUGWiO2.js'; s.parentNode.insertBefore(g,s);
//* End Matomo Tag Manager *//
{% endif %}

33
_includes/author.html Normal file
View file

@ -0,0 +1,33 @@
{% assign author_id = page.author | prepend: "/authors/" | append: "/" %}
{% assign author = site.authors | where: "url", author_id | first %}
<header id="author">
<div class="bio">
{% if page.collection == 'posts' %}
<div alt="Picture of {{ author.name }}"
style="margin-right: 10px;background-image:url({{ author.image }});background-repeat: no-repeat;background-size:cover; border-radius:150px; width:150px; height:150px;">
</div>
<br />
<p style="font-style: normal;"><a href="mailto:{{ author.email }}"><strong>{{ author.name }}</strong></a></p>
<p style="font-style: normal;">{{ author.position }}{% if author.gpg != nil %} | <a target="_blank" rel="noopener" href="{{ author.gpg }}">GPG</a>{% endif %}</p>
<p style="font-size:14px;font-style: normal;">
Published the
{% include dates.html %}
</p>
{% endif %}
<h6>
Share this page:
</h6>
<ul class="icons">
<li><a target="_blank" rel="nofollow noopener" title="Share to facebook" alt="Share to facebook" href="https://touch.facebook.com/sharer.php?u={{ site.url }}{{ page.url | xml_escape }}&amp;quote={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}%20via%20{{ site.url }}" class="icon brands style1 fa-facebook-f"><span class="label">Facebook</span></a></li>
<li><a target="_blank" rel="nofollow noopener" title="Share to twitter" alt="Share to twitter" href="https://twitter.com/share?url={{ site.url }}{{ page.url | xml_escape }}&amp;text={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}%20&amp;hashtags=paxNion" class="icon brands style1 fa-twitter"><span class="label">Twitter</span></a></li>
<li><a target="_blank" rel="nofollow noopener" title="Share to telegram" alt="Share to telgram" href="https://telegram.me/share/url?url={{ site.url }}{{ page.url }}&amp;text={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}" class="icon brands style1 fa-telegram"><span class="label">Telegram</span></a></li>
<li><a target="_blank" rel="nofollow noopener" title="Share to reddit" alt="Share to reddit" href="https://reddit.com/submit/?url={{ site.url }}{{ page.url }}&amp;title={{ page.title | xml_escape }}%20by%20{{ site.title xml_escape }}" class="icon brands style1 fa-reddit"><span class="label">Reddit</span></a></li>
</ul>
</div>
</header>

42
_includes/contact.html Normal file
View file

@ -0,0 +1,42 @@
<!-- Contact -->
<section id="contact" class="wrapper style1 align-center">
<div class="inner medium">
<h2 class="editable">
</h2>
<form action="{{ site.baseurl }}/contact-success/" method="post">
<input type="hidden" name="_to" value="setto@basspistol.com" /><br />
<input type="text" name="_gotcha" style="display: none;" />
<div class="fields">
<div class="field half">
<label for="name">{{ site.data.translations[page.lang].name }}</label>
<input type="text" name="name" id="name" placeholder="{{ site.data.translations[page.lang].name }} {{ site.data.translations[page.lang].lastname }}" />
</div>
<div class="field half">
<label for="email">{{ site.data.translations[page.lang].email }}</label>
<input type="email" name="email" placeholder="{{ site.data.translations[page.lang].required }}" required />
</div>
<div class="field">
<label for="message">{{ site.data.translations[page.lang].message }}</label>
<textarea name="message" id="message" rows="6" placeholder="{{ site.data.translations[page.lang].write-msg }}"></textarea>
</div>
</div>
<div style="text-align: left;">
<input type="checkbox" name="consent" id="consent" required />
<label for="consent">{{ site.data.translations[page.lang].privacy }}
</label>
<br /><br />
<input type="checkbox" name="newsletter" id="newsletter" />
<label for="newsletter">{{ site.data.translations[page.lang].newsletter }}
</label>
</div>
<br />
<ul class="actions special">
<li><input type="submit" name="submit" id="submit" value="{{ site.data.translations[page.lang].send }}" /></li>
</ul>
</form>
</div>
</section>
<!-- END Contact -->

View file

@ -0,0 +1,65 @@
<div id="cookie-notice">
{{ site.data.translations[page.lang].cookies }}
<a class="button small yes" href="#" id="cookie-notice-accept">{{ site.data.translations[page.lang].cookie-agree }}</a>
</div>
<script>
function createCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
if (readCookie('cookie-notice-dismissed') == 'wantCookies') {
{% include analytics.js %}
} else {
document.getElementById('cookie-notice').style.display = 'flex';
{% include matomo.js %}
}
if (readCookie('cookie-notice-dismissed') == 'dontWantCookies') {
document.getElementById('cookie-notice').style.display = 'none';
{% include matomo.js %}
}
document.getElementById('cookie-notice-accept').addEventListener("click", function () {
createCookie('cookie-notice-dismissed', 'wantCookies', 31);
document.getElementById('cookie-notice').style.display = 'none';
_paq.push(['trackEvent', 'Consent', 'wantCookie']);
location.reload();
});
document.getElementById('cookie-notice-decline').addEventListener("click", function () {
createCookie('cookie-notice-dismissed', 'dontWantCookies', 31);
document.getElementById('cookie-notice').style.display = 'none';
_paq.push(['trackEvent', 'Consent', 'dontWantCookie']);
location.reload();
});
// document.getElementById('cookie-notice-gimme').addEventListener("click", function () {
// createCookie('cookie-notice-dismissed', 'wantCookies', 31);
// document.getElementById('cookie-notice').style.display = 'none';
// location.reload();
// });
</script>

21
_includes/dates.html Normal file
View file

@ -0,0 +1,21 @@
{% assign d = page.date | date: "%-d" %}
{% case d %}
{% when '1' or '21' or '31' %}{{ d }}:st
{% when '2' or '22' %}{{ d }}:nd
{% when '3' or '23' %}{{ d }}:rd
{% else %}{{ d }}:th
{% endcase %} of
{% assign m = page.date | date: "%-m" %}
{% case m %}
{% when '1' %}January
{% when '2' %}February
{% when '3' %}March
{% when '4' %}April
{% when '5' %}May
{% when '6' %}June
{% when '7' %}July
{% when '8' %}August
{% when '9' %}September {% when '10' %}October {% when '11' %}November {% when '12' %}December
{% endcase %}
{{ page.date | date: "%Y" }}

32
_includes/footer.html Normal file
View file

@ -0,0 +1,32 @@
<!-- Footer -->
<footer id="footer" class="wrapper style1 align-center">
<div class="footflex">
<div>
<h4>{{ site.title }}</h4>
<p>{{ site.description }}
<br /><a href="mailto:{{ site.publisher.email }}">{{ site.publisher.email }}</a></p>
</div>
<div>
<ul>
{% if page.url != '/' %}
<li><a href="{{ relBase }}/">{{ site.data.translations[page.lang].home }}</a></li>
{% endif %}
{% for entry in site.data.navigation %}
<li><a href="{{ entry.url }}">{{ entry.name }}</a></li>
{% endfor %}
</ul>
</div>
<div><img src="{{ relBase }}{{ site.logo-footer }}" style="max-width:300px" alt="{{ site.title }} Logo" /></div>
</div>
<div class="inner">
<ul class="icons">
{% for nw in site.data.social %}
<li><a target="_blank" alt="{{ site.title }} on {{ nw.name }}" title="{{ site.title }} on {{ nw.name }}" rel="noopener" href="{{ nw.url }}" class="icon brands style2 {{ nw.icon }}"><span class="label">{{ nw.name }}</span></a></li>
{% endfor %}
</ul>
<p>&copy;{{ site.time | date: '%Y' }} {{ site.publisher.name }} | <a href="{{ relBase }}/webcreds/">Credits</a> | <a href="{{ relBase }}/cookies/">Cookies & Privacy</a></p>
</div>
</footer>

17
_includes/matomo.html Normal file
View file

@ -0,0 +1,17 @@
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://terminalnetwork.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '11']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->

13
_includes/matomo.js Normal file
View file

@ -0,0 +1,13 @@
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://terminalnetwork.matomo.cloud/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '11']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src='//cdn.matomo.cloud/terminalnetwork.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s);
})();

28
_includes/navigation.html Normal file
View file

@ -0,0 +1,28 @@
<!-- Navigation -->
<div id="logo" class="logo">
<a href="/"><img width="100em" src="{{ site.icon }}" alt="{{ site.name }} Logo" /></a>
&nbsp;&nbsp;&nbsp;<a href="#navbar" onclick="blurBody()" alt="Navigation Menu" title="Navigation Menu"><span style="font-size: 34px;" class="icon solid fa-bars"></span></a>
</div>
<div id="navbar" style="display: block;" class="modalDialog">
<a href="#close" onclick="removeBlur()" alt="Close Menu" title="Close Menu"><div id="closearea"> </div></a>
<nav>
<a href="#close" title="Close" onclick="removeBlur()" class="close-button close" style="margin: 0 auto;">X</a>
<ul>
{% if page.url != '/' %}
<li><a href="{{ relBase }}/" class="button smaller">{{ site.data.translations[page.lang].home }}</a></li>
{% endif %}
{% for entry in site.data.navigation %}
{% if entry.external_site == false %}
<li><a href="{{ relBase }}{{ entry.url }}" class="button smaller">{{ entry.name }}</a></li>
{% else %}
<li><a href="{{ entry.url }}" target="_blank" rel="noopener" class="button smaller">{{ entry.name }}</a></li>
{% endif %}
{% endfor %}
</ul>
</nav>
</div>
<!-- End Navigation -->

12
_includes/relBase.html Normal file
View file

@ -0,0 +1,12 @@
{% assign relBase = '' %}
{% assign tempDepth = page.url | append: 'hackish-solution' | split: '/' | size | minus: 2 %}
{% for i in (1..tempDepth) %}
{% if forloop.last %}
{% assign relBase = relBase | append: ".." %}
{% else %}
{% assign relBase = relBase | append: "../" %}
{% endif %}
{% endfor %}
{% if relBase == '' %}
{% assign relBase = '.' %}
{% endif %}

10
_includes/scripts.html Normal file
View file

@ -0,0 +1,10 @@
<!-- Scripts -->
{% include relBase.html %}
<script src="{{ relBase }}/assets/js/jquery.min.js"></script>
<script src="{{ relBase }}/assets/js/jquery.scrollex.min.js"></script>
<script src="{{ relBase }}/assets/js/jquery.scrolly.min.js"></script>
<script src="{{ relBase }}/assets/js/browser.min.js"></script>
<script src="{{ relBase }}/assets/js/breakpoints.min.js"></script>
<script src="{{ relBase }}/assets/js/util.js"></script>
<script src="{{ relBase }}/assets/js/main.js"></script>
<script src="{{ relBase }}/assets/js/set.js"></script>

255
_includes/seo.html Normal file
View file

@ -0,0 +1,255 @@
<!--
..............................................
..............................................
...........'';,...............................
.........'',,;:o:,............................
.......',;;::::::;;;,.........................
.....,;:ooooooooooo;,,''''....................
....,;ooooooooooooooo;,'..'''''...............
...,:ooooooooooooooooo;''......'''............
..,;:ooooooooooooooooo',,.........,'.......... _______ _ _ __
..,,;:,ooooo;;:ooo;o,:;,',.........;,''....... \____ \____ _____ __________ |_| ______/ |_ ___ | |
..,'..,,;:o,''.,;;'''..'';,,,,,,''',;'''...... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
..,'......':ooo:.......'';,'''''''',;,,,...... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
..,,.......,:o:'.......,'oooo:::::;:,.',;,.... | | _/\__ \/ __// __/\___ \| |/ __/\ _\/ \| |
..','.................',,..'',,,;;;;;;,.,:.... | | \ / _ \__ \ \__ \ | |_> > |\__ \ | | ( <> ) |__
...,,'...............',;oooooooooo:;;:,;oo,... |____ /(___ /___ >___ >| __/|_/____ > |_| \___/|____/
....,,'.............,,;ooooooooo;,..'',oooo,.. \/ \/ \/ \/ |_| \/
.....',,'........',,;ooo::;;,'........'oooo;..
.......'',,'''',,;;;,,'...............';;;'... All you saw was sound!
...........'''''..............................
..............................................
..............................................
..............................................
..............................................
-->
{% if page.collection == 'tracks' %}
<!-- BEGIN seo.html -->
<title>Play {{ page.common.title }} by {{ page.common.artist }} | {{ site.title }}</title>
<meta name="title" content="Play &quot;{{ page.common.title| strip_html }}&quot; by {{ page.common.artist }}" />
<meta name="description" content="A track by {{ page.common.artist }} named &quot;{{ page.common.title | strip_html }}&quot; published on {{ site.title }}" />
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta name="robots" content="index" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
<meta name="geo.region" content="{{ site.geo.region }}" />
<meta name="geo.placename" content="{{ site.geo.town }}" />
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
<meta name="author" content="{{ site.title }}" />
<meta name="generator" content="Jekyll v4.0.0" />
<!-- Dublin Core basic info -->
<meta name="dcterms.Identifier" content="{{ site.url }}" />
<meta name="dcterms.Format" content="text/html" />
<meta name="dcterms.Relation" content="{{ site.title }}" />
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
<meta name="dcterms.Type" content="text/html" />
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
<meta name="dcterms.Rights" content="Copyright &copy;{{ site.time | date: '%Y' }} {{ site.title }}." />
<meta name="dcterms.Subject" content="A track by {{ page.common.artist }} named &quot;{{ page.common.title| strip_html }}&quot; published on {{ site.title }}" />
<meta name="dcterms.Title" content="Play &quot;{{ page.common.title| strip_html }}&quot; by {{ page.common.artist }}" />
<meta name="dcterms.Contributor" content="{{ site.title }}" />
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
<meta name="dcterms.Description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release &quot;{{ page.common.album | strip_html }}&quot; and support your remote artist!" />
<!-- Facebook -->
<meta property="og:title" content="{{ page.common.title }}" />
<meta property="og:locale" content="en" />
<meta property="og:description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release &quot;{{ page.common.album | strip_html }}&quot; and support your remote artist!" />
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:type" content="music:album:track" />
<meta property="og:audio" content="{{ site.mediaurl }}/{{ page.slug }}.mp3" />
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta property="og:image" content="{{ site.mediaurl }}/{{ page.slug }}.jpeg" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{{ page.common.title }} | {{ site.title }}" />
<meta name="twitter:description" content="Listen and to a track by {{ page.common.artist | strip_html }} from the release &quot;{{ page.common.album | strip_html }}&quot; and support your remote artist!" />
<meta name="twitter:image" content="{{ site.mediaurl }}/{{ page.slug }}.jpeg" />
{% elsif page.collection == 'albums' %}
<!-- BEGIN seo.html -->
{% capture namelist %}{% for art in page.artists %}{{ art }}{% unless forloop.last %}, {% endunless %}{% endfor %}{% endcapture %}
{% capture artist %}{{ namelist }}{% endcapture %}
<title>Play &quot;{{ page.name }}&quot; by {{ artist | uniq }} | {{ site.title }}</title>
<meta name="title" content="Play &quot;{{ page.name | strip_html }}&quot; by {{ artist | uniq }}" />
<meta name="description" content="A release by {{ artist | uniq }} named &quot;{{ page.name | strip_html }}&quot; published on {{ site.title }}" />
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta name="robots" content="index" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
<meta name="geo.region" content="{{ site.geo.region }}" />
<meta name="geo.placename" content="{{ site.geo.town }}" />
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
<meta name="author" content="{{ site.title }}" />
<meta name="generator" content="Jekyll v4.0.0" />
<!-- Dublin Core basic info -->
<meta name="dcterms.Identifier" content="{{ site.url }}" />
<meta name="dcterms.Format" content="text/html" />
<meta name="dcterms.Relation" content="{{ site.title }}" />
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
<meta name="dcterms.Type" content="text/html" />
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
<meta name="dcterms.Rights" content="Copyright &copy;{{ site.time | date: '%Y' }} {{ site.title }}." />
<meta name="dcterms.Subject" content="A release by {{ artist | uniq }} named &quot;{{ page.name | strip_html }}&quot; published on {{ site.title }}" />
<meta name="dcterms.Title" content="Play &quot;{{ page.name | strip_html }}&quot; by {{ artist | uniq }}" />
<meta name="dcterms.Contributor" content="{{ site.title }}" />
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
<meta name="dcterms.Description" content="Listen and to a release by {{ artist | uniq }} named &quot;{{ page.name | strip_html }}&quot; and support your remote artist!" />
<!-- Facebook -->
<meta property="og:title" content="{{ page.name }} by {{ artist | uniq }}" />
<meta property="og:locale" content="en" />
<meta property="og:description" content="Listen and to a release by {{ artist | uniq }} named &quot;{{ page.name | strip_html }}&quot; and support your remote artist!" />
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:type" content="music:album" />
{% for track in page.tracks %}<meta property="og:audio" content="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.mp3" />
{% endfor %}
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta property="og:image" content="{{ site.mediaurl }}/{{ page.tracks[0].slug }}.jpeg" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{{ page.name }} | {{ site.title }}" />
<meta name="twitter:description" content="Listen and to a release by {{ artist | uniq }} named &quot;{{ page.name | strip_html }}&quot; and support your remote artist!" />
<meta name="twitter:image" content="{{ site.mediaurl }}/{{ page.tracks[0].slug }}.jpeg" />
{% else %}
<!-- BEGIN seo.html -->
<title>{{ page.title }} | {{ site.title }}</title>
<meta name="title" content="{{ page.title }} | {{ site.title }}" />
<meta name="description" content="{{ page.description }}" />
<meta name="dc.date.modified" scheme="ISO8601" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta name="robots" content="index" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
<link rel="alternate" hreflang="x-default" href="{{ site.url }}{{ page.url }}" />
<meta name="geo.region" content="{{ site.geo.region }}" />
<meta name="geo.placename" content="{{ site.geo.town }}" />
<meta name="geo.position" content="{{ site.geo.lat }};{{ site.geo.long }}" />
<meta name="ICBM" content="{{ site.geo.lat }}, {{ site.geo.long }}" />
<meta name="author" content="{{ site.title }}" />
<meta name="generator" content="Jekyll v4.0.0" />
<!-- Dublin Core basic info -->
<meta name="dcterms.Identifier" content="{{ site.url }}" />
<meta name="dcterms.Format" content="text/html" />
<meta name="dcterms.Relation" content="{{ site.title }}" />
<meta name="dcterms.Publisher" content="{{ site.publisher.name }}" />
<meta name="dcterms.Type" content="text/html" />
<meta name="dcterms.Coverage" content="{{ site.url }}/" />
<meta name="dcterms.Rights" content="Copyright &copy;{{ site.time | date: '%Y' }} {{ site.title }}." />
<meta name="dcterms.Subject" content="{{ page.description }}" />
<meta name="dcterms.Title" content="{{ page.title }}" />
<meta name="dcterms.Contributor" content="{{ site.title }}" />
<meta name="dcterms.Date" content="{{ page.last_modified_at | date: '%Y-%m-%d' }}" />
<meta name="dcterms.Description" content="{{ page.description }}" />
<!-- Facebook -->
<meta property="og:title" content="{{ page.title }} | {{ site.title }}" />
<meta property="og:locale" content="en" />
<meta property="og:description" content="{{ page.description }}" />
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:type" content="webpage" />
<meta property="article:published_time" content="{{ page.last_modified_at | date_to_xmlschema }}" />
<meta property="og:image" content="{{ site.url }}{{ page.image }}" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{{ page.name }} | {{ site.title }}" />
<meta name="twitter:description" content="{{ page.description }}" />
<meta name="twitter:image" content="{{ site.url }}{{ page.image }}" />
{% endif %}
<script type='application/ld+json'>
{
"@context": "http://www.schema.org",
"@type": "Organization",
"name": "{{ site.title }}",
"url": "{{ site.url }}",
"sameAs": [
{% for social in site.social.links %}"{{ social }}"{% unless forloop.last %},{% endunless %}{% endfor %}
],
"logo": "{{ site.url }}{{ site.banner }}",
"image": "{{ site.url }}{{ site.banner }}",
"description": "{{ site.description | strip_html }}",
"address": {
"@type": "PostalAddress",
"addressLocality": "{{ site.geo.town }}",
"addressRegion": "{{ site.geo.region }}",
"postalCode": "{{ site.geo.postalcode }}",
"addressCountry": "{{ site.geo.country }}"
}
}
</script>
{% if page.url == '/radio/' or page.url == '/' %}
<script type='application/ld+json'>
{
"@context": "http://www.schema.org",
"@type": "RadioStation",
"name": "Basspistol Libre Radio",
"url": "{{ site.url }}/radio",
"logo": "{{ site.url }}{{ site.logo }}",
"image": "{{ site.url }}{{ site.logo }}",
"description": "Unexpected and Impossible Music. Live interventions and special guests. This is Libre music!",
"address": {
"@type": "PostalAddress",
"addressLocality": "{{ site.geo.town }}",
"addressRegion": "{{ site.geo.region }}",
"postalCode": "{{ site.geo.postalcode }}",
"addressCountry": "{{ site.geo.country }}"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "{{ site.geo.lat }}",
"longitude": "{{ site.geo.long }}"
}
}
</script>
<script type="text/javascript">
function getData() {
$.getJSON('https://radio.basspistol.com/status-json.xsl', function(json) {
output = "<p>" + "<span style='font-size:14px;'>Now Playing:</span> " + "<br/>";
output += "<strong>" + json.icestats.source[1].title + "</strong> by <strong>" + json.icestats.source[1].artist + "</strong></p>";
output += "<p style='font-size:14px;'>" + json.icestats.source[0].listeners + " peers are listening in MP3 <br />";
output += json.icestats.source[1].listeners + " peers are listening in OGG</p>";
document.getElementById("radioPlaceholder").innerHTML=output;
});
}
setInterval(getData, 7000);
$(function() {
getData();
});
</script>
{% endif %}
<!-- END seo.html -->

176
_includes/streamer.html Normal file
View file

@ -0,0 +1,176 @@
<section class="streambox" style="padding: 40px;">
{% if page.collection == 'posts' %}
{% if page.category == 'releases' %}
{% if page.check_this_if_cannot_be_bought == false %}
<h3 style="text-align: center;display: block;">Buy this release</h3>
<div class="streamer">
{% for shop in page.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;margin-top:40px;">&nbsp;</h3>
<div class="streamer">
{% for shop in page.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
{% endif %}
{% endfor %}
</div>
{% else %}
<h3 style="text-align: center;display: block;">This release can't be bought</h3>
<p>But you can find others here:</p>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;">&nbsp;</h3>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% endif %}
{% elsif page.collection == 'tracks' %}
{% for post in site.posts %}
{% if post.album == page.albumSlug %}
{% if post.check_this_if_cannot_be_bought == false %}
<h3 style="text-align: center;display: block;">Buy this track</h3>
<div class="streamer">
{% for shop in post.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;margin-top:40px;">&nbsp;</h3>
<div class="streamer">
{% for shop in post.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
{% endif %}
{% endfor %}
</div>
{% else %}
<h3 style="text-align: center;display: block;">This track can't be bought</h3>
<p>But you can find others here:</p>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;">&nbsp;</h3>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
{% break %}
{% endif %}
{% endif %}
{% endfor %}
{% elsif page.collection == 'albums' %}
{% for post in site.posts %}
{% if post.album == page.slug %}
{% if post.check_this_if_cannot_be_bought == false %}
<h3 style="text-align: center;display: block;">Buy this album</h3>
<div class="streamer">
{% for shop in post.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;margin-top:40px;">&nbsp;</h3>
<div class="streamer">
{% for shop in post.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" style="flex: 0 0 75px;margin:10px; font-size: 75px;" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="icon style2 brands {{ shop.icon }}"><span class="label">{{ shop.name }}</span></a>
{% endif %}
{% endfor %}
</div>
{% else %}
<h3 style="text-align: center;display: block;">This album can't be bought</h3>
<p>But you can find others here:</p>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;">&nbsp;</h3>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
{% break %}
{% endif %}
{% endif %}
{% endfor %}
{% else %}
<h3 style="text-align: center;display: block;">Support {{ site.name }}</h3>
<p>Pay for music here:</p>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download == true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
<h3 style="text-align: center;display: block;">&nbsp;</h3>
<div class="streamer">
{% for shop in site.data.stores %}
{% if shop.download != true %}
<a onclick="_paq.push(['trackEvent', 'StoreLink', '{{ shop.name | remove: " " }}']);" target="_blank" rel="noopener" href="{{ shop.url }}" alt="Stream from {{ shop.name }}" title="Stream from {{ shop.name }}" class="button icon brands {{ shop.icon }}">{{ shop.name }}</a>
{% endif %}
{% endfor %}
</div>
{% endif %}
</section>

300
_layouts/album.html Normal file
View file

@ -0,0 +1,300 @@
---
lang: en
---
<!DOCTYPE HTML>
<!--
Based on _Story_ by html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Remixed and Jekyllified by Setto
-->
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
<head>
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
{% include seo.html %}
{% include relBase.html %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
</head>
<body id="body">
<span id="top" style="display: none;"></span>
<!-- Wrapper -->
<div id="wrapper" class="divided">
<!-- Banner -->
<section
class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center"
style="min-height:100vh;">
<div class="content editable">
<h1 class="editable">{{ page.title }}</h1>
<p>by <strong>{{ page.artists }}</strong>
<br />{{ page.date | date: '%Y' }}
</p>
<ul class="actions stacked">
<li><a href="#moe" class="button small smooth-scroll">cheggit!</a></li>
</ul>
</div>
<div class="image">
<img src="{{ site.mediaurl }}/{{ page.slug }}/{{ page.tracks[0].trackSlug }}.jpeg" alt="{{ page.title }}" />
</div>
</section>
<!-- Content -->
<section class="wrapper style1 align-center">
<div class="inner" style="padding-top: 40px;">
<div class="index align-left">
<!-- Author -->
<section style="padding-top:40px;" id="moe">
{% include author.html %}
<!-- Content -->
<div class="content">
<!-- HERE BEGINS MADNESS -->
<!-- Content -->
<div class="content">
<div id="mainwrap">
<div id="nowPlay">
<p class="right" id="npTitle" style="font-weight: bold;"></p>
<p class="left" id="npAction">Paused...</p>
</div>
<div id="audiowrap">
<div id="audio0">
<audio id="audio1" preload="metadata" controls="controls">Your browser does not support HTML5
Audio!</audio>
</div>{% assign onetracker = page.tracks | size %}
{% if onetracker > 1 %}
<div id="tracks">
<a id="btnPrev"><span class="icon solid fa-fast-backward"></span></a>
<a id="btnNext"><span class="icon solid fa-fast-forward"></span></a>
</div>
{% endif %}
</div>
<div id="plwrap">
<ul id="plList">
{% for track in page.tracks %}
<li class="">
<div class="plItem">
<div class="plNum">{{ track.common.track.no }}.</div>
<div class="plTitle">{{ track.common.title }}</div>
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
<div id="noJSalbum">
{% for track in page.tracks %}
<div class="plItem">
<div class="plNum">{{ track.common.track.no }}.</div>
<div class="plTitle"><a href="{{ track.audio }}">{{ track.common.title }} </a></div>
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
</div>
{% endfor %}
</div>
</div>
<div class="content" style="font-family: monospace;font-size: 16px;margin-top:60px;">
{{ content }}
<p>{{ page.credits }}</p>
</div>
</div>
</section>
</div>
</div>
</section>
<!-- HERE ENDS MADNESS -->
{% include streamer.html %}
<section class="wrapper style1 align-center">
<div class="inner">
<h2>Track list</h2>
<p>Use thses pages to share one song in particular</p>
</div>
</section>
{% for track in page.tracks %}
<section
class="spotlight style4 orient-{% cycle 'left', 'right' %} content-align-{% cycle 'right', 'left' %} image-position-center onscroll-image-fade-in"
{% if forloop.index == 1 %}style="box-shadow: none;" {% endif %}>
<div class="content">
<h3>{{ track.common.title }}</h3>
<p>
{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}
<br /><strong>{{ track.common.genre }}</strong>
<br />{{ track.common.year }}</p>
<ul class="actions stacked">
<li><a href="{{ relBase }}/albums/{{ track.slug }}/" class="button">Track</a></li>
</ul>
</div>
<div class="image">
<img src="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.jpeg" alt="{{ track.common.title }}" />
</div>
</section>
{% endfor %}
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
<!-- Content -->
<div class="content">
<!-- post Naviation -->
<div style="text-align: center;">
<h3>More releases</h3>
</div>
<div class="post-nav">
<div>
{% if page.previous.url and page.lang == page.previous.lang %}
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
href="{{page.previous.url}}">&nbsp;{{page.previous.title}}</a></h4>
<p style="margin-right: 20px">{{ page.previous.description }}</p>
{% endif %}
</div>
<div class="post-nav-next">
{% if page.next.url and page.lang == page.next.lang %}
<h4><a href="{{page.next.url}}">&nbsp;{{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
class="fas fa-arrow-right"></i></a></h4>
<p style="margin-left: 20px">{{ page.next.description }}</p>
{% endif %}
</div>
</div>
<!-- End Post Navigation -->
</div>
</section>
</div>
</div>
</section>
{% include footer.html %}
</div>
{% include navigation.html %}
{% include scripts.html %}
<script type="text/javascript">
// html5media enables <video> and <audio> tags in all major browsers
// External File: http://api.html5media.info/1.1.8/html5media.min.js
// Add user agent as an attribute on the <html> tag...
// Inspiration: http://css-tricks.com/ie-10-specific-styles/
var b = document.documentElement;
b.setAttribute('data-useragent', navigator.userAgent);
b.setAttribute('data-platform', navigator.platform);
// HTML5 audio player + playlist controls...
// Inspiration: http://jonhall.info/how_to/create_a_playlist_for_html5_audio
// Mythium Archive: https://archive.org/details/mythium/
jQuery(function ($) {
var supportsAudio = !!document.createElement('audio').canPlayType;
if (supportsAudio) {
var index = 0,
playing = false,
mediaPath = '',
extension = '',
tracks = [{% for track in page.tracks %}{
"track": {{ track.common.track.no }},
"name": "{{ track.common.title }}",
"length": "{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}",
"file": "{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}"
}{% unless forloop.last %},{% endunless %}{% endfor %}],
trackCount = tracks.length,
npAction = $('#npAction'),
npTitle = $('#npTitle'),
audio = $('#audio1').bind('play', function () {
playing = true;
npAction.text('Playing...');
}).bind('pause', function () {
playing = false;
npAction.text('Paused...');
}).bind('ended', function () {
npAction.text('Paused...');
if ((index + 1) < trackCount) {
index++;
loadTrack(index);
audio.play();
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}).get(0),
btnPrev = $('#btnPrev').click(function () {
if ((index - 1) > -1) {
index--;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
btnNext = $('#btnNext').click(function () {
if ((index + 1) < trackCount) {
index++;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
li = $('#plList li').click(function () {
var id = parseInt($(this).index());
if (id !== index) {
playTrack(id);
}
}),
loadTrack = function (id) {
$('.plSel').removeClass('plSel');
$('#plList li:eq(' + id + ')').addClass('plSel');
npTitle.text(tracks[id].name);
index = id;
audio.src = mediaPath + tracks[id].file + extension;
$('audio').attr("data-matomo-title", tracks[id].name);
},
playTrack = function (id) {
loadTrack(id);
audio.play();
};
extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';
loadTrack(index);
}
});
</script>
{% include cookie-consent.html %}
</body>
</html>

3
_layouts/blog.html Normal file
View file

@ -0,0 +1,3 @@
---
layout: default
---

34
_layouts/default.html Normal file
View file

@ -0,0 +1,34 @@
---
---
<!DOCTYPE HTML>
<!--
Based on _Story_ by html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Remixed and Jekyllified by Setto
-->
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
<head>
{% include seo.html %}
{% include relBase.html %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
</head>
<body id="body">
<span id="top" style="display: none;"></span>
<!-- Wrapper -->
<div id="wrapper" class="divided">
{{ content }}
</div>
{% include navigation.html %}
{% include scripts.html %}
{% include cookie-consent.html %}
</body>
</html>

3
_layouts/nil.html Normal file
View file

@ -0,0 +1,3 @@
---
---
{{ content }}

43
_layouts/page.html Normal file
View file

@ -0,0 +1,43 @@
---
layout: default
---
{% include relBase.html %}
<!-- Banner -->
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:100vh;">
<div class="content">
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
</div>
<div class="image">
<img src="{{ page.image }}" alt="unfound page" />
</div>
</section>
<!-- Content -->
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
{% if page.url != '/cookies/' %}
{% if page.url != '/webcreds/' %}
{% include author.html %}
{% endif %}{% endif %}
<!-- Content -->
<div class="content">
{{ content }}
</div>
</section>
</div>
</div>
</section>
{% include footer.html %}

402
_layouts/post.html Normal file
View file

@ -0,0 +1,402 @@
---
---
{% if page.category == 'releases' %}
<!DOCTYPE HTML>
<!--
Based on _Story_ by html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Remixed and Jekyllified by Setto
-->
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
<head>
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
{% include seo.html %}
{% include relBase.html %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
</head>
<body id="body">
<span id="top" style="display: none;"></span>
<!-- Wrapper -->
<div id="wrapper" class="divided">
<!-- Banner -->
<section
class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center"
style="min-height:100vh;">
<div class="content editable">
<h1 class="editable">{{ page.title }}</h1>
<p>{{ page.description }}</p>
<ul class="actions stacked">
<li><a href="#moe" class="button small smooth-scroll">cheggit!</a></li>
</ul>
</div>
<div class="image">
<img src="{{ relBase }}{{ page.image }}" alt="{{ page.title }}" class="editable" />
</div>
</section>
<!-- Content -->
<section class="wrapper style1 align-center">
<div class="inner" style="padding-top: 40px;">
<div class="index align-left">
<!-- Author -->
<section style="padding-top:40px;" id="moe">
{% include author.html %}
<!-- Content -->
<div class="content">
<!-- HERE BEGINS MADNESS -->
{% for album in site.albums %}
{% if page.album == album.slug %}
<!-- Content -->
<div class="content">
<div id="mainwrap">
<div id="nowPlay">
<p class="right" id="npTitle" style="font-weight: bold;"></p>
<p class="left" id="npAction">Paused...</p>
</div>
<div id="audiowrap">
<div id="audio0">
<audio id="audio1" preload="metadata" controls="controls">Your browser does not support HTML5
Audio!</audio>
</div>{% assign onetracker = album.tracks | size %}
{% if onetracker > 1 %}
<div id="tracks">
<a id="btnPrev"><span class="icon solid fa-fast-backward"></span></a>
<a id="btnNext"><span class="icon solid fa-fast-forward"></span></a>
</div>
{% endif %}
</div>
<div id="plwrap">
<ul id="plList">
{% for track in album.tracks %}
<li class="">
<div class="plItem">
<div class="plNum">{{ track.common.track.no }}.</div>
<div class="plTitle">{{ track.common.title }}</div>
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{% assign seconds_without_zero = round_seconds | minus: leftover_seconds %}{% if seconds_without_zero < 10 %}0{% endif %}{{ seconds_without_zero }}</div>
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
<div id="noJSalbum">
{% for track in album.tracks %}
<div class="plItem">
<div class="plNum">{{ track.common.track.no }}.</div>
<div class="plTitle"><a href="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.mp3">{{ track.common.title }} </a></div>
<div class="plLength">{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}</div>
</div>
{% endfor %}
</div>
</div>
<div class="content editable" style="font-family: monospace;font-size: 16px;margin-top:60px;">
{{ content }}
</div>
</div>
</section>
</div>
</div>
</section>
{% include streamer.html %}
<!-- Tracks -->
{% for track in album.tracks %}
<section
class="spotlight style4 orient-{% cycle 'left', 'right' %} content-align-left image-position-center onscroll-image-fade-in"
{% if forloop.index == 1 %}style="box-shadow: none;" {% endif %}>
<div class="content">
<h3>{{ track.common.title }}</h3>
<p>
{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}
<br /><strong>{{ track.common.genre }}</strong>
<br />{{ track.common.year }}</p>
<ul class="actions stacked">
<li><a href="{{ relBase }}/albums/{{ track.slug }}/" class="button">Track</a></li>
</ul>
</div>
<div class="image">
<img src="{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}.jpeg" alt="{{ track.common.title }}" />
</div>
</section>
{% endfor %}
<!-- END Tracks -->
{% break %} {% endif %} {% endfor %}
<!-- HERE ENDS MADNESS -->
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
<!-- Content -->
<div class="content">
<!-- post Naviation -->
<div style="text-align: center;">
<h3>{{ site.data.translations[page.lang].post-nav}}</h3>
</div>
<div class="post-nav">
<div>
{% if page.previous.url and page.lang == page.previous.lang %}
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
href="{{page.previous.url}}">&nbsp;{{page.previous.title}}</a></h4>
<p style="margin-right: 20px">{{ page.previous.description }}</p>
{% endif %}
</div>
<div class="post-nav-next">
{% if page.next.url and page.lang == page.next.lang %}
<h4><a href="{{page.next.url}}">&nbsp;{{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
class="fas fa-arrow-right"></i></a></h4>
<p style="margin-left: 20px">{{ page.next.description }}</p>
{% endif %}
</div>
</div>
<!-- End Post Navigation -->
</div>
</section>
</div>
</div>
</section>
{% include footer.html %}
</div>
{% include navigation.html %}
{% include scripts.html %}
<script type="text/javascript">
// html5media enables <video> and <audio> tags in all major browsers
// External File: http://api.html5media.info/1.1.8/html5media.min.js
// Add user agent as an attribute on the <html> tag...
// Inspiration: http://css-tricks.com/ie-10-specific-styles/
var b = document.documentElement;
b.setAttribute('data-useragent', navigator.userAgent);
b.setAttribute('data-platform', navigator.platform);
// HTML5 audio player + playlist controls...
// Inspiration: http://jonhall.info/how_to/create_a_playlist_for_html5_audio
// Mythium Archive: https://archive.org/details/mythium/
jQuery(function ($) {
var supportsAudio = !!document.createElement('audio').canPlayType;
if (supportsAudio) {
var index = 0,
playing = false,
mediaPath = '',
extension = '',
tracks = [{% for album in site.albums %}{% if page.album == album.slug %}{% for track in album.tracks %}{
"track": {{ track.common.track.no }},
"name": "{{ track.common.title }}",
"length": "{% assign round_seconds = track.format.duration | round %}{% assign minutes = round_seconds | divided_by: 60 %}{% assign leftover_seconds = minutes | times: 60 %}{{ minutes }}:{{ round_seconds | minus: leftover_seconds }}",
"file": "{{ site.mediaurl }}/{{ track.albumSlug }}/{{ track.trackSlug }}"
}{% unless forloop.last %},{% endunless %}{% endfor %}{% break %} {% endif %}{% endfor %}],
trackCount = tracks.length,
npAction = $('#npAction'),
npTitle = $('#npTitle'),
audio = $('#audio1').bind('play', function () {
playing = true;
npAction.text('Playing...');
}).bind('pause', function () {
playing = false;
npAction.text('Paused...');
}).bind('ended', function () {
npAction.text('Paused...');
if ((index + 1) < trackCount) {
index++;
loadTrack(index);
audio.play();
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}).get(0),
btnPrev = $('#btnPrev').click(function () {
if ((index - 1) > -1) {
index--;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
btnNext = $('#btnNext').click(function () {
if ((index + 1) < trackCount) {
index++;
loadTrack(index);
if (playing) {
audio.play();
}
} else {
audio.pause();
index = 0;
loadTrack(index);
}
}),
li = $('#plList li').click(function () {
var id = parseInt($(this).index());
if (id !== index) {
playTrack(id);
}
}),
loadTrack = function (id) {
$('.plSel').removeClass('plSel');
$('#plList li:eq(' + id + ')').addClass('plSel');
npTitle.text(tracks[id].name);
index = id;
audio.src = mediaPath + tracks[id].file + extension;
$('audio').attr("data-matomo-title", tracks[id].name);
},
playTrack = function (id) {
loadTrack(id);
audio.play();
};
extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';
loadTrack(index);
}
});
</script>
{% include cookie-consent.html %}
</body>
</html>
{% else %}
<!DOCTYPE HTML>
<!--
Based on _Story_ by html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Remixed and Jekyllified by Setto
-->
<html lang="{% if page.lang != site.lang %}{{ page.lang }}{% else %}{{ site.lang }}{% endif %}">
<head>
<link type="application/atom+xml" rel="alternate" href="{{ site.url }}/feed.xml" title="{{ site.name }}" />
{% include seo.html %}
{% include relBase.html %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
<link rel="stylesheet" href="{{ relBase }}/assets/css/main20200710.css" />
<link rel="apple-touch-icon" href="{{ site.url }}/apple-touch-icon.png">
<link rel="icon" type="image/png" href="{{ site.url }}/touch-icon.png" sizes="192x192">
<link rel="shortcut icon" href="{{ site.url }}{{ site.icon }}" type="image/png" />
<noscript><link rel="stylesheet" href="{{ relBase }}/assets/css/noscript20200710.css" /></noscript>
</head>
<body id="body">
<span id="top" style="display: none;"></span>
<!-- Wrapper -->
<div id="wrapper" class="divided">
<!-- Banner -->
<section class="banner onload-image-fade-in onload-content-fade-right style2 fullscreen content-align-center image-position-center" style="min-height:85vh;">
<div class="content">
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
</div>
<div class="image">
<img src="{{ page.image }}" alt="unfound page" />
</div>
</section>
<!-- Content -->
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
{% if page.url != '/cookies/' %}
{% if page.url != '/webcreds/' %}
{% include author.html %}
{% endif %}{% endif %}
<!-- Content -->
<div class="content editable">
{{ content }}
{% if page.link != nil %}
<ul class="actions stacked">
<li><a href="{{ page.link }}?ref=SakrecoerSentMe" target="_blank" rel="noopener" class="button small">cheggit!</a></li>
</ul>
{% endif %}
</div>
</section>
</div>
</div>
</section>
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
<!-- Content -->
<div class="content">
<!-- post Naviation -->
<div style="text-align: center;">
<h3>{{ site.data.translations[page.lang].post-nav}}</h3>
</div>
<div class="post-nav">
<div>
{% if page.previous.url and page.lang == page.previous.lang %}
<h4><a href="{{page.previous.url}}" alt="Read {{page.previous.title}}" title="Read {{page.previous.title}}"><i class="fas fa-arrow-left"></i></a> <a
href="{{page.previous.url}}">&nbsp;{{page.previous.title}}</a></h4>
<p style="margin-right: 20px">{{ page.previous.description }}</p>
{% endif %}
</div>
<div class="post-nav-next">
{% if page.next.url and page.lang == page.next.lang %}
<h4><a href="{{page.next.url}}">&nbsp;{{page.next.title}}</a> <a href="{{page.next.url}}" alt="Read {{page.next.title}}" title="Read {{page.next.title}}"><i
class="fas fa-arrow-right"></i></a></h4>
<p style="margin-left: 20px">{{ page.next.description }}</p>
{% endif %}
</div>
</div>
<!-- End Post Navigation -->
</div>
</section>
</div>
</div>
</section>
{% include footer.html %}
</div>
{% include navigation.html %}
{% include scripts.html %}
{% include cookie-consent.html %}
</body>
</html>
{% endif %}

154
_layouts/track.html Normal file
View file

@ -0,0 +1,154 @@
---
layout: default
---
{% include relBase.html %}
<!-- Banner -->
<section
class="banner onload-image-fade-in onload-content-fade-right style3 fullscreen content-align-center image-position-center" style="background-image:url('{{ site.mediaurl }}/{{ page.slug }}.jpeg');background-size: cover; background-repeat: no-repeat;">
<div style="z-index:0;position:absolute; top:0; left:0; width:100%;min-height:100%;background-color: rgba(13, 13 ,13, 0.5);"></div>
<div class="content" style="z-index:1">
<h1 style="margin-top:80px">{{ page.common.title }}</h1>
<p><strong>{% for style in page.common.genre %}{{ style }}{% endfor %}</strong> by <strong>{{ page.common.artist }}</strong>
<br />{{ page.common.year }}
</p>
<p><strong><span id="tracktime"></span></strong><span id="{{ page.common.title | slugify | remove: '-' }}"></span></strong></p>
<script type="text/javascript">
var {{ page.common.title | slugify | remove: '-' }}timestamp = {{ page.format.duration | round }};
var {{ page.common.title | slugify | remove: '-' }}hours = Math.floor({{ page.common.title | slugify | remove: '-' }}timestamp / 60 / 60);
var {{ page.common.title | slugify | remove: '-' }}minutes = Math.floor({{ page.common.title | slugify | remove: '-' }}timestamp / 60) - ({{ page.common.title | slugify | remove: '-' }}hours * 60);
var {{ page.common.title | slugify | remove: '-' }}seconds = {{ page.common.title | slugify | remove: '-' }}timestamp % 60;
var {{ page.common.title | slugify | remove: '-' }}formatted = {{ page.common.title | slugify | remove: '-' }}hours.toString().padStart(2, '0') + ':' + {{ page.common.title | slugify | remove: '-' }}minutes.toString().padStart(2, '0') + ':' + {{ page.common.title | slugify | remove: '-' }}seconds.toString().padStart(2, '0');
var theSpan = document.getElementById("{{ page.common.title | slugify | remove: '-' }}");
theSpan.innerHTML = {{ page.common.title | slugify | remove: '-' }}formatted;
</script>
<ul class="actions stacked">
<li><button id="mu_pause" class="button icon solid fa-play">Play dat!</button></li>
</ul>
</div>
<div class="image">
<img src="{{ site.mediaurl }}/{{ page.slug }}.jpeg" alt="{{ page.title }} logo" id="coverart" />
</div>
</section>
<!-- Content -->
<section class="wrapper style1 align-center">
<div class="inner" style="padding-top:40px">
<div class="index align-left">
<section style="padding-top:40px">
{% include author.html %}
<!-- Content -->
{% if page.all.UNSYNCEDLYRICS != nil %}
<div class="content">
{% unless page.all.UNSYNCEDLYRICS == '' %}<h2>Lyrics</h2>{% endunless %}
<p style="font-family: monospace;font-size:16px;">
{{ page.all.UNSYNCEDLYRICS | newline_to_br }}
</p>
<p>credits:
{{ page.all.Comment }}
</p>
</div>
{% endif %}
</section>
</div>
</div>
</section>
{% include streamer.html %}
<!-- Page navigation -->
<section class="wrapper style1 align-center">
<div class="inner">
<div class="index align-left">
<!-- Author -->
<section>
<!-- Content -->
<div class="content">
<!-- post Naviation -->
<div style="text-align: center;">
<h3>Play more songs grom this release</h3>
</div>
<div class="post-nav">
<div>
{% if page.previous.url and page.lang == page.previous.lang %}
<h4><a href="{{ relBase }}/albums/{{ page.previousTrack.slug }}/" alt="Read {{ page.previousTrack.common.title }}" title="Read {{ page.previousTrack.common.title }}"><i class="fas fa-arrow-left"></i></a> <a
href="{{ relBase }}/albums/{{ page.previousTrack.slug }}/">&nbsp;{{ page.previousTrack.common.title }}</a>
</h4>
{% endif %}
</div>
<div class="post-nav-next">
{% if page.next.url and page.lang == page.next.lang %}
<h4><a href="{{ relBase }}/albums/{{ page.nextTrack.slug }}/">&nbsp;{{ page.nextTrack.common.title }}</a> <a
href="{{ relBase }}/albums/{{ page.nextTrack.slug }}/" alt="Read {{ page.nextTrack.common.title }}" title="Read {{ page.nextTrack.common.title }}"><i class="fas fa-arrow-right"></i></a></h4>
{% endif %}
</div>
</div>
<!-- End Post Navigation -->
</div>
</section>
</div>
</div>
</section>
<!-- Audio player-->
<audio autoplay preload="metadata" data-matomo-title="{{ page.common.title }}">
<source src="{{ site.mediaurl }}/{{ page.slug }}.mp3" type="audio/mpeg" ontimeupdate='updateTrackTime(this);' />
<h1>Your browser isn't ready for so much hotness. Use the download-link instead.</h1>.
</audio>
{% include footer.html %}
<script type="text/javascript">
function loadUrl(newLocation) {
window.location = newLocation;
return false;
}
var mu = document.getElementsByTagName("audio")[0];
var pauseButton = document.getElementById("mu_pause");
var spincover = document.getElementById("coverart");
mu.addEventListener('ended', function () {
// only functional if "loop" is removed
mu.pause();
mu.currentTime = 0;
loadUrl("{{ relBase }}/albums/{{ page.nextTrack.slug }}/"); return false;
});
mu.onplaying = function() {
pauseButton.innerHTML = "Pause";
pauseButton.classList.remove("fa-play");
pauseButton.classList.add("fa-pause");
spincover.classList.add("spinnit");
spincover.classList.remove("paused");
};
pauseButton.addEventListener("click", function () {
if (mu.paused) {
mu.play();
}
else {
mu.pause();
pauseButton.innerHTML = "Resume";
pauseButton.classList.add("fa-play");
pauseButton.classList.remove("fa-pause");
spincover.classList.add("paused");
}
});
mu.addEventListener('timeupdate', function () {
var timestamp = Math.floor(mu.currentTime);
var hours = Math.floor(timestamp / 60 / 60);
var minutes = Math.floor(timestamp / 60) - (hours * 60);
var seconds = timestamp % 60;
var formatted = hours.toString().padStart(2, '0') + ':' + minutes.toString().padStart(2, '0') + ':' + seconds.toString().padStart(2, '0');
var thecurrentSpan = document.getElementById("tracktime");
thecurrentSpan.innerHTML = formatted + ' / ';
});
</script>

View file

@ -0,0 +1,44 @@
---
title: Satoshi Mon Ami
author: setto
date: 2018-12-17 19:00:00
description: >-
The 2 tracks of laid back cloud rap are tales of daily digital life-struggles.
When day-to-day communication blurs the line between the virtual and real.
image: /images/posts/1-k-as-tu-fait-de-nous-.jpeg
category: releases
credits: ''
album: satoshi-mon-ami
stores:
- name: Bandcamp
url: 'https://shop.basspistol.com/album/satoshi-mon-ami'
icon: fa-bandcamp
download: true
- name: Spotify
url: 'https://open.spotify.com/album/116YJCcI5T9Iw9UBQCvJWF'
icon: fa-spotify
download: false
- name: Apple Music
url: >-
https://itunes.apple.com/us/album/satoshi-mon-ami-single/1447055511?uo=4&app=music&at=1001lry3&ct=dashboard
img:
icon: fa-apple
download: false
- name: Google Play
url: >-
https://play.google.com/store/music/album/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88_Satoshi_mon_ami?id=Bygwvidl75kflmclmchl6wc5uba
icon: fa-google-play
download: false
- name: Deezer
url: 'https://www.deezer.com/album/82118382'
icon: fa-creative-commons-sampling
download: false
- name: Napster
url: 'https://us.napster.com/artist/-setto-/album/satoshi-mon-ami'
icon: fa-napster
download: false
---
The 2 tracks of laid back cloud rap are tales of daily digital life-struggles. When day-to-day communication blurs the line between the virtual and real.
Being close to someone, without them knowing, anonymously and obsessively through a device. Decrypting interconnected sub-stories from every node in the graph and losing your mind on it.What's the latest story? FOMO to the max, The Fear Of Missing Out!

View file

@ -0,0 +1,42 @@
---
title: Darkweb
author: setto
date: 2019-02-07 19:07:00
description: >-
As dystopian as the present might seem on-line, there is always room for the
strange in the cypher...
image: /images/posts/2-darkweb-instrumental-.jpeg
category: releases
credits: 'Cover-art by <a href="https://ritarn.com/" target="_blank" rel="noopener">Mattias “Ritarn” Lindström</a>'
album: darkweb
stores:
- name: Bandcamp
url: 'https://shop.basspistol.com/album/darkweb'
icon: fa-bandcamp
download: true
- name: Spotify
url: 'https://open.spotify.com/album/0meSZO7BeGoHJc6BWnRvhN'
icon: fa-spotify
download: false
- name: Apple Music
url: 'https://itunes.apple.com/us/album/darkweb-single/1449847586'
icon: fa-apple
download: false
- name: Google Play
url: >-
https://play.google.com/store/music/album/%E5%BE%92_setto_%E3%82%BB%E3%83%83%E3%83%88_Darkweb?id=Bcrzzrtj7yfcyladynit7hg4age
icon: fa-google-play
download: false
- name: Deezer
url: 'https://www.deezer.com/fr/album/84669482'
icon: fa-creative-commons-sampling
download: false
- name: Napster
url: 'https://us.napster.com/artist/-setto-/album/darkweb-single'
icon: fa-napster
download: false
---
As dystopian as the present might seem on-line, there is always room for the strange in the cypher.
At the end of the tunnel through the flashy but controlled cyberspace we call the "Internet", there is a light of hope for the underground.

View file

@ -0,0 +1,20 @@
---
title: Granny is a cyborg now
author: setto
date: 2019-12-12 03:03:00
description: Jazzy Cybersoul with a hint of 303 baselines.
image: /images/posts/1-grandma-got-the-ssh-keys.jpeg
category: releases
layout: post
credits:
album: cyber-grany
stores:
- name:
url:
icon:
download: false
---
My grandmother, 93,&nbsp; added me on social media yesterday. So I called her. Long-chat good talk. TL;DR Damn what a woman\! She told me she had a roll-walker. I said "we're in the future now Grandma, you're a cyborg, half machine\!"
She laughed and acknowledge it was a marvellous invention\!

View file

@ -0,0 +1,27 @@
---
title: Live with hardware
author: setto
date: 2020-04-19 07:07:00
description: >-
There is a weird meta-core to anything social exchange on internet that I
can't get my finger on. Assumptions and projections that I think partially
stem from the lack in body language
image: /images/posts/1-ep-life-of-a-dudelini.jpeg
category: releases
layout: post
credits:
album: live-with-hardware
stores:
- name:
url:
icon:
download: false
---
There is a weird meta-core to anything social exchange on internet that I can't get my finger on. Assumptions and projections that I think partially stem from the lack in body language and the fact that we tend to be alone with our devices when we exchange. Even when we do so while our physical self is in a room full of friends. One of it's symptoms is the *endorsement paradox,* for lack of better words. At some point it was common to see Twitter bios with the line *"retweets \!= Endorsement".* It might have a better name, but that "endorsement paradox" is something I feel heavily used as a propaganda strategy. The thing is, there is always someone in anyone's acquaintances that will resonate to shared info and critique in unexpected ways. For example some unspeakable parties triggered everyone to a point where everyone got so obsessed that everyone kept talking about those parties non stop. Basically taking said unspeakable parties out of the void they were in, and promoting them into a mass that had to be accounted for. I'm not saying unspeakable party propaganda should be ignored, but I think some information is better dissected away from public spaces where there is no control over the dimension of time since the discussion can keep on forever, even when everyone involved at first have moved on. Like that which happened to 4chan.
It takes at least 2 to have a dialogue. And to achieve that plurality in cyberspace seems to require a lot of effort. Probably due to that aforementioned conflict between solitude and time-traversing company. "Company" as in being accompanied and time-traversing because what we record today can be used in the future, and in the future we might use recordings from the past.
Either way, there is always something that escapes me when I try to thinker about exchange of information that pertain to the power limbo between humans. Hence the idea of a meta core: like a Russian doll. After all information is vehicular to energy. Be it human or robot information exchange: an impulse that turns a turbine on, a poem that make your heart beat faster…
Audio extracted from the 360 video of [this jam](/hw-jam/) recorded a while back.

16
_posts/_defaults.md Normal file
View file

@ -0,0 +1,16 @@
---
title:
author:
date:
description:
image:
category:
layout:
credits: ''
album:
stores:
- name:
url:
icon:
download: false
---

481
_sass/_set.scss Normal file
View file

@ -0,0 +1,481 @@
/* Animation */
@-webkit-keyframes infiniteRotate {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes infinite-rotate {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@-moz-keyframes infinite-rotate {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@-webkit-keyframes backgroundBlink {
0%{background-position:73% 0%}
50%{background-position:28% 100%}
100%{background-position:73% 0%}
}
@-moz-keyframes backgroundBlink {
0%{background-position:73% 0%}
50%{background-position:28% 100%}
100%{background-position:73% 0%}
}
@keyframes backgroundBlink {
0%{background-position:73% 0%}
50%{background-position:28% 100%}
100%{background-position:73% 0%}
}
@-webkit-keyframes BackgroundFlow {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}
@-moz-keyframes BackgroundFlow {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}
}
@keyframes BackgroundFlow {
0%{background-position:0% 100%}
50%{background-position:100% 0%}
100%{background-position:0% 100%}
}
.slow-background {
-webkit-animation: BackgroundFlow 200s ease infinite;
-moz-animation: BackgroundFlow 200s ease infinite;
animation: BackgroundFlow 200s ease infinite;
}
.spinnit {
-webkit-animation: infiniteRotate 2s linear infinite; /* Safari */
-moz-animation: infiniteRotate 2s linear infinite;
animation: infiniteRotate 2s linear infinite;
}
.paused {
animation-play-state: paused;
}
/* NAVIGATION */
/* Style the navbar */
#navbar {
z-index: 100000;
}
#logo {
padding:10px;
z-index: 10000;
-webkit-transition: filter 400ms ease-in;
-moz-transition: filter 400ms ease-in;
transition: filter 400ms ease-in;
}
.logo:hover {
filter: blur(0px);
-webkit-transition: filter 400ms ease-in;
-moz-transition: filter 400ms ease-in;
transition: filter 400ms ease-in;
}
.logo {
filter: blur(20px);
text-decoration: none;
position: fixed;
top:20px;
left: 50%;
transform: translateX(-50%);
width: 300px;
height: 95px;
background-color: transparent;
background-repeat: no-repeat;
background-position: center center;
background-size: 95% 95%;
-webkit-transition: all 400ms ease-in;
-moz-transition: all 400ms ease-in;
transition: all 400ms ease-in;
box-shadow: none;
border-radius: 20px;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.sticky {
filter: blur(0px);
-webkit-transition: filter 400ms ease-in;
-moz-transition: filter 400ms ease-in;
transition: filter 400ms ease-in;
background-repeat: no-repeat;
background-position: center center;
background-size: 95% 95%;
-webkit-transition: all 400ms ease-in;
-moz-transition: all 400ms ease-in;
transition: all 400ms ease-in;
}
nav {
position: absolute;
width: 300px;
max-height: 90vh;
max-width: 90vw;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: _palette(bg);
border-radius: 20px;
padding: 20px;
display: flex;
flex-wrap: wrap;
ul {
margin: auto;
width: 100%
}
li {
list-style-type: none;
margin: 10px;
width: 80%;
padding: 0;
a {
width: 100%;
display: block;
margin: auto !important;
font-size: 14px
}
}
}
.blurredout {
filter: blur(5px);
-webkit-transition: filter 400ms ease-in;
-moz-transition: filter 400ms ease-in;
transition: filter 400ms ease-in;
}
#wrapper {
-webkit-transition: filter 400ms ease-in;
-moz-transition: filter 400ms ease-in;
transition: filter 400ms ease-in;
}
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: _palette(fg-light);
z-index: 11;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 80%;
max-width: 1100px;
max-height: 80vh;
display: flex;
align-items: center;
position: relative;
margin: 100px auto;
padding: 20px;
border-radius: 3px;
background: rgb(0, 31, 36);
background: -moz-linear-gradient(#000, rgb(0, 31, 36));
background: -webkit-linear-gradient(#000, rgb(0, 31, 36));
background: -o-linear-gradient(#000, rgb(0, 31, 36));
}
.close-button {
background-color: #FFFFFF;
color: _palette(accent-dark);
line-height: 48px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 48px;
height: 48px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 48px;
-moz-border-radius: 48px;
border-radius: 48px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
transition: all 400ms ease-in;
}
.close-button:hover {
background-color: _palette(accent);
color: #FFFFFF;
}
#closearea {
position: fixed;
width: 100%;
height: 100%;
}
//* POSTS *//
#post-text {
padding-top: 1rem;
}
//* FOOTER *//
#footer {
background-color: _palette(fg);
color: _palette(bg);
box-shadow: inset 0 10px 10px 0 rgba(0, 45, 107, 0.25) !important;
h1, h2, h3, h4, h5, p, a, strong {
color: _palette(bg);
}
a {
text-decoration: none;
}
.footflex {
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
div {
text-align: left;
flex: 0 1 300px;
max-width: 300px;
margin: 80px 80px 0 80px;
ul {
margin: 0;
padding: 0;
}
li {
list-style: none;
border-bottom: 1px solid _palette(bg);
line-height: 3em;
margin: 0;
padding: 0;
}
}
}
.style2 {
&:before {
box-shadow: inset 0 0 0 _size(border-width) _palette(bg);
}
}
.style2:hover {
&:before {
box-shadow: inset 0 0 0 _size(border-width) _palette(accent);
}
}
}
/* AUTHOR */
#author {
.bio {
padding-right: 20px;
p {
color: _palette(fg);
}
}
}
/* Content images */
div.content {
img {
width: 100%;
height: auto;
max-width: 500px;
}
}
/* Cloudcannon editor links */
.editor-link {
display: none;
margin-top: 0;
padding-top: 30px;
.btn {
border: 0;
border-radius: 2px;
width: 100%;
max-width: 500px;
box-sizing: border-box;
text-decoration: none;
padding: 10px 15px;
margin: 0;
font-size: 18px;
cursor: pointer;
background-color: #f7e064;
color: #333;
box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.2);
&:hover {
background-color: #f4d525;
color: #333;
}
}
}
.cms-editor-active .editor-link {
display: block;
}
/* cookies */
#cookie-notice {
padding: 15px;
display: none;
text-align: right;
position: fixed;
bottom: 0;
width: 100%;
background-color: _palette(accent-dark);
flex-wrap: wrap;
justify-content: space-evenly;
align-content: center;
align-items: center;
z-index: 1000;
p {
flex: 1 0 250px;
margin: 0;
font-size: 12px;
font-family: monospace;
}
@media only screen and (max-width: 569px) {
p {
text-align: center;
}
}
}
.yes {
flex: 0 0 250px;
-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
border-radius: 0.375em;
border: 0;
color: #000 !important;
background-position-x: 0%;
background-position-y: 0%;
background-repeat: repeat;
background-attachment: scroll;
background-image: linear-gradient(228deg, _palette(bg), _palette(fg));
background-origin: padding-box;
background-clip: border-box;
background-size: 400% 400%;
-webkit-animation: backgroundBlink 2s ease infinite;
-moz-animation: backgroundBlink 2s ease infinite;
animation: backgroundBlink 2s ease infinite;
margin: 20px;
}
.yes:hover {
color: #000 !important;
}
/* Background Video */
.fullscreen-bg {
position: absolute;
height: 100%;
width: 100%;
overflow: hidden;
z-index: -100;
background: #fff;
}
.fullscreen-bg__video {
background: #fff;
position: relative;
left: 50%;
top:50%;
transform: translate(-50%, -50%);
width: 100%;
}
/* Post Navigation */
.post-nav {
/* Insert your custom styling here. Example:
font-size: 14px;
margin-bottom: 1em;
*/
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.post-nav div {
/* flex-grow, flex-shrink, flex-basis */
flex: 0 1 300px;
}
.post-nav-next {
text-align: right;
}
/* Stream links */
.streambox {
display: block;
text-align: center;
.streamer {
list-style-type:none;
display:flex;
justify-content: center;
flex-wrap: wrap;
a {
flex: 1 0 150px;
margin:10px;
}
.button {
display: block;
flex: unset;
}
h3 {
flex: unset;
}
}
}

47
_sass/base/_page.scss Normal file
View file

@ -0,0 +1,47 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Basic */
// MSIE: Required for IEMobile.
@-ms-viewport {
width: device-width;
}
// MSIE: Prevents scrollbar from overlapping content.
body {
-ms-overflow-style: scrollbar;
}
// Ensures page width is always >=320px.
@include breakpoint('<=xsmall') {
html, body {
min-width: 320px;
}
}
// Set box model to border-box.
// Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
background: _palette(bg);
// Stops initial animations until page loads.
&.is-preload {
*, *:before, *:after {
@include vendor('animation', 'none !important');
@include vendor('transition', 'none !important');
}
}
}

76
_sass/base/_reset.scss Normal file
View file

@ -0,0 +1,76 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
// Reset.
// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style:none;
}
blockquote, q {
quotes: none;
&:before,
&:after {
content: '';
content: none;
}
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
-webkit-text-size-adjust: none;
}
mark {
background-color: transparent;
color: inherit;
}
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input, select, textarea {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
}

234
_sass/base/_typography.scss Normal file
View file

@ -0,0 +1,234 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Type */
html {
font-size: 18pt;
@include breakpoint('<=xlarge') {
font-size: 20pt;
}
@include breakpoint('<=large') {
font-size: 18pt;
}
@include breakpoint('<=small') {
font-size: 17pt;
}
@include breakpoint('<=xxsmall') {
font-size: 17pt;
}
}
body {
background-size: 20%;
background-repeat: repeat;
color: _palette(fg);
}
body, input, select, textarea {
font-family: _font(family-fixed);
font-size: 0.75rem;
font-weight: _font(weight);
line-height: 1.45;
}
a {
@include vendor('transition', 'color #{_duration(transition)} ease-in-out');
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
strong, b {
font-weight: _font(weight-bold);
}
em, i {
font-style: italic;
}
p {
margin: 0 0 _size(element-margin) 0;
&.major {
font-size: 1.25rem;
}
}
h1, h2, h3, h4, h5, h6 {
font-weight: _font(weight-bold);
line-height: 1.375;
letter-spacing: _font(kerning);
margin: 0 0 (_size(element-margin) * 0.5) 0;
font-family: _font(family);
a {
color: inherit;
text-decoration: none;
}
}
h1 {
font-size: 3.5rem;
line-height: 1.2;
}
h2 {
font-size: 2.25rem;
}
h3 {
font-size: 1.5rem;
}
h4 {
font-size: 1.1rem;
}
h5 {
font-size: 0.9rem;
}
h6 {
font-size: 0.7rem;
}
sub {
font-size: 0.8rem;
position: relative;
top: 0.5rem;
}
sup {
font-size: 0.8rem;
position: relative;
top: -0.5rem;
}
blockquote {
border-left: solid (_size(border-width) * 4);
font-style: italic;
margin: 0 0 _size(element-margin) 0;
padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin);
}
code {
border-radius: _size(border-radius);
font-family: _font(family-fixed);
font-size: 0.9em;
margin: 0 0.25rem;
padding: 0.25rem 0.325rem;
}
pre {
-webkit-overflow-scrolling: touch;
font-family: _font(family-fixed);
font-size: 0.9em;
margin: 0 0 _size(element-margin) 0;
code {
display: block;
line-height: 1.5;
padding: 0.75rem 1rem;
overflow-x: auto;
}
}
hr {
border: 0;
border-bottom: solid _size(border-width);
margin: (_size(element-margin) * 1.25) 0;
&.major {
margin: (_size(element-margin) * 1.75) 0;
}
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
@include breakpoint('<=small') {
p {
&.major {
font-size: 1.1rem;
}
}
h1 {
font-size: 2.5rem;
}
h2 {
font-size: 2rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1rem;
}
}
@mixin color-typography($p: null) {
@if $p != null {
background-color: _palette($p, bg);
color: _palette($p, fg);
}
input, select, textarea {
color: _palette($p, fg-bold);
}
a {
color: _palette($p, fg-bold);
&:hover {
color: _palette($p, accent);
}
}
strong, b {
color: _palette($p, fg-bold);
}
h1, h2, h3, h4, h5, h6 {
color: _palette($p, fg-bold);
}
blockquote {
border-left-color: _palette($p, border);
}
code {
background: _palette($p, border-bg);
border-color: _palette($p, border);
}
hr {
border-bottom-color: _palette($p, border);
}
}
@include color-typography;

View file

@ -0,0 +1,101 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Actions */
ul.actions {
@include vendor('display', 'flex');
cursor: default;
list-style: none;
margin-left: (_size(element-margin) * -0.5);
padding-left: 0;
li {
padding: 0 0 0 (_size(element-margin) * 0.5);
vertical-align: middle;
}
&.special {
@include vendor('justify-content', 'center');
width: 100%;
margin-left: 0;
li {
&:first-child {
padding-left: 0;
}
}
}
&.stacked {
@include vendor('flex-direction', 'column');
margin-left: 0;
li {
padding: (_size(element-margin) * 0.65) 0 0 0;
&:first-child {
padding-top: 0;
}
}
}
&.fit {
width: calc(100% + #{_size(element-margin) * 0.5});
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
width: 100%;
> * {
width: 100%;
}
}
&.stacked {
width: 100%;
}
}
@include breakpoint('<=xsmall') {
&:not(.fixed) {
@include vendor('flex-direction', 'column');
margin-left: 0;
width: 100% !important;
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
padding: (_size(element-margin) * 0.5) 0 0 0;
text-align: center;
width: 100%;
> * {
width: 100%;
}
&:first-child {
padding-top: 0;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
width: 100%;
&.icon {
&:before {
margin-left: -0.5rem;
}
}
}
}
}
}
}

View file

@ -0,0 +1,990 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Banner (transitions) */
.banner {
// Mixin.
@mixin transition-banner($event) {
$x: null;
$y: null;
@if ($event == 'load') {
$x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
$x: '&.is-inactive';
$y: _duration(on-scroll);
}
// Content.
&.on#{$event}-content-fade-up {
.content {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
}
#{$x} {
.content {
@include vendor('transform', 'translateY(1rem)');
opacity: 0;
}
}
}
&.on#{$event}-content-fade-down {
.content {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
}
#{$x} {
.content {
@include vendor('transform', 'translateY(-1rem)');
opacity: 0;
}
}
}
&.on#{$event}-content-fade-left {
.content {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
}
#{$x} {
.content {
@include vendor('transform', 'translateX(1rem)');
opacity: 0;
}
}
}
&.on#{$event}-content-fade-right {
.content {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
}
#{$x} {
.content {
@include vendor('transform', 'translateX(-1rem)');
opacity: 0;
}
}
}
&.on#{$event}-content-fade-in {
.content {
@include vendor('transition', 'opacity #{$y} ease-in-out');
}
#{$x} {
.content {
opacity: 0;
}
}
}
// Image.
&.on#{$event}-image-fade-up {
.image {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{$y * 0.75}');
}
}
#{$x} {
.image {
@include vendor('transform', 'translateY(1rem)');
opacity: 0;
img {
opacity: 0;
}
}
}
}
&.on#{$event}-image-fade-down {
.image {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{$y * 0.75}');
}
}
#{$x} {
.image {
@include vendor('transform', 'translateY(-1rem)');
opacity: 0;
img {
opacity: 0;
}
}
}
}
&.on#{$event}-image-fade-left {
.image {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{$y * 0.75}');
}
}
#{$x} {
.image {
@include vendor('transform', 'translateX(1rem)');
opacity: 0;
img {
opacity: 0;
}
}
}
}
&.on#{$event}-image-fade-right {
.image {
@include vendor('transition', (
'opacity #{$y} ease-in-out',
'transform #{$y} ease-in-out'
));
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{$y * 0.75}');
}
}
#{$x} {
.image {
@include vendor('transform', 'translateX(-1rem)');
opacity: 0;
img {
opacity: 0;
}
}
}
}
&.on#{$event}-image-fade-in {
.image {
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
}
}
#{$x} {
.image {
img {
opacity: 0;
}
}
}
}
}
// On Load.
@include transition-banner('load');
// On Scroll.
@include transition-banner('scroll');
}
/* Banner (style1) */
.banner.style1 {
@include vendor('align-items', 'stretch');
@include vendor('display', 'flex');
@include vendor('flex-direction', 'row');
@include vendor('justify-content', 'flex-end');
position: relative;
text-align: left;
overflow-x: hidden;
.content {
@include padding(_size(padding, default), _size(padding, default));
@include vendor('align-self', 'center');
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
width: 50%;
max-width: (_size(inner) * 0.75);
margin: 0 auto;
}
.image {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
border-radius: 0;
width: 50%;
img {
@include vendor('object-fit', 'cover');
@include vendor('object-position', 'center');
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
}
}
@include breakpoint('<=xlarge') {
.content {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
}
@include breakpoint('<=large') {
.content {
@include padding(_size(padding, large), _size(padding, large));
}
}
@include breakpoint('<=medium') {
.content {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
}
}
@include breakpoint('<=small') {
.content {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
}
}
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
text-align: center;
.content {
@include vendor('display', 'flex');
@include vendor('flex-direction', 'column');
@include vendor('justify-content', 'center');
width: 100%;
max-width: 100%;
}
.image {
width: 100%;
max-width: 100%;
height: 45vh;
}
}
// Modifiers.
// Size.
&.fullscreen {
min-height: 100vh;
@include orientation(portrait) {
.content {
min-height: 50vh;
}
.image {
height: 50vh;
}
}
}
// Orientation.
&.orient-left {
// ...
}
&.orient-right {
@include vendor('flex-direction', 'row-reverse');
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
}
}
// Content Alignment.
&.content-align-left {
// ...
}
&.content-align-center {
text-align: center;
}
&.content-align-right {
text-align: right;
@include orientation(portrait) {
text-align: center;
}
}
// Image Position.
&.image-position-left {
.image {
img {
@include vendor('object-position', 'left');
}
}
}
&.image-position-center {
.image {
img {
// ...
}
}
}
&.image-position-right {
.image {
img {
@include vendor('object-position', 'right');
}
}
}
}
/* Banner (style2) */
.banner.style2 {
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.75);
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('justify-content', 'center');
background-color: _palette(border-darken);
position: relative;
text-align: center;
overflow-x: hidden;
.content {
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.75);
position: relative;
width: (_size(inner) * 0.625);
max-width: 100%;
background-color: inherit;
border-radius: _size(border-radius-alt);
margin-bottom: _size(element-margin);
z-index: 1;
}
.image {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border-radius: 0;
img {
@include vendor('object-fit', 'cover');
@include vendor('object-position', 'center');
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
}
}
@include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.75);
.content {
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.75);
}
}
@include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large) * 0.75);
.content {
@include padding(_size(padding, large), _size(padding, large) * 0.75);
}
}
@include breakpoint('<=medium') {
@include padding(_size(padding, medium), _size(padding, medium));
.content {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium) * 0.75);
}
}
@include breakpoint('<=small') {
@include padding(_size(padding, small), _size(padding, small));
.content {
@include padding(_size(padding, small) * 1.25, _size(padding, small) * 0.75);
}
}
// Modifiers.
// Size.
&.fullscreen {
min-height: 80vh;
}
// Orientation.
&.orient-left {
@include vendor('justify-content', 'flex-start');
padding-left: 0;
.content {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
&.orient-center {
// ...
}
&.orient-right {
@include vendor('justify-content', 'flex-end');
padding-right: 0;
.content {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
// Content Alignment.
&.content-align-left {
text-align: left;
}
&.content-align-center {
// ...
}
&.content-align-right {
text-align: right;
}
// Image Position.
&.image-position-left {
.image {
img {
@include vendor('object-position', 'left');
}
}
}
&.image-position-center {
.image {
img {
// ...
}
}
}
&.image-position-right {
.image {
img {
@include vendor('object-position', 'right');
}
}
}
}
/* Banner (style3) */
.banner.style3 {
$image-size: 21rem;
$content-size: (_size(inner) * 0.875) - $image-size - (_size(element-margin) * 1.75);
@include padding(_size(padding, default), _size(padding, default));
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('flex-direction', 'row-reverse');
@include vendor('justify-content', 'center');
position: relative;
text-align: left;
overflow-x: hidden;
.content {
width: $content-size;
max-width: 100%;
}
.image {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
width: $image-size;
height: $image-size;
border-radius: 100%;
margin: 0 (_size(element-margin) * 1.75) _size(element-margin) 0;
img {
@include vendor('object-fit', 'cover');
@include vendor('object-position', 'center');
display: block;
width: 100%;
height: 100%;
border-radius: 100%;
}
}
@include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
@include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
@include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
width: ($image-size * 0.875);
height: ($image-size * 0.875);
}
}
@include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
.image {
width: ($image-size * 0.75);
height: ($image-size * 0.75);
margin: 0 (_size(element-margin) * 1) _size(element-margin) 0;
}
}
@include orientation(portrait) {
@include vendor('align-items', 'center');
@include vendor('flex-direction', 'column-reverse');
text-align: center;
.content {
width: 34rem;
max-width: 100%;
}
.image {
margin-right: 0;
}
}
// Modifiers.
// Size.
&.fullscreen {
min-height: 100vh;
}
// Orientation.
&.orient-left {
@include vendor('flex-direction', 'row');
.image {
margin: 0 0 _size(element-margin) (_size(element-margin) * 1.75);
}
@include breakpoint('<=small') {
.image {
margin: 0 0 _size(element-margin) (_size(element-margin) * 1);
}
}
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
.image {
margin-left: 0;
}
}
}
&.orient-right {
// ...
}
// Content Alignment.
&.content-align-left {
// ...
}
&.content-align-center {
text-align: center;
}
&.content-align-right {
text-align: right;
}
// Image Position.
&.image-position-left {
.image {
img {
@include vendor('object-position', 'left');
}
}
}
&.image-position-center {
// ...
}
&.image-position-right {
.image {
img {
@include vendor('object-position', 'right');
}
}
}
}
/* Banner (style4) */
.banner.style4 {
$image-width: 13rem;
$content-size: (_size(inner) * 0.75) - $image-width - (_size(element-margin) * 1.75);
@include padding(_size(padding, default), _size(padding, default));
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('flex-direction', 'row-reverse');
@include vendor('justify-content', 'center');
position: relative;
text-align: left;
overflow-x: hidden;
.content {
width: $content-size;
max-width: 100%;
}
.image {
@include phone($image-width);
margin-right: (_size(element-margin) * 1.75);
}
@include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
@include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
@include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
.image {
@include resize-phone($image-width, 0.875);
}
}
@include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
@include vendor('align-items', 'flex-start');
.image {
@include resize-phone($image-width, 0.625);
}
}
@include orientation(portrait) {
@include vendor('align-items', 'center');
@include vendor('flex-direction', 'column-reverse');
text-align: center;
.content {
width: 34rem;
max-width: 100%;
}
.image {
margin-right: 0;
margin-left: 0;
}
}
// Modifiers.
// Size.
&.fullscreen {
min-height: 100vh;
}
// Variant.
&.iphone {
// ...
}
&.android {
// ...
}
// Orientation.
&.orient-left {
@include vendor('flex-direction', 'row');
.image {
margin-right: 0;
margin-left: (_size(element-margin) * 1.75);
}
@include orientation(portrait) {
@include vendor('flex-direction', 'column-reverse');
.image {
margin-right: 0;
margin-left: 0;
}
}
}
&.orient-right {
// ...
}
// Content Alignment.
&.content-align-left {
// ...
}
&.content-align-center {
text-align: center;
}
&.content-align-right {
text-align: right;
}
// Image Position.
&.image-position-left {
.image {
img {
@include vendor('object-position', 'left');
}
}
}
&.image-position-center {
// ...
}
&.image-position-right {
.image {
img {
@include vendor('object-position', 'right');
}
}
}
}
/* Banner (style5) */
.banner.style5 {
@include padding(_size(padding, default), _size(padding, default));
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('justify-content', 'center');
background-color: inherit;
position: relative;
text-align: center;
overflow-x: hidden;
.content {
position: relative;
width: (_size(inner) * 0.625);
max-width: 100%;
margin-bottom: _size(element-margin);
z-index: 1;
}
.image {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border-radius: 0;
opacity: 0.1;
img {
@include vendor('object-fit', 'cover');
@include vendor('object-position', 'center');
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
}
}
@include breakpoint('<=xlarge') {
@include padding(_size(padding, xlarge), _size(padding, xlarge));
}
@include breakpoint('<=large') {
@include padding(_size(padding, large), _size(padding, large));
}
@include breakpoint('<=medium') {
@include padding(_size(padding, medium) * 1.25, _size(padding, medium));
}
@include breakpoint('<=small') {
@include padding(_size(padding, small) * 1.25, _size(padding, small));
}
// Modifiers.
// Size.
&.fullscreen {
min-height: 80vh;
}
// Content Alignment.
&.content-align-left {
text-align: left;
}
&.content-align-center {
// ...
}
&.content-align-right {
text-align: right;
}
// Image Position.
&.image-position-left {
.image {
img {
@include vendor('object-position', 'left');
}
}
}
&.image-position-center {
// ...
}
&.image-position-right {
.image {
img {
@include vendor('object-position', 'right');
}
}
}
}
// Mixin
@mixin color-banner($p: null) {
.banner {
.image {
background-color: transparentize(_palette($p, fg-bold), 0.875);
}
@if ($p != 'invert') {
&.invert {
.image {
background-color: transparentize(_palette(invert, fg-bold), 0.875);
}
}
}
}
.banner.style4 {
.image {
@include color-phone($p);
}
// Variant.
&.iphone {
.image {
@include color-phone-variant('iphone', $p);
}
}
&.android {
.image {
@include color-phone-variant('android', $p);
}
}
@if ($p != 'invert') {
&.invert {
.image {
@include color-phone(invert);
}
// Variant.
&.iphone {
.image {
@include color-phone-variant('iphone', invert);
}
}
&.android {
.image {
@include color-phone-variant('android', invert);
}
}
}
}
}
}
@include color-banner;

View file

@ -0,0 +1,34 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Box */
.box {
border-radius: _size(border-radius);
border: solid _size(border-width);
margin-bottom: _size(element-margin);
padding: 1.5rem;
> :last-child,
> :last-child > :last-child,
> :last-child > :last-child > :last-child {
margin-bottom: 0;
}
&.alt {
border: 0;
border-radius: 0;
padding: 0;
}
}
@mixin color-box($p: null) {
.box {
border-color: _palette($p, border);
}
}
@include color-box;

View file

@ -0,0 +1,121 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Button */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
@include vendor('appearance', 'none');
@include vendor('transition', (
'background-color #{_duration(transition)} ease-in-out',
'box-shadow #{_duration(transition)} ease-in-out',
'color #{_duration(transition)} ease-in-out'
));
border: 0;
cursor: pointer;
display: inline-block;
font-weight: _font(weight-bold);
font-family: monospace;
letter-spacing: _font(kerning-alt);
text-align: center;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap;
font-size: 0.75rem;
max-width: 20rem;
height: 3.75em;
line-height: 3.75em;
border-radius: 7px;
padding: 0 2.5em;
text-overflow: ellipsis;
overflow: hidden;
&.icon {
&:before {
margin-right: 0.5rem;
}
}
&.fit {
width: 100%;
}
&.small {
font-size: 0.7rem;
height: 3.325em;
line-height: 3.325em;
border-radius: 7px;
padding: 0 2em;
}
&.smaller {
font-size: 0.5rem;
height: 2.75em;
line-height: 2.75em;
border-radius: 7px;
padding: 0 2em;
}
&.large {
font-size: 0.8rem;
height: 4em;
line-height: 4em;
border-radius: 7px;
padding: 0 3em;
}
&.wide {
min-width: 14em;
}
&.disabled,
&:disabled {
@include vendor('pointer-events', 'none');
opacity: 0.25;
}
}
@mixin color-button($p: null) {
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
background-color: _palette(fg);
box-shadow: inset 0 0 5px _size(border-width) _palette($p, border-darken);
color: _palette($p, bg) !important;
&:hover {
box-shadow: inset 0 0 5px _size(border-width) _palette($p, border);
color: _palette($p, fg) !important;
background-color: _palette(border-darken);
}
&:active {
background-color: transparentize(_palette($p, accent), 0.8);
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
color: _palette($p, accent) !important;
}
&.primary {
background-color: _palette($p, fg-bold);
box-shadow: none;
color: _palette($p, bg) !important;
&:hover {
background-color: _palette($p, accent);
}
&:active {
background-color: darken(_palette($p, accent), 12);
}
}
}
}
@include color-button;

287
_sass/components/_form.scss Normal file
View file

@ -0,0 +1,287 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Form */
form {
margin: 0 0 _size(element-margin) 0;
> :last-child {
margin-bottom: 0;
}
> .fields {
$gutter: (_size(element-margin) * 0.75);
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
width: calc(100% + #{$gutter * 2});
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
> .field {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
padding: $gutter 0 0 $gutter;
width: calc(100% - #{$gutter * 1});
&.half {
width: calc(50% - #{$gutter * 0.5});
}
&.third {
width: calc(#{100% / 3} - #{$gutter * (1 / 3)});
}
&.quarter {
width: calc(25% - #{$gutter * 0.25});
}
}
}
@include breakpoint('<=xsmall') {
> .fields {
$gutter: (_size(element-margin) * 0.75);
width: calc(100% + #{$gutter * 2});
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
> .field {
padding: $gutter 0 0 $gutter;
width: calc(100% - #{$gutter * 1});
&.half {
width: calc(100% - #{$gutter * 1});
}
&.third {
width: calc(100% - #{$gutter * 1});
}
&.quarter {
width: calc(100% - #{$gutter * 1});
}
}
}
}
}
label {
display: block;
font-size: 0.9rem;
font-weight: _font(weight-bold);
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
select,
textarea {
@include vendor('appearance', 'none');
background-color: _palette(bg-transparent);
border-radius: _size(border-radius);
border: none;
border: solid _size(border-width);
color: inherit;
display: block;
outline: 0;
padding: 0 0.825rem;
text-decoration: none;
width: 100%;
box-shadow: inset 0 0 5px 1px _palette(border);
&:invalid {
box-shadow: none;
}
}
select {
background-size: 1.25rem;
background-repeat: no-repeat;
background-position: calc(100% - 1rem) center;
height: _size(element-height);
padding-right: _size(element-height);
text-overflow: ellipsis;
&:focus {
&::-ms-value {
background-color: transparent;
}
}
&::-ms-expand {
display: none;
}
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
select {
height: _size(element-height);
}
textarea {
padding: 0.75rem 1rem;
}
input[type="checkbox"],
input[type="radio"], {
@include vendor('appearance', 'none');
display: block;
float: left;
margin-right: -2rem;
opacity: 0;
width: 1rem;
z-index: -1;
& + label {
@include icon(false, solid);
@include vendor('user-select', 'none');
cursor: pointer;
display: inline-block;
font-size: 1rem;
font-weight: _font(weight);
padding-left: (_size(element-height) * 0.6) + 0.75rem;
padding-right: 0.75rem;
position: relative;
margin-bottom: 0;
&:before {
border-radius: _size(border-radius);
border: solid _size(border-width);
content: '';
display: inline-block;
font-size: 0.8rem;
height: (_size(element-height) * 0.6);
left: 0;
line-height: (_size(element-height) * 0.6);
position: absolute;
text-align: center;
top: 0;
width: (_size(element-height) * 0.6);
}
}
&:checked + label {
&:before {
content: '\f00c';
}
}
}
input[type="checkbox"] {
& + label {
&:before {
border-radius: _size(border-radius);
}
}
}
input[type="radio"] {
& + label {
&:before {
border-radius: 100%;
}
}
}
::-webkit-input-placeholder {
opacity: 1.0;
}
:-moz-placeholder {
opacity: 1.0;
}
::-moz-placeholder {
opacity: 1.0;
}
:-ms-input-placeholder {
opacity: 1.0;
}
@mixin color-form($p: null) {
label {
color: _palette($p, fg-bold);
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
select,
textarea {
border-color: _palette($p, border);
&:focus {
border-color: _palette($p, accent);
box-shadow: 0 0 0 _size(border-width) _palette($p, accent);
}
}
select {
background-image: svg-url("<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'><path d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='#{_palette(border)}' /></svg>");
option {
color: _palette(fg-bold);
background: _palette(bg);
}
}
input[type="checkbox"],
input[type="radio"], {
& + label {
color: _palette($p, fg);
&:before {
border-color: _palette($p, fg-light);
}
}
&:checked + label {
&:before {
background-color: _palette($p, fg-bold);
border-color: _palette($p, fg-bold);
color: _palette($p, bg);
}
}
&:focus + label {
&:before {
border-color: _palette($p, accent);
box-shadow: 0 0 0 _size(border-width) _palette($p, accent);
}
}
}
::-webkit-input-placeholder {
color: _palette($p, fg-light) !important;
}
:-moz-placeholder {
color: _palette($p, fg-light) !important;
}
::-moz-placeholder {
color: _palette($p, fg-light) !important;
}
:-ms-input-placeholder {
color: _palette($p, fg-light) !important;
}
}
@include color-form;

View file

@ -0,0 +1,616 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Gallery (transitions) */
.gallery {
// Mixin.
@mixin transition-gallery($event) {
$x: null;
$y: null;
@if ($event == 'load') {
$x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
$x: '&.is-inactive';
$y: _duration(on-scroll);
}
&.on#{$event}-fade-in {
article {
.image {
img {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{_misc(gallery-limit) * _duration(gallery-delay)}');
}
}
@for $i from 0 through _misc(gallery-limit) {
&:nth-child(#{$i + 1}) {
.image {
img {
@include vendor('transition-delay', '#{$i * _duration(gallery-delay)}');
}
}
}
}
}
#{$x} {
article {
.image {
img {
opacity: 0;
}
}
}
}
}
}
// On Load.
@include transition-gallery('load');
// On Scroll.
@include transition-gallery('scroll');
}
/* Gallery (style1) */
.gallery.style1 {
@include color-typography(invert);
@include color-button(invert);
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
@include vendor('justify-content', 'center');
position: relative;
width: 100%;
background-color: transparent;
> .forward, >.backward {
display: none;
}
> .inner {
@include vendor('align-items', 'inherit');
@include vendor('display', 'inherit');
@include vendor('flex-wrap', 'inherit');
@include vendor('justify-content', 'inherit');
}
article {
overflow: hidden;
position: relative;
width: 25%;
.image {
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
display: block;
width: 100%;
border-radius: 0;
img {
display: block;
width: 100%;
border-radius: 0;
}
}
.caption {
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('flex-direction', 'column');
@include vendor('justify-content', 'center');
@include vendor('pointer-events', 'none');
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: transparentize(_palette(invert, bg), 1 - _misc(overlay-opacity));
opacity: 0;
padding: 2rem;
z-index: 1;
font-size: 0.8rem;
a {
@include vendor('pointer-events', 'auto');
}
h2, h3, h4, h5, h6 {
font-size: 1.25rem;
margin-bottom: 0.25rem;
}
> * {
max-width: 100%;
margin-bottom: 1rem;
}
> :last-child {
margin-bottom: 0;
}
}
&:hover {
.caption {
opacity: 1;
}
}
}
@include breakpoint('<=large') {
article {
width: (100% / 3);
.caption {
padding: 1rem;
}
}
}
@include breakpoint('<=medium') {
article {
width: 50%;
.caption {
padding: 1rem;
}
}
}
@include breakpoint('<=xsmall') {
article {
width: 100%;
.caption {
padding: 1rem;
}
}
}
// Modifiers.
// size
&.small {
article {
width: 20%;
.caption {
padding: 1rem;
}
}
@include breakpoint('<=large') {
article {
width: 25%;
.caption {
padding: 1rem;
}
}
}
@include breakpoint('<=medium') {
article {
width: (100% / 3);
.caption {
padding: 1rem;
}
}
}
@include breakpoint('<=xsmall') {
article {
width: 50%;
.caption {
padding: 1rem;
}
}
}
}
&.medium {
// ...
}
&.big {
article {
width: (100% / 3);
.caption {
padding: 3rem;
}
}
@include breakpoint('<=large') {
article {
width: 50%;
.caption {
padding: 2rem;
}
}
}
@include breakpoint('<=medium') {
article {
width: 50%;
.caption {
padding: 2rem;
}
}
}
@include breakpoint('<=xsmall') {
article {
width: 100%;
.caption {
padding: 1rem;
}
}
}
}
}
/* Gallery (style2) */
.gallery.style2 {
@include color-typography(invert);
@include color-button(invert);
@include vendor('display', 'flex');
-webkit-overflow-scrolling: touch;
position: relative;
background-color: transparent;
> .forward, >.backward {
@include icon(false, solid);
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
position: absolute;
top: 0;
width: 5rem;
height: 100%;
cursor: pointer;
opacity: 0;
z-index: 2;
&:before {
display: block;
top: calc(50% - 1.5rem);
width: 4rem;
height: 3rem;
line-height: 1em;
font-size: 3rem;
position: absolute;
text-align: center;
}
}
&:hover {
> .forward, > .backward {
opacity: 1;
}
}
> .forward {
right: 0;
background-image: linear-gradient(to left, rgba(0,0,0,0.25) 15%, rgba(0,0,0,0));
&:before {
content: '\f105';
right: 0;
}
}
> .backward {
left: 0;
background-image: linear-gradient(to right, rgba(0,0,0,0.25) 15%, rgba(0,0,0,0));
&:before {
content: '\f104';
left: 0;
}
}
> .inner {
@include vendor('display', 'inherit');
overflow-x: auto;
overflow-y: hidden;
position: relative;
width: 100%;
}
article {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
display: block;
position: relative;
overflow: hidden;
width: 22.5rem;
max-width: 75vw;
.image {
display: block;
width: 100%;
border-radius: 0;
img {
display: block;
width: 100%;
border-radius: 0;
}
}
.caption {
@include vendor('align-items', 'center');
@include vendor('display', 'flex');
@include vendor('flex-direction', 'column');
@include vendor('justify-content', 'center');
@include vendor('pointer-events', 'none');
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: transparentize(_palette(invert, bg), 1 - _misc(lightbox-opacity));
opacity: 0;
padding: 3rem;
z-index: 1;
font-size: 1rem;
a {
@include vendor('pointer-events', 'auto');
}
h2, h3, h4, h5, h6 {
font-size: 1.25rem;
margin-bottom: 0.25rem;
}
> * {
max-width: 100%;
margin-bottom: 1rem;
}
> :last-child {
margin-bottom: 0;
}
}
&:hover {
.caption {
opacity: 1;
}
}
}
@include breakpoint('<=medium') {
article {
.caption {
padding: 2rem;
}
}
}
@include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
}
}
}
// Modifiers.
// size
&.small {
article {
width: 17.5rem;
.caption {
padding: 2rem;
}
}
@include breakpoint('<=medium') {
article {
.caption {
padding: 2rem;
}
}
}
@include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
}
}
}
}
&.medium {
// ...
}
&.big {
article {
width: 30rem;
.caption {
padding: 4rem;
}
}
@include breakpoint('<=medium') {
article {
.caption {
padding: 3rem;
}
}
}
@include breakpoint('<=small') {
article {
.caption {
padding: 2rem;
}
}
}
}
}
/* Gallery (lightbox) */
@include keyframes('gallery-modal-spinner') {
0% {
@include vendor('transform', 'rotate(0deg)');
}
100% {
@include vendor('transform', 'rotate(360deg)');
}
}
.gallery.lightbox {
.modal {
@include vendor('display', 'flex');
@include vendor('align-items', 'center');
@include vendor('justify-content', 'center');
@include vendor('pointer-events', 'none');
@include vendor('user-select', 'none');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox)} ease',
'visibility #{_duration(gallery-lightbox)}',
'z-index #{_duration(gallery-lightbox)}'
));
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
outline: 0;
background-color: transparentize(_palette(invert, bg), 1 - _misc(lightbox-opacity));
visibility: none;
opacity: 0;
z-index: 0;
&:before {
@include vendor('animation', 'gallery-modal-spinner 1s infinite linear');
@include vendor('transition', 'opacity #{_duration(gallery-lightbox) * 0.5} ease');
@include vendor('transition-delay', '#{_duration(gallery-lightbox)}');
content: '';
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 4rem;
height: 4rem;
margin: -2rem 0 0 -2rem;
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96px" height="96px" viewBox="0 0 96 96" zoomAndPan="disable"><style>circle {fill: transparent; stroke: #{_palette(invert, fg-bold)}; stroke-width: 1.5px; }</style><defs><clipPath id="corner"><polygon points="0,0 48,0 48,48 96,48 96,96 0,96" /></clipPath></defs><g clip-path="url(#corner)"><circle cx="48" cy="48" r="32"/></g></svg>');
background-position: center;
background-repeat: no-repeat;
background-size: 4rem;
opacity: 0;
}
&:after {
content: '';
display: block;
position: absolute;
top: 0.5rem;
right: 0.5rem;
width: 4rem;
height: 4rem;
cursor: pointer;
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="64px" viewBox="0 0 64 64" zoomAndPan="disable"><style>line {stroke: #{_palette(invert, fg-bold)};stroke-width: 1.5px;}</style><line x1="20" y1="20" x2="44" y2="44" /><line x1="20" y1="44" x2="44" y2="20" /></svg>');
background-position: center;
background-repeat: no-repeat;
background-size: 3rem;
}
.inner {
@include vendor('transform', 'translateY(0.75rem)');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox) * 0.5} ease',
'transform #{_duration(gallery-lightbox) * 0.5} ease'
));
opacity: 0;
img {
display: block;
max-width: 90vw;
max-height: 85vh;
box-shadow: 0 1rem 3rem 0 rgba(0, 0, 0, 0.35);
}
}
&.visible {
@include vendor('pointer-events', 'auto');
visibility: visible;
opacity: 1;
z-index: _misc(z-index-base) + 1;
&:before {
opacity: 1;
}
}
&.loaded {
.inner {
@include vendor('transform', 'translateY(0)');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox)} ease',
'transform #{_duration(gallery-lightbox)} ease'
));
opacity: 1;
}
&:before {
@include vendor('transition-delay', '0s');
opacity: 0;
}
}
}
@include breakpoint('<=medium') {
.modal {
.inner {
img {
max-width: 100vw;
}
}
}
}
}
// Mixin
@mixin color-gallery($p: null) {
.gallery {
article {
.image {
background-color: transparentize(_palette($p, fg-bold), 0.875);
}
}
}
}
@include color-gallery;

103
_sass/components/_icon.scss Normal file
View file

@ -0,0 +1,103 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Icon */
.icon {
@include icon;
border-bottom: none;
position: relative;
text-align: center;
> .label {
display: none;
}
&:before {
line-height: inherit;
}
&.solid {
&:before {
font-weight: 900;
}
}
&.brands {
&:before {
font-family: 'Font Awesome 5 Brands';
}
}
&.style2 {
&:before {
border-radius: 2.75em;
display: inline-block;
height: 2.75em;
line-height: 2.75em;
width: 2.75em;
}
}
&.major {
display: block;
margin: 0 0 (_size(element-margin) * 0.5) 0;
&:before {
font-size: 1.25rem;
}
}
}
a.icon {
&.style2 {
&:before {
@include vendor('transition', (
'background-color #{_duration(transition)} ease-in-out',
'box-shadow #{_duration(transition)} ease-in-out',
'color #{_duration(transition)} ease-in-out'
));
}
}
}
@mixin color-icon($p: null) {
.icon {
&.style2 {
&:before {
box-shadow: inset 0 0 0 _size(border-width) _palette($p, border);
}
}
}
.player {
&.style2 {
&:before {
box-shadow: inset 0 0 0 _size(border-width) _palette($p, fg-light);
}
}
}
a.icon {
&.style2 {
&:hover {
&:before {
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
color: _palette($p, accent);
}
}
&:active {
&:before {
background-color: transparentize(_palette($p, accent), 0.9);
box-shadow: inset 0 0 0 _size(border-width) _palette($p, accent);
color: _palette($p, accent);
}
}
}
}
}
@include color-icon;

View file

@ -0,0 +1,22 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
li {
display: inline-block;
padding: 0 0.75rem 0 0;
&:last-child {
padding-right: 0;
}
}
}

View file

@ -0,0 +1,61 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Image */
.image {
border: 0;
border-radius: _size(border-radius);
display: inline-block;
position: relative;
img {
display: block;
border-radius: _size(border-radius);
}
&.left,
&.right {
width: 40%;
max-width: 10rem;
img {
width: 100%;
}
}
&.left {
float: left;
margin: 0 1.5rem 1rem 0;
top: 0.25rem;
}
&.right {
float: right;
margin: 0 0 1rem 1.5rem;
top: 0.25rem;
}
&.fit {
display: block;
margin: 0 0 _size(element-margin) 0;
width: 100%;
img {
width: 100%;
}
}
&.main {
display: block;
margin: 0 0 (_size(element-margin) * 1.5) 0;
width: 100%;
img {
width: 100%;
}
}
}

View file

@ -0,0 +1,66 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Index */
.index {
> * {
@include padding(3rem, 0);
@include vendor('display', 'flex');
border-top: solid 1px;
> header {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
width: 15rem;
}
> .content {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
}
}
> :first-child {
border-top: 0;
}
@include breakpoint('<=medium') {
> * {
> header {
width: 11rem;
}
}
}
@include breakpoint('<=small') {
> * {
> header {
width: 10rem;
}
}
}
@include breakpoint('<=xsmall') {
> * {
@include vendor('flex-direction', 'column');
> header {
width: 100%;
}
}
}
}
@mixin color-index($p: null) {
.index {
> * {
border-top-color: _palette($p, border);
}
}
}
@include color-index;

View file

@ -0,0 +1,338 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Items (transitions) */
.items {
// Mixin.
@mixin transition-items($event) {
$x: null;
$y: null;
@if ($event == 'load') {
$x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
$x: '&.is-inactive';
$y: _duration(on-scroll);
}
&.on#{$event}-fade-in {
> * {
> .inner {
@include vendor('transition', 'opacity #{$y} ease-in-out');
@include vendor('transition-delay', '#{_misc(items-limit) * _duration(items-delay)}');
}
@for $i from 0 through _misc(items-limit) {
&:nth-child(#{$i + 1}) {
> .inner {
@include vendor('transition-delay', '#{$i * _duration(items-delay)}');
}
}
}
}
#{$x} {
> * {
> .inner {
opacity: 0;
}
}
}
}
}
// On Load.
@include transition-items('load');
// On Scroll.
@include transition-items('scroll');
}
/* Items (style1) */
@mixin items-style1-size($name, $size, $padding) {
&.#{$name} {
> * {
@include padding($padding, $padding);
width: #{100% / $size};
&:nth-child(-n + #{$size}) {
border-top-width: 0;
}
&:nth-child(#{$size}n + 1) {
border-left-width: 0;
}
}
}
}
@mixin items-style1-size-reset($name, $size) {
&.#{$name} {
> * {
&:nth-child(-n + #{$size}) {
border-top-width: _size(border-width);
}
&:nth-child(#{$size}n + 1) {
border-left-width: _size(border-width);
}
}
}
}
.items.style1 {
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
@include vendor('justify-content', 'center');
margin: (_size(element-margin) * 1.5) 0;
position: relative;
> * {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
border-style: solid;
border-left-width: _size(border-width);
border-top-width: _size(border-width);
}
// Modifiers.
// Size.
@include items-style1-size(big, 2, _size(gutter));
@include items-style1-size(medium, 3, _size(gutter) * 0.625);
@include items-style1-size(small, 4, _size(gutter) * 0.375);
@include breakpoint('<=large') {
@include items-style1-size-reset(small, 4);
@include items-style1-size(small, 3, _size(gutter) * 0.625);
}
@include breakpoint('<=medium') {
@include items-style1-size-reset(medium, 3);
@include items-style1-size(medium, 2, _size(gutter));
@include items-style1-size-reset(small, 3);
@include items-style1-size(small, 2, _size(gutter));
}
@include breakpoint('<=xsmall') {
@include items-style1-size-reset(big, 2);
@include items-style1-size(big, 1, _size(gutter) * 0.75);
@include items-style1-size-reset(medium, 2);
@include items-style1-size(medium, 1, _size(gutter) * 0.75);
@include items-style1-size-reset(small, 2);
@include items-style1-size(small, 1, _size(gutter) * 0.75);
&.big,
&.medium,
&.small {
> * {
padding-left: 0;
padding-right: 0;
}
> :first-child {
padding-top: 0;
}
> :last-child {
padding-bottom: 0;
> .inner {
> :last-child {
margin-bottom: 0;
}
}
}
}
}
}
/* Items (style2) */
@mixin items-style2-size($name, $size, $padding) {
&.#{$name} {
> * {
@include padding($padding, $padding);
width: #{100% / $size};
&:nth-child(-n + #{$size}) {
border-top-width: 0;
}
&:nth-child(#{$size}n + 1) {
border-left-width: 0;
}
}
}
}
@mixin items-style2-size-reset($name, $size) {
&.#{$name} {
> * {
&:nth-child(-n + #{$size}) {
border-top-width: _size(border-width);
}
&:nth-child(#{$size}n + 1) {
border-left-width: _size(border-width);
}
}
}
}
.items.style2 {
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
@include vendor('justify-content', 'center');
margin: (_size(element-margin) * 1.5) 0;
position: relative;
border: solid _size(border-width);
border-radius: _size(border-radius);
> * {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
border-style: solid;
border-left-width: _size(border-width);
border-top-width: _size(border-width);
}
// Modifiers.
// Size.
@include items-style2-size(big, 2, _size(gutter));
@include items-style2-size(medium, 3, _size(gutter) * 0.625);
@include items-style2-size(small, 4, _size(gutter) * 0.375);
@include breakpoint('<=large') {
@include items-style2-size-reset(small, 4);
@include items-style2-size(small, 3, _size(gutter) * 0.625);
}
@include breakpoint('<=medium') {
@include items-style2-size-reset(medium, 3);
@include items-style2-size(medium, 2, _size(gutter));
@include items-style2-size-reset(small, 3);
@include items-style2-size(small, 2, _size(gutter));
}
@include breakpoint('<=xsmall') {
@include items-style2-size-reset(big, 2);
@include items-style2-size(big, 1, _size(gutter) * 0.75);
@include items-style2-size-reset(medium, 2);
@include items-style2-size(medium, 1, _size(gutter) * 0.75);
@include items-style2-size-reset(small, 2);
@include items-style2-size(small, 1, _size(gutter) * 0.75);
}
}
/* Items (style3) */
@mixin items-style3-size($name, $size, $padding) {
&.#{$name} {
> * {
@include padding($padding, $padding);
width: #{100% / $size};
}
}
}
.items.style3 {
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
@include vendor('justify-content', 'center');
margin: (_size(element-margin) * 1.5) 0;
position: relative;
> * {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
}
// Modifiers.
// Size.
@include items-style3-size(big, 2, _size(gutter) * 0.5);
@include items-style3-size(medium, 3, _size(gutter) * 0.5 * 0.625);
@include items-style3-size(small, 4, _size(gutter) * 0.5 * 0.375);
@include breakpoint('<=large') {
@include items-style3-size(small, 3, _size(gutter) * 0.5 * 0.625);
}
@include breakpoint('<=medium') {
@include items-style3-size(medium, 2, _size(gutter) * 0.5);
@include items-style3-size(small, 2, _size(gutter) * 0.5);
}
@include breakpoint('<=small') {
margin: _size(element-margin) 0;
}
@include breakpoint('<=xsmall') {
@include items-style3-size(big, 1, _size(gutter) * 0.5 * 0.75);
@include items-style3-size(medium, 1, _size(gutter) * 0.5 * 0.75);
@include items-style3-size(small, 1, _size(gutter) * 0.5 * 0.75);
&.big,
&.medium,
&.small {
> * {
padding-left: 0;
padding-right: 0;
}
> :first-child {
padding-top: 0;
}
> :last-child {
padding-bottom: 0;
> .inner {
> :last-child {
margin-bottom: 0;
}
}
}
}
}
}
// Mixin
@mixin color-items($p: null) {
.items.style1 {
> * {
border-color: _palette($p, #fff);
}
}
.items.style2 {
border-color: _palette($p, border);
> * {
border-color: _palette($p, border);
}
}
}
@include color-items;

View file

@ -0,0 +1,86 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* List */
ol {
list-style: decimal;
margin: 0 0 _size(element-margin) 0;
padding-left: 1.25rem;
li {
padding-left: 0.25rem;
}
}
ul {
list-style: disc;
margin: 0 0 _size(element-margin) 0;
padding-left: 1rem;
li {
padding-left: 0.5rem;
}
&.alt {
list-style: none;
padding-left: 0;
li {
border-top: solid _size(border-width);
padding: 0.5rem 0;
&:first-child {
border-top: 0;
padding-top: 0;
}
}
}
}
dl {
margin: 0 0 _size(element-margin) 0;
dt {
display: block;
font-weight: _font(weight-bold);
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
dd {
margin-left: _size(element-margin);
}
&.style2 {
dt {
width: 25%;
float: left;
}
dd {
width: 70%;
float: left;
}
&:after {
content: '';
display: block;
clear: both;
}
}
}
@mixin color-list($p: null) {
ul {
&.alt {
li {
border-top-color: _palette($p, border);
}
}
}
}
@include color-list;

View file

@ -0,0 +1,35 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Row */
.row {
@include html-grid(2rem);
@include breakpoint('<=xlarge') {
@include html-grid(2rem, 'xlarge');
}
@include breakpoint('<=large') {
@include html-grid(2rem, 'large');
}
@include breakpoint('<=medium') {
@include html-grid(2rem, 'medium');
}
@include breakpoint('<=small') {
@include html-grid(2rem, 'small');
}
@include breakpoint('<=xsmall') {
@include html-grid(2rem, 'xsmall');
}
@include breakpoint('<=xxsmall') {
@include html-grid(2rem, 'xxsmall');
}
}

View file

@ -0,0 +1,49 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Section/Article */
section, article {
&.special {
text-align: center;
}
}
header {
p {
position: relative;
margin: (_size(element-margin) * -0.325) 0 (_size(element-margin) * 0.75) 0;
font-style: italic;
}
h1 + p {
font-size: 1.375rem;
}
h2 + p {
font-size: 1.25rem;
}
h3 + p {
font-size: 1.1rem;
}
h4 + p,
h5 + p,
h6 + p {
font-size: 0.9rem;
}
}
@mixin color-section($p: null) {
header {
p {
color: _palette($p, fg-light);
}
}
}
@include color-section;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Table */
.table-wrapper {
-webkit-overflow-scrolling: touch;
margin: 0 0 _size(element-margin) 0;
overflow-x: auto;
> table {
margin-bottom: 0;
}
}
table {
margin: 0 0 _size(element-margin) 0;
width: 100%;
tbody {
tr {
border: solid _size(border-width);
border-left: 0;
border-right: 0;
}
}
td {
padding: 0.75rem 0.75rem;
}
th {
font-size: 0.9rem;
font-weight: _font(weight-bold);
padding: 0 0.75rem 0.75rem 0.75rem;
text-align: left;
}
thead {
border-bottom: solid (_size(border-width) * 2);
}
tfoot {
border-top: solid (_size(border-width) * 2);
}
&.alt {
border-collapse: separate;
tbody {
tr {
td {
border: solid _size(border-width);
border-left-width: 0;
border-top-width: 0;
&:first-child {
border-left-width: _size(border-width);
}
}
&:first-child {
td {
border-top-width: _size(border-width);
}
}
}
}
thead {
border-bottom: 0;
}
tfoot {
border-top: 0;
}
}
&.fixed {
table-layout: fixed;
}
}
@mixin color-table($p: null) {
table {
tbody {
tr {
border-color: _palette($p, border);
&:nth-child(2n + 1) {
background-color: _palette($p, border-bg);
}
&.alt {
background-color: _palette($p, border-bg) !important;
}
}
}
th {
color: _palette($p, fg-bold);
}
thead {
border-bottom-color: _palette($p, border);
}
tfoot {
border-top-color: _palette($p, border);
}
&.alt {
tbody {
tr {
td {
border-color: _palette($p, border);
}
}
}
}
&.uniform {
tbody {
tr {
&:nth-child(2n + 1) {
background-color: transparent;
}
}
}
}
}
}
@include color-table;

View file

@ -0,0 +1,120 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Wrapper (style1) */
.wrapper.style1 {
> .inner {
@include padding(_size(padding, default), _size(padding, default) * 0.5);
margin: 0 auto;
max-width: 100%;
width: _size(inner);
&.medium {
width: _size(inner) * 0.75;
}
&.small {
width: _size(inner) * 0.5;
}
}
@include breakpoint('<=xlarge') {
> .inner {
@include padding(_size(padding, xlarge), _size(padding, xlarge) * 0.5);
}
}
@include breakpoint('<=large') {
> .inner {
@include padding(_size(padding, large), _size(padding, large));
}
}
@include breakpoint('<=medium') {
> .inner {
@include padding(_size(padding, medium) * 1.5, _size(padding, medium));
}
}
@include breakpoint('<=small') {
> .inner {
@include padding(_size(padding, small) * 1.5, _size(padding, small));
}
}
}
/* Wrapper (style2) */
.wrapper.style2 {
padding: _size(padding, default);
background-color: _palette(bg-alt);
> .inner {
@include padding(_size(padding, default) * 0.75, _size(padding, default) * 0.5);
background-color: _palette(bg);
border-radius: _size(border-radius-alt);
margin: 0 auto;
max-width: 100%;
position: relative;
width: _size(inner);
z-index: 1;
&.medium {
width: _size(inner) * 0.75;
}
&.small {
width: _size(inner) * 0.5;
}
}
@include breakpoint('<=xlarge') {
padding: _size(padding, xlarge);
> .inner {
@include padding(_size(padding, xlarge) * 0.75, _size(padding, xlarge) * 0.5);
}
}
@include breakpoint('<=large') {
padding: _size(padding, large);
> .inner {
@include padding(_size(padding, large) * 0.75, _size(padding, large) * 0.5);
}
}
@include breakpoint('<=medium') {
padding: _size(padding, medium) * 0.75;
> .inner {
@include padding(_size(padding, medium), _size(padding, medium) * 0.75);
}
}
@include breakpoint('<=small') {
padding: _size(padding, small) * 0.75;
> .inner {
@include padding(_size(padding, small), _size(padding, small) * 0.75);
}
}
}
#wrapper {
> .wrapper.style2 {
&.invert {
&:not(.color1):not(.color2):not(.color3):not(.color4):not(.color5):not(.color6):not(.color7) {
background-color: _palette(invert, bg-alt);
}
> .inner {
background-color: _palette(invert, bg);
}
}
}
}

View file

@ -0,0 +1,49 @@
///
/// Story by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Wrapper */
@mixin wrapper-color($n) {
> .color#{$n} {
background-color: _palette(color#{$n});
}
}
#wrapper {
background-color: inherit;
width: 100%;
overflow-x: hidden;
> .invert {
@include color(invert);
}
@include wrapper-color(1);
@include wrapper-color(2);
@include wrapper-color(3);
@include wrapper-color(4);
@include wrapper-color(5);
@include wrapper-color(6);
@include wrapper-color(7);
&.divided {
> * {
box-shadow: inset 0 10px 10px 0 _palette(border-alt);
&:first-child {
box-shadow: none !important;
}
}
> .invert {
box-shadow: inset 0 1px 0 0 _palette(invert, border-alt);
&:first-child {
box-shadow: none !important;
}
}
}
}

View file

@ -0,0 +1,223 @@
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
// Vars.
/// Breakpoints.
/// @var {list}
$breakpoints: () !global;
// Mixins.
/// Sets breakpoints.
/// @param {map} $x Breakpoints.
@mixin breakpoints($x: ()) {
$breakpoints: $x !global;
}
/// Wraps @content in a @media block targeting a specific orientation.
/// @param {string} $orientation Orientation.
@mixin orientation($orientation) {
@media screen and (orientation: #{$orientation}) {
@content;
}
}
/// Wraps @content in a @media block using a given query.
/// @param {string} $query Query.
@mixin breakpoint($query: null) {
$breakpoint: null;
$op: null;
$media: null;
// Determine operator, breakpoint.
// Greater than or equal.
@if (str-slice($query, 0, 2) == '>=') {
$op: 'gte';
$breakpoint: str-slice($query, 3);
}
// Less than or equal.
@elseif (str-slice($query, 0, 2) == '<=') {
$op: 'lte';
$breakpoint: str-slice($query, 3);
}
// Greater than.
@elseif (str-slice($query, 0, 1) == '>') {
$op: 'gt';
$breakpoint: str-slice($query, 2);
}
// Less than.
@elseif (str-slice($query, 0, 1) == '<') {
$op: 'lt';
$breakpoint: str-slice($query, 2);
}
// Not.
@elseif (str-slice($query, 0, 1) == '!') {
$op: 'not';
$breakpoint: str-slice($query, 2);
}
// Equal.
@else {
$op: 'eq';
$breakpoint: $query;
}
// Build media.
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
$a: map-get($breakpoints, $breakpoint);
// Range.
@if (type-of($a) == 'list') {
$x: nth($a, 1);
$y: nth($a, 2);
// Max only.
@if ($x == null) {
// Greater than or equal (>= 0 / anything)
@if ($op == 'gte') {
$media: 'screen';
}
// Less than or equal (<= y)
@elseif ($op == 'lte') {
$media: 'screen and (max-width: ' + $y + ')';
}
// Greater than (> y)
@elseif ($op == 'gt') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Less than (< 0 / invalid)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: -1px)';
}
// Not (> y)
@elseif ($op == 'not') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Equal (<= y)
@else {
$media: 'screen and (max-width: ' + $y + ')';
}
}
// Min only.
@else if ($y == null) {
// Greater than or equal (>= x)
@if ($op == 'gte') {
$media: 'screen and (min-width: ' + $x + ')';
}
// Less than or equal (<= inf / anything)
@elseif ($op == 'lte') {
$media: 'screen';
}
// Greater than (> inf / invalid)
@elseif ($op == 'gt') {
$media: 'screen and (max-width: -1px)';
}
// Less than (< x)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Not (< x)
@elseif ($op == 'not') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Equal (>= x)
@else {
$media: 'screen and (min-width: ' + $x + ')';
}
}
// Min and max.
@else {
// Greater than or equal (>= x)
@if ($op == 'gte') {
$media: 'screen and (min-width: ' + $x + ')';
}
// Less than or equal (<= y)
@elseif ($op == 'lte') {
$media: 'screen and (max-width: ' + $y + ')';
}
// Greater than (> y)
@elseif ($op == 'gt') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Less than (< x)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Not (< x and > y)
@elseif ($op == 'not') {
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
}
// Equal (>= x and <= y)
@else {
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
}
}
}
// String.
@else {
// Missing a media type? Prefix with "screen".
@if (str-slice($a, 0, 1) == '(') {
$media: 'screen and ' + $a;
}
// Otherwise, use as-is.
@else {
$media: $a;
}
}
}
// Output.
@media #{$media} {
@content;
}
}

8
_sass/libs/_fonts.scss Normal file
View file

@ -0,0 +1,8 @@
/* latin */
@font-face {
font-family: 'Astloch';
font-style: normal;
font-weight: 700;
src: local('Astloch Bold'), local('Astloch-Bold'), url(/assets/fonts/Astloch-Bold.ttf) format('truetype');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View file

@ -0,0 +1,90 @@
/// Removes a specific item from a list.
/// @author Hugo Giraudel
/// @param {list} $list List.
/// @param {integer} $index Index.
/// @return {list} Updated list.
@function remove-nth($list, $index) {
$result: null;
@if type-of($index) != number {
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
}
@else if $index == 0 {
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
}
@else if abs($index) > length($list) {
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
}
@else {
$result: ();
$index: if($index < 0, length($list) + $index + 1, $index);
@for $i from 1 through length($list) {
@if $i != $index {
$result: append($result, nth($list, $i));
}
}
}
@return $result;
}
/// Gets a value from a map.
/// @author Hugo Giraudel
/// @param {map} $map Map.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function val($map, $keys...) {
@if nth($keys, 1) == null {
$keys: remove-nth($keys, 1);
}
@each $key in $keys {
$map: map-get($map, $key);
}
@return $map;
}
/// Gets a duration value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _duration($keys...) {
@return val($duration, $keys...);
}
/// Gets a font value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _font($keys...) {
@return val($font, $keys...);
}
/// Gets a misc value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _misc($keys...) {
@return val($misc, $keys...);
}
/// Gets a palette value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _palette($keys...) {
@return val($palette, $keys...);
}
/// Gets a size value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _size($keys...) {
@return val($size, $keys...);
}

149
_sass/libs/_html-grid.scss Normal file
View file

@ -0,0 +1,149 @@
// html-grid.scss v1.0 | @ajlkn | MIT licensed */
// Mixins.
/// Initializes the current element as an HTML grid.
/// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
/// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
@mixin html-grid($gutters: 1.5em, $suffix: '') {
// Initialize.
$cols: 12;
$multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
$unit: 100% / $cols;
// Suffixes.
$suffixes: null;
@if (type-of($suffix) == 'list') {
$suffixes: $suffix;
}
@else {
$suffixes: ($suffix);
}
// Gutters.
$guttersCols: null;
$guttersRows: null;
@if (type-of($gutters) == 'list') {
$guttersCols: nth($gutters, 1);
$guttersRows: nth($gutters, 2);
}
@else {
$guttersCols: $gutters;
$guttersRows: 0;
}
// Row.
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
align-items: stretch;
// Columns.
> * {
box-sizing: border-box;
}
// Gutters.
&.gtr-uniform {
> * {
> :last-child {
margin-bottom: 0;
}
}
}
// Alignment.
&.aln-left {
justify-content: flex-start;
}
&.aln-center {
justify-content: center;
}
&.aln-right {
justify-content: flex-end;
}
&.aln-top {
align-items: flex-start;
}
&.aln-middle {
align-items: center;
}
&.aln-bottom {
align-items: flex-end;
}
// Step through suffixes.
@each $suffix in $suffixes {
// Suffix.
@if ($suffix != '') {
$suffix: '-' + $suffix;
}
@else {
$suffix: '';
}
// Row.
// Important.
> .imp#{$suffix} {
order: -1;
}
// Columns, offsets.
@for $i from 1 through $cols {
> .col-#{$i}#{$suffix} {
width: $unit * $i;
}
> .off-#{$i}#{$suffix} {
margin-left: $unit * $i;
}
}
// Step through multipliers.
@each $multiplier in $multipliers {
// Gutters.
$class: null;
@if ($multiplier != 1) {
$class: '.gtr-' + ($multiplier * 100);
}
&#{$class} {
margin-top: ($guttersRows * $multiplier * -1);
margin-left: ($guttersCols * $multiplier * -1);
> * {
padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
}
// Uniform.
&.gtr-uniform {
margin-top: $guttersCols * $multiplier * -1;
> * {
padding-top: $guttersCols * $multiplier;
}
}
}
}
}
}

78
_sass/libs/_mixins.scss Normal file
View file

@ -0,0 +1,78 @@
/// Makes an element's :before pseudoelement a FontAwesome icon.
/// @param {string} $content Optional content value to use.
/// @param {string} $category Optional category to use.
/// @param {string} $where Optional pseudoelement to target (before or after).
@mixin icon($content: false, $category: regular, $where: before) {
text-decoration: none;
&:#{$where} {
@if $content {
content: $content;
}
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
text-transform: none !important;
@if ($category == brands) {
font-family: 'Font Awesome 5 Brands';
}
@elseif ($category == solid) {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
@else {
font-family: 'Font Awesome 5 Free';
font-weight: 400;
}
}
}
/// Applies padding to an element, taking the current element-margin value into account.
/// @param {mixed} $tb Top/bottom padding.
/// @param {mixed} $lr Left/right padding.
/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
/// @param {bool} $important If true, adds !important.
@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
@if $important {
$important: '!important';
}
$x: 0.1em;
@if unit(_size(element-margin)) == 'rem' {
$x: 0.1rem;
}
padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
}
/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
/// @param {string} $svg SVG data URL.
/// @return {string} Encoded SVG data URL.
@function svg-url($svg) {
$svg: str-replace($svg, '"', '\'');
$svg: str-replace($svg, '%', '%25');
$svg: str-replace($svg, '<', '%3C');
$svg: str-replace($svg, '>', '%3E');
$svg: str-replace($svg, '&', '%26');
$svg: str-replace($svg, '#', '%23');
$svg: str-replace($svg, '{', '%7B');
$svg: str-replace($svg, '}', '%7D');
$svg: str-replace($svg, ';', '%3B');
@return url("data:image/svg+xml;charset=utf8,#{$svg}");
}

85
_sass/libs/_vars.scss Normal file
View file

@ -0,0 +1,85 @@
// Misc.
$misc: (
z-index-base: 10000,
overlay-opacity: 0.75,
lightbox-opacity: 0.75,
gallery-limit: 32,
items-limit: 16
);
// Duration.
$duration: (
menu: 0.5s,
transition: 0.2s,
gallery-lightbox: 0.5s,
gallery-delay: 0.15s,
items-delay: 0.15s,
on-load: 0.75s,
on-scroll: 0.75s
);
// Size.
$size: (
border-radius: 4px,
border-radius-alt: 0.5rem,
border-width: 1px,
element-height: 2.75rem,
element-margin: 2rem,
gutter: 3.5rem,
inner: 64rem,
padding: (
default: 7rem,
xlarge: 5rem,
large: 4rem,
medium: 3rem,
small: 2rem
)
);
// Font.
$font: (
family: ('Astloch', Helvetica, sans-serif),
family-fixed: ('Courier New', monospace),
weight: 400,
weight-bold: 700,
kerning: -0.025em,
kerning-alt: 0.125em
);
// Palette.
$palette: (
color1: #30363d,
color2: #db8992,
color3: #ab7aad,
color4: #897cad,
color5: #7794ce,
color6: #64abb4,
color7: #6ba78c,
bg: #111111,
bg-alt: rgb(238, 238, 238),
bg-transparent: rgba(238, 238, 238, 0.5),
fg: rgb(238, 238, 238),
fg-bold: rgb(238, 238, 238),
fg-light: rgba(238, 238, 238, 0.75),
border: rgba(0, 0, 0, 0.2),
border-alt: rgba(0, 0, 0, 0.075),
border-bg: rgba(0, 0, 0, 0.05),
border-darken: rgba(0, 0, 0, 0.25),
border-dark: rgba(0, 0, 0, 0.85),
accent: rgba(233, 77, 29, 1),
accent-dark: rgb(0, 0, 0),
invert: (
bg: #000000,
bg-alt: #222222,
fg: #ffffff,
fg-bold: #ffffff,
fg-light: #ffffff,
border: rgb(0, 0, 0),
border-alt: rgba(238, 238, 238, 0.25),
border-bg: rgba(0, 0, 0, 0.125),
accent: #47D3E5
),
);

376
_sass/libs/_vendor.scss Normal file
View file

@ -0,0 +1,376 @@
// vendor.scss v1.0 | @ajlkn | MIT licensed */
// Vars.
/// Vendor prefixes.
/// @var {list}
$vendor-prefixes: (
'-moz-',
'-webkit-',
'-ms-',
''
);
/// Properties that should be vendorized.
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
/// @var {list}
$vendor-properties: (
// Animation.
'animation',
'animation-delay',
'animation-direction',
'animation-duration',
'animation-fill-mode',
'animation-iteration-count',
'animation-name',
'animation-play-state',
'animation-timing-function',
// Appearance.
'appearance',
// Backdrop filter.
'backdrop-filter',
// Background image options.
'background-clip',
'background-origin',
'background-size',
// Box sizing.
'box-sizing',
// Clip path.
'clip-path',
// Filter effects.
'filter',
// Flexbox.
'align-content',
'align-items',
'align-self',
'flex',
'flex-basis',
'flex-direction',
'flex-flow',
'flex-grow',
'flex-shrink',
'flex-wrap',
'justify-content',
'order',
// Font feature.
'font-feature-settings',
'font-language-override',
'font-variant-ligatures',
// Font kerning.
'font-kerning',
// Fragmented borders and backgrounds.
'box-decoration-break',
// Grid layout.
'grid-column',
'grid-column-align',
'grid-column-end',
'grid-column-start',
'grid-row',
'grid-row-align',
'grid-row-end',
'grid-row-start',
'grid-template-columns',
'grid-template-rows',
// Hyphens.
'hyphens',
'word-break',
// Masks.
'mask',
'mask-border',
'mask-border-outset',
'mask-border-repeat',
'mask-border-slice',
'mask-border-source',
'mask-border-width',
'mask-clip',
'mask-composite',
'mask-image',
'mask-origin',
'mask-position',
'mask-repeat',
'mask-size',
// Multicolumn.
'break-after',
'break-before',
'break-inside',
'column-count',
'column-fill',
'column-gap',
'column-rule',
'column-rule-color',
'column-rule-style',
'column-rule-width',
'column-span',
'column-width',
'columns',
// Object fit.
'object-fit',
'object-position',
// Regions.
'flow-from',
'flow-into',
'region-fragment',
// Scroll snap points.
'scroll-snap-coordinate',
'scroll-snap-destination',
'scroll-snap-points-x',
'scroll-snap-points-y',
'scroll-snap-type',
// Shapes.
'shape-image-threshold',
'shape-margin',
'shape-outside',
// Tab size.
'tab-size',
// Text align last.
'text-align-last',
// Text decoration.
'text-decoration-color',
'text-decoration-line',
'text-decoration-skip',
'text-decoration-style',
// Text emphasis.
'text-emphasis',
'text-emphasis-color',
'text-emphasis-position',
'text-emphasis-style',
// Text size adjust.
'text-size-adjust',
// Text spacing.
'text-spacing',
// Transform.
'transform',
'transform-origin',
// Transform 3D.
'backface-visibility',
'perspective',
'perspective-origin',
'transform-style',
// Transition.
'transition',
'transition-delay',
'transition-duration',
'transition-property',
'transition-timing-function',
// Unicode bidi.
'unicode-bidi',
// User select.
'user-select',
// Writing mode.
'writing-mode',
);
/// Values that should be vendorized.
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
/// @var {list}
$vendor-values: (
// Cross fade.
'cross-fade',
// Element function.
'element',
// Filter function.
'filter',
// Flexbox.
'flex',
'inline-flex',
// Grab cursors.
'grab',
'grabbing',
// Gradients.
'linear-gradient',
'repeating-linear-gradient',
'radial-gradient',
'repeating-radial-gradient',
// Grid layout.
'grid',
'inline-grid',
// Image set.
'image-set',
// Intrinsic width.
'max-content',
'min-content',
'fit-content',
'fill',
'fill-available',
'stretch',
// Sticky position.
'sticky',
// Transform.
'transform',
// Zoom cursors.
'zoom-in',
'zoom-out',
);
// Functions.
/// Removes a specific item from a list.
/// @author Hugo Giraudel
/// @param {list} $list List.
/// @param {integer} $index Index.
/// @return {list} Updated list.
@function remove-nth($list, $index) {
$result: null;
@if type-of($index) != number {
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
}
@else if $index == 0 {
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
}
@else if abs($index) > length($list) {
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
}
@else {
$result: ();
$index: if($index < 0, length($list) + $index + 1, $index);
@for $i from 1 through length($list) {
@if $i != $index {
$result: append($result, nth($list, $i));
}
}
}
@return $result;
}
/// Replaces a substring within another string.
/// @author Hugo Giraudel
/// @param {string} $string String.
/// @param {string} $search Substring.
/// @param {string} $replace Replacement.
/// @return {string} Updated string.
@function str-replace($string, $search, $replace: '') {
$index: str-index($string, $search);
@if $index {
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
}
@return $string;
}
/// Replaces a substring within each string in a list.
/// @param {list} $strings List of strings.
/// @param {string} $search Substring.
/// @param {string} $replace Replacement.
/// @return {list} Updated list of strings.
@function str-replace-all($strings, $search, $replace: '') {
@each $string in $strings {
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
}
@return $strings;
}
// Mixins.
/// Wraps @content in vendorized keyframe blocks.
/// @param {string} $name Name.
@mixin keyframes($name) {
@-moz-keyframes #{$name} { @content; }
@-webkit-keyframes #{$name} { @content; }
@-ms-keyframes #{$name} { @content; }
@keyframes #{$name} { @content; }
}
/// Vendorizes a declaration's property and/or value(s).
/// @param {string} $property Property.
/// @param {mixed} $value String/list of value(s).
@mixin vendor($property, $value) {
// Determine if property should expand.
$expandProperty: index($vendor-properties, $property);
// Determine if value should expand (and if so, add '-prefix-' placeholder).
$expandValue: false;
@each $x in $value {
@each $y in $vendor-values {
@if $y == str-slice($x, 1, str-length($y)) {
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
$expandValue: true;
}
}
}
// Expand property?
@if $expandProperty {
@each $vendor in $vendor-prefixes {
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
}
}
// Expand just the value?
@elseif $expandValue {
@each $vendor in $vendor-prefixes {
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
}
}
// Neither? Treat them as a normal declaration.
@else {
#{$property}: #{$value};
}
}

136
_sass/player.scss Normal file
View file

@ -0,0 +1,136 @@
/* Audio Player Styles
================================================== */
/* Default / Desktop / Firefox */
audio {
margin: 0;
width: 100%;
}
#mainwrap {
border-radius: 5px;
width: 100%;
ul {
list-style: none;
padding: 0;
li:last-child {
border-radius: 0 0 5px 5px;
}
}
}
#audiowrap {
background-color: _palette(accent-dark);
margin: 0 auto 0 auto;
}
#plwrap {
margin: 0 auto;
}
#tracks {
min-height: 65px;
position: relative;
text-align: center;
text-decoration: none;
}
#nowPlay {
display: flex;
width: 100%;
height: 60px;
flex-wrap: unset;
justify-content: center;
align-items: center;
background-color: _palette(accent-dark);
border-radius: 5px 5px 0 0;
}
#npTitle {
margin: 0;
padding: 21px;
}
#npAction {
display: none;
margin: 0;
padding: 21px;
font-size: 12px;
}
#plList {
margin: 0;
}
#plList li {
background-color: _palette(border-darken);
cursor: pointer;
margin: 0;
padding: 21px 0;
border: 1px solid _palette(accent-dark);
border-top: 0;
transition: all 400ms ease-in-out;
}
#plList li:hover {
background-color: _palette(border-alt);
transition: all 400ms ease-in-out;
}
.plItem {
position: relative;
}
.plTitle {
left: 75px;
overflow: hidden;
position: absolute;
right: 65px;
text-overflow: ellipsis;
top: 0;
white-space: nowrap;
font-weight: bold;
padding-right: 10px;
}
.plNum {
padding-left: 21px;
width: 65px;
}
.plLength {
padding-left: 21px;
position: absolute;
right: 21px;
top: 0;
}
.plSel, .plSel:hover {
background-color: _palette(border-alt)!important;
cursor: default!important;
border-radius: 5px;
}
a[id^="btn"] {
background-color: _palette(border-darken);
color: _palette(fg);
cursor: pointer;
margin: 0;
padding: 0 27px 0 21px;
text-decoration: none;
}
a[id^="btn"]::-moz-focus-inner {
border: 0;
padding: 0;
}
#noJSalbum {
display: none;
}

View file

@ -0,0 +1,126 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
slug: cyber-grany/1-grandma-got-the-ssh-keys
albumSlug: cyber-grany
trackSlug: 1-grandma-got-the-ssh-keys
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
format: &ref_0
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 320000
codecProfile: CBR
numberOfSamples: 8909568
duration: 202.03102040816327
native: &ref_1
ID3v2.3:
- id: TIT2
value: Grandma got the SSH keys
- id: TPE1
value: 徒 Setto セット
- id: TRCK
value: 1/1
- id: TALB
value: Cyber Grany
- id: TPE2
value: To Setto Setto
- id: TCON
value: Acid Trap
- id: 'TXXX:CDDB DiscID'
value: 0200ca01
- id: 'TXXX:discid'
value: 0200ca01
- id: 'TXXX:MusicBrainz DiscID'
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
- id: 'TXXX:musicbrainz_discid'
value: bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
- id: COMM
value:
language: XXX
description: WEBSITE
text: 'https://setto.basspistol.com'
- id: COMM
value:
language: XXX
description: Comment
text: Special track for Acid December 2019
- id: TYER
value: '2019'
quality: &ref_2
warnings: []
common: &ref_3
track:
'no': 1
of: 1
disk:
'no': null
of: null
title: Grandma got the SSH keys
artists:
- 徒 Setto セット
artist: 徒 Setto セット
album: Cyber Grany
albumartist: To Setto Setto
genre:
- Acid Trap
comment:
- 'https://setto.basspistol.com'
- Special track for Acid December 2019
year: 2019
transformed: &ref_4
ID3v2.3:
TIT2: Grandma got the SSH keys
TPE1: 徒 Setto セット
TRCK: 1/1
TALB: Cyber Grany
TPE2: To Setto Setto
TCON: Acid Trap
'TXXX:CDDB DiscID': 0200ca01
'TXXX:discid': 0200ca01
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
WEBSITE: 'https://setto.basspistol.com'
Comment: Special track for Acid December 2019
TYER: '2019'
all: &ref_5
TIT2: Grandma got the SSH keys
TPE1: 徒 Setto セット
TRCK: 1/1
TALB: Cyber Grany
TPE2: To Setto Setto
TCON: Acid Trap
'TXXX:CDDB DiscID': 0200ca01
'TXXX:discid': 0200ca01
'TXXX:MusicBrainz DiscID': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
'TXXX:musicbrainz_discid': bhKd3SFqkr6x1L9X2JkIZ6UIaRA-
WEBSITE: 'https://setto.basspistol.com'
Comment: Special track for Acid December 2019
TYER: '2019'
nextTrack: &ref_6
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
audio: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.mp3
slug: cyber-grany/1-grandma-got-the-ssh-keys
albumSlug: cyber-grany
trackSlug: 1-grandma-got-the-ssh-keys
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
cover: /assets/albums/cyber-grany/1-grandma-got-the-ssh-keys.jpeg
format: *ref_0
native: *ref_1
quality: *ref_2
common: *ref_3
transformed: *ref_4
all: *ref_5
previousTrack: *ref_6
---

451
_tracks/darkweb/1-swipe.md Normal file
View file

@ -0,0 +1,451 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
audio: /assets/albums/darkweb/1-swipe.mp3
slug: darkweb/1-swipe
albumSlug: darkweb
trackSlug: 1-swipe
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
cover: /assets/albums/darkweb/1-swipe.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12388608
duration: 280.9208163265306
native:
ID3v2.3:
- id: TIT2
value: Swipe
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: Swipe
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
nextTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
audio: /assets/albums/darkweb/2-darkweb.mp3
slug: darkweb/2-darkweb
albumSlug: darkweb
trackSlug: 2-darkweb
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
cover: /assets/albums/darkweb/2-darkweb.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12566016
duration: 284.94367346938776
native:
ID3v2.3:
- id: TIT2
value: Darkweb
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
- id: TCON
value: Cypher Rap
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Darkweb
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
all:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
previousTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
slug: darkweb/4-darkweb-instrumental-
albumSlug: darkweb
trackSlug: 4-darkweb-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12526848
duration: 284.05551020408166
native:
ID3v2.3:
- id: TIT2
value: Darkweb (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: ''
- id: TALB
value: Darkweb
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cypher Rap
- id: TRCK
value: '4'
- id: COMM
value:
language: XXX
description: Comment
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 4
of: null
disk:
'no': null
of: null
title: Darkweb (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- ''
- Cover art and music by To&nbsp;Setto&nbsp;Setto
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
all:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
---

View file

@ -0,0 +1,446 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
audio: /assets/albums/darkweb/2-darkweb.mp3
slug: darkweb/2-darkweb
albumSlug: darkweb
trackSlug: 2-darkweb
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
cover: /assets/albums/darkweb/2-darkweb.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12566016
duration: 284.94367346938776
native:
ID3v2.3:
- id: TIT2
value: Darkweb
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
- id: TCON
value: Cypher Rap
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Darkweb
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
all:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
nextTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
slug: darkweb/3-swipe-instrumental-
albumSlug: darkweb
trackSlug: 3-swipe-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12436992
duration: 282.0179591836735
native:
ID3v2.3:
- id: TIT2
value: Swipe (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '3'
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings:
- message: Illegal ID3v2 tag length
common:
track:
'no': 3
of: null
disk:
'no': null
of: null
title: Swipe (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
previousTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
audio: /assets/albums/darkweb/1-swipe.mp3
slug: darkweb/1-swipe
albumSlug: darkweb
trackSlug: 1-swipe
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
cover: /assets/albums/darkweb/1-swipe.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12388608
duration: 280.9208163265306
native:
ID3v2.3:
- id: TIT2
value: Swipe
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: Swipe
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
---

View file

@ -0,0 +1,272 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
slug: darkweb/3-swipe-instrumental-
albumSlug: darkweb
trackSlug: 3-swipe-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12436992
duration: 282.0179591836735
native:
ID3v2.3:
- id: TIT2
value: Swipe (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '3'
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings:
- message: Illegal ID3v2 tag length
common:
track:
'no': 3
of: null
disk:
'no': null
of: null
title: Swipe (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
nextTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
slug: darkweb/4-darkweb-instrumental-
albumSlug: darkweb
trackSlug: 4-darkweb-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12526848
duration: 284.05551020408166
native:
ID3v2.3:
- id: TIT2
value: Darkweb (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: ''
- id: TALB
value: Darkweb
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cypher Rap
- id: TRCK
value: '4'
- id: COMM
value:
language: XXX
description: Comment
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 4
of: null
disk:
'no': null
of: null
title: Darkweb (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- ''
- Cover art and music by To&nbsp;Setto&nbsp;Setto
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
all:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
previousTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.mp3
audio: /assets/albums/darkweb/2-darkweb.mp3
slug: darkweb/2-darkweb
albumSlug: darkweb
trackSlug: 2-darkweb
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/2-darkweb.jpeg
cover: /assets/albums/darkweb/2-darkweb.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12566016
duration: 284.94367346938776
native:
ID3v2.3:
- id: TIT2
value: Darkweb
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
- id: TCON
value: Cypher Rap
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Darkweb
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
all:
TIT2: Darkweb
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Y'en a mare de ce web\r\nIl est tout pourri\r\nOn peu plus rien y faire\r\nSeulement pousser des cris\r\nQue personne va entendre\r\nSi t'as pas mille amis\r\nTa home-page va se pendre\r\nPerdu le goût de la vie\r\nEnvois ton Paypal\r\nJ'vais lui faire un refus\r\nAjoute-moi en ami\r\nTu vas kiffer mon flux\r\nViens pas faire ton vieux troll\r\nRien a foutre de toi\r\nTécris de belles paroles\r\nRien à foutre de toi\r\nPuis au fond de ce noire\r\nJe vois un rayon\r\nUn programme provisoire\r\nPour poser mes sillons\r\nY a une communauté\r\nDe gens mal intégrés\r\nIl sont tous comme moi\r\nMais encore plus tarés\r\nProtocole anonyme\r\nConnexion en chiffré\r\nP2P solidaire\r\nConnexion certifiée\r\nLittéraire digital\r\nTu vas aussi kiffer\r\nÇa s'appelle le Darkweb\r\nTu vas aussi kiffer\r\n\r\nFacegoogle aux gogues\r\nY a plus que des conneries\r\nPropagande démagogue\r\nPetits chats tous mimis\r\nMais c'est quoi cette shit\r\nÇa veut plus rien dire\r\nLes keums envoient leurs bites\r\nComme si elles allaient applaudir\r\nNon! C'est trop con\r\nJe veux pas participer\r\nMais si je joue pas le jeux\r\nJe vais être abandonné\r\nPlus personne entendra\r\nTout ce que j'ai à crier\r\nPlus personne ne lira\r\nTout ce que j'ai à crier\r\nPuis au bout du tunnel\r\nJe vois une lueur étrange\r\nCelle d'un réseau fermé\r\nQui reste ouvert au strange\r\nUn lieu virtuel\r\nUne cité idéelle\r\nUne banque de données\r\nPour les mal intégrés\r\nJe peux y être qui je veux\r\nUn antichrist bien pleb\r\nAvoir beaucoup de cheveux\r\nUn intello du Zagreb\r\nT'as besoin d'faire entendre\r\nTu vas aussi kiffer\r\nLa clef tu peux la prendre\r\nTu vas aussi kiffer"
TCON: Cypher Rap
TYER: '2019'
---

View file

@ -0,0 +1,444 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.mp3
audio: /assets/albums/darkweb/4-darkweb-instrumental-.mp3
slug: darkweb/4-darkweb-instrumental-
albumSlug: darkweb
trackSlug: 4-darkweb-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/4-darkweb-instrumental-.jpeg
cover: /assets/albums/darkweb/4-darkweb-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12526848
duration: 284.05551020408166
native:
ID3v2.3:
- id: TIT2
value: Darkweb (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: ''
- id: TALB
value: Darkweb
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cypher Rap
- id: TRCK
value: '4'
- id: COMM
value:
language: XXX
description: Comment
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 4
of: null
disk:
'no': null
of: null
title: Darkweb (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- ''
- Cover art and music by To&nbsp;Setto&nbsp;Setto
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cypher Rap
year: 2019
transformed:
ID3v2.3:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
all:
TIT2: Darkweb (Instrumental)
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Darkweb
TPE2: 徒 Setto セット
TCON: Cypher Rap
TRCK: '4'
Comment: Cover art and music by To&nbsp;Setto&nbsp;Setto
TYER: '2019'
nextTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.mp3
audio: /assets/albums/darkweb/1-swipe.mp3
slug: darkweb/1-swipe
albumSlug: darkweb
trackSlug: 1-swipe
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/1-swipe.jpeg
cover: /assets/albums/darkweb/1-swipe.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12388608
duration: 280.9208163265306
native:
ID3v2.3:
- id: TIT2
value: Swipe
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: >-
Comme tous les après-midis, Assis dans le tram en face d'une jolie
vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: Swipe
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
- |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: |-
Comme tous les après-midis, Assis dans le tram en face d'une jolie vie,
Sur mon écran elles sont encore plus sexy.
Swipe à gauche swipe à droite,
Celle-ci a l'aire plutôt maladroite,
Ça m'irait bien ça.
Mais la personne en face de moi,
Elle me matte, elle me mire.
Je ne sais pas quoi faire,
Qu'est-ce que je vais lui dire?
Elle a de belles dents!
Je vais retourner a mon écran.
je n'ai simplement,
Pas assez de cran.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
Si seulement elle voyait mon flux,
Je suis sur qu'elle n'en pourrait plus!
Comment je fais pour l'ajouter?
Est-ce que Google pourrait la trouver?
Hashtag jolitram,
Faudrait que ça devienne viral sur Instagram.
Ensemble on aurait peut-être un avenir!
Mais comment coño vais-je lui dire?
Merde elle appuie sur arrêt!
Je lui tend mon casque ça le fait!
Elle donne le siens truc de ouf?!
Hésitations je m'immisce.
Cette personne écoute de la bonne musique de glisse.
Je swipe à droite,
Je swipe à gauche,
Je yeuxt vers l'avant de temps en temps.
TCON: Cyber Soul
TYER: '2019'
previousTrack:
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.mp3
audio: /assets/albums/darkweb/3-swipe-instrumental-.mp3
slug: darkweb/3-swipe-instrumental-
albumSlug: darkweb
trackSlug: 3-swipe-instrumental-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/darkweb/3-swipe-instrumental-.jpeg
cover: /assets/albums/darkweb/3-swipe-instrumental-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 12436992
duration: 282.0179591836735
native:
ID3v2.3:
- id: TIT2
value: Swipe (Instrumental)
- id: TPE1
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: Comment
text: >-
Cover art by Mattias Ritarn Lindström, Music by
To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Darkweb
- id: TRCK
value: '3'
- id: TPE2
value: 徒 Setto セット
- id: TCON
value: Cyber Soul
- id: TYER
value: '2019'
quality:
warnings:
- message: Illegal ID3v2 tag length
common:
track:
'no': 3
of: null
disk:
'no': null
of: null
title: Swipe (Instrumental)
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
album: Darkweb
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2019
transformed:
ID3v2.3:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
all:
TIT2: Swipe (Instrumental)
TPE1: 徒 Setto セット
Comment: 'Cover art by Mattias Ritarn Lindström, Music by To&nbsp;Setto&nbsp;Setto'
TALB: Darkweb
TRCK: '3'
TPE2: 徒 Setto セット
TCON: Cyber Soul
TYER: '2019'
---

View file

@ -0,0 +1,98 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
slug: live-with-hardware/1-ep-life-of-a-dudelini
albumSlug: live-with-hardware
trackSlug: 1-ep-life-of-a-dudelini
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
format: &ref_1
tagTypes:
- ID3v2.4
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 48000
numberOfChannels: 2
bitrate: 192000
codecProfile: CBR
tool: LAME3.100
duration: 683.472
native: &ref_2
ID3v2.4:
- id: TIT2
value: EP-Life of a Dudelini
- id: TPE1
value: 徒 Setto セット
- id: TALB
value: Live with hardware
- id: COMM
value: &ref_0
language: eng
description: ''
text: Live take
- id: TDRC
value: '2020-04-20'
- id: TRCK
value: '1'
- id: TCON
value: Cybersoul
quality: &ref_3
warnings: []
common: &ref_4
track:
'no': 1
of: null
disk:
'no': null
of: null
title: EP-Life of a Dudelini
artists:
- 徒 Setto セット
artist: 徒 Setto セット
album: Live with hardware
comment:
- Live take
year: 2020
date: '2020-04-20'
genre:
- Cybersoul
transformed: &ref_5
ID3v2.4:
TIT2: EP-Life of a Dudelini
TPE1: 徒 Setto セット
TALB: Live with hardware
COMM: *ref_0
TDRC: '2020-04-20'
TRCK: '1'
TCON: Cybersoul
all: &ref_6
TIT2: EP-Life of a Dudelini
TPE1: 徒 Setto セット
TALB: Live with hardware
COMM: *ref_0
TDRC: '2020-04-20'
TRCK: '1'
TCON: Cybersoul
nextTrack: &ref_7
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
audio: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.mp3
slug: live-with-hardware/1-ep-life-of-a-dudelini
albumSlug: live-with-hardware
trackSlug: 1-ep-life-of-a-dudelini
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
cover: /assets/albums/live-with-hardware/1-ep-life-of-a-dudelini.jpeg
format: *ref_1
native: *ref_2
quality: *ref_3
common: *ref_4
transformed: *ref_5
all: *ref_6
previousTrack: *ref_7
---

View file

@ -0,0 +1,185 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
albumSlug: satoshi-mon-ami
trackSlug: 1-k-as-tu-fait-de-nous-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 13433472
duration: 304.6138775510204
native:
ID3v2.3:
- id: TIT2
value: K'as-tu fait de nous?
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: K'as-tu fait de nous?
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
nextTrack: &ref_2
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
slug: satoshi-mon-ami/2-r-ve-de-toi
albumSlug: satoshi-mon-ami
trackSlug: 2-r-ve-de-toi
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 8195328
duration: 185.83510204081634
native:
ID3v2.3:
- id: TIT2
value: Rêve de toi
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_1
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Rêve de toi
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
previousTrack: *ref_2
---

View file

@ -0,0 +1,185 @@
---
layout: track
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
audio: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.mp3
slug: satoshi-mon-ami/2-r-ve-de-toi
albumSlug: satoshi-mon-ami
trackSlug: 2-r-ve-de-toi
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
cover: /assets/albums/satoshi-mon-ami/2-r-ve-de-toi.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 8195328
duration: 185.83510204081634
native:
ID3v2.3:
- id: TIT2
value: Rêve de toi
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_0
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '2'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 2
of: null
disk:
'no': null
of: null
title: Rêve de toi
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: Rêve de toi
TPE1: 徒 Setto セット
COMM: *ref_0
TALB: Satoshi mon ami
TRCK: '2'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Je rêve de toi\r\nChaque jour je te vois\r\nJe fais pas de faux pas\r\nToujours des commentaires sympas\r\n\r\nTa vie est belle\r\nÇa se voit sur les cocotiers\r\nMais mon label\r\nNe pourras pas me déployer\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, ce n'est pas toi\r\n\r\nJ'ajoute des cœurs\r\nA tous les poste que tu publies\r\nJenvoie des merdes\r\nA tous les cons qui t'humilient\r\n\r\nTa vie radieuse\r\nIllumine mes après-midi\r\nQuand je me lève\r\nAprès avoir perdu encore une nuit\r\n\r\nUne fois, chaque fois, que mon téléphone\r\nSallume, séclaire, sonne le vibraphone\r\nJespère, c'est claire, que c'est la bonne\r\nFois en moi, mais cette fois, toujours pas toi"
TCON: Cyber Soul
TYER: '2018'
nextTrack: &ref_2
path: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
audio: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.mp3
slug: satoshi-mon-ami/1-k-as-tu-fait-de-nous-
albumSlug: satoshi-mon-ami
trackSlug: 1-k-as-tu-fait-de-nous-
coverPath: >-
/home/set/git/basspistol/setto.basspistol.com/assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
cover: /assets/albums/satoshi-mon-ami/1-k-as-tu-fait-de-nous-.jpeg
format:
tagTypes:
- ID3v2.3
trackInfo: []
lossless: false
container: MPEG
codec: MPEG 1 Layer 3
sampleRate: 44100
numberOfChannels: 2
bitrate: 128000
codecProfile: CBR
numberOfSamples: 13433472
duration: 304.6138775510204
native:
ID3v2.3:
- id: TIT2
value: K'as-tu fait de nous?
- id: TPE1
value: 徒 Setto セット
- id: COMM
value: &ref_1
language: XXX
description: ''
text: Cover art and music by To&nbsp;Setto&nbsp;Setto
- id: TALB
value: Satoshi mon ami
- id: TRCK
value: '1'
- id: TPE2
value: 徒 Setto セット
- id: COMM
value:
language: XXX
description: UNSYNCEDLYRICS
text: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
- id: TCON
value: Cyber Soul
- id: TYER
value: '2018'
quality:
warnings: []
common:
track:
'no': 1
of: null
disk:
'no': null
of: null
title: K'as-tu fait de nous?
artists:
- 徒 Setto セット
artist: 徒 Setto セット
comment:
- Cover art and music by To&nbsp;Setto&nbsp;Setto
- "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
album: Satoshi mon ami
albumartist: 徒 Setto セット
genre:
- Cyber Soul
year: 2018
transformed:
ID3v2.3:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
all:
TIT2: K'as-tu fait de nous?
TPE1: 徒 Setto セット
COMM: *ref_1
TALB: Satoshi mon ami
TRCK: '1'
TPE2: 徒 Setto セット
UNSYNCEDLYRICS: "Qu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\nAcid est la tribe\r\nCyberpunk le game\r\nSur des reseau de bribe\r\non fait monter le fame\r\nMeme pas besoin de files\r\nIsole sur l'iles\r\non fait un tour au grotte\r\npour pas que la story capotte\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\n\r\nSi la police nous ajoute\r\nNouvelle vie nouveau compte\r\nOn tourne le dos au toute\r\non delete sans honte\r\nMeme pas besoin d'ecrire\r\ntu peux mäentendre rire\r\nen tour de face a face\r\nQui brise la glace\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\n\r\n24 heures pour dechiffre\r\nOn dirait une invitation\r\nLa story que t'as balancer\r\nCryptokids une seul nation\r\ncelle des rave et du reve\r\nHilife a plein poumons\r\nLe flux n'as pas de treve\r\nEt en suede il mange du saumon\r\n\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou\r\nQu'as-tu fais de nous\r\nWTF coucou\r\nQu'as tu fais de nous\r\nWTF coucou"
TCON: Cyber Soul
TYER: '2018'
previousTrack: *ref_2
---

34
about.md Normal file
View file

@ -0,0 +1,34 @@
---
title: About
layout: page
description: What is Sakrecoer about and what does its music stand for?
image: /assets/img/cs-vid-3.jpg
---
## Sakrecoer Uncorporated Stands for independent fun-loving Activism, Art & Music.
I am a 1980 born robot. If [Monica Zetterlund](https://en.wikipedia.org/wiki/Monica_Zetterlund){: target="_blank"} was a cyberpunk making electronic music, I would probably be Her. I aim for questions rather than answers and at pushing your creativity. I move by feet in the streets and value my integrity.
![](/assets/img/cs-vid-1.jpg){: width="350" height="227"}
I go by many aliases that you will find if you scroll down this page.
![](/assets/img/cs-vid-2.jpg){: width="270" height="180"}
This website was designed and executed by [me](http://set.hallstrom.ch){: target="_blank"} On these pages I push sounds, images, thoughts and passion for cool robots like you, thanks to the good [Alsenet.com](https://alsenet.com){: target="_blank"} people and the Helevtico-Russian-Swedo-Geramno-Spanglish Linux Lovers Circle.
![](/assets/img/cs-vid-4.jpg){: width="270" height="180"}
The past gig list is to long times and for forgotten times\! Received with enthusiasm by several venues, big and small such as:
* Apolo Nitsa - Barcelona
* Dachkantine - Zürich
* Center Of Contemporary Art - Geneva
* Alcazar - Stockholm
* Microdisco Festival - Berlin
* Button Factory - Dublin
* And many many other really really nice ones :) delivering good mood, beat, base and bass\!
![](/assets/img/sakrecoerLIVE.png){: width="639" height="799"}
&nbsp;

BIN
apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

5
assets/css/fontawesome-all.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,192 @@
---
---
@import 'libs/vars';
@import 'libs/functions';
@import 'libs/mixins';
@import 'libs/vendor';
@import 'libs/breakpoints';
@import 'libs/html-grid';
@import 'fontawesome-all.min.css';
@import 'libs/fonts';
/*
Story by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
// Breakpoints.
@include breakpoints((
xlarge: ( 1281px, 1680px ),
large: ( 981px, 1280px ),
medium: ( 737px, 980px ),
small: ( 481px, 736px ),
xsmall: ( 361px, 480px ),
xxsmall: ( null, 360px )
));
// Mixins.
@mixin color($p) {
@include color-typography($p);
@include color-box($p);
@include color-button($p);
@include color-form($p);
@include color-icon($p);
@include color-list($p);
@include color-section($p);
@include color-table($p);
@include color-banner($p);
@include color-spotlight($p);
@include color-gallery($p);
@include color-items($p);
@include color-index($p);
}
// Phone.
@mixin phone($image-width) {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
border-radius: 0;
border: solid _size(border-width);
img {
@include vendor('object-fit', 'cover');
@include vendor('object-position', 'center');
display: block;
width: 100%;
height: 100%;
border-radius: 0;
}
&:before {
content: '';
display: block;
background-position: center;
background-repeat: no-repeat;
border: solid _size(border-width);
border-bottom: 0;
}
&:after {
content: '';
display: block;
background-position: center;
background-repeat: no-repeat;
border: solid _size(border-width);
border-top: 0;
}
@include resize-phone($image-width, 1);
}
@mixin resize-phone($image-width, $image-factor) {
$image-pad-top: 2.5rem;
$image-pad-bottom: 3rem;
$image-height: ($image-width * (1920 / 1080));
width: ($image-width * $image-factor);
height: (($image-width * $image-factor) * (1920 / 1080));
margin-top: ($image-pad-top * $image-factor);
margin-bottom: (_size(element-margin) + ($image-pad-bottom * $image-factor));
&:before {
height: ($image-pad-top * $image-factor);
background-size: (64px * $image-factor) (32px * $image-factor);
margin-top: (($image-pad-top * $image-factor) * -1);
border-radius: (1rem * $image-factor) (1rem * $image-factor) 0 0;
}
&:after {
height: ($image-pad-bottom * $image-factor);
background-size: (64px * $image-factor) (32px * $image-factor);
margin-bottom: (($image-pad-bottom * $image-factor) * -1);
border-radius: 0 0 (1rem * $image-factor) (1rem * $image-factor);
}
}
@mixin color-phone($p) {
border-color: _palette($p, border);
background-color: _palette($p, border);
@if ($p != 'invert') {
border-width: 0;
}
@else {
border-width: _size(border-width);
}
&:before {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>rect {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><rect rx="4" ry="4" x="11" y="12" width="42" height="8" vector-effect="non-scaling-stroke" /></svg>');
border-color: _palette($p, border);
@if ($p == 'invert') {
width: calc(100% + #{_size(border-width) * 2});
margin-left: (_size(border-width) * -1);
}
@else {
width: 100%;
}
}
&:after {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>circle {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><circle cx="32" cy="16" r="14" vector-effect="non-scaling-stroke" /></svg>');
border-color: _palette($p, border);
@if ($p == 'invert') {
width: calc(100% + #{_size(border-width) * 2});
margin-left: (_size(border-width) * -1);
}
@else {
width: 100%;
}
}
}
@mixin color-phone-variant($v, $p) {
@if ($v == 'android') {
&:after {
background-image: svg-url('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64px" height="32px" viewBox="0 0 64 32" zoomAndPan="disable"><style>rect {fill: transparent; stroke: #{_palette($p, border)}; stroke-width: #{_size(border-width)}; }</style><rect rx="4" ry="4" x="6" y="4" width="52" height="24" vector-effect="non-scaling-stroke" /></svg>');
}
}
@else if ($p == 'iphone') {
// ...
}
}
// Base.
@import 'base/reset';
@import 'base/page';
@import 'base/typography';
// Component.
@import 'components/row';
@import 'components/box';
@import 'components/button';
@import 'components/form';
@import 'components/icon';
@import 'components/image';
@import 'components/list';
@import 'components/actions';
@import 'components/icons';
@import 'components/section';
@import 'components/table';
@import 'components/banner';
@import 'components/spotlight';
@import 'components/gallery';
@import 'components/wrapper';
@import 'components/items';
@import 'components/index';
// Layout.
@import 'layout/wrapper';
// Set's customizations
@import 'set.scss';
@import 'player.scss';

View file

@ -0,0 +1,258 @@
---
---
@import 'libs/vars';
@import 'libs/functions';
@import 'libs/mixins';
@import 'libs/vendor';
@import 'libs/breakpoints';
@import 'libs/html-grid';
@import 'libs/fonts';
/*
Story by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
/* Banner (transitions) */
.banner {
// Mixin.
@mixin transition-banner($event) {
$x: null;
$y: null;
@if ($event == 'load') {
$x: 'body.is-preload &';
$y: _duration(on-load);
}
@else if ($event == 'scroll') {
$x: '&.is-inactive';
$y: _duration(on-scroll);
}
// Content.
&.on#{$event}-content-fade-up {
.content {
@include vendor('transition', 'none');
}
#{$x} {
.content {
@include vendor('transform', 'none');
opacity: 1;
}
}
}
&.on#{$event}-content-fade-down {
.content {
@include vendor('transition', 'none');
}
#{$x} {
.content {
@include vendor('transform', 'none');
opacity: 1;
}
}
}
&.on#{$event}-content-fade-left {
.content {
@include vendor('transition', 'none');
}
#{$x} {
.content {
@include vendor('transform', 'none');
opacity: 1;
}
}
}
&.on#{$event}-content-fade-right {
.content {
@include vendor('transition', 'none');
}
#{$x} {
.content {
@include vendor('transform', 'none');
opacity: 1;
}
}
}
&.on#{$event}-content-fade-in {
.content {
@include vendor('transition', 'none');
}
#{$x} {
.content {
@include vendor('transform', 'none');
opacity: 1;
}
}
}
// Image.
&.on#{$event}-image-fade-up {
.image {
@include vendor('transition', 'none');
img {
@include vendor('transition', 'none');
}
}
#{$x} {
.image {
@include vendor('transform', 'none');
opacity: 1;
img {
opacity: 1;
}
}
}
}
&.on#{$event}-image-fade-down {
.image {
@include vendor('transition', 'none');
img {
@include vendor('transition', 'none');
}
}
#{$x} {
.image {
@include vendor('transform', 'none');
opacity: 1;
img {
opacity: 1;
}
}
}
}
&.on#{$event}-image-fade-left {
.image {
@include vendor('transition', 'none');
img {
@include vendor('transition', 'none');
}
}
#{$x} {
.image {
@include vendor('transform', 'none');
opacity: 1;
img {
opacity: 1;
}
}
}
}
&.on#{$event}-image-fade-right {
.image {
@include vendor('transition', 'none');
img {
@include vendor('transition', 'none');
}
}
#{$x} {
.image {
@include vendor('transform', 'none');
opacity: 1;
img {
opacity: 1;
}
}
}
}
&.on#{$event}-image-fade-in {
.image {
img {
@include vendor('transition', 'none');
}
}
#{$x} {
.image {
img {
opacity: 1;
}
}
}
}
}
// On Load.
@include transition-banner('load');
// On Scroll.
@include transition-banner('scroll');
}
// Set's customizations
@import 'set';
@import 'player';
.logo {
position: fixed;
top: 20px;
right: 20px;
width: 50%;
height: 10%;
background-color: transparent;
background-repeat: no-repeat;
background-position: center center;
background-size: 95% 95%;
-webkit-transition: all 400ms ease-in;
-moz-transition: all 400ms ease-in;
transition: all 400ms ease-in;
box-shadow: 0 0 10px 1px _palette(border-alt);
}
@media only screen and (min-width: 769px) {
.logo {
position: fixed;
top: 20px;
right: 20px;
width: 20%;
height: 10%;
background-color: transparent;
background-repeat: no-repeat;
background-position: center center;
background-size: 95% 95%;
-webkit-transition: all 400ms ease-in;
-moz-transition: all 400ms ease-in;
transition: all 400ms ease-in;
box-shadow: 0 0 10px 1px _palette(border-alt);
}
}
// Player link
#mainwrap {
display: none;
}
#noJSalbum {
display: unset;
}

Binary file not shown.

2
assets/js/breakpoints.min.js vendored Normal file
View file

@ -0,0 +1,2 @@
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});

2
assets/js/browser.min.js vendored Normal file
View file

@ -0,0 +1,2 @@
/* browser.js v1.0 | @ajlkn | MIT licensed */
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});

563
assets/js/demo.js Normal file
View file

@ -0,0 +1,563 @@
/*
Story by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
Note: Only needed for demo purposes. Delete for production sites.
*/
(function($) {
var $window = $(window);
// Styles.
$(
'<style>' +
'.demo-animate-all:not(.gallery), .demo-animate-all:not(.gallery) *, .demo-animate-all:not(.gallery) *:before, .demo-animate-all:not(.gallery) *:after { transition: all 0.5s ease-in-out; }' +
'.demo-controls .property .classes { display: none; }' +
'.demo-controls .property[data-requires] { display: none; }' +
'.demo-controls .property[data-requires].active { display: inline; }' +
'.demo-controls .property .tooltip { position: relative; }' +
'.demo-controls .property .tooltip:before { content: \'Click to change!\'; font-size: 0.7rem; position: absolute; bottom: 100%; left: 0; background: #47D3E5; color: #ffffff; line-height: 1; white-space: nowrap; font-weight: bold; border-radius: 0.125rem; padding: 0.325rem 0.425rem; animation: demo-controls-tooltip 1.5s forwards; animation-delay: 1s; opacity: 0; }' +
'.demo-controls .property .tooltip:after { content: \'\'; position: absolute; bottom: calc(100% - 0.25rem); left: 0.5rem; border-left: solid 0.5rem transparent; border-right: solid 0.5rem transparent; border-top: solid 0.5rem #47D3E5; width: 0.5rem; height: 0.5rem; animation: demo-controls-tooltip 1.5s forwards; animation-delay: 1s; opacity: 0; }' +
'@keyframes demo-controls-tooltip {' +
'0% { opacity: 0; transform: translateY(0); }' +
'10% { opacity: 1; transform: translateY(0.125rem); }' +
'20% { opacity: 1; transform: translateY(-0.125rem); }' +
'30% { opacity: 1; transform: translateY(0.125rem); }' +
'40% { opacity: 1; transform: translateY(-0.125rem); }' +
'50% { opacity: 1; transform: translateY(0.125rem); }' +
'60% { opacity: 1; transform: translateY(0); }' +
'90% { opacity: 1; }' +
'100% { opacity: 0; }' +
'}' +
'</style>'
).appendTo($('head'));
// Functions.
$.fn.demo_controls = function(styles, userOptions) {
var $this = $(this),
$styleProperty, $stylePropertyClasses,
$controls, $x, $y, $z,
options,
current, i, j, k, s, n, count;
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).demo_controls(styles, userOptions);
return $this;
}
// Options.
options = $.extend({
target: null,
palette: true
}, userOptions);
// Controls.
if (styles) {
$controls = $(
'<span class="demo-controls">' +
'<span class="property" data-name="style">' +
'<a href="#" class="title tooltip">style</a>' +
'<span class="classes"></span>' + (options.palette ? ', ' : ' ') +
'</span>' +
(options.palette ?
'<span class="property active" data-name="scheme">' +
'<a href="#" class="title">scheme</a>' +
'<span class="classes">' +
'<span data-class="-" class="active">default</span>' +
'<span data-class="invert">invert</span>' +
'</span>, ' +
'</span>' +
'<span class="property active" data-name="color">' +
'<a href="#" class="title">color</a>' +
'<span class="classes">' +
'<span data-class="-" class="active">default</span>' +
'<span data-class="color1">color1</span>' +
'<span data-class="color2">color2</span>' +
'<span data-class="color3">color3</span>' +
'<span data-class="color4">color4</span>' +
'<span data-class="color5">color5</span>' +
'<span data-class="color6">color6</span>' +
'<span data-class="color7">color7</span>' +
'</span>, ' +
'</span>'
: '') +
'</span>'
);
}
else {
$controls = $(
'<span class="demo-controls">' +
(options.palette ?
'<span class="property active" data-name="scheme">' +
'<a href="#" class="title">scheme</a>' +
'<span class="classes">' +
'<span data-class="-" class="active">default</span>' +
'<span data-class="invert">invert</span>' +
'</span> and ' +
'</span>' +
'<span class="property active" data-name="color">' +
'<a href="#" class="title">color</a>' +
'<span class="classes">' +
'<span data-class="-" class="active">default</span>' +
'<span data-class="color1">color1</span>' +
'<span data-class="color2">color2</span>' +
'<span data-class="color3">color3</span>' +
'<span data-class="color4">color4</span>' +
'<span data-class="color5">color5</span>' +
'<span data-class="color6">color6</span>' +
'<span data-class="color7">color7</span>' +
'</span>' +
'</span>'
: '') +
'</span>'
);
}
// Target.
switch (options.target) {
case 'previous':
$this.prev().find('.demo-controls').replaceWith($controls);
break;
default:
$this.find('.demo-controls').replaceWith($controls);
break;
}
// Styles.
if (styles) {
$styleProperty = $controls.find('.property[data-name="style"]');
$stylePropertyClasses = $styleProperty.children('.classes');
for (i in styles) {
current = false;
count = Object.keys(styles[i]).length;
n = 1;
// Add to style property.
$x = $('<span data-class="' + i + '">, ' + i + '</span>')
.appendTo($stylePropertyClasses);
if ($this.hasClass(i)) {
$x.addClass('active');
current = true;
}
// Step through properties.
for (j in styles[i]) {
$x = $(
'<span class="property" data-name="' + j + '" data-requires="' + i + '">' +
(n == count ? '<span>and </span>' : '') +
'<a href="#" class="title">' + j + '</a>' +
'<span class="classes">' +
'</span>' + (n < count ? ', ' : '') +
'</span>'
).appendTo($controls);
$y = $x.children('.classes');
if (current)
$x.addClass('active');
for (k in styles[i][j]) {
$z = $('<span data-class="' + k + '">, ' + styles[i][j][k].replace('*', '') + '</span>')
.appendTo($y);
if (styles[i][j][k].substr(-1, 1) == '*')
$z.addClass('default');
if (current
&& $this.hasClass(k))
$z.addClass('active');
}
n++;
}
}
}
// Events.
$controls.on('click', 'a', function(event) {
event.preventDefault();
});
$controls.on('click', '.property.active', function(event) {
var $property = $(this);
var $classes = $property.find('.classes > *');
var $current = $classes.filter('.active');
var $next;
// Determine next.
if ($current.length == 0
|| $current.index() == $classes.length - 1)
$next = $classes.first();
else
$next = $current.next();
// Turn on animate all.
$this.addClass('demo-animate-all');
// Deactivate current.
$current.removeClass('active');
$this.removeClass($current.data('class'));
// Activate next.
$next.addClass('active');
$this.addClass($next.data('class'));
// Turn off animate all.
setTimeout(function() {
$this.removeClass('demo-animate-all');
}, 500);
});
$controls.on('click', '.property[data-name="style"]', function(event) {
var $property = $(this);
var $classes = $property.find('.classes > *');
var $current = $classes.filter('.active');
var $next;
// Determine next.
if ($current.length == 0
|| $current.index() == $classes.length - 1)
$next = $classes.first();
else
$next = $current.next();
// Turn on animate all.
$this.addClass('demo-animate-all');
// Deactivate current.
$current.removeClass('active');
$this.removeClass($current.data('class'));
$controls.find('.property[data-requires="' + $current.data('class') + '"]')
.removeClass('active');
$controls.find('.property[data-requires="' + $current.data('class') + '"] > .classes > .active').each(function() {
$(this).removeClass('active');
if ($(this).data('class') != '-')
$this.removeClass($(this).data('class'));
});
// Activate next.
$next.addClass('active');
$this.addClass($next.data('class'));
$controls.find('.property[data-requires="' + $next.data('class') + '"]')
.addClass('active');
$controls.find('.property[data-requires="' + $next.data('class') + '"] > .classes > .default').each(function() {
$(this).addClass('active');
if ($(this).data('class') != '-')
$this.addClass($(this).data('class'));
});
// Turn off animate all.
setTimeout(function() {
$this.removeClass('demo-animate-all');
}, 500);
});
};
// Elements.
// Wrappers.
$('.wrapper').demo_controls(null, {
palette: true
});
// Banner.
$('.banner').demo_controls({
style1: {
'size': {
'-': 'normal',
'fullscreen': 'fullscreen*'
},
'orientation': {
'orient-left': 'left*',
'orient-right': 'right'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style2: {
'size': {
'-': 'normal',
'fullscreen': 'fullscreen*'
},
'orientation': {
'orient-left': 'left',
'orient-center': 'center*',
'orient-right': 'right'
},
'content alignment': {
'content-align-left': 'left',
'content-align-center': 'center*',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style3: {
'size': {
'-': 'normal',
'fullscreen': 'fullscreen*'
},
'orientation': {
'orient-left': 'left',
'orient-right': 'right*'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style4: {
'size': {
'-': 'normal',
'fullscreen': 'fullscreen*'
},
'phone type': {
'iphone': 'iphone*',
'android': 'android'
},
'orientation': {
'orient-left': 'left',
'orient-right': 'right*'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style5: {
'size': {
'-': 'normal',
'fullscreen': 'fullscreen*'
},
'content alignment': {
'content-align-left': 'left',
'content-align-center': 'center*',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
}
});
// Spotlight.
$('.spotlight').demo_controls({
style1: {
'orientation': {
'orient-left': 'left',
'orient-right': 'right*'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left*',
'image-position-center': 'center',
'image-position-right': 'right'
}
},
style2: {
'orientation': {
'orient-left': 'left',
'orient-right': 'right*'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style3: {
'phone type': {
'iphone': 'iphone*',
'android': 'android'
},
'orientation': {
'orient-left': 'left',
'orient-right': 'right*'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style4: {
'size': {
'-size': 'normal',
'fullscreen': 'fullscreen*',
'halfscreen': 'halfscreen'
},
'orientation': {
'orient-left': 'left*',
'orient-center': 'center',
'orient-right': 'right'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
style5: {
'size': {
'-size': 'normal',
'fullscreen': 'fullscreen*',
'halfscreen': 'halfscreen'
},
'orientation': {
'orient-left': 'left*',
'orient-center': 'center',
'orient-right': 'right'
},
'content alignment': {
'content-align-left': 'left*',
'content-align-center': 'center',
'content-align-right': 'right'
},
'image position': {
'image-position-left': 'left',
'image-position-center': 'center*',
'image-position-right': 'right'
}
},
});
// Gallery.
$('.gallery').demo_controls({
style1: {
'size': {
'small': 'small',
'medium': 'medium*',
'big': 'big'
}
},
style2: {
'size': {
'small': 'small',
'medium': 'medium*',
'big': 'big'
}
},
}, {
target: 'previous',
palette: false
});
// Items.
$('.items').demo_controls({
style1: {
'size': {
'small': 'small',
'medium': 'medium*',
'big': 'big'
}
},
style2: {
'size': {
'small': 'small',
'medium': 'medium*',
'big': 'big'
}
},
style3: {
'size': {
'small': 'small',
'medium': 'medium*',
'big': 'big'
}
}
}, {
target: 'previous',
palette: false
});
})(jQuery);

2
assets/js/jquery-3.4.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
assets/js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
assets/js/jquery.scrollex.min.js vendored Normal file
View file

@ -0,0 +1,2 @@
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
!function(t){function e(t,e,n){return"string"==typeof t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on("scroll",function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length>1){for(var r=0;r<this.length;r++)t(this[r]).scrollex(l);return s}if(s.data("_scrollexId"))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>=e};break;case"top-only":h=function(t,e,n,i,o){return i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return n>=i&&o>=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length>1){for(var n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);

2
assets/js/jquery.scrolly.min.js vendored Normal file
View file

@ -0,0 +1,2 @@
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);

341
assets/js/main.js Normal file
View file

@ -0,0 +1,341 @@
/*
Story by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
(function($) {
var $window = $(window),
$body = $('body'),
$wrapper = $('#wrapper');
// Breakpoints.
breakpoints({
xlarge: [ '1281px', '1680px' ],
large: [ '981px', '1280px' ],
medium: [ '737px', '980px' ],
small: [ '481px', '736px' ],
xsmall: [ '361px', '480px' ],
xxsmall: [ null, '360px' ]
});
// Play initial animations on page load.
$window.on('load', function() {
window.setTimeout(function() {
$body.removeClass('is-preload');
}, 100);
});
// Browser fixes.
// IE: Flexbox min-height bug.
if (browser.name == 'ie')
(function() {
var flexboxFixTimeoutId;
$window.on('resize.flexbox-fix', function() {
var $x = $('.fullscreen');
clearTimeout(flexboxFixTimeoutId);
flexboxFixTimeoutId = setTimeout(function() {
if ($x.prop('scrollHeight') > $window.height())
$x.css('height', 'auto');
else
$x.css('height', '100vh');
}, 250);
}).triggerHandler('resize.flexbox-fix');
})();
// Object fit workaround.
if (!browser.canUse('object-fit'))
(function() {
$('.banner .image, .spotlight .image').each(function() {
var $this = $(this),
$img = $this.children('img'),
positionClass = $this.parent().attr('class').match(/image-position-([a-z]+)/);
// Set image.
$this
.css('background-image', 'url("' + $img.attr('src') + '")')
.css('background-repeat', 'no-repeat')
.css('background-size', 'cover');
// Set position.
switch (positionClass.length > 1 ? positionClass[1] : '') {
case 'left':
$this.css('background-position', 'left');
break;
case 'right':
$this.css('background-position', 'right');
break;
default:
case 'center':
$this.css('background-position', 'center');
break;
}
// Hide original.
$img.css('opacity', '0');
});
})();
// Smooth scroll.
$('.smooth-scroll').scrolly();
$('.smooth-scroll-middle').scrolly({ anchor: 'middle' });
// Wrapper.
$wrapper.children()
.scrollex({
top: '30vh',
bottom: '30vh',
initialize: function() {
$(this).addClass('is-inactive');
},
terminate: function() {
$(this).removeClass('is-inactive');
},
enter: function() {
$(this).removeClass('is-inactive');
},
leave: function() {
var $this = $(this);
if ($this.hasClass('onscroll-bidirectional'))
$this.addClass('is-inactive');
}
});
// Items.
$('.items')
.scrollex({
top: '30vh',
bottom: '30vh',
delay: 50,
initialize: function() {
$(this).addClass('is-inactive');
},
terminate: function() {
$(this).removeClass('is-inactive');
},
enter: function() {
$(this).removeClass('is-inactive');
},
leave: function() {
var $this = $(this);
if ($this.hasClass('onscroll-bidirectional'))
$this.addClass('is-inactive');
}
})
.children()
.wrapInner('<div class="inner"></div>');
// Gallery.
$('.gallery')
.wrapInner('<div class="inner"></div>')
.prepend(browser.mobile ? '' : '<div class="forward"></div><div class="backward"></div>')
.scrollex({
top: '30vh',
bottom: '30vh',
delay: 50,
initialize: function() {
$(this).addClass('is-inactive');
},
terminate: function() {
$(this).removeClass('is-inactive');
},
enter: function() {
$(this).removeClass('is-inactive');
},
leave: function() {
var $this = $(this);
if ($this.hasClass('onscroll-bidirectional'))
$this.addClass('is-inactive');
}
})
.children('.inner')
//.css('overflow', 'hidden')
.css('overflow-y', browser.mobile ? 'visible' : 'hidden')
.css('overflow-x', browser.mobile ? 'scroll' : 'hidden')
.scrollLeft(0);
// Style #1.
// ...
// Style #2.
$('.gallery')
.on('wheel', '.inner', function(event) {
var $this = $(this),
delta = (event.originalEvent.deltaX * 10);
// Cap delta.
if (delta > 0)
delta = Math.min(25, delta);
else if (delta < 0)
delta = Math.max(-25, delta);
// Scroll.
$this.scrollLeft( $this.scrollLeft() + delta );
})
.on('mouseenter', '.forward, .backward', function(event) {
var $this = $(this),
$inner = $this.siblings('.inner'),
direction = ($this.hasClass('forward') ? 1 : -1);
// Clear move interval.
clearInterval(this._gallery_moveIntervalId);
// Start interval.
this._gallery_moveIntervalId = setInterval(function() {
$inner.scrollLeft( $inner.scrollLeft() + (5 * direction) );
}, 10);
})
.on('mouseleave', '.forward, .backward', function(event) {
// Clear move interval.
clearInterval(this._gallery_moveIntervalId);
});
// Lightbox.
$('.gallery.lightbox')
.on('click', 'a', function(event) {
var $a = $(this),
$gallery = $a.parents('.gallery'),
$modal = $gallery.children('.modal'),
$modalImg = $modal.find('img'),
href = $a.attr('href');
// Not an image? Bail.
if (!href.match(/\.(jpg|gif|png|mp4)$/))
return;
// Prevent default.
event.preventDefault();
event.stopPropagation();
// Locked? Bail.
if ($modal[0]._locked)
return;
// Lock.
$modal[0]._locked = true;
// Set src.
$modalImg.attr('src', href);
// Set visible.
$modal.addClass('visible');
// Focus.
$modal.focus();
// Delay.
setTimeout(function() {
// Unlock.
$modal[0]._locked = false;
}, 600);
})
.on('click', '.modal', function(event) {
var $modal = $(this),
$modalImg = $modal.find('img');
// Locked? Bail.
if ($modal[0]._locked)
return;
// Already hidden? Bail.
if (!$modal.hasClass('visible'))
return;
// Lock.
$modal[0]._locked = true;
// Clear visible, loaded.
$modal
.removeClass('loaded')
// Delay.
setTimeout(function() {
$modal
.removeClass('visible')
setTimeout(function() {
// Clear src.
$modalImg.attr('src', '');
// Unlock.
$modal[0]._locked = false;
// Focus.
$body.focus();
}, 475);
}, 125);
})
.on('keypress', '.modal', function(event) {
var $modal = $(this);
// Escape? Hide modal.
if (event.keyCode == 27)
$modal.trigger('click');
})
.prepend('<div class="modal" tabIndex="-1"><div class="inner"><img src="" /></div></div>')
.find('img')
.on('load', function(event) {
var $modalImg = $(this),
$modal = $modalImg.parents('.modal');
setTimeout(function() {
// No longer visible? Bail.
if (!$modal.hasClass('visible'))
return;
// Set loaded.
$modal.addClass('loaded');
}, 275);
});
})(jQuery);

32
assets/js/set.js Normal file
View file

@ -0,0 +1,32 @@
// When the user scrolls the page, execute scrollMenu
window.onscroll = function () { scrollMenu() };
// Get the navbar
var navbar = document.getElementById("logo");
// Get the offset position of the navbar
var sticky = navbar.offsetTop;
// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
function scrollMenu() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky")
}
}
// Make a pretty background when menu is open
var bodyBluring = document.getElementById("wrapper")
function blurBody() {
bodyBluring.classList.toggle("blurredout");
}
function removeBlur() {
bodyBluring.classList.remove("blurredout")
}
/// request permission to autoplay

587
assets/js/util.js Normal file
View file

@ -0,0 +1,587 @@
(function($) {
/**
* Generate an indented list of links from a nav. Meant for use with panel().
* @return {jQuery} jQuery object.
*/
$.fn.navList = function() {
var $this = $(this);
$a = $this.find('a'),
b = [];
$a.each(function() {
var $this = $(this),
indent = Math.max(0, $this.parents('li').length - 1),
href = $this.attr('href'),
target = $this.attr('target');
b.push(
'<a ' +
'class="link depth-' + indent + '"' +
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
'>' +
'<span class="indent-' + indent + '"></span>' +
$this.text() +
'</a>'
);
});
return b.join('');
};
/**
* Panel-ify an element.
* @param {object} userConfig User config.
* @return {jQuery} jQuery object.
*/
$.fn.panel = function(userConfig) {
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).panel(userConfig);
return $this;
}
// Vars.
var $this = $(this),
$body = $('body'),
$window = $(window),
id = $this.attr('id'),
config;
// Config.
config = $.extend({
// Delay.
delay: 0,
// Hide panel on link click.
hideOnClick: false,
// Hide panel on escape keypress.
hideOnEscape: false,
// Hide panel on swipe.
hideOnSwipe: false,
// Reset scroll position on hide.
resetScroll: false,
// Reset forms on hide.
resetForms: false,
// Side of viewport the panel will appear.
side: null,
// Target element for "class".
target: $this,
// Class to toggle.
visibleClass: 'visible'
}, userConfig);
// Expand "target" if it's not a jQuery object already.
if (typeof config.target != 'jQuery')
config.target = $(config.target);
// Panel.
// Methods.
$this._hide = function(event) {
// Already hidden? Bail.
if (!config.target.hasClass(config.visibleClass))
return;
// If an event was provided, cancel it.
if (event) {
event.preventDefault();
event.stopPropagation();
}
// Hide.
config.target.removeClass(config.visibleClass);
// Post-hide stuff.
window.setTimeout(function() {
// Reset scroll position.
if (config.resetScroll)
$this.scrollTop(0);
// Reset forms.
if (config.resetForms)
$this.find('form').each(function() {
this.reset();
});
}, config.delay);
};
// Vendor fixes.
$this
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
.css('-webkit-overflow-scrolling', 'touch');
// Hide on click.
if (config.hideOnClick) {
$this.find('a')
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
$this
.on('click', 'a', function(event) {
var $a = $(this),
href = $a.attr('href'),
target = $a.attr('target');
if (!href || href == '#' || href == '' || href == '#' + id)
return;
// Cancel original event.
event.preventDefault();
event.stopPropagation();
// Hide panel.
$this._hide();
// Redirect to href.
window.setTimeout(function() {
if (target == '_blank')
window.open(href);
else
window.location.href = href;
}, config.delay + 10);
});
}
// Event: Touch stuff.
$this.on('touchstart', function(event) {
$this.touchPosX = event.originalEvent.touches[0].pageX;
$this.touchPosY = event.originalEvent.touches[0].pageY;
})
$this.on('touchmove', function(event) {
if ($this.touchPosX === null
|| $this.touchPosY === null)
return;
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
th = $this.outerHeight(),
ts = ($this.get(0).scrollHeight - $this.scrollTop());
// Hide on swipe?
if (config.hideOnSwipe) {
var result = false,
boundary = 20,
delta = 50;
switch (config.side) {
case 'left':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
break;
case 'right':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
break;
case 'top':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
break;
case 'bottom':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
break;
default:
break;
}
if (result) {
$this.touchPosX = null;
$this.touchPosY = null;
$this._hide();
return false;
}
}
// Prevent vertical scrolling past the top or bottom.
if (($this.scrollTop() < 0 && diffY < 0)
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
event.preventDefault();
event.stopPropagation();
}
});
// Event: Prevent certain events inside the panel from bubbling.
$this.on('click touchend touchstart touchmove', function(event) {
event.stopPropagation();
});
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
$this.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.removeClass(config.visibleClass);
});
// Body.
// Event: Hide panel on body click/tap.
$body.on('click touchend', function(event) {
$this._hide(event);
});
// Event: Toggle.
$body.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.toggleClass(config.visibleClass);
});
// Window.
// Event: Hide on ESC.
if (config.hideOnEscape)
$window.on('keydown', function(event) {
if (event.keyCode == 27)
$this._hide(event);
});
return $this;
};
/**
* Apply "placeholder" attribute polyfill to one or more forms.
* @return {jQuery} jQuery object.
*/
$.fn.placeholder = function() {
// Browser natively supports placeholders? Bail.
if (typeof (document.createElement('input')).placeholder != 'undefined')
return $(this);
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).placeholder();
return $this;
}
// Vars.
var $this = $(this);
// Text, TextArea.
$this.find('input[type=text],textarea')
.each(function() {
var i = $(this);
if (i.val() == ''
|| i.val() == i.attr('placeholder'))
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('blur', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == '')
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('focus', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == i.attr('placeholder'))
i
.removeClass('polyfill-placeholder')
.val('');
});
// Password.
$this.find('input[type=password]')
.each(function() {
var i = $(this);
var x = $(
$('<div>')
.append(i.clone())
.remove()
.html()
.replace(/type="password"/i, 'type="text"')
.replace(/type=password/i, 'type=text')
);
if (i.attr('id') != '')
x.attr('id', i.attr('id') + '-polyfill-field');
if (i.attr('name') != '')
x.attr('name', i.attr('name') + '-polyfill-field');
x.addClass('polyfill-placeholder')
.val(x.attr('placeholder')).insertAfter(i);
if (i.val() == '')
i.hide();
else
x.hide();
i
.on('blur', function(event) {
event.preventDefault();
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
});
x
.on('focus', function(event) {
event.preventDefault();
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
x.hide();
i
.show()
.focus();
})
.on('keypress', function(event) {
event.preventDefault();
x.val('');
});
});
// Events.
$this
.on('submit', function() {
$this.find('input[type=text],input[type=password],textarea')
.each(function(event) {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
i.attr('name', '');
if (i.val() == i.attr('placeholder')) {
i.removeClass('polyfill-placeholder');
i.val('');
}
});
})
.on('reset', function(event) {
event.preventDefault();
$this.find('select')
.val($('option:first').val());
$this.find('input,textarea')
.each(function() {
var i = $(this),
x;
i.removeClass('polyfill-placeholder');
switch (this.type) {
case 'submit':
case 'reset':
break;
case 'password':
i.val(i.attr('defaultValue'));
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
else {
i.show();
x.hide();
}
break;
case 'checkbox':
case 'radio':
i.attr('checked', i.attr('defaultValue'));
break;
case 'text':
case 'textarea':
i.val(i.attr('defaultValue'));
if (i.val() == '') {
i.addClass('polyfill-placeholder');
i.val(i.attr('placeholder'));
}
break;
default:
i.val(i.attr('defaultValue'));
break;
}
});
});
return $this;
};
/**
* Moves elements to/from the first positions of their respective parents.
* @param {jQuery} $elements Elements (or selector) to move.
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
*/
$.prioritize = function($elements, condition) {
var key = '__prioritize';
// Expand $elements if it's not already a jQuery object.
if (typeof $elements != 'jQuery')
$elements = $($elements);
// Step through elements.
$elements.each(function() {
var $e = $(this), $p,
$parent = $e.parent();
// No parent? Bail.
if ($parent.length == 0)
return;
// Not moved? Move it.
if (!$e.data(key)) {
// Condition is false? Bail.
if (!condition)
return;
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
$p = $e.prev();
// Couldn't find anything? Means this element's already at the top, so bail.
if ($p.length == 0)
return;
// Move element to top of parent.
$e.prependTo($parent);
// Mark element as moved.
$e.data(key, $p);
}
// Moved already?
else {
// Condition is true? Bail.
if (condition)
return;
$p = $e.data(key);
// Move element back to its original location (using our placeholder).
$e.insertAfter($p);
// Unmark element as moved.
$e.removeData(key);
}
});
};
})(jQuery);

Binary file not shown.

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 674 KiB

Some files were not shown because too many files have changed in this diff Show more