7 ms·
Show HN: Markwhen: Markdown for Timelines
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!
- rg111 3y agoI have been using Markwhen since ~6 months. It's nice. I use it to track life events and books/projects/moocs etc.
- koch 3y agoAh that's so wonderful to hear! I'm glad it's working for you!
- deleted 3y ago[deleted]
- throwaway888abc 3y agoVery cool a very polished! Bookmarked
- Terretta 3y agoI wanted this to be awesome, but on iPad (Safari/WebKit) all entries in the example are dots with no time length.
- koch 3y agoOh :/ Even after zooming in? Or zooming in doesn’t work?
- oarsinsync 3y agoThe 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!
- Grimburger 3y agoI'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
- glorioushubris 3y agoZooming in works on my iPad.
- Terretta 3y agoOk, 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)?
- gcr 3y agoReally 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?
- koch 3y agoI 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.
- jaaron 3y agoorg-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.
- Crowberry 3y agoLooks really useful! I would love to have this as an obsidian or vscode plugin to run locally
- jonas-w 3y agoThey have a vscode extension https://marketplace.visualstudio.com/items?itemName=Markwhen.markwhen https://marketplace.visualstudio.com/items?itemName=Markwhen...
- pologreen1978 3y agoOMG, this is awesome! This is what I needed for a current project! Thank you!
- koch 3y agoThe 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 https://blog.markwhen.com) for those who are interested
- mholt 3y agoThis 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?
- koch 3y agoThe 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 https://github.com/mark-when/timeline [1] https://github.com/mark-when/view-client/blob/9eddc1a2cf79b4e39ff3d20dbf9c81c07eb93a89/src/index.ts#L32 https://github.com/mark-when/view-client/blob/9eddc1a2cf79b4... [2] https://discord.gg/3rTpUD94ac https://discord.gg/3rTpUD94ac
- mholt 3y agoPerfect, thanks!
- DocTomoe 3y agoHm, 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.
- davidktr 3y agoAs 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?
- jmisavage 3y agoInteresting 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 https://mermaid.js.org/syntax/timeline.html
- jbaber 3y agoI've wanted something like this for a very long time and made lots of half-hearted attempts. Thank you.
- tony_cannistra 3y agoThis 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.
- klardotsh 3y agoWhoa. This is hella cool. Love the documented spec (https://docs.markwhen.com/syntax/dates-and-ranges.html 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 https://github.com/mark-when/mw
- murphyslab 3y agoSuggestion: 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!
- prydt 3y agoThis looks awesome! Great idea and UI.
- ApolloRising 3y agoVery 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.
- ddejohn 3y agoOn 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.
- koch 3y agoAh yikes that’s a missed opportunity on my part. It’s https://re.markwhen.com 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]
- _kasper 3y agoIs it just me, or is this completly broken on mobile?
- koch 3y agoWhat’s broken? I think it’s less intuitive on mobile especially for a new user but it definitely shouldn’t be “completely broken”
- primitivesuave 3y agoI remember seeing this project at an earlier stage a while back - really cool to see the progress you've made here.
- harlanji 3y agoReally 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.
- danielvaughn 3y agoI'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.
- floating-io 3y agoRandom 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. =)
- kitd 3y agoI 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.
- koch 3y agoThank 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
- alberth 3y agoHow 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.
- vehementi 3y agoThat's a gannt chart though?
- whyfor_butToBe 3y agoMermaidJS 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/ https://mermaid.js.org/
- Multicomp 3y agoI 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 https://mermaid.js.org/syntax/gantt.html and https://mermaid.js.org/syntax/timeline.html 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.
- zmmmmm 3y agoPlantUML does Gantt charts too completely off line if you want. Kinda ugly but surprisingly powerful. I have managed whole giant projects this way.
- Multicomp 3y agoThanks 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.
- zakary 3y agoHi 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.
- Feuilles_Mortes 3y agoSeconding the request for an Obsidian plugin. I would also gladly pay for a one-off license.
- StoneTable 3y agoThirded. As a writer, I'm currently using Aeon Timeline (https://timeline.app/ 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.
- npunt 3y agoFourth for an Obsidian plugin, its the perfect environment to get a lot of people to be able to try it out
- vagab0nd 3y agoDoes 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.
- javajosh 3y agoI 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.
- asielen 3y agoNot 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.
- jamesgeck0 3y agoI 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.
- pratio 3y agoCongratulations 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.
- delfaras 3y agoThis timeline component is gorgeous, I would love to use it as a lib for some other project
- tminima 3y agoGreat 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.
- koch 3y agoThe CLI[0] outputs html in one self-contained file [0] https://github.com/mark-when/mw https://github.com/mark-when/mw
- byndlimitsfy 3y agoWow! This is cool. Love how the documentation is done