2020-07-22 13:19:23 -07:00
|
|
|
<template>
|
|
|
|
<div class="container">
|
|
|
|
<Homepage/>
|
|
|
|
<h1>
|
|
|
|
<Icon v="books"/>
|
2020-07-24 05:14:23 -07:00
|
|
|
Niebinarna polszczyzna w literaturze, prasie, filmach i serialach
|
2020-07-22 13:19:23 -07:00
|
|
|
</h1>
|
|
|
|
|
|
|
|
<LiteratureMenu all/>
|
|
|
|
|
2020-07-24 07:15:28 -07:00
|
|
|
<section>
|
|
|
|
<ul>
|
|
|
|
<li v-for="template in templates" v-if="template.sources.length">
|
2020-07-26 06:43:17 -07:00
|
|
|
<a :href="'#' + toId(template.name())">
|
2020-07-24 07:15:28 -07:00
|
|
|
{{ template.description }}
|
|
|
|
<small v-if="template.name">({{ template.name() }})</small>
|
|
|
|
</a>
|
|
|
|
</li>
|
2020-07-26 06:43:17 -07:00
|
|
|
<li v-for="(sources, multiple) in sourcesForMultipleForms">
|
|
|
|
<a :href="'#' + toId(multiple)">
|
|
|
|
Formy wymienne
|
|
|
|
<small>({{ multiple.replace(/&/g, ' lub ') }})</small>
|
|
|
|
</a>
|
|
|
|
</li>
|
2020-07-25 10:21:52 -07:00
|
|
|
<li>
|
|
|
|
<a href="#inne">
|
|
|
|
Inne formy
|
|
|
|
</a>
|
|
|
|
</li>
|
2020-07-24 07:15:28 -07:00
|
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
|
2020-07-24 05:14:37 -07:00
|
|
|
<section>
|
|
|
|
<Share title="Niebinarna polszczyzna w literaturze, prasie, filmach i serialach"/>
|
|
|
|
</section>
|
|
|
|
|
2020-07-27 10:06:41 -07:00
|
|
|
<section>
|
|
|
|
<span class="mr-2 mb-3">
|
|
|
|
<Icon v="filter"/>
|
|
|
|
Filtruj:
|
|
|
|
</span>
|
|
|
|
<div class="btn-group">
|
|
|
|
<button v-for="(config, type) in sourceTypes"
|
|
|
|
:class="['btn', type === filter ? 'btn-primary' : 'btn-outline-primary']"
|
|
|
|
@click="filter = type"
|
|
|
|
>
|
|
|
|
<Icon :v="config.icon"/>
|
|
|
|
{{ config.text }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
|
2020-07-25 10:21:52 -07:00
|
|
|
<section v-for="template in templates" v-if="template.sources.length">
|
2020-07-26 06:43:17 -07:00
|
|
|
<h2 class="h4" :id="toId(template.name())">
|
2020-07-24 07:15:28 -07:00
|
|
|
<nuxt-link :to="'/' + template.pronoun()">
|
2020-07-22 13:19:23 -07:00
|
|
|
{{ template.description }}
|
2020-07-24 07:15:28 -07:00
|
|
|
<small>({{ template.name() }})</small>
|
|
|
|
</nuxt-link>
|
|
|
|
</h2>
|
2020-07-22 13:19:23 -07:00
|
|
|
|
2020-07-24 07:15:28 -07:00
|
|
|
<ul class="list-unstyled">
|
|
|
|
<li v-for="source in template.sources">
|
2020-07-27 10:06:41 -07:00
|
|
|
<Source :name="source" :filter="filter"/>
|
2020-07-24 07:15:28 -07:00
|
|
|
</li>
|
|
|
|
</ul>
|
2020-07-25 10:21:52 -07:00
|
|
|
</section>
|
|
|
|
|
2020-07-26 06:43:17 -07:00
|
|
|
<section v-for="(sources, multiple) in sourcesForMultipleForms">
|
|
|
|
<h2 class="h4" :id="toId(multiple)">
|
|
|
|
<nuxt-link :to="'/' + multiple">
|
|
|
|
Formy wymienne
|
|
|
|
<small>({{ multiple.replace(/&/g, ' lub ') }})</small>
|
|
|
|
</nuxt-link>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
<ul class="list-unstyled">
|
|
|
|
<li v-for="source in sources">
|
2020-07-27 10:06:41 -07:00
|
|
|
<Source :name="source" :filter="filter"/>
|
2020-07-26 06:43:17 -07:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
|
2020-07-25 10:21:52 -07:00
|
|
|
<section>
|
|
|
|
<h2 class="h4" id="inne">
|
|
|
|
Inne formy
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
<ul class="list-unstyled">
|
|
|
|
<li v-for="source in otherSources">
|
2020-07-27 10:06:41 -07:00
|
|
|
<Source :name="source" :filter="filter"/>
|
2020-07-25 10:21:52 -07:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</section>
|
2020-07-22 13:19:23 -07:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2020-07-26 06:43:17 -07:00
|
|
|
import { templates, sources, sourcesForMultipleForms } from '../src/data'
|
2020-07-27 10:06:41 -07:00
|
|
|
import { Source } from "../src/classes";
|
2020-07-22 13:19:23 -07:00
|
|
|
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
2020-07-25 10:21:52 -07:00
|
|
|
templates: templates,
|
2020-07-26 06:43:17 -07:00
|
|
|
sourcesForMultipleForms: sourcesForMultipleForms,
|
2020-07-27 10:06:41 -07:00
|
|
|
sourceTypes: Source.TYPES,
|
|
|
|
filter: '',
|
2020-07-22 13:19:23 -07:00
|
|
|
};
|
|
|
|
},
|
2020-07-28 10:04:43 -07:00
|
|
|
mounted() {
|
|
|
|
if (process.client && window.location.hash) {
|
|
|
|
const $hashEl = this.$el.querySelector(window.location.hash);
|
|
|
|
if ($hashEl) {
|
|
|
|
$hashEl.scrollIntoView();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2020-07-22 13:19:23 -07:00
|
|
|
head() {
|
|
|
|
const title = 'Niebinarna polszczyzna w literaturze';
|
|
|
|
return {
|
|
|
|
title: title,
|
|
|
|
meta: [
|
|
|
|
{ hid: 'og:title', property: 'og:title', content: title },
|
|
|
|
{ hid: 'twitter:title', property: 'twitter:title', content: title },
|
|
|
|
],
|
|
|
|
}
|
|
|
|
},
|
2020-07-25 10:21:52 -07:00
|
|
|
computed: {
|
|
|
|
otherSources() {
|
|
|
|
const other = new Set(Object.keys(sources));
|
|
|
|
for (let template of Object.values(this.templates)) {
|
|
|
|
for (let source of template.sources) {
|
|
|
|
other.delete(source);
|
|
|
|
}
|
|
|
|
}
|
2020-07-26 06:43:17 -07:00
|
|
|
for (let sources of Object.values(this.sourcesForMultipleForms)) {
|
|
|
|
for (let source of sources) {
|
|
|
|
other.delete(source);
|
|
|
|
}
|
|
|
|
}
|
2020-07-25 10:21:52 -07:00
|
|
|
return other;
|
|
|
|
},
|
|
|
|
},
|
2020-07-26 06:43:17 -07:00
|
|
|
methods: {
|
|
|
|
toId(str) {
|
|
|
|
return str.replace(/\//g, '-').replace(/&/g, '_');
|
|
|
|
}
|
|
|
|
},
|
2020-07-22 13:19:23 -07:00
|
|
|
}
|
|
|
|
</script>
|