5 ms·
I've long thought that YAML instead of JSON and Markdown instead of HTML would be ideal for the average person to get into internet content production and shari
by doublerebel 10y ago
I've long thought that YAML instead of JSON and Markdown instead of HTML would be ideal for the average person to get into internet content production and sharing. Combining both specs is YAML Front Matter, where metadata can live with the document.
Sure, the YAML and Markdown specs could be more strict but right now browsers are very tolerant of malformed HTML.
Unlike HTML it would help separate data/content from presentation, which I think is at the root of ads and poor quality content we are forced to sift through now.
- verandaguy 10y agoI don't have any strong opinion about YAML (or YAML Front Matter), having never used it much, but at a glance it seems reasonable to focus on writing content in. On a sidenote: Sure, the YAML and Markdown specs could be more strict but right now browsers are very tolerant of malformed HTML. This wouldn't be possible without an extremely well-defined HTML spec :) For example, if I write the following in a hypothetical browser-parsed Markdown document: _Hello!_ *Hello!* **Hello!** Which one should show up as bold? What about italic? Which one should just be surrounded by {1,2} asterisks? Conversely, if I have: <ul> <li>Hello</li> <li>World! </ul> Many browsers can determine (non-trivially, and not always, granted) that there's an unclosed `<li>` tag inside a closed `<ul>` environment and work with that. It's generally a different class of problems, though.
- dsp1234 10y ago(non-trivially, and not always, granted) Note that <li> example is perfectly valid, and will be parsed correctly by any html5 capable parser. Per the html5 spec, the closing tag on an <li> element is optional.[0] [0] - https://html.spec.whatwg.org/#optional-tags https://html.spec.whatwg.org/#optional-tags An li element's end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element.
- verandaguy 10y agoFair enough, TIL. I'd imagine it's much less valid if the missing closing `</li>` is on the first line, though.
- mbrock 10y agoNo, you can write the entire list without any </li> tags and it's perfectly fine. You also generally don't need to close your <p> tags to start a new paragraph, because paragraphs don't nest inside each other.
- dsp1234 10y agoThis is a perfectly valid html5 document: <!doctype html> <title></title> <ul> <li>item1 <li>item2 </ul>
- deleted 10y ago[deleted]
- nicky0 10y agoFirst two lines are italic, last one is bold. I'm not sure the point you are making, as all three are straightforward examples of unambiguous Markdown. (There are plenty of ambiguous cases you could have picked...)
- nitrogen 10y agoIIRC Slack does bold with single asterisks.
- nicky0 10y agoBut slack doesn't claim to use Markdown. > Though we understand many people would love to use Markdown in Slack messages, we have no plans to support it. Our message formatting is similar to other popular services like Skype and Google Talk, and is intended for a majority of our users who are unfamiliar with Markdown. However, we'll keep it in mind for the future. https://get.slack.help/hc/en-us/articles/202288908-Format-your-messages https://get.slack.help/hc/en-us/articles/202288908-Format-yo...
- carussell 10y ago> Which one should show up as bold? What about italic? Markdown has no notion of italic and bold styling, only semantics for emphasis and strong emphasis.
- crooked-v 10y agoYAML has the problem that it has a lot of well-defined but incredibly unintuitive behavior. // this is a string quote: I say, good man, could you spare a vowel? // this is a parsing error quote: And then I said: "Oh, god, man, you're an aardvark!" // this is a string (not including the quotes as part of the string) quote: "And then Winston Churchill kicked him square in the knee." // this is a string (including the quotes as part of the string) quote: | "What do you mean, all the monkeys have escaped?" // this is a string theCharacterToShow: = // this is a null value theCharacterToShow: ~ // this is a boolean true theCharacterToShow: y // this is an integer obscureAnimeTitle: 0xDEADBEEF