components/partials/Contributors.vue (108 lines of code) (raw):

<template> <div class="post-contributors"> <h3> <span class="inline-block align-middle">{{ $t('contributorsWithThisDocument') }}</span> <a target="_blank" :href="sourcePath" :title="$t('editInThisDocumentTip')" class="inline-block align-middle text-sm" > <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 inline-block align-middle" fill="none" viewBox="0 0 24 24" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" /> </svg> <span class="inline-block align-middle">{{ $t('editInGithub') }}</span> </a> </h3> <div v-if="contributors && contributors.length" class="post-contributors-list" > <a v-for="contributor of contributors" :key="contributor" :href="`https://github.com/${contributor}`" target="_blank" class="post-contributor" > <!-- <img :alt="contributor" :src="`https://avatars.githubusercontent.com/${contributor}?size=60`" loading="lazy" /> --> <span>{{ contributor }}</span> </a> </div> </div> </template> <script lang="ts"> import { computed, defineComponent } from '@vue/composition-api' import allContributors from '../helper/contributors' import { getSourcePath } from '../helper/post' export default defineComponent({ props: { path: String }, setup(props) { const contributors = computed(() => { return allContributors[`contents/${props.path || ''}.md`] }) const sourcePath = computed(() => { return getSourcePath(props.path!) }) return { contributors, sourcePath } } }) </script> <style lang="postcss"> .post-contributors { margin-bottom: 50px; padding-top: 10px; border-top: 1px solid #ddd; @apply text-blue-gray-600; a { @apply text-blue-gray-500; } .post-contributors-list { margin-top: 10px; } .post-contributor { display: inline-block; margin-right: 15px; margin-top: 10px; @apply border-blue-gray-200 border; @apply rounded-lg; &:hover { text-decoration: none; @apply border-blue-gray-300; } img { width: 40px; height: 40px; @apply rounded-l-md; display: inline-block; } span { display: inline-block; /* margin: 0 8px 0 5px; */ margin: 2px 8px; position: relative; /* top: 2px; */ } } } .post-edit { margin: 20px 0; } </style>