Add social media share btns

This commit is contained in:
samaradel
2021-07-25 09:00:40 +00:00
parent 23e367179f
commit 52ded64556
4 changed files with 77 additions and 6 deletions

View File

@@ -32,7 +32,8 @@
"tailwindcss-gradients": "^3.0.0", "tailwindcss-gradients": "^3.0.0",
"tailwindcss-tables": "^0.4.0", "tailwindcss-tables": "^0.4.0",
"v-tooltip": "^2.0.3", "v-tooltip": "^2.0.3",
"vue-markdown": "^2.1.2" "vue-markdown": "^2.1.2",
"vue-share-it": "^1.1.4"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/aspect-ratio": "^0.2.0" "@tailwindcss/aspect-ratio": "^0.2.0"

View File

@@ -11,6 +11,8 @@ import { fas } from '@fortawesome/free-solid-svg-icons';
import { fab } from '@fortawesome/free-brands-svg-icons' import { fab } from '@fortawesome/free-brands-svg-icons'
import '@fortawesome/fontawesome-svg-core/styles.css'; import '@fortawesome/fontawesome-svg-core/styles.css';
import shareIt from 'vue-share-it';
require("gridsome-plugin-remark-prismjs-all/themes/night-owl.css"); require("gridsome-plugin-remark-prismjs-all/themes/night-owl.css");
require("prismjs/themes/prism-solarizedlight.css"); require("prismjs/themes/prism-solarizedlight.css");
@@ -26,4 +28,5 @@ export default function(Vue, { router, head, isClient }) {
defaultPlacement: 'top-end', defaultPlacement: 'top-end',
defaultClass: 'bg-black text-xs px-2 leading-normal py-1 rounded absolute text-gray-400 max-w-xs mb-1' defaultClass: 'bg-black text-xs px-2 leading-normal py-1 rounded absolute text-gray-400 max-w-xs mb-1'
}) })
Vue.use(shareIt)
} }

View File

@@ -69,6 +69,18 @@
</g-link> </g-link>
</p> </p>
</div> </div>
<share-it
icons
:targets="['twitter', 'linkedin', 'facebook']"
class="ml-auto"
/>
<font-awesome
:icon="['fas', 'link']"
class="cursor-pointer"
@click="copyLink"
/>
</div> </div>
</section> </section>
</div> </div>
@@ -209,5 +221,15 @@ export default {
title: this.$page.blog.title, title: this.$page.blog.title,
}; };
}, },
methods: {
copyLink() {
const el = document.createElement("input");
el.value = window.location.href;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
},
},
}; };
</script> </script>

View File

@@ -24,7 +24,15 @@
<g-image <g-image
:src="author.image" :src="author.image"
:alt="author.name" :alt="author.name"
class="h-8 w-8 sm:h-10 sm:w-10 rounded-full bg-gray-200 border-2 border-white" class="
h-8
w-8
sm:h-10
sm:w-10
rounded-full
bg-gray-200
border-2 border-white
"
/> />
</g-link> </g-link>
</li> </li>
@@ -61,6 +69,16 @@
</g-link> </g-link>
</p> </p>
</div> </div>
<share-it
icons
:targets="['twitter', 'linkedin', 'facebook']"
class="ml-auto"
/>
<font-awesome
:icon="['fas', 'link']"
class="cursor-pointer"
@click="copyLink"
/>
</div> </div>
</section> </section>
</div> </div>
@@ -70,7 +88,14 @@
<div class="py-12"> <div class="py-12">
<section <section
class="post-content container mx-auto relative font-serif text-gray-700" class="
post-content
container
mx-auto
relative
font-serif
text-gray-700
"
> >
<div <div
class="post-content-text text-xl" class="post-content-text text-xl"
@@ -83,7 +108,19 @@
v-for="tag in $page.news.tags" v-for="tag in $page.news.tags"
:key="tag.id" :key="tag.id"
:to="tag.path" :to="tag.path"
class="text-xs bg-transparent hover:text-blue-700 py-2 px-4 mr-2 border hover:border-blue-500 border-gray-600 text-gray-700 rounded-full" class="
text-xs
bg-transparent
hover:text-blue-700
py-2
px-4
mr-2
border
hover:border-blue-500
border-gray-600
text-gray-700
rounded-full
"
>{{ tag.title }}</g-link >{{ tag.title }}</g-link
> >
</section> </section>
@@ -171,8 +208,6 @@
<script> <script>
import PostListItem from "~/components/custom/Cards/PostListItem.vue"; import PostListItem from "~/components/custom/Cards/PostListItem.vue";
export default { export default {
components: { components: {
PostListItem, PostListItem,
@@ -182,5 +217,15 @@ export default {
title: this.$page.news.title, title: this.$page.news.title,
}; };
}, },
methods: {
copyLink() {
const el = document.createElement("input");
el.value = window.location.href;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
},
},
}; };
</script> </script>