Show HN: Markwhen: Markdown for Timelines (app.markwhen.com)
I've been working on markwhen for a bit as a way to create timelines and calendars from plain text, like markdown.
I personally like tools that let you immediately start using them, and I set out to do that here with markwhen.
Let me know if you have any questions or feedback!
59 comments
[ 2.4 ms ] story [ 184 ms ] threadThat said, it works, and is impressive all the same. Good work!
Centering and zooming doesn't work either. The "centre" seems quite offset and ends up in the 2030's
If I zoom to 2023 to, say, 2025, it makes visual sense.
Do you have or plan to let timelines or subsets of timelines be embedded with kroki.io and/or Mermaid, and later support for e.g. pandoc (.svg and .png fallbacks)?
Having structured timekeeping capability in plain text (due dates/deadlines, work estimates, time tracking) is also a core feature of org-mode. Do you have a sense for how your approach compares?
Not sure how well any of the non-emacs parsers work though.
This is what I needed for a current project!
Thank you!
https://mermaid.js.org/syntax/timeline.html
Thank you.
There's a promo code on the most recent blog entry (https://blog.markwhen.com) for those who are interested
Would my app be able to generate a Markwhen file and then embed the viewer to view it? Would that be free or paid?
[0] https://github.com/mark-when/timeline
[1] https://github.com/mark-when/view-client/blob/9eddc1a2cf79b4...
[2] https://discord.gg/3rTpUD94ac
Is there any way to accept pledges for such plugins to gauge how many people would really pay for it, and how much?
UPDATE: There's also a related CLI tool?! Oh HELLS yes. https://github.com/mark-when/mw
Zoom/Magnify feature doesn't feel intuitive with the zoom being centred on the middle of the layout and expanding both to the left and the right. It acts like a vecgtor image editor, rather than like a timeline which tends to have an explicit start point. That behaviour makes it difficult to interact with.
My preference would be to have it start at an anchor somewhere near the left/early edge of the page, then while zooming, to only expand toward the right, pushing the future further away to the right.
Overall really well done!
You just add ‘re:’ in the header of a shared markwhen and (when I fix it) it shows up as re.markwhen.com/[your username]
I'm working in Python land lately and a big fan of these plain text/markup like formats. I might've stumbled on this format before, definitely at least something similar and was excited. Can't promise I'll tackle the job but I do have great interest in looking closer at the format and seeing if I can load it into Python, and if I did then an ical import/export would probably be the first thing I hook up. Sorry if it's poor form to say I'll do it for dirt cheap if anyone wants to fund it, like $15/hour, might take under a week to get something working.
Thanks for the great work and demo that so powerfully illustrates it.
- On an iPad Pro (iPadOS 16.1.1 - not sure how current that is offhand), the UI is extremely unintuitive and/or broken. Tapping the example landed me in an editor that then took far too long to figure out how to get out of.
- It remembers that the editor is up. Once up, getting out and back to the homepage is next to impossible until you figure out the UI (clearing cookies probably would have worked, but that’s not exactly convenient). Reloading just takes you back to the editor.
- The timeline and one other view (can’t remember which one offhand) just showed a black screen.
- One of the biggest draws for markdown for me is the fact that it, in general, reads like a formatted text file. The formatting “instructions” are almost transparent in that sense. Not completely, but almost. My initial view of the example timeline’s source did not feel that way.
For example, sections:
(Ignore my extra caps; iOS is annoying like that.)“Sections” in markdown would be written more naturally, and the end intuited based on the following content:
The extra wordy markup means little, and detracts from readability. Similar with groups. Date formats appear to get somewhat complicated as well. If that was resolved, I think it would be much better.This is just a surface reaction to what I see; I didn’t do a horribly deep dive. I love the idea. It just needs some work if it’s going to be as smooth as markdown.
JMHO, and good luck in any event. =)
It's very useful for that, don't get me wrong. But associating it with Markdown is a stretch.
> on iPad the UI is extremely unintuitive and/or broken
The benefit of the desktop is being able to hover over buttons, most have tooltips with descriptions. This is not an excuse necessarily but I would liken it to landing on github.dev or vscode.dev without having seen or used VS code before. I really hate walkthroughs with tooltips (both as a user and a developer) but maybe I'll have to do something like that. What I do like about the current UI is that, by keeping control elements on the side and tabs on the bottom, I can have a consistent experience across devices and screen sizes.
Drawing more attention to the fact that there is a tabbed interface might help, seems like that was an issue.
Re: markwhen's syntax - I'll tell you what I like about it first, and then get into some of your points. I like that it is quite progressive. You don't need a header to start, nor groups, nor ranges necessarily, and you shouldn't have to think much about date formatting.
``` 1 Aug 2023: hi ``` is a valid markwhen document. If a list of dates like that is all you need, that's great. If you need ranges you can add ranges. Need groups, add groups. Need metadata, add a header. I like that it follows a new user's experience, you don't necessarily have to start with everything from the beginning.
On groups and sections, people wanted nesting, soooo the simple hashtag syntax wasn't going to work without an end hashtag or something. So it doesn't mean nothing, it means the end of the group or section. Idk, I'm open to suggestions about it. I personally don't use nested groups and sections that much but people wanted it. There has to be some endGroup or endSection syntax I think, even if it's not those specific words
Isn’t the real power of Timelines, is being able to adjust one task duration and then have it auto cascade down the impact to all the dependent tasks.
I’m on mobile otherwise I’d link to the Gantt directly
You can find it in the docs here I believe:
https://mermaid.js.org/
See https://mermaid.js.org/syntax/gantt.html and https://mermaid.js.org/syntax/timeline.html
Having said that, it's late tonight but I plan to give this markwhen a good look tomorrow when I'm fresh, because even being aware of the above options, I've not found an offline friendly code-to-timeline tool I can settle on and this may be it.
I also currently use Omniplan for timelines and Gantt charts, so that is what I would be comparing Markwhen to, in terms of functionality. Omniplan is a very mature app and I recommend giving it a try if you haven't yet. There's a lot of ideas in there that you could import to Markwhen.
Thoughts: - The travel itinerary planning aspect is interesting. I've never found an itinerary planner I liked, and many of them cost a substantial amount. I'd like to see more about this from markwhen. - The syntax is somewhat confusing on first reading. I am used to using `###` to mark out headings and paragraphs and this conflicts with standard markdown in that sense. though I havent used Markwhen enough yet to climb over the learning curve.
Two biggest feature requests from me:
- release an Obsidian plugin for Markwhen so I can have Markwhen timelines inside my exisiting Obsidian notes. I'd be happy to pay a one off licence for this even though it would be locally run.
- Find a way to do automatic dependency levelling so that when one task is dependent on another, and I increase the time taken for the first task, then the dependent one is automatically moved forward appropriately.
When playing murder mystery games, frequently I need to construct a timeline of events. This would be the perfect tool if I can mark timestamps.
EDIT: yes it does! But looks like it needs to be in the ISO date format.