easter egg 😈

This commit is contained in:
Avris 2021-11-15 22:17:50 +01:00
parent b4f9313fce
commit 254e8a7866
10 changed files with 88 additions and 16 deletions

View File

@ -6,7 +6,7 @@
<img :src="post.hero" class="w-100"/>
</nuxt-link>
<nuxt-link :to="`/blog/${post.slug}`" class="card-body text-center h4 p-3 mb-0">
<span>{{post.title}}</span>
<Spelling :text="post.title"/>
</nuxt-link>
<div class="card-footer small">
<ul class="list-inline mb-0">
@ -20,8 +20,8 @@
{{author}}
</nuxt-link>
<span v-else class="badge bg-light text-dark border">
{{author}}
</span>
{{author}}
</span>
</li>
</ul>
</div>

62
components/EasterEgg.vue Normal file
View File

@ -0,0 +1,62 @@
<template>
<div v-if="spelling === 'futurysci'" class="my-5">
<Separator icon="smile-wink"/>
<div class="row my-5">
<div class="col-12 col-md-6 offset-md-3">
<div class="alert alert-warning">
<p>
<Spelling text="Gratulacje! Udało Ci się odblokować"/> <a href="https://www.webopedia.com/definitions/easter-egg/" target="_blank" rel="noopener">easter egga</a>!
</p>
<p>
<Spelling text="Tak wyglądałaby nasza strona, jeśli trzymałobyśmy się postulatów"/>
<a href="https://futurysci.avris.it" target="_blank" rel="noopener">Manifestu Brunona Jaśeńskiego w sprawie ortografji fonetycznej.</a>
</p>
<p>
<a href="https://futurysci.avris.it" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><Spelling text="Więcej informacji"/></a>
<button class="btn btn-outline-danger btn-sm" @click="setSpelling('')"><Spelling text="Wyłącz"/></button>
</p>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
const konami = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
export default {
data() {
return {
lastCharacters: [],
}
},
mounted() {
if (!process.client || this.config.locale !== 'pl') { return; }
window.addEventListener('keydown', this.keypressed);
},
beforeUnmount() {
window.removeEventListener('keydown', this.keypressed);
},
methods: {
async keypressed(e) {
this.lastCharacters = [...this.lastCharacters.slice(-9), e.key];
if (this.lastCharacters.join(',') === konami.join(',')) {
await this.$alert('Gratulacje! Udało Ći śę odblokować easter egga!<br/>Szczeguły w stopce strony!');
this.setSpelling('futurysci');
}
},
setSpelling(spelling) {
this.$store.commit('setSpelling', spelling);
this.$cookies.set('spelling', this.$store.state.spelling);
},
},
computed: {
...mapState([
'spelling',
]),
},
}
</script>

View File

@ -88,5 +88,6 @@
</div>
</div>
</div>
<EasterEgg/>
</footer>
</template>

View File

@ -50,8 +50,8 @@
</div>
</div>
</header>
<!-- a banner for every occasion ;) -->
<div v-if="config.locale === 'pl' && new Date() < new Date(2021, 11, 14, 20, 0, 0) && $route.path === '/'" class="container">
<!-- a banner for every occasion ;)
<div v-if="config.locale === 'pl' && new Date() < new Date(2021, 10, 14, 20, 0, 0) && $route.path === '/'" class="container">
<div class="alert alert-warning my-3 d-flex align-items-center">
<Icon v="spell-check" size="4" class="mx-4"/>
<div>
@ -70,7 +70,7 @@
</div>
</div>
</div>
<!-- -->
-->
<div v-if="locales[config.locale].published === false" class="alert alert-warning mb-0">
<Icon v="exclamation-triangle"/>
This language version is still under construction!

View File

@ -63,7 +63,7 @@
</div>
<ul v-if="source.fragments.length">
<li v-for="fragment in source.fragments" class="text-break">
<T>quotation.start</T><span v-html="addMarks(fragment.replace(/\n/g, '<br/>'))"></span><T>quotation.end</T>
<T>quotation.start</T><Spelling :text="addMarks(fragment.replace(/\n/g, '<br/>'))"></Spelling><T>quotation.end</T>
</li>
</ul>
<div v-if="source.versions.length" class="my-3">

View File

@ -3,21 +3,19 @@
<section>
<h2>
<Icon v="tags"/>
Sugerowane formy niebinarne i neutralne
<Spelling text="Sugerowane formy niebinarne i neutralne"/>
</h2>
<p>
Choć nie narzucamy i nie wartościujemy żadnych spośród propozycji
niebinarnego i neutralnego płciowo języka,
to dostrzegamy też potrzebę zasugerowania, które formy zdają się
według naszych obserwacji i <nuxt-link to="/blog/spis-2021">badań</nuxt-link>
mieć największy potencjał, by stać się domyślnymi, normatywnymi formami gramatycznymi.
Szczegóły w naszym Manifeście:
<Spelling text="Choć nie narzucamy i nie wartościujemy żadnych spośród propozycji niebinarnego i neutralnego płciowo języka,
to dostrzegamy też potrzebę zasugerowania, które formy zdają się według naszych obserwacji i"/>
<nuxt-link to="/blog/spis-2021">badań</nuxt-link>
<Spelling text="mieć największy potencjał, by stać się „domyślnymi”, normatywnymi formami gramatycznymi. Szczegóły w naszym Manifeście:"/>
</p>
<nuxt-link to="/blog/manifest" class="btn btn-primary d-block">
<Icon v="file-contract"/>
Manifest Niebinarnej Polszczyzny
<Spelling text="Manifest Niebinarnej Polszczyzny"/>
</nuxt-link>
<section class="d-flex flex-column flex-md-row">

View File

@ -14,6 +14,7 @@
"@nuxtjs/pwa": "^3.0.0-beta.20",
"@nuxtjs/redirect-module": "^0.3.1",
"avris-columnist": "^0.2.2",
"avris-futurus": "^1.0.2",
"avris-sorter": "^0.0.3",
"aws-sdk": "^2.799.0",
"body-parser": "^1.19.0",

View File

@ -1,5 +1,6 @@
import {mapState} from "vuex";
import zhConverter from "zh_cn_zh_tw";
import futurus from 'avris-futurus';
export default {
computed: {
@ -13,6 +14,10 @@ export default {
return zhConverter.convertToSimplifiedChinese(str);
}
if (this.config.locale === 'pl' && this.spelling === 'futurysci') {
return futurus.futuriseText(str);
}
return str;
}
},

View File

@ -9,7 +9,7 @@
</router-link>
</p>
<div v-html="content"></div>
<Spelling :text="content"/>
<Separator icon="heart"/>

View File

@ -2063,6 +2063,11 @@ avris-daemonise@^0.0.2:
fs "^0.0.1-security"
yargs "^12.0.1"
avris-futurus@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/avris-futurus/-/avris-futurus-1.0.2.tgz#cb9929de17b4f0779d81d850d86216922a7c76f0"
integrity sha512-qWLpSJRXwgBYyBaJmUOd/OOKdanb5EmfhFD1cMqTcu9256RR//9rvlr7rFYoWoQMoyEDqZa7WFvKFgmUq9vaAw==
avris-sorter@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/avris-sorter/-/avris-sorter-0.0.3.tgz#8683de663ec521ae1b4da1c576dc84c9a7dd9f38"