86 lines
1.4 KiB
Vue
86 lines
1.4 KiB
Vue
<template>
|
|
<div class="mk-post-card">
|
|
<a :href="`/${post.user.username}/${post.id}`">
|
|
<header>
|
|
<img :src="`${post.user.avatar_url}?thumbnail&size=64`" alt="avatar"/><h3>{{ post.user.name }}</h3>
|
|
</header>
|
|
<div>
|
|
{{ text }}
|
|
</div>
|
|
<mk-time :time="post.created_at"/>
|
|
</a>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import Vue from 'vue';
|
|
import summary from '../../../../../common/get-post-summary';
|
|
|
|
export default Vue.extend({
|
|
props: ['post'],
|
|
computed: {
|
|
text(): string {
|
|
return summary(this.post);
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<style lang="stylus" scoped>
|
|
.mk-post-card
|
|
display inline-block
|
|
width 150px
|
|
//height 120px
|
|
font-size 12px
|
|
background #fff
|
|
border-radius 4px
|
|
|
|
> a
|
|
display block
|
|
color #2c3940
|
|
|
|
&:hover
|
|
text-decoration none
|
|
|
|
> header
|
|
> img
|
|
position absolute
|
|
top 8px
|
|
left 8px
|
|
width 28px
|
|
height 28px
|
|
border-radius 6px
|
|
|
|
> h3
|
|
display inline-block
|
|
overflow hidden
|
|
width calc(100% - 45px)
|
|
margin 8px 0 0 42px
|
|
line-height 28px
|
|
white-space nowrap
|
|
text-overflow ellipsis
|
|
font-size 12px
|
|
|
|
> div
|
|
padding 2px 8px 8px 8px
|
|
height 60px
|
|
overflow hidden
|
|
white-space normal
|
|
|
|
&:after
|
|
content ""
|
|
display block
|
|
position absolute
|
|
top 40px
|
|
left 0
|
|
width 100%
|
|
height 20px
|
|
background linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 100%)
|
|
|
|
> .mk-time
|
|
display inline-block
|
|
padding 8px
|
|
color #aaa
|
|
|
|
</style>
|