This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/routes/template.vue

104 lines
3.2 KiB
Vue
Raw Normal View History

2020-07-22 13:19:23 -07:00
<template>
<NotFound v-if="!selectedTemplate"/>
<div class="container" v-else>
2020-09-11 03:17:29 -07:00
<h2>
2020-07-22 13:19:23 -07:00
<Icon v="tag"/>
<T>template.intro</T>:
2020-09-11 03:17:29 -07:00
</h2>
2020-07-22 13:19:23 -07:00
<section>
<div class="alert alert-primary">
<h2 class="text-center mb-0">
<strong>{{ selectedTemplate.name(glue) }}</strong>
2020-07-22 13:19:23 -07:00
</h2>
<p class="h6 small text-center mb-0 mt-2" v-if="selectedTemplate.description">
<em>
2020-07-26 04:14:25 -07:00
({{Array.isArray(selectedTemplate.description)
? ('Formy wymienne: ' + selectedTemplate.description.join(glue))
2020-07-26 04:14:25 -07:00
: selectedTemplate.description
}})
2020-07-22 13:19:23 -07:00
</em>
</p>
</div>
</section>
<section>
<h2 class="h4">
<Icon v="file-signature"/>
<T>template.examples</T>:
2020-07-22 13:19:23 -07:00
</h2>
<ul>
<li v-for="example in examples" class="my-1">
2020-09-13 13:15:44 -07:00
<Example :example="example" :template="selectedTemplate" :counter="counter"/>
</li>
2020-07-22 13:19:23 -07:00
</ul>
</section>
2020-09-28 09:29:13 -07:00
<GrammarTables :selectedTemplate="selectedTemplate" :counter="counter"/>
2020-08-03 10:47:53 -07:00
2020-07-24 11:21:30 -07:00
<section v-if="selectedTemplate.history">
2020-08-25 03:03:48 -07:00
<div class="alert alert-info" v-for="part in selectedTemplate.history.split('@')">
2020-07-24 11:21:30 -07:00
<Icon v="info-circle"/>
2020-08-25 03:03:48 -07:00
<span v-html="part"></span>
2020-07-24 11:21:30 -07:00
</div>
</section>
2020-07-24 05:14:37 -07:00
<section>
<Share :title="`${$t('template.intro')}: ${selectedTemplate.name(glue)}`"/>
2020-07-24 05:14:37 -07:00
</section>
<section v-if="Object.keys(sources).length">
<Literature :sources="sources"/>
2020-07-22 13:19:23 -07:00
</section>
<Separator icon="info"/>
<section class="mb-0">
<h2 class="h4">
<Icon v="info-circle"/>
<T>home.whatisit</T>:
2020-07-22 13:19:23 -07:00
</h2>
<T>home.about</T>
2020-07-22 13:19:23 -07:00
<Homepage align="center"/>
</section>
</div>
</template>
<script>
import { examples, templates, getSources } from "~/src/data";
2020-09-11 06:59:05 -07:00
import { buildTemplate } from "../src/buildTemplate";
2020-09-23 12:29:55 -07:00
import { head } from "../src/helpers";
2020-09-28 09:29:13 -07:00
import GrammarTables from "../data/GrammarTables";
2020-07-22 13:19:23 -07:00
export default {
2020-09-28 09:29:13 -07:00
components: { GrammarTables },
2020-07-22 13:19:23 -07:00
data() {
return {
examples: examples,
templates: templates,
glue: ' ' + this.$t('template.or') + ' ',
2020-07-22 13:19:23 -07:00
selectedTemplate: buildTemplate(templates, this.$route.path.substr(1).replace(/\/$/, '')),
2020-07-26 04:14:25 -07:00
counter: 0,
}
},
mounted() {
if (process.client) {
setInterval(_ => this.counter++, 1000);
2020-07-22 13:19:23 -07:00
}
},
head() {
2020-09-23 12:29:55 -07:00
return this.selectedTemplate ? head({
title: `${this.$t('template.intro')}: ${this.selectedTemplate.name(this.glue)}`,
2020-09-23 12:29:55 -07:00
banner: `banner${this.$route.path.replace(/\/$/, '')}.png`,
}) : {};
2020-07-22 13:19:23 -07:00
},
computed: {
sources() {
return getSources(this.selectedTemplate);
},
},
2020-07-22 13:19:23 -07:00
}
</script>