easter egg 😈
This commit is contained in:
parent
b4f9313fce
commit
254e8a7866
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -88,5 +88,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<EasterEgg/>
|
||||
</footer>
|
||||
</template>
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
},
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</router-link>
|
||||
</p>
|
||||
|
||||
<div v-html="content"></div>
|
||||
<Spelling :text="content"/>
|
||||
|
||||
<Separator icon="heart"/>
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
Reference in New Issue