12 ms·
Show HN: Sundown – an alternative to Markdown
- fouc 9y agoDoes anyone think that there should be an alternative to markdown with a more natural syntax, that is text first? Something that is meant to be viewed in plain text most of the time, looks good in text, and easy to type in text, and has nice syntax highlighting. Markdown isn't very aesthetically pleasing in plain text IMO. It's awkward to type, and it doesn't handle indenting the way people would normally create lists and indents in text. (## H2, ### H3 .. really??)
- reacharavindh 9y agoI really like it. I was just thinking of writing a markdown to custom HTML parser for my own needs and found markdown syntax to be lacking to express my HTML tags. I can choose SunDown format for it. Do you have a parser that converts SunDown to HTML already? I can build it as my first project in Rust while attempting to learn it.
- emacsgifs 9y ago> for my own needs and found markdown syntax to be lacking to express my HTML tags This is a little strange tbh. The majority of markdown parsers will allow inline html elements too. If you're trying to do a large structured document, which will need block specific styling, try Pug. (Formerly Jade.) HAML & Slim also solve similar problems and have the benefit of a pretty significant userbase. (All support embedded Markdown) Sundown is looking very much like a naive and poorly thought out also ran.
- reacharavindh 9y agoI'm admittedly naive in this front of anything JavaScript/npm/gulp/yarn/many other tools. They always seem to be over complicated for my interest. Quickly reading about pug feels like it converts templates to some JS files which I don't want. I'd like a Markdown/SunDown/custom markup to one inlined HTML, which I can deploy wherever I want..
- emacsgifs 9y agoHaml or Slim are a better bet than Pug then. Nb: pug aka Jade used to convert direct to HTML, I also lament the "everything the JavaScript" silliness.
- norswap 9y agoJust because someone is going to link it, I might as well do it first: https://xkcd.com/927/ https://xkcd.com/927/ But yeah, "Too many implementations of Markdown" is not an issue a new markup language is going to solve. "Markdown is slow!" is nonsensical: its implementations are slow (it seems the author tested this, but the link supposed to supply evidence doesn't -- I find it hard to believe that aren't fast implementations of Markdown, but perhaps). Nothing in the language makes it inherently slow.
- cptaffe 9y agoThe reference implementation of CommonMark, cmark (https://github.com/commonmark/cmark https://github.com/commonmark/cmark) > cmark can render a Markdown version of War and Peace in the blink of an eye (127 milliseconds on a ten year old laptop, vs. 100-400 milliseconds for an eye blink). In our benchmarks, cmark is 10,000 times faster than the original Markdown.pl, and on par with the very fastest available Markdown processors.
- wpietri 9y agoDefinitely. I worked for a while on a Markdown-based CMS. Markdown renderers vary widely in performance, probably because a) it's pretty easy to write a basic renderer, and b) performance doesn't matter for many use cases. But I did a bake-off, found some decently fast ones, and was confident they could be made faster if it mattered.
- tomcooks 9y agoGoodspeed and may this ulterior specification become famous and used ; buuut i can't avoid thinking about a certain Xkcd strip [0] [0](https://imgs.xkcd.com/comics/standards.png https://imgs.xkcd.com/comics/standards.png)
- SwellJoe 9y agoI'm iffy on this kind of thing. Markdown has the advantage of looking roughly like what you'd do in plain text and is completely readable in plain text with no processing. It also has the advantage of being nearly standard; it is used on thousands of sites, including some very large ones (e.g. reddit, github, etc.). If I wanted my users to memorize HTML tags I would have just gone with HTML. This seems to have the negatives of both Markdown and HTML, and no unique advantages over either. It's a little less verbose than HTML, but you have to know HTML tags (and Sundown syntax) to use it, and I have my doubts it can avoid the quirks Markdown has because converting any "friendly" markup to a formal syntax like HTML is always prone to quirks. It has the alleged advantage over Markdown of being able to use HTML and Sundown together...but, some Markdown processors also allow mixing MD and HTML, so this is not a unique benefit (this is quirky in Markdown, but I suspect it's quirky in Sundown, too). Maybe I'm missing the benefit here, but it seems like a technical solution to a people problem, and that almost never works. Also, as an aside, it's got the same name as a Markdown processor that is even mentioned in the article! That seems bound to cause confusion, given the similarities in purpose.
- cptaffe 9y agoI also don't think his quams about performance apply to commonmark. It benchmarks quite fast
- SwellJoe 9y agoYeah, I was also confused by using a project that's been unmaintained for several years as the pinnacle of Markdown performance, but I have never once thought about the performance of Markdown parsers (I can imagine someone on the scale of reddit or github would care about performance of the MD parser, but I never have for my projects) so I don't know enough to argue about whether performance has improved since then.
- ne01 9y agoAt SunSed we provide a cloud IDE to our users so they can easily update their website. Every time they make a change the IDE automatically saves the file and on the server we had to compile Markdown -> HTML+SunSed(custom HTML tags) -> Executable. Not to mention bulk website upload, backups and restores (a website could have thousands of pages). Markdown was the slowest part with the most resource usage. I actually bench marked all of the Markdown implementatinos back in 2016 (or early 2017). https://github.com/vmg/sundown https://github.com/vmg/sundown was by far the fastest!
- corndoge 9y agoIt looks like he set out to solve all the problems reStructuredText solved a long long time ago
- hashhar 9y agoThis doesn't seem to solve any issues that markdown has and also fails to see how fast most modern Markdown implementations are. Using an unmaintaned 5 year old perl script for benchmarking is ignorant.
- weego 9y agoThe post just seems like a verbose post hoc justification for wanting to reinvent something. Which is fine, a lot of good learning comes out these toy domain languages. I just don't see any technical benefits or conceptual leaps here other than to say "I built this". It's like back in the day when someone would proclaim smarty to be a disaster and then release their template system that was conceptually exactly the same baring some syntactic sugar
- ne01 9y ago> A lot of good learning comes out these toy domain languages. I agree with the learning part but SunSed is not a toy language. I could be wrong about how valuable it's going to be but it's definitely more than a toy. Sundown is a very simple preprocessor that plays well with the SunSed language. With SunSed, you can create your own HTML tags (that run server-side) and abstract HTML, CSS and JavaScript. Sundown is just the icing on the cake that lets you easily use your custom tags. SunSed language is a complete programming language, you can checkout the tags here: https://www.sunsed.com/tags/s https://www.sunsed.com/tags/s Again, I could be wrong on how valuable it's going to be for front-end developers. But I strongly feel that it's a little bit more than a toy! ;)
- djsumdog 9y agoI remember when I moved off Wordpress to Jekyll, all my Wordpress stuff was in Textile using a Textile plugin. When I migrated off, I used a plugin that ran everything through the HTML rendered and exported it. My new stuff is in Kramdown, and my old stuff is HTML with some Jekyll headers at the top. I did have to go back through some of it and clean it up too. If I move to something new, I'd just render everything I have with Kramdown into HTML and move on to the next thing. That's sadly how we have to deal with these engines.
- tazard 9y agoSeems closer to Pug with :colons than an alternative to markdown to me. Looks like an interesting project though!
- arnon 9y agoIt feels like every other week there's a new alternative to Markdown.. Question is, do we need another alternative to the Markdown alternatives we already have?
- anigbrowl 9y agoUnsurprising. Markdown was supposed to be stupid simple but ended being complicated because people can't resist the temptation to extend things.
- peterkelly 9y agoNo.
- usernam 9y agoIt's a classic problem with markdown: it's a minimal markup language, which is ok for comments and super simple documents, but requires extensions for pretty much anything else. This is why every week you see a new markdown implementation which is just ever-so-slightly different than the other, with every service and tool implementing it's own. I dread markdown, because I know there will be extensions. And the extension syntax doesn't look nice/simple. Syntactically, asciidoc or rst is much more thought-of than any markdown-like syntax I've seen. This is also the main reason I really discourage markdown for anything but a comment system. Just start with something more complete if you plan on documentation. I was strongly against md on the documentation for julia for exactly these reasons. Not even one year later, md in julia is already contains extensions which are oh-just-very-similar-to-but-not-quite the others.
- liquidise 9y agoGreat solution. Given the problem statements that lead to this, i was pleasantly surprised by the elegance of the syntax. There are the obvious arguments about plain-text readability and additional standards, I would suggest thinking about this not as a Markdown replacement but rather a different use-case entirely. I understand the author framed it as a replacement. While that may have been the impetus to the project, i think the result is something entirely it's own. Markdown has a place when a document stands to be published/shared in multiple formats. I use it regularly for blog posts that i also email to others for feedback in plaintext. Sundown looks to me like a light-weight, text-focused haml. Usable when something is intended to only be published in HTML, but where you want to be freed from that markup.
- ne01 9y agoThank you! > I would suggest thinking about this not as a Markdown replacement but rather a different use-case entirely. You are right! I'm thinking about the same thing here! I could even give it no name and instead present it as part of the SunSed programming language (the part that lets you create custom HTML tags).
- git-pull 9y agoFirst off, Good work on your project, Sed! Here are some clickables of SunSed: - https://www.sunsed.com/ https://www.sunsed.com/ - https://www.sunsed.com/pricing https://www.sunsed.com/pricing - https://www.sunsed.com/tags/s https://www.sunsed.com/tags/s A list of builtin tags for Sundown I am fine with a new markup if it's quick and to the point. I believe that we need to give the markdown/reStructuredText things a fresh look. At the very least, we may come up with ideas to improve existing languages. Are you planning on opening the source to Sundown? What's the current implementation running in? (golang, python, c, etc?) Some of the other commenters are mentioning markdown being fast. This is probably true. Since there are processors for markdown in C. Actually, when I first glanced the title, I thought it was https://github.com/vmg/sundown https://github.com/vmg/sundown. In any event, that's just a naming issue. The bigger point is, I think the overall project at SunSed looks pretty cool. Simple markup turns into a nice website. Congratulations on having the website up!
- ne01 9y agoSed here. Thank you very much! > Are you planning on opening the source to Sundown? Sundown is just a HTML preprocessor implemented in a few lines of regular expressions! I actually planned to open source it before writing the article but did not have the time. However, I'm not planning on open sourcing the SunSed language compiler (the part that allows you to create custom html tags). But I will open source all the tags and libraries here: https://github.com/sunsed https://github.com/sunsed
- Sir_Cmpwn 9y agoVery poor naming choice. Sundown is the name of a popular Markdown implementation: https://github.com/vmg/sundown https://github.com/vmg/sundown Strongly suggest renaming your project as early as possible.
- mikewhy 9y agoThe article even links to Sundown, making it even more bizarre.
- gitgud 9y agoHe specifically addresses the name too, in the article, maybe he doesn't realize the confusion: Solution[0] = "A good name" First, I cameup with "SML" (SunSed Markup Language) but eventually decided to go with "Sundown" (SunSed Markdown) because it's a cooler name that almost describes itself.
- ne01 9y agoAuthor here. You are right about the name confusion! It has been several years since the last commit to the /vmg/sundown and even if it was active it's not a very common Markdown implementation (although it's one of the best).
- simlevesque 9y agoHow often does one need to commit to a project in order to not have it's name stolen?
- dang 9y agoPlease don't post acerbic swipes to Hacker News. Even if you have a point, it's not worth damaging the community for. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html
- palimpsests 9y ago
- fiatjaf 9y agoSo you've created a website with your own name?
- dang 9y agoWould you please not be a jerk here? That's against the rules in general and particularly against the rules for Show HNs: https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html Edit: you've continued to post uncivil/unsubstantive comments for quite a while now. We ban accounts that do that. If you can't or won't fix this, we're going to ban you, so please fix this.
- jitl 9y agoHere’s the author’s intent with their system: > ... create a platform that makes it super easy for developers to create awesome websites without forcing them to learn new stuff (language, syntax, platform, framework and more) And yet: > I explain what was wrong with Markdown and why I finally had to create my own Markdown alternative I do not think a new, custom HTML template language solves the original goal.
- ne01 9y agoSed here (the author). SunSed is for developers with HTML knowledge. You can use SunSed language to create custom HTML tags (abstract HTML, CSS and JavaScript) and then Sundown to abstract your HTML. I think Sundown is very easy to learn and SunSed language has very little learning curve because it follows the exact syntax of HTML: https://www.sunsed.com/tags/s https://www.sunsed.com/tags/s
- simlevesque 9y agoWhy not use Pug ?
- ne01 9y agoI already answered this. Let me copy and paste it from my other comment: Aside from the difference in syntax (which is huge), I would say convenience. SunSed = Hosting + IDE + CDN + a new programming language + Layout and Template system (like Jekyll and Hugo) + Many built-in tags to abstract things like embedding Youtube videos in a responsive way (which is not easy -- requires so many div wrappers). You can also create your own tags and share it with others. I have started the process of creating tags for useful and popular libraries: https://github.com/sunsed https://github.com/sunsed If you know HTML, you already know the syntax of SunSed programming language, and can create fast dynamic websites with ease by abstracting your website content in custom HTML tags! After all, SunSed is a programmable website builder.
- simlevesque 9y ago
- tobyhinloopen 9y agoThere are many markdown implementations and standards. Madness! Lets create another one, but with a syntax that is worse somehow
- kiernanmcgowan 9y agoObligatory xkcd - https://xkcd.com/927/ https://xkcd.com/927/
- deleted 9y ago[deleted]
- shortformblog 9y agoI think there's lots of opportunity for a markdown alternative, but I worry that this starts in the wrong place. It seems like it's built around code, whereas Markdown is built around writing. A friend of mine who works at a newspaper noted that it was really hard to get a lot of people in the mindset of Markdown, because it requires users to think about their writing in terms of HTML, which is harder than it sounds for some. This seems like it pushes things further in a direction where people who aren't code-savvy can't get on board. The other thing to keep in mind: The reason why Markdown is great is because it's readable even without being rendered. This is not, because it simplifies the HTML without abstracting it. That's a tough hurdle to get past for a lot of folks.
- emacsgifs 9y agoI would be much more interested in your friend's view of an ideal text format.
- shortformblog 9y agoI don't think his point was that Markdown even sucks. I think, rather, it's that a lot of people don't know HTML and find rich text much more intuitive, despite its weaknesses. It's sort of the 90/10 rule; Word is good for 90 percent of people, but the other 10 percent are driven nuts by it.
- nsebban 9y agoI'm not sure the world needs a new markup syntax, especially an awkward mix of HTML and Markdown. But I could be missing the point, since I just base this on my own needs. But thing is, talking about performance and scale goes exactly against your project's credibility. These are pretty much the two dumbest criterias when it comes to markup syntaxes.
- cyberferret 9y agoStarted reading with interest, but then everything started to look really similar to HAML [0] after a bit. With the exception that HAML also lets you add CSS classes to your tags... [0] - http://haml.info/ http://haml.info/
- ne01 9y agoWith SunSed you can create your own custom HTML tags and abstract all the CSS and JS then use Sundown to call that tag (or the HTML syntax). <s:tag name="note"> <div style="color:red;"> Note: {{@content}}!! </div> </s:tag> And then call your new tag using the HTML syntax or Sundown: <note>Sundown is awesome ;)</note> :note Sundown is awesome :)
- deckar01 9y agohttps://www.webcomponents.org/introduction https://www.webcomponents.org/introduction
- egypturnash 9y agoI don’t think this feels like it’s solving any problems that Markdown isn’t already solving. If I’m reading it right, I have to do all this just for some italics? : There is some <i>italic</i> text in this line. This is seven more characters than the equivalent Markdown! And two more than the equivalent HTML. And includes at least five characters that are a bitch to type on most screen keyboards.
- ne01 9y agoSed here, (the author) Image tag in Sundown is easier than Markdown: :s:img http://link-to-image.jpg image alt tag Or how about embedding a tweet: :twitter:embed http://link-to-tweet Or, youtube, user sign-up form and more... You are absolutely right! There is a trade-off. Some tags are easier in Markdown (e.g. bold, italic, inline code and a few others). But you cannot extend markdown with your own custom elements can you? Sundown by itself is not that useful. It gets really useful when you use it as a preprocessor for your own custom HTML tags. Here I explain how you can create your own server-side HTML tags: https://www.sunsed.com/manual/creating-tag https://www.sunsed.com/manual/creating-tag Again, Sundown is just a HTML preprocessor you can write all of the above tags like this: <s:youtube> http://youtube-link </s:youtube>
- prawnsalad 9y agoThis seems to be aiming for completely different goals though. People use markdown as a text and word formatting system that is readable in plain text and easily transforms into HTML. The the main point you are driving to people in this thread are the custom tags which goes against the plain text readability and adds extra complexity in this scope. You are competing against HTML preprocessors that are primarily used for that reason - to be converted into fully fledged HTML. Markdown is not in this scope by any means.
- tannhaeuser 9y agoMarkdown is being critized because it doesn't allow markdown syntax within HTML blocks, and because the HTML vocabulary recognized isn't customizable. Both problems were basically solved by SGML over 30 years ago. In SGML, you can define arbitrary tokens (character sequences) that the parser replaces into something else, typically into start-element or end-element tags. Replacement text rules are defined in a context-sensitive way depending on the parent element wherein token(s) to replace appear as child content. For example, an asterisk could be mapped to <i>, and within an <i> element could be mapped to </i>, terminating it, and thereby implementing a small fragment of markdown. This, together with tag omission/inference rules on a fully custom DTD vocabulary powerful to cover HTML5, gives you quite a formidable technique for markdown customization, based on an ISO standard.
- beefman 9y agohttps://www.sunsed.com/policies/until-the-end https://www.sunsed.com/policies/until-the-end > Our promise to you ul.[sic] We are dedicated to supporting our products forever (or until the last customer turns off the lights). ul.[sic] If we create a new version of SunSed that breaks backward compatibility we will support the older version forever. p.[sic]
- geraldbauer 9y agoFYI: I've started work on an alternative to markdown called texti (text with instructions). It's really more of an evolution e.g. some deletions, some additions, some changes. See some examples at the project site - https://texti.github.io https://texti.github.io
- shortformblog 9y agoSome feedback: As someone who types 30 articles in Markdown per week, # is the deal breaker for me here. It's at a spot on the keyboard that is easy to type. The = sign is not. You should consider a symbol on the left side of the keyboard that is easy to reach. The equals sign just doesn't encourage the kind of muscle memory that the hashtag does. There are some good ideas here, though. I would like to suggest that there has to be a good way to implement class and id tags in a language like this. That is the only real issue I have with the Markdown spec.
- geraldbauer 9y agoThanks for your feedback. Greatly appreciated. The reason for `=` is to welcome the Wikipedia writer crowd and `#` in the unix world is always used for comments (and "classic" markdown has no comments). What's a human writer-friendly markup convention without comments? Anyways, thanks again for your comments.
- chrisalley 9y ago> I feel like Jeff Atwood and his friends abandoned the Commonmark project that tried to create a universal specification of Markdown. Even if they did, I don't think that Github, Stackoverflow, Reddit and other major Markdown users would ever convert. The CommonMark project has not been abandoned; the CommonMark C parser was implemented on GitHub earlier this year and is used to render Markdown across all repositories: https://githubengineering.com/a-formal-spec-for-github-markdown/ https://githubengineering.com/a-formal-spec-for-github-markd...
- xfalcox 9y agoCame here to say that. Also Discourse just moved to a CommonMark compliant markdown parser this release, so between GitHub and Discourse the user base is already huge.
- muzani 9y agoI really like this. Might use this for my blog as HTML disrupted the flow of typing and yet I couldn't find a satisfactory way to do it with Markdown.
- ktamura 9y agoAs a product marketer, I have to say that the name is very unfortunate. 1. Sundown is the name of a Markdown library written in C: https://github.com/vmg/sundown https://github.com/vmg/sundown. That Sundown is pretty widely known and used among Markdown implementers. As such, when/if the OP's project takes off, it is going to be confusing (for awhile). 2. Also, the name itself doesn't strongly suggest that it's an alternative to Markdown. Do recall that Markdown's etymology comes from "(HTML) markup". For the Markdown-implemented-in-C Sundown, the name worked because it evoked its relationship with Markdown. In this case, that's not what the project is about. If the intention was to evoke Markdown, then they should have kept the "Mark" part of it, not the "down" part of it.
- gbraad 9y agothis defies what I want from a markup in plain text. It should look readable and formatted, even when not rendered. Example: https://raw.githubusercontent.com/gbraad/resume/master/resume.md https://raw.githubusercontent.com/gbraad/resume/master/resum... => http://gbraad.nl/resume/resume.html http://gbraad.nl/resume/resume.html I stopped reading after the first introduction of 'the syntax', as the intro either does not mention the why, or it totally misses the point.
- rmrfrmrf 9y agoThe HTML part of this spec is strange. Most of the practical point of markdown has been to allow a limited set of user-controlled formatting without requiring an HTML parser in the browser. Furthermore, HTML has non-significant whitespace whereas markdown does, so mixing the two will give weird results.
- brian-armstrong 9y agoA collection of Sundown documents could be called a Sundown Town https://en.m.wikipedia.org/wiki/Sundown_town https://en.m.wikipedia.org/wiki/Sundown_town
- juandazapata 9y agoThis has nothing to do with Markdown. You actually have to know html tags to use this.
- anonytrary 9y agoSomeone needs to make a markdown-clone called "yadown?". Yet another down.
- swyx 9y agoclicking thru on the signup link: https://www.sunsed.com/sign-up https://www.sunsed.com/sign-up Page not found. The requested URL /sign-up was not found on this server.
- ne01 9y agoFixed it! Thank you for the heads up!
- 0x142857 9y agoI would rather consider it as an alternative to HTML.
- ComputerGuru 9y agoThis is closer to an html templating language than anything else.
- Proven 9y agoAll great but WTF do I have to login to use it?
- jmull 9y agoThis is fine, but isn’t really an alternative to markdown. It’s not good for what markdown is good for, which is writing and reading plain text that can also be transformed to HTML. It looks like it’s an alternate syntax for HTML angle-bracket tags. (Personally, I see no value in that. I can see it’s arguably “cleaner”-looking, but not by much and at the substantial cost of a non-standard syntax.)
- uranusjr 9y agoI thought this is the famous Markdown parser by Vicent Martí. [1] It was the most popular Markdown implementation before CommonMark, and is used by GitHub (via RedCarpet, its Ruby binding) before they switch to CommonMark a while ago. The name choice is a bit unfortunate, but I guess it’s too late to change it now. [1]: https://github.com/vmg/sundown https://github.com/vmg/sundown
- danielbankhead 9y agoThis looks very promising. While I do not see this as a replacement for Markdown this has some potential for use cases where Markdown is less suitable, like messaging. The explicit use of the colon makes things a bit saner for users - we’ve all written some ‘unexpected’ markdown before; between the many different flavors (especially line breaking behavior), numerous symbols, and numerous ways to do the same thing (like underlining, bullet points and images). I can see this being a big relief for end-users for certain use-cases. I’d love to try it out if I could see some source code (or a live demo I don’t have to sign up for). Do you plan on setting up a specification?
- desireco42 9y agoI like sundown a lot and see how it is better then markdown. It is very bold and smart reimagining of plain text enriched by tags. It has a long road ahead, most likely will fizzle but that doesn't mean we can't use it.
- drvortex 9y agoHow often will we reinvent LaTeX ?
- sbr464 9y agoSeems similar to jade? Edit expanding: I liked jade but stopped using because of jsx, and disliking having to research solutions during unique use cases. I also have learned markdown fairly quickly, and like it more now, but I personally don’t think it is as good of an experience reading plain text files as my own “plain text hacks” that I would use to format docs destined to be read in plain text. I feel that it clutters a nicely organized personal note, which adds to mental overhead.