#14 brakująca literatura dla on/jego

This commit is contained in:
Andrea Vos 2020-07-24 21:22:33 +02:00
parent 9ed9176aeb
commit 6ea869f519
4 changed files with 35 additions and 15 deletions

View File

@ -40,8 +40,8 @@
<Share :title="'Moje zaimki to: ' + selectedTemplate.name()"/> <Share :title="'Moje zaimki to: ' + selectedTemplate.name()"/>
</section> </section>
<section v-if="templates[selectedTemplate.pronoun()] && templates[selectedTemplate.pronoun()].sources.length"> <section v-if="getTemplate(selectedTemplate.name()) && getTemplate(selectedTemplate.name()).sources.length">
<Literature :sources="templates[selectedTemplate.pronoun()].sources"/> <Literature :sources="getTemplate(selectedTemplate.name()).sources"/>
</section> </section>
<Separator icon="info"/> <Separator icon="info"/>
@ -58,13 +58,14 @@
<script> <script>
import { examples, templates } from "~/src/data"; import { examples, templates } from "~/src/data";
import buildTemplate from "../src/buildTemplate"; import { buildTemplate, getTemplate } from "../src/buildTemplate";
export default { export default {
data() { data() {
return { return {
examples: examples, examples: examples,
templates: templates, templates: templates,
getTemplate: getTemplate,
selectedTemplate: buildTemplate(this.$route.path.substr(1)), selectedTemplate: buildTemplate(this.$route.path.substr(1)),
} }

View File

@ -42,7 +42,7 @@
Sugestie: Sugestie:
</li> </li>
<li class="list-inline-item" v-for="(template, pronoun) in templates"> <li class="list-inline-item" v-for="(template, pronoun) in templates">
<button :class="['btn', pronoun === selectedTemplate.morphemes.pronoun_n ? 'btn-primary' : 'btn-outline-primary', 'btn-sm']" <button :class="['btn', template.name() === selectedTemplate.name() ? 'btn-primary' : 'btn-outline-primary', 'btn-sm']"
@click="selectedTemplate = templates[pronoun].clone()" @click="selectedTemplate = templates[pronoun].clone()"
> >
{{template.name()}} {{template.name()}}
@ -100,8 +100,8 @@
</div> </div>
</div> </div>
</div> </div>
<div class="card-body border-top" v-if="templates[selectedTemplate.pronoun()] && templates[selectedTemplate.pronoun()].sources.length"> <div class="card-body border-top" v-if="getTemplate(selectedTemplate.name()) && getTemplate(selectedTemplate.name()).sources.length">
<Literature :sources="templates[selectedTemplate.pronoun()].sources"/> <Literature :sources="getTemplate(selectedTemplate.name()).sources"/>
</div> </div>
</div> </div>
</section> </section>
@ -124,7 +124,7 @@
<li class="my-2"> <li class="my-2">
<Icon v="books"/> <Icon v="books"/>
<nuxt-link to="/literatura"> <nuxt-link to="/literatura">
Niebinarna polszczyzna w literaturze Niebinarna polszczyzna w literaturze, prasie, filmach i serialach
</nuxt-link> </nuxt-link>
<!-- https://docs.google.com/document/d/1ddgYxlZk0S6sDx7eVCMMXHQEvtXpDztpYQxomALXBXM/edit --> <!-- https://docs.google.com/document/d/1ddgYxlZk0S6sDx7eVCMMXHQEvtXpDztpYQxomALXBXM/edit -->
przykłady zebrane przez Pawła Dembowskiego. przykłady zebrane przez Pawła Dembowskiego.
@ -160,12 +160,14 @@
import { examples, templates } from "~/src/data"; import { examples, templates } from "~/src/data";
import Compressor from "../src/compressor"; import Compressor from "../src/compressor";
import ClipboardJS from 'clipboard'; import ClipboardJS from 'clipboard';
import { getTemplate } from "../src/buildTemplate";
export default { export default {
data() { data() {
return { return {
examples: examples, examples: examples,
templates: templates, templates: templates,
getTemplate: getTemplate,
selectedTemplate: templates['on'].clone(), selectedTemplate: templates['on'].clone(),
selectedMorpheme: '', selectedMorpheme: '',
@ -178,11 +180,24 @@
}, },
computed: { computed: {
usedBase() { usedBase() {
const pronoun = this.selectedTemplate.morphemes.pronoun_n; const name = this.selectedTemplate.name();
return this.templates[pronoun] !== undefined for (let key in this.templates) {
&& this.selectedTemplate.equals(this.templates[pronoun]) if (this.templates.hasOwnProperty(key)) {
? pronoun if (key === name) {
: null; return key;
}
for (let alias of this.templates[key].aliases) {
if (alias === name) {
return key;
}
}
}
}
return null;
},
usedBaseEquals() {
return this.templates[this.usedBase].equals(this.selectedTemplate);
}, },
longLink() { longLink() {
const base = this.templates[this.selectedTemplate.morphemes.pronoun_n]; const base = this.templates[this.selectedTemplate.morphemes.pronoun_n];
@ -195,7 +210,7 @@
if (!this.selectedTemplate.pronoun()) { if (!this.selectedTemplate.pronoun()) {
return null; return null;
} }
return process.env.baseUrl + '/' + (this.usedBase || this.longLink); return process.env.baseUrl + '/' + (this.usedBaseEquals ? this.usedBase : this.longLink);
}, },
}, },
methods: { methods: {

View File

@ -1,4 +1,4 @@
import buildTemplate from "../src/buildTemplate"; import { buildTemplate } from "../src/buildTemplate";
import { createCanvas, registerFont, loadImage } from 'canvas'; import { createCanvas, registerFont, loadImage } from 'canvas';
export default async function (req, res, next) { export default async function (req, res, next) {

View File

@ -13,7 +13,11 @@ for (let base in templates) {
} }
} }
export default (path) => { export const getTemplate = (id) => {
return templatesWithAliases[id];
}
export const buildTemplate = (path) => {
const templateStr = path.split(','); const templateStr = path.split(',');
const base = templatesWithAliases[templateStr[0]] const base = templatesWithAliases[templateStr[0]]