[HN Gopher] Show HN: Markwhen: Markdown for Timelines
       ___________________________________________________________________
        
       Show HN: Markwhen: Markdown for Timelines
        
       Author : koch
       Score  : 788 points
       Date   : 2024-12-01 17:58 UTC (1 days ago)
        
 (HTM) web link (markwhen.com)
 (TXT) w3m dump (markwhen.com)
        
       | wild_egg wrote:
       | Seems not right for the comments here to be empty but I don't
       | have much to say other than this looks incredibly nice. Hope I
       | have an excuse to use it at some point.
       | 
       | Thanks for sharing!
        
         | yawnxyz wrote:
         | two years ago, this post got almost 400 points!
         | https://news.ycombinator.com/item?id=31810876
        
         | capnahab wrote:
         | seconded.
        
       | jbaber wrote:
       | Is there support for date ranges? e.g. 2024-12-25 - 2025-01-06 ?
        
         | ks2048 wrote:
         | It's the second example in "Basic Syntax" on the right.
        
       | snappr021 wrote:
       | This looks very good.
       | 
       | 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.
        
         | genezeta wrote:
         | It's a _timeline_ that tracks events and periods. It doesn 't
         | seem to have the concept of a _task_ in any way.
        
           | KaoruAoiShiho wrote:
           | It has checklists
        
       | sleepyfran wrote:
       | This looks amazing, will definitely try to incorporate it into my
       | workflow!
        
       | sprobertson wrote:
       | Besides the tool itself that website typography is excellent.
       | Guess I'll have to use Playfair in my next project.
       | 
       | 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.
        
         | koch wrote:
         | Just edited the example so it looks like a span, thanks for the
         | feedback!
        
       | KaoruAoiShiho wrote:
       | Any chance you can copy some of this for aesthetics?
       | https://www.chronoflotimeline.com/timeline/shared/3118/Home-...
        
         | owlglass wrote:
         | Hopefully without the latency, it's slow to respond on a 2022
         | M2 Macbook Air (tried Firefox and Safari)
        
           | alexkearns wrote:
           | That's weird. It works perfectly for men much older computers
           | and also on my M2 Mac Pro. What version of OSX are you using?
           | I created that product, btw.
        
             | maleldil wrote:
             | Not OP, but on Firefox 132, Sonoma 14.4, M1 Pro, it's quite
             | janky. It's less so on Chrome and Safari, but it's still
             | noticeable.
        
             | dewey wrote:
             | On a 3,2 GHz 6-Core i7 Mac Mini with Safari it also feels
             | very laggy and unpleasant to use.
        
         | alexkearns wrote:
         | Ha! That's my product. Thanks for mentioning!
        
       | neumann wrote:
       | Just in case anyone else is out of the loop like me. This can be
       | used as a plugin in obsidian!
       | https://obsidian.md/plugins?search=markw
        
       | accrual wrote:
       | This is neat! It reminded me of this project by cheeaun that
       | enables one to create a visual timeline based on a simple texted
       | based format. The purpose was to plot one's life events in a
       | visual way.
       | 
       | 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
        
         | AlanYx wrote:
         | That is a great project! I wonder if anyone has created a
         | visualization that uses a "life in weeks" format (like
         | https://waitbutwhy.com/2014/05/life-weeks.html) rather than a
         | linear horizontal timeline.
        
           | zimpenfish wrote:
           | Rory Codes made a "life in days"[1] (which I shamelessly
           | copied for my own amusement[2])
           | 
           | [1] https://days.rory.codes
           | 
           | [2] https://git.rjp.is/rjp/daysgo
        
           | ta1243 wrote:
           | What a depressing site!
        
           | jvidalv wrote:
           | I do :)
           | 
           | https://jvidal.dev/memento-mori
        
       | x1ph0z wrote:
       | Really cool project, looking forward to using it in Obsidian.
        
       | robinhowlett wrote:
       | This looks excellent - i've been looking for a timeline-based,
       | simple-entry tool like this. Well done.
        
       | KaoruAoiShiho wrote:
       | Does this work at all for fantasy timelines?
       | 
       | 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.
        
       | jiangplus wrote:
       | This reminds me of blocks.md (https://blocks.md/), a Markdown
       | based form builder.
        
       | koch wrote:
       | Creator here - glad to see people like markwhen!
       | 
       | 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
        
         | mturk wrote:
         | I used Markwhen recently to make an interactive Gantt chart for
         | a proposal to a collaborator and it went swimmingly. (We got
         | the gig!) So, thank you!
         | 
         | For the record, I used the Obsidian plugin to develop, then
         | deployed as static HTML.
        
           | doctorhandshake wrote:
           | Sorry if this is a dumb Q but what took that from
           | Markwhen/down to HTML?
        
             | mturk wrote:
             | Not a dumb question! Markwhen has a CLI:
             | https://docs.markwhen.com/cli that I used.
        
               | doctorhandshake wrote:
               | Oh I missed the rendering capability. Thanks for the
               | link!
        
           | maroonblazer wrote:
           | I skimmed the documentation and didn't see any reference as
           | to whether Markwhen supports dependencies? I.e. MSProject-
           | style make one event dependent on another task ending or
           | starting.
           | 
           | Did you need/use that functionality?
        
             | koch wrote:
             | https://docs.markwhen.com/syntax/dates-and-
             | ranges.html#relat...
             | 
             | It doesn't look at task completion but you can base events
             | on other events
        
         | cheeaun wrote:
         | Great to see this again. Amazing how this tool expanded so much
         | over the years!
        
         | Brajeshwar wrote:
         | What is the difference between the free and the monthly
         | subscription tier?
        
         | d--b wrote:
         | Looks very good.
         | 
         | 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.
        
         | makach wrote:
         | Congratulations on your release! I've working on building
         | exactly the same tool but you beat me to it... I cannot compete
         | with this functionality, and completeness. Amazing work!
        
         | jagermo wrote:
         | pretty nifty tool. What license are you using for distribution?
        
         | EarlOfCamden wrote:
         | nice! I've been thinking I will need something like this in
         | Obsidian at some point, good to know it already exists.
        
         | RestartKernel wrote:
         | Remark.ing sounds incredible. I've been considering building
         | something like Memos but based on Markdown files rather than a
         | relational database for personal use, but this comes really
         | close to what I was looking for.
         | 
         | Are you planning to open source it? I couldn't find it on your
         | GitHub.
        
       | tiffanyh wrote:
       | Be careful.
       | 
       | Gruber (who has trademark in "Markdown"), appears to not like
       | people using his trademark name.
       | 
       | https://blog.codinghorror.com/standard-markdown-is-now-commo...
        
         | cal85 wrote:
         | This has a different name.
        
         | SllX wrote:
         | Not only is this a different name, but that was an attempt to
         | essentially expropriate Markdown. This is nothing even close to
         | that.
        
           | benatkin wrote:
           | It's plausible that it could be a trademark issue, were
           | "markdown" strongly enforced. "When" isn't the furthest from
           | "down". However, the reason behind Gruber's issue with it has
           | been misinterpreted and the Markdown name is very widely used
           | without any arrangement with its creator, and a trademark for
           | Markdown is not registered with the USPTO by its creator
           | AFAICT.
        
             | SllX wrote:
             | > However, the reason behind Gruber's issue with it has
             | been misinterpreted and the Markdown name is very widely
             | used without any arrangement with its creator
             | 
             | 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.
        
         | BonoboIO wrote:
         | Wow ... John Gruber was also very upset, ... , that the word
         | Markdown was not capitalized throughout the spec.
        
         | BonoboIO wrote:
         | I searched for a trademark for ,,Markdown", but I didn't find
         | any. Can you show me the trademark?
        
         | philipwhiuk wrote:
         | Joel tried to write an IETF Standard by the backdoor for a
         | thing he didn't invent.
         | 
         | 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.
        
         | dewey wrote:
         | Here's the license (http://daringfireball.net/projects/download
         | s/Markdown_1.0.1....) and I don't think Gruber mentioned
         | anything about a "trademark"? It seems like it was mostly about
         | the name of his project just being taken unethically. Just like
         | if someone would take a open source project name and makes it
         | look like an official for when it's not. Maybe not a trademark
         | infringement, but certainly not nice or ethical.
        
       | desireco42 wrote:
       | OK, this is fantastic, like others mentioned. Now... to figure
       | out how to use it in existing markdown... love the Obsidian
       | integration.
        
       | einpoklum wrote:
       | > _for plainly writing logs , gantt charts , blogs , feeds ,
       | notes , journals etc._
       | 
       | 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?
        
       | shepherdjerred wrote:
       | I wonder how easy it is to render the timeline in a custom manner
        
       | neoconomist wrote:
       | Neat, something like this was missing in my text-based workflow.
       | Thanks for building !
        
       | ynx wrote:
       | Meridiem seems to only have ARM builds, no Intel builds. Could
       | you perhaps update it to include Intel?
        
       | teo_zero wrote:
       | Does it work with non-English dates?
        
       | jusgu wrote:
       | Nice, these "Markdown for X" tools are super neat. Wish this
       | worked nicely with mobile view, seems like a lot of the text are
       | overflowing and margins are squished in the demo
        
       | atoav wrote:
       | Note that Mermaid also supports timelines (if it is new enough):
       | https://mermaid.js.org/syntax/timeline.html
       | 
       | Mermaid is supported by gitlab/github and other markdown editors
       | (within code blocks).
        
         | otikik wrote:
         | The charts you linked don't look like the same kind of chart to
         | me. There's information about what happened after what, but the
         | information about how much each task took seems missing.
        
           | edvardas wrote:
           | Mermaid Gannt[0] diagram type might be similar to what you
           | have in mind.
           | 
           | [0] https://mermaid.js.org/syntax/gantt.html
        
       | pflenker wrote:
       | Great project, I always felt that this was missing in Markdown.
       | 
       | 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.
        
       | _ink_ wrote:
       | Awesome! I really would like to see a Discourse Plugin for that.
        
       | dotancohen wrote:
       | Again reimplementing Emacs Org mode. Nice work!
       | 
       | 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.
        
         | vslavkin wrote:
         | Agree. This could be easily done in org. I feel that if org was
         | more popular, a lot of these solutions would disappear, or
         | would be a small project that just reads some org properties. I
         | guess it would be key to have better support for easier
         | editors, like vscode and maybe even a dedicated editor
        
       | bergie wrote:
       | This is pretty cool! I'm the developer of a semi-automatic
       | electronic logbook system for sailboats:
       | https://bergie.iki.fi/blog/electronic-logbook/
       | 
       | 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.
        
       | noisy_boy wrote:
       | This is neat. What I am waiting for is markdown for tables with
       | cells supporting multiline content in an easy to use manner.
        
       | dustedcodes wrote:
       | Things like Markdown work because they are intuitive, but the
       | date range syntax in Markwhen is anything but intuitive.
       | 
       | Why 2025-01-22 / 2026-10-24?
       | 
       | Why not 2025/01/22 - 2026/10/24?
        
         | dimava wrote:
         | Because this is ISO 8601 date format, the standard date format
         | that intentionally uses dashes to not confuse 25/01/22,
         | 01/22/25 and 22/01/26 which are the same date in different
         | formats
         | 
         | (that's why it uses dashes for dates, as for why it uses / for
         | interval I have no idea)
        
           | thunfisch wrote:
           | It's using a slash because that's how ISO 8601 defines time
           | intervals.
           | https://en.wikipedia.org/wiki/ISO_8601#Time_intervals
        
             | funnybeam wrote:
             | Thanks for linking that. I'm a big proponent of using ISO
             | 8601 but had either missed or completely forgotten about it
             | specifying a format for intervals.
             | 
             | 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)
        
           | dustedcodes wrote:
           | I know ISO 8601, but that doesn't answer my question. Let me
           | rephrase this, why was a format intuitive to a machine chosen
           | instead of a format which feels more intuitive to a human?
           | 
           | 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.
        
             | zamadatix wrote:
             | EDTF has advantages in less ambiguity. At the same time,
             | Markwhen does also support non-EDTF dates too. The docs do
             | a good job of explaining both
             | https://docs.markwhen.com/syntax/dates-and-ranges.html
             | 
             | 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.
        
             | raziel2p wrote:
             | Any time I see slashes in dates I do actually have to
             | double-check whether it's DD/MM or MM/DD.
        
             | keybored wrote:
             | > intuitive to machines
             | 
             | 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.
        
           | keybored wrote:
           | Hyphens.
        
         | ramses0 wrote:
         | Better: 2025-01-01..2025-01-31: (eg: git-log-ish format)
        
       | dirkc wrote:
       | I'd love something that can support uncertain timelines - I
       | maintain a list of space events that I'm interested in, but I
       | haven't yet figured out how to do the dates.
        
       | SuperV1234 wrote:
       | This is really cool, I wish there was some sort of life planner
       | software where I can write down appointments, notes, ideas, and
       | more in a simple format like Markdown, and automatically get
       | notifications/reminders based on what I wrote.
        
         | funnybeam wrote:
         | Have you looked at org mode for eMacs? That does precisely this
        
       | thomasreggi wrote:
       | Just wanted to say congrats on the project. This is truly a
       | masterpiece from the utility of it, the novelty, to execution
       | with the vscode / meridian app, and sass. Brilliant execution!
        
       | nivertech wrote:
       | What shortcut used to preview Markwhen documents in Obsidian?
       | 
       | 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.
        
       | SamBam wrote:
       | How would one go about creating Obsidian support for a timeline
       | that was scattered across multiple files?
       | 
       | 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.
        
       | nemacol wrote:
       | Big fan of timelines. I am going to use this for sure
       | 
       | 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.
        
       | omnster wrote:
       | Looks neat! Is there a way to make it work with pandoc?
        
       ___________________________________________________________________
       (page generated 2024-12-02 23:01 UTC)