Création d'une page d'accueil / d'information

Bonjour,

je dispose de plusieurs formulaires interne (via le widget du meme nom) que j’ai positionné en onglets dans la partie supérieure de l’écran de grist.

Je souhaiterais maintenant pouvoir mettre en place une vue de type « page d’accueil » pour afficher les informations permettant de présenter les différents onglets à disposition.

Je n’ai pas trouvé de widget permettant de faire cela directement (sauf à en détourner leur usage comme utiliser un formulaire interne).

Je ne sais pas si d’autres personnes ont le même besoin ?

Merci d’avance pour vos retours.

Bonjour @Nic

Mode opératoire :

  1. Ajouter une page qui s’appuie sur une nouvelle table « Accueil »
  2. Nommer la 1er colonne (ex « Modele ») et ajouter du texte dans la 1ere cellule (‹ Bonjour ›)
  3. Ajouter une vue à la page qui s’appuie sur la table « Accueil » et un widget personnalisé Markdown
  4. Donner tous les droits au widget (lecture et écriture) et indiquer la colonne qui contient le texte
  5. Supprimer la vue table (mais pas la donnée)
  6. Le bouton EDIT du widget permet de faire sa page d’accueil au format Markdown. Le format HTML est accepté.

Merci pour la procédure, je vais regarder cela.

Bonjour @Nic

Dans notre équipe, nous avons eu le même besoin pour plusieurs document Grist, d’avoir une page de « présentation / about / landing page ».

Voici plusieurs pistes :

1. Construire une page web from scratch avec le custom widget builder

C’est la solution la plus flexible… mais nécessite de rédiger son contenu en HTML et de construire le rendu de sa page avec CSS (et en option avec du Js).

2. Rédiger du markdown directement dans un custom widget builder

Pour éviter d’avoir à rédiger en HTML, j’ai conçu un premier protoype qui permet de rédiger son contenu en markdown directement dans une application SPA. Son intégration se fait dans Grist à l’aide du custom widget builder. Il a pour fonctions principales :


  1. Implémentation par CDN du DSFR
    Header, Footer à configurer en HTML.

  1. Moteur de rendu markdown javascript
    Le texte n’est pas écrit directement en HTML, mais rédigé en markdown et stocké dans la balise <script type="text/markdown" id="markdown-source">...</script>. Lors du rendu de la page, elle utilise la bibliothèque markdown-it pour transformer ce texte Markdown en contenu HTML lisible par le navigateur dès son chargement.

  2. Sommaire automatique et interactif
    Utilisation de la bibliothèque tocbot qui génère automatiquement un sommaire dans la barre latérale à partir des titres (<h2>, <h3>) présents dans le document. Le sommaire met en évidence la section que l’utilisateur est en train de lire et permet de naviguer rapidement vers une autre partie.

  3. Support des diagrammes Mermaid
    Le contenu markdown peut transformer du texte brut en diagrammes complexes grâce à la bibliothèque https://mermaid.js.org/. Cela se fait en insérant un bloc de code markdown avec l’intitulé mermaid.
    image

  4. Support de la coloration syntaxique de code
    Implémentation de la librairie Prism.js pour colorer automatiquement du code informatique, ce qui le rend plus lisible pour les développeurs.

📂 Voir le code source sur GitHub: grist-spa-landing-page.html

https://gist.github.com/v20100v/938efee6aa35cad8abd4c6136e6f4e74


3. Widget Markdown-DSFR

J’ai commencé le développement de ce widget, il y a qq jours. Je n’ai aucune idée quand j’aurais le temps de le finir. Ce widgeta été imaginé pour simplifier la création d’une page, sans passer par du HTML brut, et sans passer par le custom widget builder.

Il permet :

  • de saisir le contenu directement en Markdown grâce à un éditeur WYSIWYG ;
  • de configurer, en quelques clics, les éléments récurrents d’une page conforme au Design System du Gouvernement Français (DSFR) ;
  • d’obtenir un rendu final full‑DSFR (header, footer, sommaire, coloration du code) en un seul clic.

Rédaction de contenu markdown (back-end)

Dans le panneau de configuration du widget, un éditeur What‑You‑See‑Is‑What‑You‑Get vous invite à écrire votre texte en Markdown. Il est possible d’écrire en markdown directement ou bien d’utiliser le code html (et notamment les composants DSFR directement).

image

Options de configuration (back-end)

Plusieurs éléments de configuration

  • Header DSFR
  • Footer DSFR
  • TOC
  • Coloration syntaxique

image

Par exemple, pour la configuration du header
image

Rendu final (front-end)

image

image

Si ca t’intéresse de tester ce widget, je peux t’avertir dès que j’aurais publié une version stable.

Cordialement.

Bonjour Vincent,
oui je serai assez intéressé pour tester ce widget quand il sera disponible.
Cordialement.

Bonjour,
J’essaie votre solution, mais je ne vois pas comment ajouter un widget Markdown à la vue.
Pourriez vous détailler s’il vous plait ?
Merci

Depuis l’instance Grist|Dinum :

(non commenté)

Ca c’est exactement ce qu’il me fallait.

Merci d’avoir pris le temps de faire cette petite vidéo. Je pense que je ne suis pas le seul à qui elle pourra servir.

Cordialement

Il y a aussi les “document tours”, mais l’aide n’existe qu’en anglais pour le moment : Document tours - Grist Help Center

@ecouillard qui a fait la petite vidéo ci-dessus a réalisé une documentation en français sur le forum pour ajouter un tour à son document : [GristDocTour] Créer un tour de visite découverte de votre projet
Encore merci à lui :wink:

3 « J'aime »

Bonjour, pour information, @Isaytoo a publié un widget qui facilite la création de pages web dans un document Grist : Grist Design Web. créez des pages HTML sans écrire une ligne de code

Pour faire un peu plus simple qu’un widget custom, il y a possibilité de stocker un code HTML/CSS dans une table et d’utiliser la vue HTML pour visualiser.

Hello @Nic

J’ai publié le widget, en version alpha (non stabilisé) sur Github, si vous voulez le tester. Je serais preneur de vos retours/critiques.

:warning: Attention : Ce widget n’est pas encore finalisé. Il s’agit pour le moment d’un prototype toujours en cours de développement. Il est fortement déconseillé de l’utiliser en production !

Pour tester le widget :

Pour accèder au dépôt Git (consulter le code) :

Cordialement.

Bonjour @vincent.blain ,
Merci pour ce super outil !
Petit bémol : lorsque je reviens sur la page, il ouvre d’office l’éditeur. Y compris pour les personnes n’ayant que des droits de lecture. Comment forcer l’affichage du rendu et pas du panneau d’édition?
Par avance, merci,
G.

Merci @gth.leclercq

En effet, par defaut c’est l’éditeur qui s’ouvre.. car il est en mode « dev », plus pratique pour tester les fonctionnalités en cours de conception. Evidement, lorsqu’une version « stablisée » de prod sera publier, ce n’est pas la vue de config qui sera chargé par défaut.

Sinon pour répondre à ta question, la gestion initiale d’affichage de la vue se trouve dans le fichier ./assets/js/app.js (ligne 50-54 : Blaming grist-custom-widget-markdown-dsfr/assets/js/app.js at main · AOT-DEP-BADI/grist-custom-widget-markdown-dsfr · GitHub)

Pour afficher le rendu par défaut, il faut activer showWidgetPanel('main'); à la place du panneau de configuration showWidgetPanel('configuration');. Autrement dit, ca resemble à ça.

grist.onOptions((customOptions) => {
  (...)

  if (isFirstLoad) {
    showWidgetPanel('main');
  }
}

Have a good day ^^.

1 « J'aime »

Merci, @vincent.blain !

Où puis-je trouver ce panneau de configuration à modifier ?
Pour utiliser ton Widget, j’ai utilisé l’URL du Widget. Il fallait faire autre chose ?

Bonne rentrée !
G.

En utilisant l’URL du widget (https://aot-dep-badi.github.io/grist-custom-widget-markdown-dsfr/) directement, ce n’est pas possible, pour l’instant c’est une version de dev non stabilisé.

Pour modifier la visibilité du panneau de config par défaut, vous devez le faire depuis le code directement, comme dit précédemment dans le fichier ./assets/js/app.js à la ligne 50-54… ce qui implique qu’il est nécessaire de cloner/forker le projet et de l’héberger dans votre propre serveur web avec vos modifications.

Cordialement

J’ai réussi ! Mille mercis, @vincent.blain et très bonne rentrée ! :slight_smile:
G.

1 « J'aime »

A défaut, est-ce qu’une commande (format Booléen, par ex.) pour savoir quelle version afficher par défaut est envisageable prochainement dans l’outil ? Si oui, à quelle échéance ?

C’est tout à fait possible ! Dans le panneau de config, il est possible d’ajouter une option pour définir quelle est la « vue » par défaut.

Peut être la semaine prochaine…