Skip to content
Snippets Groups Projects
Commit d1640205 authored by Emmanuel Salomon's avatar Emmanuel Salomon :fist:
Browse files

Added reading time + refactoring sidebar

parent 2ebad4ec
No related branches found
No related tags found
No related merge requests found
<template>
<div class="flex items-center mb-8">
<fa :icon="['far', 'clock']" class="text-gray-400 text-lg mr-2" />
<div>
<span>{{ readingTimeToStr }}</span>
<span class="text-gray-400 text-sm pl-1">
{{ `(${readingTime.words} mots)` }}
</span>
</div>
</div>
</template>
<script>
export default {
props: {
readingTime: {
type: Object,
required: true,
},
},
computed: {
readingTimeToStr() {
const minutes = this.readingTime.minutes
if (minutes > 1) {
return (
'Environ ' +
Math.round(minutes) +
' minute' +
(Math.round(minutes) > 1 ? 's' : '')
)
}
return "Moins d'une minute"
},
},
}
</script>
<style lang="scss" scoped></style>
<template> <template>
<div class="px-4 pt-3 pb-4 border-t border-gray-300"> <div class="pb-4 mb-4 border-b border-gray-300">
<div class="text-xs uppercase font-bold text-gray-600 tracking-wide"> <div class="text-xs uppercase font-bold text-gray-600 tracking-wide">
AUTEUR AUTEUR
</div> </div>
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
<div <div
class="sticky h-full top-12 lg:w-1/4 lg:ml-12 mt-8 lg:mt-0 border-t pt-8 lg:pt-0 lg:border-none" class="sticky h-full top-12 lg:w-1/4 lg:ml-12 mt-8 lg:mt-0 border-t pt-8 lg:pt-0 lg:border-none"
> >
<PageToc v-if="toc" :document="document" class="mb-8" />
<slot name="sidebar" /> <slot name="sidebar" />
</div> </div>
</div> </div>
...@@ -29,10 +28,6 @@ export default { ...@@ -29,10 +28,6 @@ export default {
type: Object, type: Object,
required: true, required: true,
}, },
toc: {
type: Boolean,
default: true,
},
}, },
} }
</script> </script>
...@@ -65,6 +65,7 @@ export default { ...@@ -65,6 +65,7 @@ export default {
component: 'fa', // component name component: 'fa', // component name
addCss: false, addCss: false,
icons: { icons: {
regular: ['faClock'],
solid: [ solid: [
'faHome', 'faHome',
'faSearch', 'faSearch',
...@@ -205,6 +206,11 @@ export default { ...@@ -205,6 +206,11 @@ export default {
return return
file.data = JSON.stringify(JSON.parse(file.data).ressources) file.data = JSON.stringify(JSON.parse(file.data).ressources)
}, },
'content:file:beforeInsert': (document) => {
if (document.extension === '.md') {
document.readingTime = require('reading-time')(document.text)
}
},
}, },
/** /**
......
<template> <template>
<PageContainer :document="document" /> <PageContainer :document="document">
<template #sidebar>
<AppReadingTime
v-if="document.readingTime"
:reading-time="document.readingTime"
/>
<PageToc v-if="document.toc" :document="document" class="mb-8" />
</template>
</PageContainer>
</template> </template>
<script> <script>
......
...@@ -21,6 +21,13 @@ ...@@ -21,6 +21,13 @@
<template #sidebar> <template #sidebar>
<BlogMeta /> <BlogMeta />
<AppReadingTime
v-if="document.readingTime"
:reading-time="document.readingTime"
/>
<PageToc v-if="document.toc" :document="document" class="mb-8" />
</template> </template>
<template #footer> <template #footer>
......
...@@ -6,6 +6,13 @@ ...@@ -6,6 +6,13 @@
</template> </template>
<template #sidebar> <template #sidebar>
<AppReadingTime
v-if="document.readingTime"
:reading-time="document.readingTime"
/>
<PageToc v-if="document.toc" :document="document" class="mb-8" />
<PageRelated :document="document" path="faq" /> <PageRelated :document="document" path="faq" />
</template> </template>
</PageContainer> </PageContainer>
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
</template> </template>
<template #sidebar> <template #sidebar>
<PageToc v-if="document.toc" :document="document" class="mb-8" />
<aside v-if="pagesWithTerm.length" class="mb-8"> <aside v-if="pagesWithTerm.length" class="mb-8">
<h1 class="text-2xl">Pages contenant "{{ document.title }}"</h1> <h1 class="text-2xl">Pages contenant "{{ document.title }}"</h1>
......
...@@ -901,6 +901,11 @@ ...@@ -901,6 +901,11 @@
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz#0a8c348bb23b7b760030f5b1d912e582be4ec915" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz#0a8c348bb23b7b760030f5b1d912e582be4ec915"
integrity sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA== integrity sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA==
   
"@fortawesome/fontawesome-common-types@^0.2.35":
version "0.2.35"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz#01dd3d054da07a00b764d78748df20daf2b317e9"
integrity sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw==
"@fortawesome/fontawesome-svg-core@^1.2.27": "@fortawesome/fontawesome-svg-core@^1.2.27":
version "1.2.34" version "1.2.34"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz#1d1a7c92537cbc2b8a83eef6b6d824b4b5b46b26" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz#1d1a7c92537cbc2b8a83eef6b6d824b4b5b46b26"
...@@ -915,6 +920,13 @@ ...@@ -915,6 +920,13 @@
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "^0.2.34" "@fortawesome/fontawesome-common-types" "^0.2.34"
   
"@fortawesome/free-regular-svg-icons@^5.15.3":
version "5.15.3"
resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.3.tgz#1ec4f2410ff638db549c5c5484fc60b66407dbe6"
integrity sha512-q4/p8Xehy9qiVTdDWHL4Z+o5PCLRChePGZRTXkl+/Z7erDVL8VcZUuqzJjs6gUz6czss4VIPBRdCz6wP37/zMQ==
dependencies:
"@fortawesome/fontawesome-common-types" "^0.2.35"
"@fortawesome/free-solid-svg-icons@^5.15.2": "@fortawesome/free-solid-svg-icons@^5.15.2":
version "5.15.2" version "5.15.2"
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz#25bb035de57cf85aee8072965732368ccc8e8943" resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz#25bb035de57cf85aee8072965732368ccc8e8943"
...@@ -10135,6 +10147,11 @@ readdirp@~3.5.0: ...@@ -10135,6 +10147,11 @@ readdirp@~3.5.0:
dependencies: dependencies:
picomatch "^2.2.1" picomatch "^2.2.1"
   
reading-time@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.3.0.tgz#d13e74431589a4a9038669f24d5acbc08bbb015d"
integrity sha512-RJ8J5O6UvrclfZpcPSPuKusrdRfoY7uXXoYOOdeswZNtSkQaewT3919yz6RyloDBR+iwcUyz5zGOUjhgvfuv3g==
reduce-css-calc@^2.1.6, reduce-css-calc@^2.1.8: reduce-css-calc@^2.1.6, reduce-css-calc@^2.1.8:
version "2.1.8" version "2.1.8"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment