-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migration de la génération des Preview avec la Pandoc API #1022
Conversation
✅ Deploy Preview for stylo-docs canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So many trailing spaces 🙈
cbc72ed
to
b541045
Compare
@RochDLY après vérification, c'est pas un souci pour les books : le fonctionnement actuel était déjà de concaténer les contenus et de prendre la biblio du premier article venu. Le fait de se brancher sur le nouveau module d'export ne change rien au mécanisme. |
Afin de limiter le "risque", est-ce que ça vaut le coup de déployer une nouvelle version avec l'ajout de convict afin de gérer la configuration applicative puis de basculer la génération de la preview sur l'API Pandoc ? |
@ggrossetie oui c'est une bonne idée de séparer les deux changements :) Je suggère une démo de la fonctionnalité lors du point hebdo du 15 octobre pour recueillir des retours sans déployer en dév. (je crois qu'on n'utilise pas le bon template de preview, et ça peut peut-être avoir un impact sur l'intégration des annotations Hypothesis). cc @RochDLY |
dba5beb
to
2f30af6
Compare
2f30af6
to
7668759
Compare
✅ Deploy Preview for stylo-dev ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
export/src/export.js
Outdated
if (preview) { | ||
const previewStylesheet = await readFile(join(__dirname, 'assets', 'preview.css'), { encoding: 'utf8' }) | ||
|
||
res.send(html5) | ||
} finally { | ||
if (tmpDirectory) { | ||
await fs.rm(tmpDirectory, { recursive: true, maxRetries: 3 }) | ||
html5 = html5.replace(/(<\/head>\s?)/gs, `<meta name="robots" content="noindex, nofollow"/> | ||
<style type="text/css">${previewStylesheet}</style> | ||
$1` | ||
) | ||
|
||
html5 = html5.replace(/<\/body>/, `<script type="application/json" class="js-hypothesis-config"> | ||
{ | ||
"openSidebar": true | ||
} | ||
</script> | ||
<script src="https://hypothes.is/embed.js" async></script> | ||
</body>`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La "magie" de la preview repose sur :
- l'injection du script Hypothesis
- l'ajout d'une balise de non-référencement dans les moteurs de recherche
- l'injection des styles CSS
md_content: md, | ||
bib_content: bib, | ||
yaml_content: yaml, | ||
with_toc: preview, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@davidbgk la seule différence avec le rendu "legacy", c'est l'absence de la table des matières.
J'ai tenté de passer with_toc
en argument et j'interprète qu'il n'est pas lu mais réglé en dur dans pandocapi.py#L75
.
C'est bien ça ?
On avait évoqué l'idée de passer un template pandoc… et en fait passer une feuille de style ça serait pas mal aussi.
Qu'est-ce que t'en penses ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bonne investigation, c'est effectivement en dur pour l'instant 👍
Pour la feuille de style, quel serait le besoin ? Que faites-vous du retour de l'API ? Est-ce que le body est extrait ou vous reprenez tout tel quel ?
Edit : ah mais on parle de CSS ou de CSL en fait ? 🙃
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actuellement on "hacke" la sortie HTML en y injectant du CSS inliné dans une balise HTML. Et deux-trois autres balises aussi d'ailleurs (la config Hypothesis et une balise <meta>
).
Avant cette PR, c'était la commande Pandoc qui incluait les CSS dans le template (preview.css
finissait dans la variable highlight-css
par je ne sais quel procédé).
Enfin, à terme j'imagine qu'on récupèrera le HTML et qu'on l'injectera/stylera dans l'interface Stylo directement (peut-être sous forme de WebComponent, ça dépend comment on arrive à gérer l'intégration avec Hypothesis).
Partant pour y aller pas à pas ; d'abord un truc qui marche et ensuite on voit où on peut améliorer sans que ça soit casse-gueule.
7668759
to
277cecb
Compare
|
||
html5 = html5.replace(/<\/body>/, `<script type="application/json" class="js-hypothesis-config"> | ||
{ | ||
"openSidebar": false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RochDLY écrit en privé (parce que dans les transports) :
A priori ce [l'ouverture du panneau latéral] n'est pas un comportement souhaité, certains utilisateurs ont demandé à ce que le volet soit fermé par défaut et que l'ouverture soit une action manuelle (en cliquant sur le petit bouton en haut à droite de l'écran de la preview)
Retour intégré !
277cecb
to
1cb1a89
Compare
templates-stylo
stylo-export
pour générer le HTML de previewexport
(vitesse d'installation ++)based on #1064 (pas obligé ceci dit)
fixes #987
fixes #907
refs #119
refs #1001
refs #139