EcrituresNumeriques / stylo

Stylo est un éditeur de textes pour articles scientifiques en sciences humaines et sociales.
https://stylo.huma-num.fr
GNU General Public License v3.0
50 stars 13 forks source link

Check bibtex #187

Closed marviro closed 4 years ago

marviro commented 4 years ago

Un problème recurrent est que la preview d'un article ne s'affiche pas (page blanche) car il y a des erreurs dans le bibtex (une accolade pas fermée, par ex). Actuellement il n'y a aucune manière de le savoir sur Stylo. Il serait important d'ajouter un outil de debug. Une idée très simple serait d'ajouter avant la commande pandoc qui genère l'html de la preview une commande qui check le bibtex. La commande serait la suivante:

biber --tool -V nomfichierbib.bib

Biber devrait être déjà dockerisé avec texlive-full, mais à vérifier.

thom4parisot commented 4 years ago

Le bibtex se trouve dans un champ d'un article/livre Stylo ?

marviro commented 4 years ago

Oui, il est un des trois champs de texte (celui qui contient la bibliographie et qui est en format bib)

marviro commented 4 years ago

La preview est créée avec une commande du type

pandoc -f markdown -t html5 --filter pandoc-citeproc fichier.yaml fichier.md -o fichier.html

Le fichier fichier.yaml contenu dans le champ avec les métadonnées contient l'information suivante: bibliography: fichier.bib

antoinentl commented 4 years ago

Je n'arrive pas à tester cette fonctionnalité via l'onglet "Raw bibtex" : j'ai systématiquement le bouton "Save" qui est en grisé quelque soit la qualité de mon BibTeX (bonne ou mauvaise), je ne peux donc rien faire et je n'ai aucun message. J'ai également testé l'onglet "Citation", avec une ou plusieurs références, mais cela ne fonctionne pas non plus. @oncletom @Mogztter Est-ce que vous voulez qu'on prenne un moment ensemble pour tester ?

thom4parisot commented 4 years ago

Tu essaies de coller quoi, de modifier quel contenu par exemple ?

Peut-être qu'on a testé sur un cas trop simple…

antoinentl commented 4 years ago

Du BibTeX (export basique depuis Zotero, voici un item :

@misc{dehut_en_2018,
    type = {Billet},
    title = {En finir avec {Word} ! {Pour} une analyse des enjeux relatifs aux traitements de texte et à leur utilisation},
    url = {https://eriac.hypotheses.org/80},
    abstract = {Le titre de ce billet aurait pu être formé autour d’une expression célèbre attribuée à Caton l’ancien : delenda carthago[1], il faut détruire Carthage. Citation dont on trouve notamment un écho chez Plutarque[2] qui relate...},
    language = {fr-FR},
    urldate = {2018-03-29},
    journal = {L’atelier des savoirs},
    author = {Dehut, Julien},
    month = jan,
    year = {2018},
    file = {Snapshot:/home/antoine/Zotero/storage/VC32TEFF/Dehut - En finir avec Word ! Pour une analyse des enjeux r.html:text/html}
}

Ou plusieurs :


@misc{dehut_en_2018,
    type = {Billet},
    title = {En finir avec {Word} ! {Pour} une analyse des enjeux relatifs aux traitements de texte et à leur utilisation},
    url = {https://eriac.hypotheses.org/80},
    abstract = {Le titre de ce billet aurait pu être formé autour d’une expression célèbre attribuée à Caton l’ancien : delenda carthago[1], il faut détruire Carthage. Citation dont on trouve notamment un écho chez Plutarque[2] qui relate...},
    language = {fr-FR},
    urldate = {2018-03-29},
    journal = {L’atelier des savoirs},
    author = {Dehut, Julien},
    month = jan,
    year = {2018},
    file = {Snapshot:/home/antoine/Zotero/storage/VC32TEFF/Dehut - En finir avec Word ! Pour une analyse des enjeux r.html:text/html}
}

@book{morozov_pour_2014,
    address = {Limoges, France},
    title = {Pour tout résoudre, cliquez ici: l’aberration du solutionnisme technologique},
    isbn = {978-2-36405-115-7},
    shorttitle = {Pour tout résoudre, cliquez ici},
    language = {français},
    publisher = {Fyp},
    author = {Morozov, Evgeny},
    translator = {Braud, Marie-Caroline},
    year = {2014},
    keywords = {Ordinateurs et civilisation, Technologies de l'information et de la communication -- Aspect social},
    file = {Library Catalog Entry Snapshot:/home/antoine/Zotero/storage/C2PHYT8U/SRCH.html:text/html}
}

@inproceedings{guichard_lecriture_2008,
    title = {L'écriture scientifique},
    url = {https://halshs.archives-ouvertes.fr/halshs-00347616/document},
    abstract = {Je m'intéresse à une technique particulière, l'écriture, renouvelée depuis quelques décennies par l'informatique et l'internet, et j'explique comment les scientifiques, après l'avoir adaptée à leurs besoins, se retrouvent pris en otages par la doxa de la culture et l'industrie de l'écriture. J'aborde enfin les enjeux épistémologiques sous-jacents{\textless}br /{\textgreater}à une telle situation.},
    language = {fr},
    urldate = {2018-06-09},
    author = {Guichard, Éric},
    month = dec,
    year = {2008},
    file = {Snapshot:/home/antoine/Zotero/storage/FG5NBIXE/halshs-00347616.html:text/html;Full Text PDF:/home/antoine/Zotero/storage/TRBYIJAS/Guichard - 2008 - L'écriture scientifique.pdf:application/pdf}
}

@book{simondon_du_2012,
    address = {Paris, France},
    title = {Du mode d'existence des objets techniques},
    isbn = {978-2-7007-0428-0},
    language = {français},
    publisher = {Aubier},
    author = {Simondon, Gilbert},
    year = {2012},
    keywords = {Innovations technologiques -- Aspect social, livre étudié, livre lu, Objets usuels, Philosophie de la technique, T14, Technique et civilisation, Technologie},
    file = {Library Catalog Entry Snapshot:/home/antoine/Zotero/storage/ILYK3CQ3/SRCH.html:text/html}
}

@article{derose_what_1990,
    title = {What is text, really?},
    volume = {1},
    issn = {1042-1726},
    url = {https://experts.illinois.edu/en/publications/what-is-text-really},
    doi = {10.1007/BF02941632},
    language = {English (US)},
    number = {2},
    urldate = {2020-03-28},
    journal = {Journal of Computing in Higher Education},
    author = {DeRose, Steven J. and Durand, David G. and Mylonas, Elli and Renear, Allen H.},
    month = dec,
    year = {1990},
    pages = {3--26},
    file = {Snapshot:/home/antoine/Zotero/storage/WBIUJ88U/what-is-text-really.html:text/html}
}

@article{fauchie_repenser_2018-2,
    title = {Repenser les chaînes de publication par l’intégration des pratiques du développement logiciel},
    volume = {n° 8},
    issn = {2428-3711},
    url = {http://www.cairn.info/revue-sciences-du-design-2018-2-page-45.htm},
    abstract = {La rencontre des univers du livre et du d\&\#233;veloppement logiciel est \&\#224; l\&\#8217;\&\#339;uvre dans plusieurs exp\&\#233;rimentations de cha\&\#238;nes \&\#233;ditoriales, faisant appara\&\#238;tre de nouvelles approches et de nouvelles pratiques de design. Les \&\#233;tapes du processus d\&\#8217;\&\#233;dition sont r\&\#233;\&\#233;valu\&\#233;es, repens\&\#233;es, re-con\&\#231;ues, notamment par l\&\#8217;av\&\#232;nement d\&\#8217;un environnement profond\&\#233;ment num\&\#233;rique. Quelles sont les influences des m\&\#233;thodes et des outils du d\&\#233;veloppement web sur les cha\&\#238;nes de publication des livres\&\#160;? Nous nous focaliserons ici sur quatre aspects\&\#160;: la modularit\&\#233; des \&\#233;tapes et outils d\&\#8217;\&\#233;dition, l\&\#8217;ouverture des formats, la r\&\#233;duction de la distance entre le contenu et ses usages et l\&\#8217;\&\#233;conomie acquise qui concerne principalement l\&\#8217;humain. Cet article constitue un bref panorama des efforts n\&\#233;cessaires pour envisager une \&\#233;volution des cha\&\#238;nes d\&\#8217;\&\#233;dition, en sollicitant les pens\&\#233;es d\&\#8217;Ivan Illich et de Gilbert Simondon. Nous interrogerons des syst\&\#232;mes innovants inspir\&\#233;s de la m\&\#233;thode Agile, ch\&\#232;re au monde du d\&\#233;veloppement logiciel.},
    language = {fr},
    number = {2},
    urldate = {2018-12-14},
    journal = {Sciences du Design},
    author = {Fauchié, Antoine and Parisot, Thomas},
    year = {2018},
    pages = {45--56},
    file = {Full Text PDF:/home/antoine/Zotero/storage/TTZKHZE5/Fauchié et Parisot - 2018 - Repenser les chaînes de publication par l’intégrat.pdf:application/pdf;Snapshot:/home/antoine/Zotero/storage/WBAZ8KLA/revue-sciences-du-design-2018-2-page-45.html:text/html}
}

@article{diaz_using_2018,
    title = {Using {Static} {Site} {Generators} for {Scholarly} {Publications} and {Open} {Educational} {Resources}},
    issn = {1940-5758},
    url = {https://journal.code4lib.org/articles/13861},
    abstract = {Libraries that publish scholarly journals, conference proceedings, or open educational resources can use static site generators in their digital publishing workflows. Northwestern University Libraries is using Jekyll and Bookdown, two open source static site generators, for its digital publishing service. This article discusses motivations for experimenting with static site generators and walks through the process for using these technologies for two publications.},
    number = {42},
    urldate = {2020-02-04},
    journal = {The Code4Lib Journal},
    author = {Diaz, Chris},
    month = nov,
    year = {2018},
    file = {Code4Lib Journal Snapshot:/home/antoine/Zotero/storage/WT2HCXQQ/13861.html:text/html}
}

@book{dominik_org_2010,
    title = {The {Org} {Mode} 7 {Reference} {Manual} - {Organize} your life with {GNU} {Emacs}},
    isbn = {978-1-906966-08-9},
    abstract = {This manual is a printed edition of the official Org reference documentation from the Org 7.3 distribution. Org mode is a powerful system for organizing projects, tasks and notes in the Emacs editor. Major features include fast outline and table editing, TODO lists, agendas, scheduling and deadlines, cross-references and hyperlinks to arbitrary resources, as well as customisable document publishing in PDF and HTML from simple plain text markup. Org mode stores all data in human-readable plain text files, ensuring complete portability, simple integration with other text processing tools and support for revision-tracking and synchronization using any version control system. Org mode is free software and can be used in Emacs on all major operating systems.},
    language = {en},
    publisher = {Network Theory Ltd.},
    author = {Dominik, Carsten},
    year = {2010}
}

@article{fauchie_les_2020,
    title = {Les technologies d’édition numérique sont-elles des documents comme les autres ?},
    copyright = {CC BY SA 4.0},
    issn = {2724-7430},
    url = {https://publications-prairial.fr/balisages/index.php?id=321},
    doi = {10.35562/balisages.321},
    abstract = {Les technologies d’édition numérique sont à l’origine des documents comme les articles ou les ouvrages, et elles constituent un exemple original d’objet nativement numérique. Dynamiques, modulables, protéiformes, plusieurs exemples récents de technologies tendent à interroger leur statut. Si notre point de départ est la comparaison entre les documents et les technologies d’édition numérique, nous les dissocierons en soulignant la dimension réflexive de ces technologies. Cet article présente trois exemples : Distill, une revue dont les articles sont gérés comme des programmes informatiques ; Quire, une chaîne de publication qui génère des livres multiformes ; Stylo, un éditeur de texte sémantique qui permet l’écriture dans un contexte d’édition scientifique. Notre méthodologie consiste en l’analyse de ces trois systèmes de publication, emblématiques des transformations numériques à l’œuvre, basée sur trois critères (structure, inscription et réflexivité). Ces trois initiatives rassemblent nombre des spécificités propres aux objets nativement numériques qui nous entourent désormais, alors que les technologies d’édition traditionnelles reposent principalement sur une chaîne d’impression.},
    language = {fr},
    number = {1},
    urldate = {2020-02-25},
    journal = {Balisages},
    author = {Fauchié, Antoine},
    month = feb,
    year = {2020},
    keywords = {Circulation des contenus, Édition, Éditorialisation, Plateformes d'édition, Plateformes numériques, Production des contenus}
}
thom4parisot commented 4 years ago

Merci ! Visiblement le champ file affole le validateur, car hors standard. Cf bac à sable : https://fiduswriter.github.io/biblatex-csl-converter/

Est-ce que ce champ a vocation à être sauvegardé sur Stylo ? On le garde, on le filtre ?

ggrossetie commented 4 years ago

Le validation retourne un warning. Même chose avec le champ journal. Dans un premier temps on peut peut être considérer que le Bibtex est valide même si il contient des warnings ?

ggrossetie commented 4 years ago

Dans une partie du code, on vérifie que le type des références bibliographique est :

@antoinentl Est-ce qu'il s'agit d'un filtrage fonctionnel pertinent ? Est-ce qu'on conserve ce filtrage ? Le parser qu'on utilise autorise une liste de Bibtype plus exhaustive : https://github.com/fiduswriter/biblatex-csl-converter/blob/35d152935eba253ebadd00e285fb13c5828f167f/src/const.js#L724

thom4parisot commented 4 years ago

@antoinentl on a redéployé en dev, fais signe si tu trouves des choses qui ne fonctionnent pas comme prévu :-)

antoinentl commented 4 years ago

Merci ! Mon premier problème est que je ne sais pas comment cette fonctionnalité fonctionne : j'ai essayé l'onglet "Citations", j'ai collé plusieurs références mais le bouton "Add" ne fait rien, pas plus que le bouton "Save" (j'ai attendu une bonne minute), au bout d'un moment en allant dans l'onglet "Raw bibtex" et en revenant dans l'onglet "Citations" mes références sont apparues.

Capture d’écran de 2020-07-07 16-15-29

Vous pouvez m'indiquer le scénario d'usage prévu ?

thom4parisot commented 4 years ago

Oui : le bouton "Add" se dégrise si le validateur détecte du contenu, et qu'il n'y a ni erreur fatale, ni avertissement (qui ne sont pas affichés, mais qu'on a sous le coude — y compris le numéro de la ligne concernée). Idem dans l'onglet "Raw" : le bouton "Save" se dégrise si le contenu a changé, et qu'il est considéré valide (sans erreur fatale, sans avertissement).

Le comportement est le même qu'avant : on n'a ajouté que la validation avant d'ajouter (dans l'interface) puis sauvegarder (en base) quoique ce soit.

ggrossetie commented 4 years ago

Voici un exemple avec le cas nominal :

good

Attention, il faut bien cliquer sur "Save" sinon la citation ne sera pas enregistrée. Par exemple, si tu ajoutes une nouvelle citation avec "Add" et qu'ensuite tu cliques en dehors de la popup ou sur le bouton "Cancel", la citation ne sera pas enregistrée.

ggrossetie commented 4 years ago

Les retours de @antoinentl:

Je crois que j'oublie un dernier point...?

ggrossetie commented 4 years ago

Supprimer bouton "Save" sur l'onglet "Citations", les citations sont ajoutées/supprimées (et automatiquement enregistrées en base de données)

Hors scope — déplacé dans #218.

thom4parisot commented 4 years ago

Améliorée et complété avec #201, avec l'import des collections privées Zotero.

À compléter avec #218.

antoinentl commented 4 years ago

Je rouvre cette issue car il y a un comportement qu'il faudrait corriger :

Voici plusieurs solutions possibles :

Je suis preneur de vos retours @Mogztter @oncletom

ggrossetie commented 4 years ago

Afficher les erreurs sur l'édition du raw BibTeX et vérifier que le bouton "Save" s'active bien quand le raw BibTeX est valide.

A noter que le raw BibTex est validé à chaque frappe de touche ce qui rend l'édition de <textarea> très lente. Peut être qu'il faudrait faire la validation en tâche de fond.

Un debounce pourrait aussi permettre d'améliorer la situation.