Git Product home page Git Product logo

ecrituresnumeriques / stylo Goto Github PK

View Code? Open in Web Editor NEW
46.0 10.0 13.0 63.47 MB

Stylo est un éditeur de textes pour articles scientifiques en sciences humaines et sociales.

Home Page: https://stylo.huma-num.fr

License: GNU General Public License v3.0

JavaScript 88.13% HTML 0.52% SCSS 11.25% Shell 0.09% CSS 0.01%
webapp documentation scientific writing hacktoberfest markdown-editor bibtex-references online-editor

stylo's Introduction

Stylo

Stylo est un éditeur de textes pour articles scientifiques en sciences humaines et sociales.

L'environnement de travail de Stylo intègre une chaîne éditoriale complète basée sur pandoc et outillée des modules suivants :

  • un éditeur de métadonnées
  • un versionnage
  • une gestion de la bibliographie
  • différents formats exports : html5, xml (TEI, Erudit), pdf...
  • l'annotation
  • le partage de document

Stylo est disponible sur stylo.huma-num.fr

Plus d'informations sur la documentation.

Pré-requis

Sous MacOS

brew tap mongodb/brew

brew install pandoc mongodb-community nvm
brew install --cask docker

nvm install v18 --default

Développement local

L'application se lance en combinant une base de données MongoDB, et des applications Node.js (v18+).

La première fois que vous installez le projet, lancez ces commandes :

cp stylo-example.env stylo.env
npm clean-install
npm --prefix front clean-install
npm --prefix export clean-install
npm --prefix graphql clean-install

Sans Docker

Avant un premier lancement, la variable SE_GRAPHQL_TOKEN doit être renseignée dans stylo.env à l'aide de la valeur produite par cette commande :

DOTENV_CONFIG_PATH=stylo.env NODE_OPTIONS="--require dotenv/config" npm run --prefix graphql generate-service-token --silent

Ensuite, ainsi que le reste du temps :

mongod --config /usr/local/etc/mongod.conf --fork
npm run dev

Avec Docker

Avant un premier lancement, la variable SE_GRAPHQL_TOKEN doit être renseignée dans stylo.env à l'aide de la valeur produite par cette commande :

docker compose run -ti --build --rm graphql-stylo npm run generate-service-token --silent

Ensuite, ainsi que le reste du temps :

docker compose up mongodb-stylo export-gateway pandoc-api
npm run dev

L'interface web de Stylo est alors disponible sur (localhost:3000).
L'API fonctionne sur localhost:3030 et le service d'export sur localhost:3060.

Installation

Pour installer une instance Stylo en tant que service à disposition d'utilisateur·ices, veuillez suivre la documentation dédiée dans le fichier HOWTO.md.


License: GPL v3

stylo's People

Contributors

antoinentl avatar bplmp avatar cgermain97 avatar davidbgk avatar dependabot[bot] avatar dmathelier avatar exalted avatar francoismaltais avatar ggrossetie avatar giuliaferretti12 avatar lakonis avatar loup-brun avatar marieflorescontact avatar marviro avatar mathildevrst avatar mattheyje avatar mmellet avatar orsimey avatar pookmook avatar rochdly avatar sk2108 avatar teopost avatar thom4parisot avatar vinber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stylo's Issues

bug date de publication métadonnées

lorsqu'on essaie de changer la date de publication en modifiant le champ dans le form "metadata" on a une page blanche - crash"
Le problème arrive seulement avec l'article https://stylo.ecrituresnumeriques.ca/write/5b3bdbbd3a7d4a00116410af

voici l'erreur dans la console de Chrome

react-dom.production.min.js:187 n {name: "YAMLException", reason: "unacceptable kind of an object to dump [object Undefined]", mark: undefined, message: "unacceptable kind of an object to dump [object Undefined]", stack: "YAMLException: unacceptable kind of an object to d…eriques.ca/main.f1b1ac62363edb8596fd.js:11:34076)"}mark: undefinedmessage: "unacceptable kind of an object to dump [object Undefined]"name: "YAMLException"reason: "unacceptable kind of an object to dump [object Undefined]"stack: "YAMLException: unacceptable kind of an object to dump [object Undefined]↵    at y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:159846)↵    at C (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:158487)↵    at y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:159542)↵    at Y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:160439)↵    at Object.N [as safeDump] (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:160492)↵    at A.value (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:1:301029)↵    at updateClassInstance (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:19183)↵    at beginWork (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:21259)↵    at r (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:33560)↵    at c (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:34076)"__proto__: Error
l @ react-dom.production.min.js:187
u @ react-dom.production.min.js:184
batchedUpdates @ react-dom.production.min.js:190
w @ react-dom.production.min.js:41
Q @ react-dom.production.min.js:41
batchedUpdates @ react-dom.production.min.js:42
dispatchEvent @ react-dom.production.min.js:45
react-dom.production.min.js:185 Uncaught n {name: "YAMLException", reason: "unacceptable kind of an object to dump [object Undefined]", mark: undefined, message: "unacceptable kind of an object to dump [object Undefined]", stack: "YAMLException: unacceptable kind of an object to d…eriques.ca/main.f1b1ac62363edb8596fd.js:11:34076)"}mark: undefinedmessage: "unacceptable kind of an object to dump [object Undefined]"name: "YAMLException"reason: "unacceptable kind of an object to dump [object Undefined]"stack: "YAMLException: unacceptable kind of an object to dump [object Undefined]↵    at y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:159846)↵    at C (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:158487)↵    at y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:159542)↵    at Y (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:160439)↵    at Object.N [as safeDump] (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:22:160492)↵    at A.value (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:1:301029)↵    at updateClassInstance (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:19183)↵    at beginWork (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:21259)↵    at r (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:33560)↵    at c (https://stylo.ecrituresnumeriques.ca/main.f1b1ac62363edb8596fd.js:11:34076)"__proto__: Error
u @ react-dom.production.min.js:185
batchedUpdates @ react-dom.production.min.js:190
w @ react-dom.production.min.js:41
Q @ react-dom.production.min.js:41
batchedUpdates @ react-dom.production.min.js:42
dispatchEvent @ react-dom.production.min.js:45

Niveau de titres

Actuellement, le sommaire automatique considère que les titres de section sont les # et que les ## sont des titres de sous-section. Or, dans les pratiques d'écriture de Sens public on utilise les ## comme titres de section car on considère que le # est le titre de l'article et qui n'est donc pas utilisé dans le corps du texte (mais selement en métadonnées). Si @lakonis est d'accord, je propose qu'on change le sommaire en prenant en compte les ## comme titres de section

Mot-clés contrôlés yaml

Les mots-clés controlés, une fois ajoutés, ne sont pas éditables dans le yaml éditor. Ils sont dans le yaml, mais l'editor ne les montre pas

statistiques citations

Lorsqu'on ajote un numéro de page à une référence, le menu statistique ne prend plus en compte la citation.
Ex [@Milad] compte pour 1 citation
[@Milad, p. 1] n'est pas pris en compte

problème avec l'ajout de bibliographie

Lors de l'ajout de bibliographie (bibtex), aussi bien par "+ add reference" que par "see source", quand je clique sur "confirm" la fenêtre devient blanche (intégralement) et je dois revenir en arrière ou relancer stylo pour revenir à l'article.

[Biblio] Copier-coller ne fonctionne pas sur MacOS

MacOS 10.12.6, Firefox (60.0)

Avec l'article par défaut How to, sans avoir changé la bilbio.

Clic sur une référence de la biblio ne copie pas la référence (impossible de coller, par cmd+v ou via clic contextuel).

no cite ne fonctionne pas

L'option no-cite (citations: all citations) ne fonctionne pas car elle ajoute dans le yaml une mauvaise syntaxe.
La bonne syntaxe est

nocite: |
  @*

Bouton métadonnées

Le bouton "Métadonnées" est étrangement en français, alors que tous les autres sont en anglais. À remplacer avec "metadata"

Référence biblio par défault

Il faudrait la changer (elle est très mal faite) et mettre à la place:

@book{goody_raison_1979,
series = {Le sens commun},
title = {La {Raison} graphique. {La} domestication de la pensée sauvage.},
publisher = {Les Editions de Minuit},
author = {Goody, Jack},
year = {1979},
}

Zip export

Comme prévu, un export zip contenant .md, .bib, .yaml, .html, .xml, .tex serait excellent.
le zip pourrait être nommé à partir de : titre article, version, tag de version.

Pas possible de se connecter

En tentant de me connecter à la plateforme, le système renvoie le message "Login status : false" sans dire si une information était erronée (user name ou password) ni permettre une option pour réinitialiser le mot de passe.

En tentant de contourner ce message d'erreur par la création d'un nouveau profil avec les mêmes informations de connection, je reçois le même message d'erreur sans plus d'explications.

Est-ce que c'est une issue connue? Est-ce que des nouveaux utilisateurs peuvent se créer un profil? (Je voulais justement envoyer le lien du projet à un testeur enthousiaste.)

Gérer les espaces insécables

Gérer automatiquement les espaces insécables lors de l'écriture, comme le fait LibreOffice ou MS Word (exemple : : ->  :).

En attendant, on procède simplement aux corrections par rechercher/remplacer dans un éditeur texte local.

Yaml Editor : nouveaux champs à rendre éditable

Plusieurs champs ont été ajoutés au yaml par défaut de Sens Public, et plusieurs nécessitent d'être éditables dans le yaml editor. Notamment :

---
translator:
  - forname: ''
    surname: ''
    orcid: ''
lang: fr
orig_lang: ''
translations:
  - lang: ''
    titre: ''
    url: ''
articleslies:
  - url: ''
    titre: ''
    auteur: ''
nocite: ''
---

[Responsive] Affichage/défilement sur fenêtre étroite

Problème

Lorsque la fenêtre fait moins de 1093 px de large, la zone d'édition est repoussée vers le bas, sous la barre latérale de gauche.

Avec le script qui garde la barre latérale toujours en vue, impossible de rester dans la boîte d'édition markdown – le script anime la page et repousse tout vers le bas.

capture

Solution proposée

Une manière simple de régler le problème serait simplement d'utiliser la propriété CSS position: sticky sur la barre latérale au lieu de gérer l'affichage par javascript:

#writeComponent {
  position: sticky;
}

Erreur à l'ouverture de la version annotée

Bonjour,

Quand j'essaye d'ouvrir la version annotée sur https://hypothes.is/ (peu importe le moyen, que ce soit par le lien Anotate ou en tapant directement l'URL), j'obtiens une erreur. Au lieu d'ouvrir la page, il me propose d'ouvrir un fichier 5c07acfce2d41a0010748c4d.error (qui est un fichier HTML local qui ne contient pas les annotations...)

Le problème survient sur Windows et Linux Ubuntu, avec comme navigateur : Firefox 63, Opera 56 ou Chrome 70.

Article vide (version vide) après une déconnexion

Il s'agit de l'article 1343. Si tu regarde l'historique des versions, s'est glissé une version 0.0 vide. La suite est un copier-coller des versions précédentes pour récupérer l'article.

On ne sait pas exactement ce qu'il s'est passé, possiblement 2 choses à la fois (mais c'est le à la fois qui n'est pas certain).

  1. Le fork de cet article pour test (c'est moi qui faisait ca dans mon coin) (le fork s'est bien passé)
  2. la déconnexion violente (!) d'internet alors qu'un éditeur était en train de travailler sur cet article. quand je vois l'historique, j'ai l'impression que l'article était ouvert à 2 endroits : user Senspublic + user Emma.

question : que se passe t il en base quand il y a un fork ? Quelle version est prise en compte ? Quel impact sur la version de l'article en cours ?

merci

Curseur instable en fin d'article

Sur un article, on rencontre un problème de stabilité sur la fin d'un article. Plusieurs symptomes :

  1. il n'est plus possible de sélectionner du texte ou de coller du texte.
  2. le sommaire semble avoir sauté, le bloc sommaire s'est élargit.
  3. le problème se règle au bout de quelques minutes....

@ServanneMo pourra préciser et te partager l'article pour jeter un oeil. Ca ressemble à un bug de caractère spécial.

Bouton annotate non fonctionnel sur un article (version Live)

La console donne une erreur SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data.
Pas d'erreur sur le bouton export.

Pb rencontré sur Firefox, MacOSX, avec l'article 5c5c58d22d50980011743476 uniquement.
Le même bouton fonctionne sur une version enregistrée (non Live), et fonctionne en Live pour un autre article..
Et sinon sur ma machine linux, le bouton annotate fonctionne pour cet article en Live.

Pour info, l'interface Stylo ne ressemble pas exactement sur sa machine. Les fonts ne semblent pas chargées malgré qu'il n'y pas d'autres erreur dans la console ou dans le "réseau" de l'inspecteur.

Problème insécable

Petits problèmes avec la nouvelle version des insécables, certains sont pris en comptes, d'autres non.

Ici tout semble bien :
image

Mais si on ouvre sur Atom :

image

la majorité des insécables sont bien formés, mais pour certains ça ne fonctionne pas, aucune idée pourquoi.

Problème css compare

Quand on ouvre les métadonnées, dans la version live, on ne peut plus les fermer car il y a le menu du diff.

Affichage et manipulation des références bibliographiques

Pour utiliser plus souplement les références:

  • faire une saisie semi-automatique dans le texte dès qu'on commence à taper [@...
  • afficher la boîte des réf. biblio. en haut (dessus Version), ainsi elle est toujours accrochée en haut au moins.
    Merci, et bravo pour Stylo! Je commence à le tester dès aujourd'hui,
    Pascal M

pb de cache sur process

Un éditeur a dû vider son cache afin de pouvoir utiliser process. Après avoir rentré un id de version et un nom d'article, le clic sur le bouton submit remplaçait systématiquement les données avec d'anciennes données, générant un export pour un tout autre article.

Login

Le login ne fonctionne pas avec le pseudo mais seulement l’adresse

Visualiser les espaces insécables sur l'éditeur de Stylo

Sur Word, les auteurs livrent de temps en temps des textes comprenant les espaces insécables. Or la transformation pandoc vers markdown récupère correctement ces espaces comme des espaces insécables en UTF+8, qui sont ensuite transformés en ASCII   (tout comme les  ).

Actuellement, nos pauvres éditeurs SP remplacent tous les espaces (y compris les insécables encodés en UTF8) par des  . Ce qui est une grosse perte de temps.

Sur l'éditeur markdown de Stylo, serait-il possible de visualiser les espaces insécables encodés ?

j'ajoute ici le fichier word et le ficher md correspondant, où l'on voit que est différent de :)

test.docx

Bonjour ?

Comment ca va :

plutôt bien. 2 000.

Ca va ?

Comment :

voila.

Dernière version perdue après essai export

Je ne sais pas si le lien entre les deux événements est certain mais après une tentative d'export l'article est revenu à un état antérieur, pas moyen de retrouver les modifications réalisées la veille au soir.
Je ne sais pas comment préciser de quel article il s'agit, je ne trouve pas de numéro ou d'identifiant.

Versions

Le versionnage a n comportement bizare. Plusieurs versions avec le même nom (par ex 0.1) sont produites si on continue à travailler sur une version sans la sauvegarder avec un nouveau nom.

Wordcount

Stylo compte les caractères sans comprendre les espaces. Possibilités d'ajout "nombre de caractères avec espaces" ?

Mots-clés contrôlés manquants

Des mots-clés contrôlés semblent être absents sur Stylo. C'est le cas avec télévision, (théorie de la) lecture...
Merci Arthur!

disparition article

Mon article 5bbf310b0e34ef0011467e9f a disparu - il est vide. Ou mieux: après la version 1.1 il y a une version 1.0 vide et le live est vide.
Pas grave car je l'ai en local - et en plus les versions sont là,, mais il serait bien de comprendre ce qui s'est passé. Peut-être le fait que Nico a essayé de le modifier sans être connecté?

Bug sur le yamlEditor dans Stylo

je cite une éditrice :

j'ai un petit problème avec l'éditeur de yaml sur stylo. Quand je clique sur « metadata », dans les articles que j'ai créés, j'atterris sur une page blanche au lieu de voir l'éditeur apparaître. Il s'agit de SP1231, et j'ai le même problème avec 1338. Margot aussi a le même problème avec ses articles.

puis plus tard :

L'article 1231 est sur Stylo, et son yaml est rempli, sauf que chaque changement des mots clés contrôlés changeait également les mots clés de l'autre article sur lequel je travaillais (1338). Les mots clés contrôlés ne sont donc pas les bons.

Langues résumés yaml

Il faut rajouter des langues dans le menu yaml résumés. Urgent: rajouter es (espagnol)

box références

Lorsqu'on veut éditer les références bibliographiques, (quand il y en a déjà) la box devient très étroite. Il faut refaire le css.

impossible d'exporter en XML

Je ne parviens plus à obtenir l'export XML (Erudit) dont je me servais pour passer les articles sous In Design...
ça indique "Generating XML erudit file, please wait" mais ne dépasse pas ce stade même en restant ouvert des heures.

Documentation

Ajouter un bouton "Documentation" dans le menu qui renvoie à une page de documentation. Idéalement on devrait pouvoir la maintenir en accédant à un file html statique sur githb - ou en md... J'ai rédigé une première version disponible dans le fichier README.md. Une possibilité est juste de mettre un lien vers le README

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.