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/blog.vue

73 lines
2.5 KiB
Vue

<template>
<div>
<LinksNav/>
<h2>
<Icon v="pen-nib"/>
<T>links.blog</T>
</h2>
<div class="columnist-wall row" ref="posts">
<div v-for="post in posts" class="columnist-column col-12 col-sm-6 col-md-4 mb-3">
<div class="card shadow">
<nuxt-link v-if="post.hero" :to="`/blog/${post.slug}`" class="">
<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>
</nuxt-link>
<div class="card-footer small">
<ul class="list-inline mb-0">
<li class="list-inline-item small">
<Icon v="calendar"/>
{{post.date}}
</li>
<li v-for="author in post.authors" class="list-inline-item">
<nuxt-link v-if="author.startsWith('@')" :to="`/${author}`" class="badge bg-light text-dark border">
<Icon v="collective-logo.svg" class="invertible"/>
{{author}}
</nuxt-link>
<span v-else class="badge bg-light text-dark border">
{{author}}
</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<Support/>
<section>
<Share :title="$t('links.blog')"/>
</section>
</div>
</template>
<script>
import { head } from "../src/helpers";
import Columnist from 'avris-columnist';
export default {
async asyncData({app}) {
return {
posts: await app.$axios.$get(`/blog`),
}
},
mounted() {
if (!process.client) { return; }
const columnist = new Columnist(this.$refs.posts);
columnist.start();
},
head() {
return head({
title: this.$t('links.blog'),
});
},
};
</script>
<style lang="scss" scoped>
.columnist-wall > .columnist-column {
transition: margin-top .2s ease-in-out;
}
</style>