Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Markwhen: Markdown for Timelines (markwhen.com)
327 points by koch on July 31, 2023 | hide | past | favorite | 58 comments
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!



Random feedback:

- 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:

   Section welcome #welcome
   Blah blah blah
   EndSection

   Section foo #foo
   Blah blah blah
   EndSection
(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:

    # Welcome
    Blah blah blah

    # foo
    Blah blah blah
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. =)


I agree with your point 3. This is more like a DSL for Gantt charts, a bit like what PlantUML is for s/w diagrams.

It's very useful for that, don't get me wrong. But associating it with Markdown is a stretch.


Thank you for the candid feedback.

> 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


Whoa. This is hella cool. Love the documented spec (https://docs.markwhen.com/syntax/dates-and-ranges.html) and "here's an open spec I'm adding value to with a creature-comforts UI, but not walling you in per-se" approach to funding the thing. Rock on, I'll have to play more with this soon.

UPDATE: There's also a related CLI tool?! Oh HELLS yes. https://github.com/mark-when/mw


The pricing structure I'm going for is offline == free, online/collaborate == paid.

There's a promo code on the most recent blog entry (https://blog.markwhen.com) for those who are interested


As others said, markwhen is awesome, but I'm not sure I'd use it as a standalone tool. I would definitely pay for a VSCode and Obsidian plugin to easily integrate it in existing workflows.

Is there any way to accept pledges for such plugins to gauge how many people would really pay for it, and how much?


This is neat! I've been following it for a few months.

Would my app be able to generate a Markwhen file and then embed the viewer to view it? Would that be free or paid?


The viewer is open source[0], so yeah you can embed it in an iframe (that's what the editor does), and just `postMessage` the parsed markwhen and some additional state to it. The structure of the posted data is here[1]. I'm happy to help, rob@markwhen.com or I'm in the markwhen discord[2]

[0] https://github.com/mark-when/timeline

[1] https://github.com/mark-when/view-client/blob/9eddc1a2cf79b4...

[2] https://discord.gg/3rTpUD94ac


Perfect, thanks!


Hm, I am trying to consolidate my toolchain these days. This is neat, but not 'I need another program running / another website in my life' neat. If you make an Obsidian plugin, I'd happily pay for that.


Hi Rob, I love the concept. I've played around with it for about 20 minutes now. I use obsidian for almost all my notes and documentation because I like keeping everything as close to plaintext as possible.

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.


Seconding the request for an Obsidian plugin. I would also gladly pay for a one-off license.


Thirded. As a writer, I'm currently using Aeon Timeline (https://timeline.app/) to track fictional timelines. It does a nice job of handling and displaying the data but it's fairly complex and not Markdown. An Obsidian plugin would be super useful in getting my workflow 100% Markdown.


Fourth for an Obsidian plugin, its the perfect environment to get a lot of people to be able to try it out


Also agree, Obsidian plugin would be amazing!


This is not only excellent, but has a great working example that doesn't feel like a toy and showcases the app's features. Great work! Especially on the presentation of the app's value.


Really nice project! Thanks for sharing with us!

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?


I haven't used org mode. I should probably look into it. If you know how it compares, though, I'm all ears. Always looking to improve.


org-mode is fairly structured by default. It's hierarchal with built in support for properties on nodes. There's a built in format for dates.

Not sure how well any of the non-emacs parsers work though.


Interesting project. Mermaid has an experimental syntax for timelines too. You might want to look at it for ideas.

https://mermaid.js.org/syntax/timeline.html


I've been trying to find something like this, because I dislike most product roadmap tools and yet I need to use them often. Mermaid has an okay-ish gantt chart but it feels underpowered for what I need.


How does this handle dependencies / relationships?

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.


That's a gannt chart though?


I have been using Markwhen since ~6 months. It's nice. I use it to track life events and books/projects/moocs etc.


Ah that's so wonderful to hear! I'm glad it's working for you!


Really great work. I see great value in an ical translator, to and from if possible.

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.


Looks really useful! I would love to have this as an obsidian or vscode plugin to run locally



Suggestion:

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!


I thought the application was broken at first. The timeline for the example document is scrolled all the way left to 1986 by default, with no visible scrollbars in Firefox on macOS.


On the landing page, there's a little blurb about a blogging platform (called "re:" I guess?) built on markwhen. But there's no link to any such platform and, well... trying to google "re blogging platform" is an exercise in futility. This is more of a gripe with whoever the heck "re:" is, but I thought I'd throw it out there anyway.


Ah yikes that’s a missed opportunity on my part. It’s https://re.markwhen.com and it’s slightly broken at the moment. Basically it turns markwhen into a blog, each entry is an event. Only entries that are before the current time show up.

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 wanted this to be awesome, but on iPad (Safari/WebKit) all entries in the example are dots with no time length.


Oh :/ Even after zooming in? Or zooming in doesn’t work?


Ok, indeed: default zoom is 1920 to 2140, just in case my projects last 120 years.

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)?


The default view is super zoomed out. The zoom itself is a bit .. fussy.

That said, it works, and is impressive all the same. Good work!


I'm getting the same, it's zoomed out to 2140.

Centering and zooming doesn't work either. The "centre" seems quite offset and ends up in the 2030's


Zooming in works on my iPad.


Not sure if this is currently possible but I would love if you were able to extract the dates from multiple docs at once. So I could for example have separate docs for different meetings and then put the relevant dates in each specific doc but then have a single view of all dates.

Looking forward to the desktop version.


MermaidJS is a markdown diagram tool with a huge variety of options including Gantt charts. Might be worth a look as well!

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/


I vouched for this because while it does not relate to using markdown to create gantt & timeline charts, it does relate to using code to create said charts and is therefore IMHO a relevant comparable tool.

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.


PlantUML does Gantt charts too completely off line if you want. Kinda ugly but surprisingly powerful. I have managed whole giant projects this way.


Thanks for the idea, I hadn't considered checking if PlantUML could do that...that's what I get for pidgeon-holing that tool for hierarchical state machines I guess.


Great work. Nice blend of aesthetics and simplicity of building the timeline.

Along with embed link, I was wondering if there is a way to download the HTML of the rendered timeline directly. I use static pages for my blog and would love a way to add the rendered output directly.


The CLI[0] outputs html in one self-contained file

[0] https://github.com/mark-when/mw


Congratulations on the release. I've been following this project for a while and it's great to see this. I agree with many others here about an obsidian plugin but no rush. The work you've done here is amazing.


Does this support timestamps within a day?

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.


I like this, but I don't see an easy way to use it as a library. For example, I'd like to add it to showdown as a plugin, but the API seems too low level for that, at first glance.


Is it just me, or is this completly broken on mobile?


What’s broken? I think it’s less intuitive on mobile especially for a new user but it definitely shouldn’t be “completely broken”


Very well done, have you considered a one time price for personal? Many of us hate the monthly type charges for a tool we only use sometimes.


I remember seeing this project at an earlier stage a while back - really cool to see the progress you've made here.


This timeline component is gorgeous, I would love to use it as a lib for some other project


I've wanted something like this for a very long time and made lots of half-hearted attempts.

Thank you.


Wow! This is cool. Love how the documentation is done


This looks awesome! Great idea and UI.


Very cool a very polished! Bookmarked


[deleted]


OMG, this is awesome!

This is what I needed for a current project!

Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: