Nextcloud et fichier markdown

What type of hardware are you using: VPS bought online
What YunoHost version are you running: 12.0.9.1
How are you able to access your server: SSH

Describe your issue

Bonjour,

J’utilise régulièrement RStudio, qui génère des fichiers Rmd. Dans mon cas, ces fichiers ne sont essentiellement que des fichiers Markdown (md) avec quelques options supplémentaires. Pour les éditer, n’importe quel éditeur de Markdown suffit.

Cependant, lorsque j’essaie d’ouvrir un fichier Rmd dans Nextcloud, il ne s’ouvre pas automatiquement avec l’application “Text” (qui permet une édition en ligne). Pour contourner ce problème, je renomme le fichier Rmd en md, ce qui me permet de l’ouvrir avec l’application. Ensuite, je le renomme à nouveau en Rmd, et il s’ouvre correctement les fois suivantes.

Le problème est que j’ai plusieurs dizaines, voire une centaine de fichiers Rmd. Existe-t-il une option ou un réglage équivalent à “Ouvrir avec” qui me permettrait d’associer mes fichiers Rmd directement à l’application “Text” (ou toute autre application capable d’éditer du Markdown en ligne) ?

Merci d’avance pour votre aide !

Share relevant logs or error messages

Aucun message d’erreur, le fichier est téléchargé plutôt qu’ouvert en ligne.

Bonjour,

C’est possible, mais pas depuis l’interface Web.
Cf. le forum officiel où quelqu’un pose une question similaire, et cette page de documentation vers laquelle la solution pointe, et qui explique comment configurer les “mimetypes”.

J’ai commencer à faire les changement mais je bloque. Voilà ce que j’ai fait :

  1. Création d’un fichier mimetypemapping.json et mimetypelist.json

Contenus respectif :

{
“rmd”: [“text/markdown”]
}

et

[
“text/markdown”
]

  1. J’utilise occ avec
sudo -u www-data php /var/www/nextcloud/occ maintenance:mimetype:update-db

Mais là problème, j’ai le message suivant :

This version of Nextcloud requires at least PHP 8.1<br/>You are currently running 7.4.33. Please update your PHP version.root

Pourtant dans mon interface yunohost admin, outils/services, j’ai bien php8.2. Aurais-je raté qq chose ?

En bidouillant :

sudo update-alternatives --set php /usr/bin/php8.2

j’ai bien php8.2, mais autre problème en réponse à

/var/www/nextcloud/resources/config# sudo -u www-data php /var/www/nextcloud/occ maintenance:mimetype:update-db

Réponse :

Cannot write into "config" directory!
This can usually be fixed by giving the web server write access to the config directory.

Ça avait l’ai plus simple dans la doc yunohost :slight_smile:

Sur ce point, tu pouvais directement appeler php8.2 dans la ligne de commande (plutôt que php seul).

Concernant le problème d’autorisation : la commande doit être lancée avec l’utilisateur nextcloud, pas www-data :wink: Donc remplace -u www-data par -u nextcloud.

Tu devrais :

sudo yunohost app shell nextcloud
Puis
php occ....
Mais je suppose que tu as créé les fichiers en étant root, donc ils seront illisibles pour occ

oui effectivement…je vais changer les droits (ou recommencer en pas-root) :slight_smile:

Dans yunohost, pour faire des modifications sur une application, il vaut mieux le faire dans son environnement et pour cela, il suffit de commencer par la première commande que j’ai partagé en haut (elle fonctionne pour toutes les applications). Par la suite, tu auras accès aux fichiers de cette application avec les bonnes permissions.

Donc je recommence toute la procédure en commencant par

sudo yunohost app shell nextcloud

…je crois que je n’ai pas les compétences pour tout cela. Finalement renommer le fichier dans nextcloud avant de l’ouvrir sera plus fonctionnel.

Autre problème, je passe donc en nextcloud@monserveur mais il me demande un mot de passe nextcloud pour passer en sudo…je n’ai aucune idée de l’existance d’un mot de passe pour l’utilisateur “nextcloud”

Pourquoi sudo ? Tu ne veux pas que ton fichier soit possédé par root. Dans cet environnement pas de sudo.

Je reessaye (en tout cas merci pour ta patience)

  • j’ai tout supprimé, je recommence
  • étape 1 :
sudo yunohost app shell nextcloud
  • étape 2, je créer mes deux fichiers
touch mimetypemapping.json  

Et là :touch: cannot touch 'mimetypemapping.json': Permission denied
D’où l’idée de passer en sudo

Dans ton cas :

sudo yunohost app shell nextcloud

nano config/mimetypealiases.json

~~nano resources/config/mimetypealiases.dist.json~~

Tu ajoute ce que tu veux puis :

php occ maintenance:mimetype:update-js

php occ maintenance:mimetype:update-db --repair-filecache

oui, mais je n’ai pas ce fichier. D’où l’idée de le créer. Dans config, j’ai

ca-bundle.crt
mimetypealiases.dist.json
mimetypemapping.dist.json
ca-bundle.crt.license
mimetypealiases.dist.json.license
mimetypemapping.dist.json.license

nano permet de créer le fichier aussi.
Que donne : ls -lha dans le dossier config ?

total 272K
drwxrwxr-x 2 www-data www-data 4.0K Jan 2 21:33 .
drwxr-xr-x 4 nextcloud www-data 4.0K Dec 12 10:00 …
-rwxrwxr-x 1 www-data www-data 232K Dec 12 10:00 ca-bundle.crt
-rwxrwxr-x 1 www-data www-data 163 Dec 12 10:00 ca-bundle.crt.license
-rwxrwxr-x 1 www-data www-data 6.4K Dec 12 10:00 mimetypealiases.dist.json
-rwxrwxr-x 1 www-data www-data 163 Dec 12 10:00 mimetypealiases.dist.json.license
-rwxrwxr-x 1 www-data www-data 9.0K Dec 12 10:00 mimetypemapping.dist.json
-rwxrwxr-x 1 www-data www-data 163 Dec 12 10:00 mimetypemapping.dist.json.license

une précision, le config dont je parle est www/nextcloud/resources/config

Car l’autre www/nextcloud/config est bien vide avec uniquement config.php et config.sample.php

Tiens, tu n’aurais pas par hasard changé l’ownership du dossier nextcloud ? Il devrait être nextcloud:www-data et non pas www-data:www-data

heu…si je l’ai fait c’est totalement involontaire. Mais je ne vois pas comment j’aurais pu faire cela involontairement…donc je dirais non.

Réessaye avec les commandes en haut (tu es toujours dans le dossier /var/www/nextcloud, vérifie avec pwd)

là je suis bien dans nextcloud et je tente :

nextcloud@monserveur.fr:~$ nano config/mimetypealiases.json

où j’écris…ben j’écris quoi, le fichier étant vide, quel est le contenu minimum ?