3 points par GN⁺ 2024-12-02 | 1 commentaires | Partager sur WhatsApp
  • Markwhen est un langage proche de Markdown qui permet de consigner en texte brut des logs, plannings, notes et tâches au fil du temps, puis de les visualiser comme une timeline ou un calendrier
  • Sa syntaxe prend en charge non seulement les dates uniques et plages de dates, mais aussi plusieurs formats de date, les groupes, tags, checklists, liens, fuseaux horaires, événements récurrents, frontmatter et propriétés
  • Une même entrée peut être consultée en JSON, Timeline, Calendar ou Oneview, ce qui permet de passer d’un journal lisible par l’humain à des données exploitables par machine
  • La sortie JSON inclut l’arborescence des événements, les plages de dates ISO, les tags, le texte complémentaire, la version du parseur 1.0.1, etc., afin de vérifier directement le résultat du parsing
  • Meridiem, fourni avec, est un éditeur Markwhen/Markdown doté de l’édition collaborative, de commandes personnalisées, de snippets, de visualisations, de l’autocomplétion et de la mise en évidence des événements

Les enregistrements temporels pris en charge par Markwhen

  • Markwhen est un langage de journal proche de Markdown destiné à rédiger en texte brut des éléments temporels
  • Il cible des formats comme les logs, diagrammes de Gantt, blogs, feeds, notes, journaux, agendas, tâches, timelines et calendriers
  • Syntaxe d’entrée

    • Expression des dates : on peut utiliser des dates uniques, des plages et divers formats de date, comme 2025-04-09: Single date, 2025-01-22 / 2026-10-24: Date range ou Dec 1 2025
    • Groupes : des éléments comme Christmas Eve et Christmas sont regroupés avec group Part one et endGroup
    • Tags : des tags comme #holiday ou #haloween peuvent être associés aux événements
    • Checklists : les tâches par année s’écrivent au format - [x] ou - []
    • Liens : des liens Google, DuckDuckGo et Bing peuvent être insérés dans les éléments de checklist
    • Fuseaux horaires : après avoir défini timezone: America/New_York, on peut saisir une heure comme 2025-01-01 12:00
    • Événements récurrents : on utilise des expressions comme every year for 10 years ou every 60 minutes x12
    • Frontmatter et propriétés : des valeurs comme title, description, leader et attendees peuvent être incluses
  • Sortie et résultat du parsing

    • Les onglets de sortie sont JSON, Timeline, Calendar et Oneview
    • L’exemple JSON inclut notamment firstLine, properties, textRanges, dateRangeIso, tags, supplemental et matchedListItems pour les événements
    • Dans l’exemple JSON, parser.version est indiqué comme 1.0.1, et un message d’avertissement recommande aussi de préciser l’en-tête timezone lorsqu’aucun fuseau horaire n’est défini

Éditeur et ressources associées

  • Meridiem est un éditeur pour Markwhen et Markdown
    • Il prend en charge l’édition collaborative, les commandes personnalisées, les snippets, les visualisations personnalisées, l’autocomplétion, la mise en évidence des événements, etc.
    • Le lien de téléchargement est affiché sous la forme Download v1.0.12 2026-07-01
  • Remark.ing est une manière de traiter chaque élément rédigé en Markwhen comme une remarque de type tweet
    • Les exemples fournis sont meridiem.markwhen.com/bella/recipes.raw et remark.ing/bella/recipes
    • Un lien invite à se connecter avec Meridiem pour commencer
  • Des ressources de développement et d’utilisation sont également fournies
  • Le dépôt GitHub liste le site vitrine, le suivi général des issues, Obsidian Plugin, Markwhen CLI, Timeline, Parser, VS Code Extension, View client library, Calendar, C2 et Resume

1 commentaires

 
GN⁺ 2024-12-02
Avis de Hacker News
  • Je suis le développeur. Ravi que markwhen vous plaise ; j’y travaille depuis plusieurs années, et au départ j’ai été inspiré par la timeline de vie de cheeaun mentionnée dans un autre commentaire.
    Il est désormais disponible sous forme d’extension VS Code, de plugin Obsidian, d’outil CLI et d’éditeur web de Meridiem.
    Récemment, j’ai créé Dial, un fork de bolt.new de Stackblitz, qui permet de modifier ou de créer directement dans le navigateur les visualisations markwhen existantes (timeline, calendrier). Je viens tout juste de le publier hier, donc c’est encore brut, mais j’ai prévu de l’étendre fortement.
    J’ai aussi ajouté la possibilité d’attacher à chaque élément des propriétés d’événement au format key: value, et à l’avenir, avec l’interopérabilité iCal en tête, je veux permettre d’y mettre des métadonnées comme les participants ou l’ID Google Calendar.
    remark.ing est encore très inachevé, mais c’est un site de blog intégré façon Twitter/Bluesky/Mastodon : avec markwhen, chaque élément devient un billet. Si vous lui associez une date future, le billet est programmé, et tout le blog peut tenir dans un seul fichier.

    • J’ai récemment créé avec Markwhen un diagramme de Gantt interactif pour une proposition de collaboration, et ça a très bien fonctionné. Au final, nous avons remporté le contrat.
      Le développement s’est fait avec le plugin Obsidian, et la publication en HTML statique.
    • Félicitations pour le lancement. J’étais en train de construire exactement le même outil, mais vous êtes arrivés avant moi, et il semble difficile de rivaliser avec ce niveau de fonctionnalités et de finition.
    • Ça a l’air vraiment très bien, mais il a été assez difficile de trouver comment s’inscrire.
      En plus, dans l’application de bureau, je n’ai toujours pas trouvé comment se connecter.
    • Remark.ing a l’air vraiment excellent. Pour un usage personnel, j’envisageais de créer quelque chose comme Memos basé sur des fichiers Markdown plutôt que sur une base de données relationnelle, et c’est assez proche de ce que je cherchais.
      Je me demande s’il est prévu de le publier en open source. Je ne l’ai pas trouvé sur GitHub.
    • Je me demande quelle est la différence entre l’offre gratuite et l’abonnement mensuel.
  • Ce projet me fait penser à celui de cheeaun. Il permettait de créer une timeline visuelle à partir d’un format texte simple, dans le but de disposer visuellement les événements d’une vie.
    https://github.com/cheeaun/life
    Le fichier d’exemple du dépôt ressemble à ceci : @USERNAME's life, 24/02/1955 Born, ~1968 Summer job, 03/1976 Built a computer, 01/04/1976 Started a company, 04/1976-2011 Whole bunch of interesting events

  • Mermaid prend aussi en charge les timelines si vous utilisez une version suffisamment récente : https://mermaid.js.org/syntax/timeline.html
    Mermaid peut être utilisé dans des blocs de code avec GitLab/GitHub et plusieurs éditeurs Markdown.

    • Le graphique en lien ne semble pas être le même type de graphique. Il montre bien ce qui se produit après quoi, mais semble ne pas contenir d’information sur la durée de chaque tâche.
    • Je fais ça avec Mermaid depuis des années, mais markwhen donne immédiatement l’impression d’être plus simple.
  • C’est plutôt chouette. Je suis développeur d’un système de journal de bord électronique semi-automatique pour voiliers : https://bergie.iki.fi/blog/electronic-logbook/
    Pour l’instant, j’utilise YAML parce que je veux un format de fichier qui soit raisonnablement lisible à la fois par les humains et les machines. Markwhen pourrait aussi bien convenir, au moins comme format d’export.
    Cela dit, mes entrées comportent beaucoup de propriétés, comme la vitesse du vent, les coordonnées du navire ou les valeurs du baromètre. Les journaux de bord traditionnels de navires étaient rédigés sous forme de tableaux pour enregistrer ce genre de choses, donc avec Markwhen cela pourrait devenir assez désordonné.
    Voici un exemple de journal de bord d’une journée dans le format actuel : https://github.com/meri-imperiumi/log/blob/main/_data/logboo...
    Nous utilisons aussi ces données pour des analyses comme l’état de la membrane du dessalinisateur ou les distances parcourues par membre d’équipage.

  • Prudence. Gruber détient une marque sur « Markdown » et semble ne pas apprécier que les gens utilisent ce nom
    https://blog.codinghorror.com/standard-markdown-is-now-commo...

    • Là, non seulement le nom était différent, mais c’était en fait une tentative d’embrasser Markdown. Ça n’a vraiment rien à voir avec ce projet
    • La licence est ici : http://daringfireball.net/projects/downloads/Markdown_1.0.1....
      Je ne crois pas avoir vu Gruber mentionner une « marque ». Le problème semblait surtout être qu’on reprenait de façon peu éthique le nom de son projet. C’est un peu comme si quelqu’un reprenait le nom d’un projet open source pour donner l’impression que c’est le projet officiel. Ce n’est peut-être pas une violation de marque, mais ce n’est ni bien ni éthique
    • J’ai cherché une marque déposée pour « Markdown », mais je n’en ai pas trouvé. Peux-tu montrer cette marque ?
    • Joel a essayé de faire passer par la petite porte une norme IETF pour quelque chose qu’il n’avait pas inventé
      Quand on l’a empêché d’utiliser le mot « standard », il a immédiatement réfléchi à « comment continuer tout en respectant techniquement la contrainte », et a choisi un mot aussi proche que possible de Standard, suggérant de fait que c’était la version définitive
      À sa place, j’aurais été furieux. Si le nom avait été « Atwood Flavoured Markdown », il n’y aurait pas eu de problème, mais Joel voulait posséder la définition de Markdown
      En gros, des CEO de boîtes tech se sont réunis et ont décidé de s’approprier l’idée de quelqu’un d’autre sans même lui demander si ça lui convenait, et en réalité le but était d’exclure John du projet
      On peut faire ça, mais on ne peut pas en plus continuer à utiliser le nom créé par cette personne
    • John Gruber s’est aussi beaucoup énervé du fait que, dans toute la spécification, le mot Markdown n’était pas écrit avec une majuscule
  • Encore une réimplémentation du mode Org d’Emacs. Bien fait
    Visuellement, c’est excellent, mais honnêtement Markdown est un langage de balisage de documents. Le mode Org a une portée qui paraît similaire en surface, mais en pratique il ressemble davantage à un format de stockage et d’échange de données. Il me semble difficile de reproduire dans Markdown les fonctions de manipulation et de requêtage de données construites autour du mode Org

    • D’accord. C’est quelque chose qu’on peut faire facilement avec Org. Si Org était plus populaire, beaucoup de solutions comme celle-ci disparaîtraient, ou ne seraient que de petits projets lisant simplement les propriétés Org
      L’essentiel semble être la prise en charge par des éditeurs faciles d’accès comme VS Code, voire mieux encore par un éditeur dédié
    • Par exemple, il y a https://github.com/legalnonsense/elgantt/, https://github.com/elsatch/org-timeline-viewer, https://orgmode.org/worg/org-tutorials/org-taskjuggler.html
      Les utilisateurs d’Org-mode et ce genre d’outils semblent s’attirer comme des papillons vers la flamme. Org-mode lui-même est déjà un paquet logiciel assez niche, et le nombre de paquets écrits par-dessus me surprend toujours
    • J’aimerais vraiment aimer Org mode, mais je n’y arrive pas. Sa syntaxe me paraît trop bizarre. Markdown, c’est juste quelques symboles en plus ; Org mode, par certains aspects, donne l’impression d’écrire du LaTeX
      MediaWiki, c’est pareil. J’aime les systèmes de wiki, mais WikiText me rebute vraiment
  • Je me demande si ça fonctionne aussi pour des chronologies de fantasy
    Je voulais créer une chronologie du genre title: History of the World, 0: Foo Calendar's civilization founding., 124: Invention of the Foo Calendar, 220: Founding of Bar, 1310: Invention of GlooblyGock, 5621: Demon invasion.
    Après essai, ça ne semble pas adapté à cet usage

  • Je laisse un commentaire parce que ça ferait bizarre que les commentaires soient vides. Je n’ai pas grand-chose à dire, mais ça a vraiment l’air excellent, et j’espère avoir un jour une excuse pour l’utiliser

  • Pour ceux qui, comme moi, ne le savaient pas, c’est aussi disponible sous forme de plugin Obsidian : https://obsidian.md/plugins?search=markw

  • Peut-on s’inspirer un peu de l’esthétique ici ? https://www.chronoflotimeline.com/timeline/shared/3118/Home-...

    • C’est mon produit. Merci de l’avoir mentionné
    • Ce serait bien de s’en inspirer, mais sans la latence. J’ai essayé sur un Macbook Air M2 de 2022 avec Firefox et Safari, et c’est lent à réagir