Ajout gestion des images

This commit is contained in:
Tibo
2019-12-23 16:26:12 +01:00
parent 8b639c79a4
commit a814816957
3 changed files with 92 additions and 83 deletions
-1
View File
@@ -9,7 +9,6 @@
}, },
"source": "https://popsu-rouen-en.strapi.figli.io/", "source": "https://popsu-rouen-en.strapi.figli.io/",
"search": [ "search": [
"images",
"introductions", "introductions",
"chapitres", "chapitres",
"sections" "sections"
+6 -1
View File
@@ -62,7 +62,12 @@
.canbreak { .canbreak {
page-break-before: always; page-break-before: always;
} }
.breakBefore{
page-break-before: always;
}
.breakAfter{
page-break-after: always;
}
.v-center { .v-center {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
+48 -43
View File
@@ -1,12 +1,10 @@
<template> <template>
<Layout> <Layout>
<!-- Mise en page --> <!-- Mise en page -->
<!-- introductions --> <!-- introductions -->
<div v-for="edge in $page.introductions.edges.slice().reverse()" :key="`introductions${edge.node.id}`"> <div v-for="edge in $page.introductions.edges.slice().reverse()" :key="`introductions${edge.node.id}`">
<VueMarkdown <VueMarkdown class="chapter-content justify">{{edge.node.contenu}}
class="chapter-content justify"
>{{edge.node.contenu}}
</VueMarkdown> </VueMarkdown>
</div> </div>
@@ -17,21 +15,12 @@
</div> </div>
<div class="column layer-2"> <div class="column layer-2">
<div <div class="bold center" v-for="auteur in $static.metadata.authors">
class="bold center"
v-for="auteur in $static.metadata.authors"
>
{{auteur}} {{auteur}}
</div> </div>
<div class="v-center grow"> <div class="v-center grow">
<h1 <h1 class="main-title center highlight-white" v-html="$static.metadata.title" />
class="main-title center highlight-white" <h2 class="main-pre-title center highlight-white" v-html="$static.metadata.subtitle" />
v-html="$static.metadata.title"
/>
<h2
class="main-pre-title center highlight-white"
v-html="$static.metadata.subtitle"
/>
</div> </div>
<div class="center"> <div class="center">
<img src="/logo_popsu.png" alt="" style="width:2cm;"> <img src="/logo_popsu.png" alt="" style="width:2cm;">
@@ -40,10 +29,7 @@
</div> </div>
</div> </div>
<!-- Page de fond --> <!-- Page de fond -->
<div <div class="column image-cover image-bleed" v-bind:style='{ backgroundImage: `url()`, }' />
class="column image-cover image-bleed"
v-bind:style='{ backgroundImage: `url()`, }'
/>
<!-- Sommaire --> <!-- Sommaire -->
<div class="column no-folio"> <div class="column no-folio">
@@ -51,10 +37,7 @@
Sommaire Sommaire
</div> </div>
<div class="column justify-end table-of-content"> <div class="column justify-end table-of-content">
<span <span v-for="edge in $page.chapitres.edges.slice().reverse()" :key="`sommaire${edge.node.id}`">
v-for="edge in $page.chapitres.edges.slice().reverse()"
:key="`sommaire${edge.node.id}`"
>
<a :href="'#chapitres'+edge.node.id">{{ edge.node.Titre }}</a> <a :href="'#chapitres'+edge.node.id">{{ edge.node.Titre }}</a>
</span> </span>
</div> </div>
@@ -63,13 +46,8 @@
<!-- Chapitres --> <!-- Chapitres -->
<div v-for="edge in $page.chapitres.edges.slice().reverse()" :key="`chapitre${edge.node.id}`"> <div v-for="edge in $page.chapitres.edges.slice().reverse()" :key="`chapitre${edge.node.id}`">
<h2 <h2 :id="`chapitres${edge.node.id}`" class="chapter-title canbreak">{{edge.node.Titre}}</h2>
:id="`chapitres${edge.node.id}`" <VueMarkdown class="chapter-content justify">{{edge.node.Contenu}}
class="chapter-title canbreak"
>{{edge.node.Titre}}</h2>
<VueMarkdown
class="chapter-content justify"
>{{edge.node.Contenu}}
</VueMarkdown> </VueMarkdown>
</div> </div>
@@ -82,33 +60,60 @@
<div v-for="edge in $page.sections.edges.slice().reverse()" :key="`section${edge.node.id}`"> <div v-for="edge in $page.sections.edges.slice().reverse()" :key="`section${edge.node.id}`">
<h2 <h2 :id="`chapitres${edge.node.id}`" class="section-title canbreak">{{edge.node.Titre}}</h2>
:id="`chapitres${edge.node.id}`" <VueMarkdown class="chapter-content justify">{{edge.node.Contenu}}
class="section-title canbreak"
>{{edge.node.Titre}}</h2>
<VueMarkdown
class="chapter-content justify"
>{{edge.node.Contenu}}
</VueMarkdown> </VueMarkdown>
</div> </div>
</Layout> </Layout>
</template> </template>
<script> <script>
import { Previewer } from 'pagedjs' const axios = require('axios'),
path = require('path'),
param = require(`../../param.JSON`);
import {
Previewer
} from 'pagedjs'
import VueMarkdown from 'vue-markdown' import VueMarkdown from 'vue-markdown'
export default { export default {
components: { components: {
VueMarkdown VueMarkdown
}, },
mounted(){ mounted() {
this.$nextTick(()=>{ let docImages = Array.from(
document.querySelectorAll("img")
)
let toLoad = docImages.filter(img => img.alt === "insert");
let imgSource;
axios.get(path.join(param.source, "images")).then(r => {
imgSource = r.data;
let allPromises = [];
toLoad.forEach(img => {
let img_id = img.src.split("/").pop();
let found = imgSource.find(element => element.id == img_id);
img.src = path.join(param.source, found.images.url);
let promise = new Promise((resolve, reject) => {
img.onload = function() {
let legend = document.createElement("p");
legend.classList.add("breakAfter");
img.parentNode.classList.add("breakBefore");
legend.innerHTML = found.legende;
img.parentNode.insertBefore(legend, img.nextSibling);
resolve();
}
});
allPromises.push(promise);
});
Promise.all(allPromises).then(() => {
let previewer = new Previewer(); let previewer = new Previewer();
previewer.preview(); previewer.preview();
}) });
});
} }
} }
</script> </script>