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
48 stars 13 forks source link

Possible de créer un article sans YAML avec l'API #1004

Open vicbab opened 4 months ago

vicbab commented 4 months ago

J'ai accidentellement créé un article sans YAML (avec un YAML vide) sur l'API. Le résultat: impossible d'ouvrir l'article pour l'éditer sur Stylo.

vicbab commented 4 months ago

Je crois que ce problème est lié à https://github.com/EcrituresNumeriques/stylo/issues/982

vicbab commented 4 months ago

En fait, même en ajoutant un YAML valide par l'API, ça ne semble pas fonctionner. Je peux ouvrir l'article, mais seulement si l'onglet Métadonnées est fermé. Sinon, l'écran devient blanc et plus rien ne fonctionne.

RochDLY commented 4 months ago

Est-ce que tu peux nous montrer la requête que tu as utilisé pour pousser le YAML dans l'article ?

vicbab commented 4 months ago

C'est dans ce projet.

ContentFragment = StyloApi::Client.parse <<-'GRAPHQL'
      fragment ContentFragment on Article {
        updateWorkingVersion(content: $content) {
          workingVersion {
            bib
            md
            yaml (options: { strip_markdown: true })
          }
        }
      }
    GRAPHQL

    Create = StyloApi::Client.parse <<-'GRAPHQL'
      mutation($title: String!, $content: WorkingVersionInput!) {
        createArticle(title: $title, user: "RTFTOMD") {
          title
          _id
          workingVersion {
            bib
            md
            yaml
          }
          ...Articles::ContentFragment::ContentFragment
        }
      }
    GRAPHQL

yaml dans le fragment = ""

RochDLY commented 4 months ago
mutation ajoutArticle{
  createArticle(title:"Article ajouté avec l'API",
    user:"id"){
    title 
    _id
    workingVersion {
      md
      yaml (options: {strip_markdown: true})
    }
  }}

De mon côté une requête presque similaire fonctionne.

La requête que je fais me permet juste de créer un nouvel article "vide" dans Stylo (avec le texte par défaut). Pour le peupler vous pouvez utiliser le fragment de requete avec updateWorkingVersion(content: $content), néanmoins il faut lui passer du md, du yaml et du bibtex si vous souhaitez modifier directement le contenu grâce à l'API :

mutation updateArticle{
  article(articleId:"65f81b91e3d15e00121c33df"){
    updateWorkingVersion(content: {
      md: "test",
      yaml: "---\nabstract: []\narticleslies:\n  - auteur: ''\n    title: ''\n    url: ''\nauthors: []\nbibliography: ''\ncontrolledKeywords: []\ndate: ''\nday: ''\ndiffnum: ''\ndirector:\n  - foaf: ''\n    forname: ''\n    gender: ''\n    isni: ''\n    orcid: ''\n    surname: ''\n    viaf: ''\ndossier:\n  - id: ''\n    title: ''\n    title_f: ''\nfunder_id: ''\nfunder_name: ''\nissnnum: ''\nissueid: ''\njournal: ''\njournalid: ''\njournalsubtitle: ''\nkeyword_en: ''\nkeyword_en_f: ''\nkeyword_fr: ''\nkeyword_fr_f: ''\nlang: fr\nlink-citations: true\nmonth: ''\nordseq: ''\norig_lang: ''\nprod: ''\nprodnum: ''\npublisher: ''\nredacteurDossier: []\nreviewers: []\nrights: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\nsubtitle: ''\nsubtitle_f: ''\nsurtitle: ''\ntitle: ''\ntitle_f: untitled\ntranslatedTitle: []\ntranslations:\n  - lang: ''\n    title: 'Update du YAML'\n    url: ''\ntranslator:\n  - forname: ''\n    surname: ''\ntypeArticle: []\nurl_article_sp: ''\nyear: ''\nnocite: '@*'\n---"
    }){
    workingVersion{
      md
      yaml
      }
    }
  }}
RochDLY commented 4 months ago

Par contre il faut faire attention avec cette requête car vous modifiez le contenu directement dans la working copy et vous ne versionnez pas les modifications. Pour faire cela il vous faudrait ajouter une requête du type : 

    createVersion(articleVersionInput: {
        userId:"id",
        major: true, #false pour une version mineure
        message: "modification du YAML"}){
        versions(limit:5){
        version
        }
    }
RochDLY commented 4 months ago

image

RochDLY commented 4 months ago

Si toutefois vous créez un article vide

J'ai accidentellement créé un article sans YAML (avec un YAML vide) sur l'API. Le résultat: impossible d'ouvrir l'article pour l'éditer sur Stylo.

Si toutefois vous créez un article vide, vous pouvez utiliser la requete mutation updateArticle ci-dessus et vous insérez le yaml par défaut de Stylo dans la working copy : 

"---\narticleslies:\n  - auteur: ''\n    title: ''\n    url: ''\ndirector:\n  - foaf: ''\n    forname: ''\n    gender: ''\n    isni: ''\n    orcid: ''\n    surname: ''\n    viaf: ''\ndossier:\n  - id: ''\n    title: ''\n    title_f: ''\nlang: fr\nlink-citations: true\nrights: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)\ntitle: untitled\ntitle_f: untitled\ntranslations:\n  - lang: ''\n    title: ''\n    url: ''\ntranslator:\n  - forname: ''\n    surname: ''\nnocite: '@*'\n---"