Been working on markwhen for a few years now, originally inspired by cheeaun's life timeline that another commenter posted about.
At this point markwhen is available as a VS Code extension, Obsidian plugin, CLI tool, and web editor in Meridiem.
Some recent markwhen developments:
- Dial, a fork of bolt.new (Stackblitz's very cool tool that leverages AI to help quickly scaffold web projects): an in-browser editor that lets you edit existing markwhen visualizations like the timeline or calendar or make your own. I just released that yesterday so it's still rough but I have big plans for it (it's one of the visualizations in meridiem)
- Event properties: each entry can have it's own "frontmatter" in the form of `key: value` pairs. I wanted this as I'm aiming for more iCal interoperability in the future, so each event could theoretically have things like "attendees" or google calendar ids or other metadata. This was released in the last month or two.
- remark.ing: this one isn't ready yet by any means but it's like a twitter/bluesky/mastodon-esque aggregated blog site. So you write markwhen and each entry is a post. In this way "scheduling" a post is just writing a future date next to it, and you have all your blog in one file. This one is a major WIP
For the record, I used the Obsidian plugin to develop, then deployed as static HTML.
Did you need/use that functionality?
It doesn't look at task completion but you can base events on other events
Are you planning to open source it? I couldn't find it on your GitHub.
Just a note. It was really hard to find how to sign up.
EDIT: and I still haven't found how to sign in in the desktop app.
https://github.com/cheeaun/life
Sample file (from the repository):
@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
Right now I'm using YAML for the file format, as I wanted something that would be reasonably readable for both humans and machines. Markwhen would also fit the bill nicely, so that's something to consider, at least as an export format. My entries have a lot of properties, though (stuff like wind speed, vessel coordinates, barometer, etc). Traditional ship's logbooks were done in a tabular manner to record all this. So I'm not sure if that would end up looking quite messy. Here is an example of a day of log entries in the current format: https://github.com/meri-imperiumi/log/blob/main/_data/logboo...
I'm using these also for some data analysis, like watermaker membrane health, or sailed miles per crew member.
Mermaid is supported by gitlab/github and other markdown editors (within code blocks).
This looks terrific, but honestly Markdown is a document markup language. Org mode, while superficially similar in scope, is actually a data storage and exchange format. The data manipulation and querying built around Org mode are unlikely to be replicated in Markdown.
Gruber (who has trademark in “Markdown”), appears to not like people using his trademark name.
https://blog.codinghorror.com/standard-markdown-is-now-commo...
Correct. Not to get too in the weeds on a 10 year old controversy, but Gruber has gone on the record to say he is cool with things like GitHub-flavored Markdown but from what I gathered back then and since then whenever he spoke on the subject (which has not been a lot), his issue with the CommonMark project (as it would eventually be called) using any name that included “Markdown” in the name wasn’t cool with him since they went ahead with an ask forgiveness instead of receiving permission approach on attempting to basically expropriate Markdown. GitHub-flavored Markdown and things like it don’t do that, they just claim to be a different kind of Markdown.
Also never understood why he didn’t just go ahead and trademark it, but at this point would it even be enforceable? It’s kind of generic now, but I don’t know if it’s generic enough to not be enforceable either, and maybe he doesn’t want the obligation of having to enforce it.
EDIT: anyway, point is, this is so far from being Markdown or claiming to be that I don’t think there is a single issue with Markwhen as presented that would ruffle any feathers in Philly. The creator shouldn’t have to worry and nobody should be telling him to worry. Like, seriously, none of this is relevant. Markwhen is just a cool looking thing that exists now and I like timelines.
Having been kicked off the word standard, they immediately thought "how can we still do this while technically obeying it". So they picked the closest possible word to Standard, implying it really was the definitive version.
Yeah, I'd be grumpy too.
If he'd called it 'Atwood Flavoured Markdown' there wouldn't be an issue. But Joel wanted to own the definition of Markdown.
As a group of tech CEOs they decided to co-opt someone's idea without even asking if it was okay.
In fact kicking John off the project was the point.
You can do that, you just can't keep the name they created.
Trying to build a timeline like this:
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.
Edit: After trying it don't think it works for this usecase.
Thanks for sharing!
Edit: One thing I'd like to see with the basic syntax example is fiddle with your default dates to make it more obvious that the span is a span. At the time scale it is now, it just looks like another dot.
Have had an idea for a timeline search/visualization. Search a thing and that pulls pages and related pages with date/times from Wikipedia. With a zoom in/out to adjust resolution like google maps - weight nodes on timeline based on page views/edits/links. Have not gotten around to try to make something like it. I bring it up here just in case something already exists and I missed it.
So, how would this combine with markdown, for the content within dated blog/journal entries? And how would I use dates as plain dates rather than special markwhen entities?
Is there syntax for dependent tasks in the timeline? In other words tasks that only start once prerequisites are done.
If the date of the original tasks changes, the dependent tasks move accordingly automatically, without needing to edit a full list of dates for each dependent item.
Why 2025-01-22 / 2026-10-24?
Why not 2025/01/22 - 2026/10/24?
(that's why it uses dashes for dates, as for why it uses / for interval I have no idea)
Note that ISO also permits a double hyphen as the interval separator which is hugely preferable to me personally and also works with file names (as mentioned in that Wikipedia article)
RFC3339 at least lets you replace the ugly T with a space but also doesn't specify any spaces around "/" for ranges.
I think YYYY/MM/DD - YYYY/MM/DD will mean the correct thing to many more people than YYYY-MM-DD / YYYY-MM-DD, which I suspect many will interpret as an OR and not a RANGE.
Personally I think it goes a little over-flexible on support for non-strict formatted dates to the point it becomes difficult to figure out what a given date string is going to result in rather than feeling easier to use. That's probably part of the reason the primary example uses the clearer format.
Because the “humans” messed up so bad that there weren’t many options left for a simple enough standard.
I would prefer ISO 8601 too over some slight variation which is allegedly more intuitive for homo sapiens sapiens. To keep it simple.
I'm thinking like the network visualizer that Obsidian has, it would be great if it could find tagged dates in any file and display them on a common timeline.
I wonder how we can "end" a timeline and start a new one in the same doc? So that I can write stuff like:
# My important project.
Description of the project goes here
## Timeline of the project.
2024-12-02: This is what I did today.
2024-12-01: This is what I did yesterday.
# My other important project.
Description of the project goes here.
## Timeline of the project.
2024-12-03: This is what I plan tomorrow.
---
Some thoughts about what I have written above.
I create a "Markwhen" folder and create a "test.mw" not there, but it doesn't render, and I can't an option for preview in the command palette.
here'd be my recommendation: /ˈmɑːɻk.wɛn/ and /məˈɻɪd.i.ən/