<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">The MacDown Blog</title>
  <id>urn:uuid:d7012b07-ce1c-3355-b28f-5d1a2062ef36</id>
  <updated>2017-01-17T00:00:00Z</updated>
  <link href="https://macdown.uranusjr.com/blog/" />
  <link href="https://macdown.uranusjr.com/blog/feed/atom.xml" rel="self" />
  <author>
    <name>Tzu-ping Chung</name>
  </author>
  <subtitle type="html">&lt;p&gt;MacDown is an open source Markdown editor for macOS, released under the MIT License. It is heavily influenced by &lt;a href=&quot;https://twitter.com/chenluois&quot;&gt;Chen Luo&lt;/a&gt;’s &lt;a href=&quot;http://mouapp.com&quot;&gt;Mou&lt;/a&gt;.&lt;/p&gt;
</subtitle>
  <generator uri="https://github.com/ajdavis/lektor-atom" version="0.2-">Lektor Atom Plugin</generator>
  <entry xml:base="https://macdown.uranusjr.com/blog/weve-moved/">
    <title type="text">We’ve Moved!</title>
    <id>urn:uuid:de0df832-3f0c-328d-86e3-7e160e09d6e6</id>
    <updated>2017-01-17T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/weve-moved/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;I mentioned &lt;a href=&quot;../site-is-moving/&quot;&gt;previously&lt;/a&gt; I was going to migrate the site to be a static-generated site. After more than a week’s hacking with Lektor, I can finally complete the migration. This blog post will be the first to be hosted on the new site, so if you’re reading this, welcome!&lt;/p&gt;
&lt;p&gt;The migration isn’t difficult (this site is very simple to begin with), but didn’t go without some trouble. After some investigation (&lt;a href=&quot;https://emptysqua.re/blog/experience-migrating-to-lektor/&quot;&gt;Jesse’s experience&lt;/a&gt; helped a lot—and he even used MacDown to help the process!) I had to give up on GitHub Pages, and decided to deploy to &lt;a href=&quot;https://www.netlify.com&quot;&gt;Netlify&lt;/a&gt; instead. One feature in particular is that they offer a very straightforward way to handle HTTP redirects, and with a custom build process I am able to maintain full compatibility to the old site’s URL rules. Built-in Python support also made deploying way simpler than GitHub Pages. All I need to do is to push to my GitHub repo, and sit back.&lt;/p&gt;
&lt;p&gt;There are still some rough edges I would like to address to. The site now uses &lt;a href=&quot;https://github.com/jonschlinkert/remarkable&quot;&gt;Remarkable&lt;/a&gt; to render Markdown, &lt;a href=&quot;https://github.com/Khan/KaTeX&quot;&gt;KaTeX&lt;/a&gt; for math, and &lt;a href=&quot;http://prismjs.com&quot;&gt;Prism&lt;/a&gt; for syntax highlighting, and all of these are done at server-side (i.e. compile time), so now every blog post you view is fully static.&lt;/p&gt;
&lt;p&gt;This is how I imagine MacDown would render things in the long run. While a Markdown parser/renderer implemented in C is obviously super fast and easy to use (with Objective-C), you have to admit JavaScript libraries now offer a better landscape for a Markdown app. Fortunately macOS makes this easy—&lt;a href=&quot;http://nshipster.com/javascriptcore/&quot;&gt;JavaScriptCore&lt;/a&gt; solves most issues—and I’m very exicited about this new stack. This, however, also means we’re at unknown water for the moment. But hopefully I can learn more about how things work this way, and implement a better rendering engine for MacDown in the future.&lt;/p&gt;
&lt;p&gt;In the mean time, I hope this new site is at least as enjoyable as the old one. And if you find any problems, please, please &lt;a href=&quot;https://github.com/MacDownApp/macdown-site/issues&quot;&gt;open an issue&lt;/a&gt; to tell me! This would really help a lot.&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/site-is-moving/">
    <title type="text">[NOTICE] Site Is Moving, and Things Will Break</title>
    <id>urn:uuid:0703a911-0577-3350-83a9-0702fc170737</id>
    <updated>2017-01-09T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/site-is-moving/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;We are moving.&lt;/p&gt;
&lt;p&gt;The official site of MacDown has been a Django project that runs on the Heroku free tier. I liked the solution at the time, but gradually it became clear that it is an overkill to maintain a fully-functional web app as a landing page.&lt;/p&gt;
&lt;p&gt;Hosting is also a problem; Heroku offers only 512 MB for free dynos, meaning that the site goes down pretty easily with heavy traffic—which does not happen often (the site currently gets about 700 visitors a day), but it still &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/504&quot;&gt;happened&lt;/a&gt; a couple of times. HTTPS is unavailable with custom domain, and the 30-minute auto-sleep feature is also annoying. I’m not saying Heroku is bad—it is an excellent service, just not suitable for this particular use case.&lt;/p&gt;
&lt;p&gt;The more I thought about this, it became clearer I really should implement this as a static site. Most of the things are already static, and those that are not can become static with a bit of work. The tipping point came when the always wonderful &lt;a href=&quot;http://lucumr.pocoo.org/about/&quot;&gt;Armin Ronacher&lt;/a&gt; published his home-baked static site generator, &lt;a href=&quot;https://www.getlektor.com&quot;&gt;Lektor&lt;/a&gt;. And so I went to work.&lt;/p&gt;
&lt;p&gt;You can see a preview of the new site at &lt;a href=&quot;https://macdownapp.github.io&quot;&gt;https://macdownapp.github.io&lt;/a&gt;. It stills lacks some critically parts, and will likely require some time before begin fully ready, but I am confident it will work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But there’s a catch.&lt;/strong&gt; Lektor is still in its early stages, and there are some things on Django I can’t replicate on it. Two of these could be very significant for you, reading this post:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Atom subscription URL will change.&lt;/strong&gt; You need to change the URL to &lt;code&gt;macdown.uranusjr.com/blog/feed/atom.xml&lt;/code&gt; instead. I added the new route to the current site, so you can do this right now, and everything will work after the migration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RSS 2.0.1rev2 subscription will be dropped.&lt;/strong&gt; If you’re subscribed to the RSS feed, you will need to switch to Atom at &lt;code&gt;macdown.uranusjr.com/blog/feed/atom.xml&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here’s to the migration went smoothly. Hopefully I will see you soon on the new site.&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/macdownapp/">
    <title type="text">@MacDownApp</title>
    <id>urn:uuid:22bbd11d-5e8c-36e2-84f7-84d26a0d089f</id>
    <updated>2016-03-15T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/macdownapp/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;As you might know, I just added plug-in support in the latest MacDown 0.6 release. This opens a new avenue for those who want to add functionalities to MacDown.&lt;/p&gt;
&lt;p&gt;I have been actively preventing MacDown from getting some specific features I considered not essential for a simplicit text editor. Some of the most wanted include sidebar support, and integration with specific Internet services. With the new plug-in arcitecture, anyone is now free to implement any feature he or she wants, and those who don’t want it can just ignore its existence.&lt;/p&gt;
&lt;p&gt;To demonstrate how plug-ins work, I have created a simple plug-in called ”&lt;a href=&quot;https://github.com/MacDownApp/macdown-gistit&quot;&gt;Gist it!&lt;/a&gt;” that uploads the current document as a &lt;a href=&quot;http://gist.github.com/&quot;&gt;GitHub Gist&lt;/a&gt; through &lt;a href=&quot;https://developer.github.com/v3/&quot;&gt;GitHub’s web API&lt;/a&gt;. I also attached some basic documentation, so that you can get a better idea on how things work. I am very excited about this new feature, and look forward for the community to come up more new ideas to utilise it.&lt;/p&gt;
&lt;p&gt;With the creation of the &lt;em&gt;Gist it!&lt;/em&gt; repository, I now have three projects related to MacDown in my GitHub account (@uranusjr). This make things clutter, and difficult for others to find those repositories. Therefore I have created a new organization account for MacDown, &lt;a href=&quot;https://github.com/MacDownApp&quot;&gt;@MacDownApp&lt;/a&gt;, that will serve as an umbrella for all MacDown-related repositories, including MacDown itself, this site, and all future asset, dependency, and plug-in projects that we may need.&lt;/p&gt;
&lt;p&gt;Repositories previously under my account have already been migrated. Old links will continue to redirect traffic to new URLs, thanks to GitHub, but I think it is still a good idea to edit any link you might have pointed to the old location. Thanks!&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/notice-for-homebrew-cask-users/">
    <title type="text">Short Notice for Homebrew Cask Users</title>
    <id>urn:uuid:453d5725-2eab-3bdd-98b2-f04255e55a1a</id>
    <updated>2015-01-26T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/notice-for-homebrew-cask-users/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;MacDown has been updated. The most recent version now is 0.4.2 (&lt;a href=&quot;/history/stable/#version_578&quot;&gt;release notes&lt;/a&gt;). This has been a while, so there are quite some new things, both bug-fixes and minor improvements—nothing too interesting if you’re not looking for them. But I still encourage you to update, as always.&lt;/p&gt;
&lt;p&gt;If you installed MacDown with &lt;a href=&quot;http://caskroom.io&quot;&gt;Homebrew Cask&lt;/a&gt;, however, you might notice that there’s no new version on it. But no, certainly you are not forgotten! This is a side effect as we have moved from a versioned cask to use a &lt;a href=&quot;https://github.com/caskroom/homebrew-cask/blob/master/CONTRIBUTING.md#examples&quot;&gt;rolling, unversioned download&lt;/a&gt; link. This means that we no longer depend on Homebrew Cask to publish updates, and you will need to use the built-in update mechanism now.&lt;/p&gt;
&lt;p&gt;And it’s totally normal if you don’t understand any of the above. Just do this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew cask uninstall macdown
brew cask &lt;span class=&quot;token function&quot; &gt;install&lt;/span&gt; macdown
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and you will be all right!&lt;/p&gt;
&lt;p&gt;This should have been posted earlier, when I released the update. But things intervene and this is a bit delayed. I hope this is not too late. Sorry for the inconvenience.&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/macdown-04/">
    <title type="text">MacDown 0.4</title>
    <id>urn:uuid:c6f3dbeb-6c75-3381-92d8-0348aeb40765</id>
    <updated>2014-12-14T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/macdown-04/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;MacDown 0.4 has been released. This is the second minor version jump in a row, and with good reason: it is much better than MacDown 0.3.&lt;/p&gt;
&lt;h2&gt;Hoedown 3&lt;/h2&gt;
&lt;p&gt;The Markdown-to-HTML rendering backend has been upgraded to &lt;a href=&quot;https://github.com/hoedown/hoedown&quot;&gt;Hoedown&lt;/a&gt; 3. As a result, MacDown now outputs the preview HTML more quickly than ever before, with even fewer glitches. The library API has been revamped greatly, and while you might not be able to notice the difference (without digging into the source code), this helps the development of MacDown because we can now build extensions to the rendering system more easily. Great thanks to the people behind Hoedown!&lt;/p&gt;
&lt;p&gt;But those are not all we get from a simple library upgrade. The most important feature change in MacDown 0.3 is…&lt;/p&gt;
&lt;h2&gt;Math Rendering&lt;/h2&gt;
&lt;p&gt;LaTeX-like math syntax support has always been a popular feature for MacDown (and many other Markdown editors, too!), but unfortunately due to syntax differences between Markdown and LaTeX, the support is not without problems. &lt;a href=&quot;https://github.com/hoedown/hoedown/pull/114&quot;&gt;Until now&lt;/a&gt;. Hoedown 3 added built-in math blocks/spans detection, so now math syntax gets first-class support. Many bugs are killed just because of that.&lt;/p&gt;
&lt;p&gt;Built-in math syntax also opens the door to a new possibility: server-side math rendering. MacDown now uses &lt;a href=&quot;http://www.mathjax.org&quot;&gt;MathJax&lt;/a&gt; to render math in the preview, but this requires Internet connection (because MathJax is &lt;em&gt;huge&lt;/em&gt;), and is not exactly efficient (because we need to re-render every time preview is updated, and MathJax isn’t very fast either). With built-in syntax support, it would be possible to render the blocks/spans &lt;em&gt;before&lt;/em&gt; it hits the preview UI, eliminating performance and volume overhead, even Internet connection! &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Very excited  about what we can do in the future.&lt;/p&gt;
&lt;p&gt;However, the new math rendering behaviour is a little bit different from the one used previously. The new math syntax adds a feature inspired by &lt;a href=&quot;http://kramdown.gettalong.org/syntax.html#math-blocks&quot;&gt;kramdown&lt;/a&gt; called &lt;strong&gt;context-based inline math detection&lt;/strong&gt;. Previously, if you write something like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Lorem ipsum $$ y = ax + b $$ dolor sit amet…
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will get two paragraphs, separated by a math block. Like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macdown-no-context-math-rendering.png&quot; alt=&quot;Math rendering without context detection&quot;&gt;&lt;/p&gt;
&lt;p&gt;But now the rendering engine automatically detects that you’re writing inline math, and renders it accordingly:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macdown-context-math-rendering.png&quot; alt=&quot;Math rendering with context detection&quot;&gt;&lt;/p&gt;
&lt;p&gt;This saves you from the more verbose &lt;code&gt;\\( ... \\)&lt;/code&gt; syntax, at the same time enables you to write dollar signs in your text without needing to escape them.&lt;/p&gt;
&lt;p&gt;As a consequence, you are now required to put &lt;code&gt;$$ ... $$&lt;/code&gt; math &lt;em&gt;in its own paragraph&lt;/em&gt; to make it a block under default settings. This is best practice when you write LaTeX anyway, so while I apologise for your inconvenience, I don’t really sympathise you for making your text not readable in the first place. :p&lt;/p&gt;
&lt;p&gt;This context detection is disabled if you explicitly turn on &lt;code&gt;$ ... $&lt;/code&gt; inline math (i.e. the behaviour is the same with previous versions). If you’re used to using &lt;code&gt;\\( ... \\)&lt;/code&gt; and &lt;code&gt;\\[ ... \\]&lt;/code&gt; anyway, everything still works.&lt;/p&gt;
&lt;h2&gt;Command Line Utility&lt;/h2&gt;
&lt;p&gt;MacDown 0.3 ships with an additional binary at &lt;code&gt;MacDown.app/Contents/SharedSupport/bin/macdown&lt;/code&gt;. This is a command line utility that can be used to open Markdown documents with MacDown from you terminal. Simply link the binary somewhere in your &lt;code&gt;PATH&lt;/code&gt;, e.g.: &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s /Applications/MacDown.app/Contents/SharedSupport/bin/macdown /usr/bin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and you’ll be able to open documents like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;macdown foo.md bar.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the documents you specified do not exist, MacDown will create a new document, and setup its saving path for you (but you’ll still need to save it yourself, obviously). You should be right at home if you’re familiar with Sublime Text’s command line helper &lt;code&gt;subl&lt;/code&gt;, or CLI editors like nano, VIM, and Emacs.&lt;/p&gt;
&lt;p&gt;There are plans to add more features to this utility, too. If you want to know more about what it can do, just run &lt;code&gt;macdown --help&lt;/code&gt;. No man page now, sorry. Speak up if you want to help out on this one!&lt;/p&gt;
&lt;h2&gt;Enjoy!&lt;/h2&gt;
&lt;p&gt;There are also various bug-fixes and minor improvements besides the aforementioned ones. Checkout the release notes! If you have any questions and suggestions, join our &lt;a href=&quot;https://gitter.im/MacDownApp/macdown&quot;&gt;Gitter-powered chatroom&lt;/a&gt;. Or you can just open a new issue on &lt;a href=&quot;https://github.com/MacDownApp/macdown&quot;&gt;GitHub&lt;/a&gt; (but please make sure it’s not already posted yet!), or, even better, open a pull request.&lt;/p&gt;
&lt;p&gt;But first, please enjoy the new MacDown. Believe me, it is good. :D&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;It would still require Internet connection to download math fonts if you export to HTML, unless you install them locally. &lt;a href=&quot;#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;Assuming you install MacDown in &lt;code&gt;/Applications&lt;/code&gt;. If your installation locates somewhere else (Homebrew Cask installs MacDown 0.4 to &lt;code&gt;/opt/homebrew-cask/Caskroom/macdown/0.4/MacDown.app&lt;/code&gt;, for example). &lt;a href=&quot;#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/show-hn-macdown/">
    <title type="text">Show HN: MacDown</title>
    <id>urn:uuid:efc3df23-4634-3fa9-ab0e-bf37eb88b3a1</id>
    <updated>2014-08-25T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/show-hn-macdown/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;MacDown showed up on HackerNews yesterday &lt;a href=&quot;https://news.ycombinator.com/item?id=7946786&quot;&gt;again&lt;/a&gt;. This time as a &lt;a href=&quot;https://news.ycombinator.com/item?id=8217360&quot;&gt;Show HN&lt;/a&gt;—Wait, I though Show HN is for sharing &lt;a href=&quot;https://news.ycombinator.com/showhn.html&quot;&gt;something that you’ve made&lt;/a&gt;? I don’t recall myself posting anything on HackerNews. Ah well, I get the &lt;a href=&quot;https://twitter.com/MacDownApp/status/503389840008687616/photo/1&quot;&gt;clicks&lt;/a&gt;, and that certainly isn’t something to complain about.&lt;/p&gt;
&lt;p&gt;Anyway. There seems to be some confusion about the origin of MacDown, and its relationship (if there is one) to Mou. I’ll try to go through some things that happened in chronological order so that you might get a better idea why things are how they are now.&lt;/p&gt;
&lt;p&gt;I was a long-time Mou user (since late 2011, I think) before starting MacDown. It was fine for the most part, being standard-compliant, steady, good-looking, and simple. But that was also the time when I started using GitHub. The more I write on GitHub, the more unsatisfied I became.&lt;/p&gt;
&lt;p&gt;Last year (2013) I built my personal website/blog. I included a Markdown-based publishing system inspired by &lt;a href=&quot;http://logdown.com&quot;&gt;Logdown&lt;/a&gt; and &lt;a href=&quot;https://ghost.org&quot;&gt;Ghost&lt;/a&gt;, and started writing even more Markdown documents. I &lt;a href=&quot;https://uranusjr.com/blog/post/58/introducing-macdown/&quot;&gt;illustrated&lt;/a&gt; some problems I had in a blog post (in Chinese) when I launched MacDown:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;mou-fenced-code-block.png&quot; alt=&quot;Code block rendering in Mou&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;mou-fenced-code-block-highlighter-bug.png&quot; alt=&quot;Code block highlighting in Mou&quot;&gt;&lt;/p&gt;
&lt;p&gt;Which made Mou far from ideal for technical articles.&lt;/p&gt;
&lt;p&gt;You know what happened next (take a look at &lt;a href=&quot;http://macdown.uranusjr.com&quot;&gt;http://macdown.uranusjr.com&lt;/a&gt; if you don’t). Mou didn’t (still haven’t) receive an update since September 2013, and there were efforts made trying to sell it.&lt;/p&gt;
&lt;p&gt;Some supplemental comments might be necessary here. There aren’t further campaigns trying to sell Mou after the initial failures, and according to &lt;a href=&quot;https://twitter.com/chenluois/status/485060820863160320&quot;&gt;various&lt;/a&gt; &lt;a href=&quot;https://twitter.com/chenluois/status/488989332380712960&quot;&gt;tweets&lt;/a&gt; &lt;a href=&quot;https://twitter.com/chenluois/status/496165170092056576&quot;&gt;on&lt;/a&gt; &lt;a href=&quot;https://twitter.com/Mou/status/490445700186914816&quot;&gt;this&lt;/a&gt; &lt;a href=&quot;https://twitter.com/chenluois/status/482107255584612352&quot;&gt;issue&lt;/a&gt; development is now alive again. Which is good news. :)&lt;/p&gt;
&lt;p&gt;Back to the storyline. I looked for alternatives to Mou, but there are none (no free ones, at least), so I decided to roll my own solution. It’s just a text view, an embedded web browser, a Markdown-to-HTML engine (there are tons of those available on the Internet). Can’t be that hard, right?&lt;/p&gt;
&lt;p&gt;(Well turns out it’s not easy either, and MacDown still isn’t as good as I wish. But that’s another story.)&lt;/p&gt;
&lt;p&gt;I spent two weekends putting together MacDown. Most things went smoothly enough, but I still lack some good-looking editor highlighting colour schemes and CSS for the HTML output. So I contacted Chen Luo and asked whether I could re-distribute his themes and styles. The conversion went like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Me: I’m building a Markdown editor, and I like the PEG highlighting styles in Mou a lot. Can I use them?&lt;/p&gt;
&lt;p&gt;Luo: Yes, you just need to put a notice that the CSS came from Mou, and attach a link to Mou’s homepage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You might notice that&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I mentioned that I was building a Markdown editor, but not exactly &lt;em&gt;what&lt;/em&gt; I intended to do.&lt;/li&gt;
&lt;li&gt;I was asking about &lt;em&gt;editor styles&lt;/em&gt;, but Luo’s said &lt;em&gt;CSS&lt;/em&gt; which is used in HTML.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Looking back, maybe I should’ve been more explicit. But I didn’t think that much at the time, and just went on publishing the initial version of MacDown.&lt;/p&gt;
&lt;p&gt;Things went well until Luo found out (if that’s the right expression) about MacDown. Obviously he felt offended, accusing me being a &lt;a href=&quot;https://twitter.com/chenluois/status/484813471842705408&quot;&gt;copycat&lt;/a&gt;. Now, nobody would be happy being called a copycat, but I did copy his idea. He is right. So I took this advice (which is &lt;em&gt;not&lt;/em&gt; tweeted by Chen Luo, the author of Mou, I should note):&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p&gt;那些 “Inspired by XXX”，克隆，并开放源代码的人都应该吃屎。他们应该将 Description 换成 “Stole the idea from XXX, and let everyone make crappy clones.”&lt;/p&gt;&amp;mdash; Sean Cheng (@remaerd) &lt;a href=&quot;https://twitter.com/remaerd/statuses/484914820408279040&quot;&gt;July 4, 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;blockquote&gt;
&lt;p&gt;Literal translation: Those who clone and open-source softwares “inspired by XXX” should all go eat shit. They should change their descriptions to “Stole the idea from XXX, and let everyone make crappy clones.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and changed the &lt;a href=&quot;https://github.com/MacDownApp/macdown/blob/master/README.md&quot;&gt;project description&lt;/a&gt; accordingly.&lt;/p&gt;
&lt;p&gt;And that’s the end. I guess. MacDown is still fundamentally the same with Mou—they are both macOS-specific Markdown editors with an instant preview pane that can be styled with CSS, and offers syntax highlighting in the editor. But so are a bunch of other softwares—Just search for “Markdown” in the App Store. At least my own crappy clone has unique features Mou doesn’t offer, and they are useful to some people, including myself. I’m fine with just that.&lt;/p&gt;
&lt;p&gt;So now you know what happened. I don’t have (more) “philosophical axe to grind with the author of Mou”, and the author of Mou did not tweet the specific tweet mentioned. And developement of Mou will continue. But none of them matter anymore. MacDown holds its own ground now, and should continue to survive as an free (as in freedom) option toward Markdown editing. Let’s focus on making better software for everyone.&lt;/p&gt;
&lt;p&gt;Note: Please kindly drop a word if you feel there are inaccuracies in this article, or if I missed some thing worth mentioning. I wrote this from my own perspective, and is likely to not be objective enough. Thank you.&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/macdown-023-pdf-and-printing/">
    <title type="text">MacDown 0.2.3: PDF and Printing</title>
    <id>urn:uuid:c358b297-62e0-309a-ac89-23fc3c72463a</id>
    <updated>2014-08-19T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/macdown-023-pdf-and-printing/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;MacDown 0.2.3 is the third bug-fixing release for 0.2, plus a few extra goodies. The main “thing” in this release are fixes and improvements for printing PDF generation and support.&lt;/p&gt;
&lt;h2&gt;PDF Export&lt;/h2&gt;
&lt;p&gt;From pretty much the beginning of the first MacDown release, there have been suggestions for adding a “Export to PDF” menu item to go along with the existing “Export to HTML” one. &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/24&quot;&gt;Those&lt;/a&gt; were &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/31&quot;&gt;rejected&lt;/a&gt;, mainly because &lt;em&gt;macOS has PDF generation built-in&lt;/em&gt;. If you navigate to &lt;strong&gt;File → Print…&lt;/strong&gt;, you will find a “PDF” button at the bottom left corner, and clicking it reveals a few options…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macos-print-pdf.png&quot; alt=&quot;PDF options in macOS Print dialog.&quot;&gt;&lt;/p&gt;
&lt;p&gt;…including &lt;strong&gt;Save as PDF&lt;/strong&gt;. This can be used to export PDF, so there really is no need for individual macOS applications (as long as they use the system printing dialog) to implement a seperate export option, unless they provide additional export options, such as those provided by Pages, Keynote, etc..&lt;/p&gt;
&lt;p&gt;But I was a little surprised when I get asked again. And again. And there’s a &lt;a href=&quot;https://github.com/MacDownApp/macdown/pull/42&quot;&gt;pull request&lt;/a&gt; about it. And then there is a &lt;a href=&quot;https://medium.com/@Sarthaksharma0/mou-v-s-macdown-mac-ac35ecddae45&quot;&gt;review&lt;/a&gt; with this line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mou can export as PDF and HTML but Macdown can export in HTML format only.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;(Side note: Please spell the application name as MacDown, with a capital D, not Macdown.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Aside from the “one click is better than three” argument (which makes much sense), the most surprising part of people requesting this feature is that most people don’t seem to know that such feature exists in macOS. Which is the main reason that MacDown will from now on include the new Export menu:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macdown-export-menu.png&quot; alt=&quot;New Export menu in MacDown 0.2.3.&quot;&gt;&lt;/p&gt;
&lt;p&gt;The PDF export works similarly as its HTML counterpart, but will always match styles in the preview, without the CSS and syntax highlighting options. Speaking of which…&lt;/p&gt;
&lt;h2&gt;Other Improvements&lt;/h2&gt;
&lt;p&gt;The HTML export options now have &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/118&quot;&gt;more sensible defaults&lt;/a&gt;, based on current application preferences. This should make exporting routines easier.&lt;/p&gt;
&lt;p&gt;And if you’re more into copying content directly from preview, instead of exporting the whole file, copy-pasting to web browsers (other than Safari, which already works) should now &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/115&quot;&gt;preserve styles in the preview&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The bundled Prism is also upgraded, meaning that you’ll get more language definitions for syntax highlighting, including Haskell, LaTeX, and Twig. I’ll update the &lt;a href=&quot;/features/&quot;&gt;full language list&lt;/a&gt; on the site later; you can also check out &lt;a href=&quot;http://prismjs.com/test.html&quot;&gt;Prism’s documentation&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/macdown-022-with-toc-support/">
    <title type="text">MacDown 0.2.2 with TOC Support</title>
    <id>urn:uuid:f102e019-e4b1-3876-bd78-d7ac88f5a2bb</id>
    <updated>2014-08-05T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/macdown-022-with-toc-support/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;MacDown 0.2.2 is just out of the door. This is mainly a bug-fixing release, correcting a very serious bug that causes MacDown to crash continuously on some machines, and bahave stragely on others. I had been unable to reproduce the problem (and still can’t), but thanks to &lt;a href=&quot;https://github.com/MacDownApp/macdown/issues/102&quot;&gt;Zachary Alex Stern’s report&lt;/a&gt; it is identified as a resigin issue on high-resolution displays (including Retina Macs, Apple Cinema Display, and other similar devices). The fix comes from wenbi. A big thank you to all that involved in this, and sorry to everyone affected by the issue.&lt;/p&gt;
&lt;p&gt;But the post is not about that. Well, not mainly, at least. Although 0.2.2 is a bug-fixing release, I’ve added some improvement as well, most importantly support for table of content.&lt;/p&gt;
&lt;p&gt;To enable TOC support, check “Renders TOC” in the “View” menu, and add &lt;code&gt;[TOC]&lt;/code&gt; (case intensitive, must be in its own paragraph) anywhere in the document, and it will collect all the headers in it and render them as a tree.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macdown-022-toc.png&quot; alt=&quot;TOC rendering in MacDown 0.2.2&quot;&gt;&lt;/p&gt;
&lt;p&gt;As indicated being exposed as a menu item, this setting is per-document, not application-wide. It is off by default.&lt;/p&gt;
&lt;p&gt;There are some other nice features as well, and bug fixes are also issued. You can read the release note when you get the update in the app, or, if you missed that (honestly, who reads release notes before pressing “Update Now”?), it’s also listed &lt;a href=&quot;/history/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, you can grab the update in-app when you are notified, or just &lt;a href=&quot;/download/v0.2.2/&quot;&gt;download directly&lt;/a&gt;. Enjoy. :)&lt;/p&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/macdown-help/">
    <title type="text">MacDown’s Help File</title>
    <id>urn:uuid:6f9d8025-c6b5-379c-832a-1b243b442a1c</id>
    <updated>2014-07-31T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/macdown-help/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;&lt;img src=&quot;/static/images/logo-160.png&quot; alt=&quot;MacDown logo&quot;&gt;&lt;/p&gt;
&lt;p&gt;Hello there! I’m &lt;strong&gt;MacDown&lt;/strong&gt;, the open source Markdown editor for macOS.&lt;/p&gt;
&lt;p&gt;Let me introduce myself.&lt;/p&gt;
&lt;h2&gt;Markdown and I&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt; is a plain text formatting syntax created by John Gruber, aiming to provide a easy-to-read and feasible markup. The original Markdown syntax specification can be found &lt;a href=&quot;http://daringfireball.net/projects/markdown/syntax&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MacDown&lt;/strong&gt; is created as a simple-to-use editor for Markdown documents. I render your Markdown contents real-time into HTML, and display them in a preview panel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;macdown-editor-window.png&quot; alt=&quot;MacDown Screenshot&quot;&gt;&lt;/p&gt;
&lt;p&gt;I support all the original Markdown syntaxes. But I can do so much more! Various popular but non-standard syntaxes can be turned on/off from the &lt;a href=&quot;#markdown-pane&quot;&gt;&lt;strong&gt;Markdown&lt;/strong&gt; preference pane&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can specify extra HTML rendering options through the &lt;a href=&quot;#rendering-pane&quot;&gt;&lt;strong&gt;Rendering&lt;/strong&gt; preference pane&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can customize the editor window to you liking in the &lt;a href=&quot;#editor-pane&quot;&gt;&lt;strong&gt;Editor&lt;/strong&gt; preferences pane&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;You can configure various application (that's me!) behaviors in the &lt;a href=&quot;#general-pane&quot;&gt;&lt;strong&gt;General&lt;/strong&gt; preference pane&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The Basics&lt;/h2&gt;
&lt;p&gt;Before I tell you about all the extra syntaxes and capabilities I have, I'll introduce you to the basics of standard markdown. If you already know markdown, and want to jump straight to learning about the fancier things I can do, I suggest you skip to the &lt;a href=&quot;#markdown-pane&quot;&gt;&lt;strong&gt;Markdown&lt;/strong&gt; preference pane&lt;/a&gt;. Lets jump right in.&lt;/p&gt;
&lt;h3&gt;Line Breaks&lt;/h3&gt;
&lt;p&gt;To force a line break, put two spaces and a newline (return) at the end of the line.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;This two-line bullet
won't break&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This two-line bullet
will break&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is the code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* This two-line bullet
won't break

* This two-line bullet
will break
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Strong and Emphasize&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Strong&lt;/strong&gt;: &lt;code&gt;**Strong**&lt;/code&gt; or &lt;code&gt;__Strong__&lt;/code&gt; (Command-B)
&lt;em&gt;Emphasize&lt;/em&gt;: &lt;code&gt;*Emphasize*&lt;/code&gt; or &lt;code&gt;_Emphasize_&lt;/code&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; (Command-I)&lt;/p&gt;
&lt;h3&gt;Headers (like this one!)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Header 1
========

Header 2
--------
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- This extra space works around a Lektor bug. See lektor/lektor#345. --&gt;
or
&lt;pre&gt;&lt;code&gt;# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Links and Email&lt;/h3&gt;
&lt;h4&gt;Inline&lt;/h4&gt;
&lt;p&gt;Just put angle brackets around an email and it becomes clickable: &lt;a href=&quot;mailto:uranusjr@gmail.com&quot;&gt;uranusjr@gmail.com&lt;/a&gt;
&lt;code&gt;&amp;lt;uranusjr@gmail.com&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Same thing with urls: &lt;a href=&quot;http://macdown.uranusjr.com&quot;&gt;http://macdown.uranusjr.com&lt;/a&gt;
&lt;code&gt;&amp;lt;http://macdown.uranusjr.com&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Perhaps you want to some link text like this: &lt;a href=&quot;http://macdown.uranusjr.com&quot; title=&quot;Title&quot;&gt;Macdown Website&lt;/a&gt;
&lt;code&gt;[Macdown Website](http://macdown.uranusjr.com &amp;quot;Title&amp;quot;)&lt;/code&gt; (The title is optional)&lt;/p&gt;
&lt;h4&gt;Reference style&lt;/h4&gt;
&lt;p&gt;Sometimes it looks too messy to include big long urls inline, or you want to keep all your urls together.&lt;/p&gt;
&lt;p&gt;Make &lt;a href=&quot;http://macdown.uranusjr.com&quot; title=&quot;Title&quot;&gt;a link&lt;/a&gt; &lt;code&gt;[a link][arbitrary_id]&lt;/code&gt; then on it's own line anywhere else in the file:
&lt;code&gt;[arbitrary_id]: http://macdown.uranusjr.com &amp;quot;Title&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If the link text itself would make a good id, you can link &lt;a href=&quot;http://macdown.uranusjr.com&quot;&gt;like this&lt;/a&gt; &lt;code&gt;[like this][]&lt;/code&gt;, then on it's own line anywhere else in the file:
&lt;code&gt;[like this]: http://macdown.uranusjr.com&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Images&lt;/h3&gt;
&lt;h4&gt;Inline&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;![Alt Image Text](path/or/url/to.jpg &amp;quot;Optional Title&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Reference style&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;![Alt Image Text][image-id]&lt;/code&gt;
on it's own line elsewhere:
&lt;code&gt;[image-id]: path/or/url/to.jpg &amp;quot;Optional Title&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Lists&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Lists must be preceded by a blank line (or block element)&lt;/li&gt;
&lt;li&gt;Unordered lists start each item with a &lt;code&gt;*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-&lt;/code&gt; works too
&lt;ul&gt;
&lt;li&gt;Indent a level to make a nested list
&lt;ol&gt;
&lt;li&gt;Ordered lists are supported.&lt;/li&gt;
&lt;li&gt;Start each item (number-period-space) like &lt;code&gt;1.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;It doesn't matter what number you use, I will render them sequentially&lt;/li&gt;
&lt;li&gt;So you might want to start each line with &lt;code&gt;1.&lt;/code&gt; and let me sort it out&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is the code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* Lists must be preceded by a blank line (or block element)
* Unordered lists start each item with a `*`
- `-` works too
    * Indent a level to make a nested list
        1. Ordered lists are supported.
        2. Start each item (number-period-space) like `1. `
        42. It doesn't matter what number you use, I will render them sequentially
        1. So you might want to start each line with `1.` and let me sort it out
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Block Quote&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Angle brackets &lt;code&gt;&amp;gt;&lt;/code&gt; are used for block quotes.
Technically not every line needs to start with a &lt;code&gt;&amp;gt;&lt;/code&gt; as long as
there are no empty lines between paragraphs.
Looks kinda ugly though.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Block quotes can be nested.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Multiple Levels&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Most markdown syntaxes work inside block quotes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lists&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macdown.uranusjr.com&quot; title=&quot;Title&quot;&gt;Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here is the code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; Angle brackets `&amp;gt;` are used for block quotes.
Technically not every line needs to start with a `&amp;gt;` as long as
there are no empty lines between paragraphs.
&amp;gt; Looks kinda ugly though.
&amp;gt; &amp;gt; Block quotes can be nested.
&amp;gt; &amp;gt; &amp;gt; Multiple Levels
&amp;gt;
&amp;gt; Most markdown syntaxes work inside block quotes.
&amp;gt;
&amp;gt; * Lists
&amp;gt; * [Links][arbitrary_id]
&amp;gt; * Etc.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Inline Code&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Inline code&lt;/code&gt; is indicated by surrounding it with backticks:
&lt;code&gt;`Inline code`&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If your &lt;code&gt;code has `backticks`&lt;/code&gt; that need to be displayed, you can use double backticks:
&lt;code&gt;``Code with `backticks` ``&lt;/code&gt;  (mind the spaces preceding the final set of backticks)&lt;/p&gt;
&lt;h3&gt;Block Code&lt;/h3&gt;
&lt;p&gt;If you indent at least four spaces or one tab, I'll display a code block.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;print('This is a code block')
print('The block must be preceded by a blank line')
print('Then indent at least 4 spaces or 1 tab')
    print('Nesting does nothing. Your code is displayed Literally')
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also know how to do something called &lt;a href=&quot;#fenced-code-block&quot;&gt;Fenced Code Blocks&lt;/a&gt; which I will tell you about later.&lt;/p&gt;
&lt;h3&gt;Horizontal Rules&lt;/h3&gt;
&lt;p&gt;If you type three asterisks &lt;code&gt;***&lt;/code&gt; or three dashes &lt;code&gt;---&lt;/code&gt; on a line, I'll display a horizontal rule:&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;&lt;a name=&quot;markdown-pane&quot;&gt;&lt;/a&gt;The Markdown Preference Pane&lt;/h2&gt;
&lt;p&gt;This is where I keep all preferences related to how I parse markdown into html.
&lt;img src=&quot;markdown-preference-pane.png&quot; alt=&quot;Markdown preferences pane&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Document Formatting&lt;/h3&gt;
&lt;p&gt;The &lt;strong&gt;&lt;em&gt;Smartypants&lt;/em&gt;&lt;/strong&gt; extension automatically transforms straight quotes (&lt;code&gt;&amp;quot;&lt;/code&gt; and &lt;code&gt;'&lt;/code&gt;) in your text into typographer’s quotes (&lt;code&gt;“&lt;/code&gt;, &lt;code&gt;”&lt;/code&gt;, &lt;code&gt;‘&lt;/code&gt;, and &lt;code&gt;’&lt;/code&gt;) according to the context. Very useful if you’re a typography freak like I am. Quote and Smartypants are syntactically incompatible. If both are enabled, Quote takes precedence.&lt;/p&gt;
&lt;h3&gt;Block Formatting&lt;/h3&gt;
&lt;h4&gt;Table&lt;/h4&gt;
&lt;p&gt;This is a table:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;First Header&lt;/th&gt;&lt;th&gt;Second Header&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Content Cell&lt;/td&gt;&lt;td&gt;Content Cell&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Content Cell&lt;/td&gt;&lt;td&gt;Content Cell&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You can align cell contents with syntax like this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Left Aligned&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Center Aligned&lt;/th&gt;&lt;th style=&quot;text-align:right&quot;&gt;Right Aligned&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;col 3 is&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;some wordy text&lt;/td&gt;&lt;td style=&quot;text-align:right&quot;&gt;$1600&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;col 2 is&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;centered&lt;/td&gt;&lt;td style=&quot;text-align:right&quot;&gt;$12&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;zebra stripes&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;are neat&lt;/td&gt;&lt;td style=&quot;text-align:right&quot;&gt;$1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The left- and right-most pipes (&lt;code&gt;|&lt;/code&gt;) are only aesthetic, and can be omitted. The spaces don’t matter, either. Alignment depends solely on &lt;code&gt;:&lt;/code&gt; marks.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;fenced-code-block&quot;&gt;Fenced Code Block&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This is a fenced code block:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;print('Hello world!')
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also use waves (&lt;code&gt;~&lt;/code&gt;) instead of back ticks (&lt;code&gt;`&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;print('Hello world!')
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can add an optional language ID at the end of the first line. The language ID will only be used to highlight the code inside if you tick the &lt;strong&gt;&lt;em&gt;Enable highlighting in code blocks&lt;/em&gt;&lt;/strong&gt; option. This is what happens if you enable it:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;syntax-highlighting-example.png&quot; alt=&quot;Syntax highlighting example&quot;&gt;&lt;/p&gt;
&lt;p&gt;I support many popular languages as well as some generic syntax descriptions that can be used if your language of choice is not supported. See &lt;a href=&quot;http://macdown.uranusjr.com/features/&quot;&gt;relevant sections on the official site&lt;/a&gt; for a full list of supported syntaxes.&lt;/p&gt;
&lt;h3&gt;Inline Formatting&lt;/h3&gt;
&lt;p&gt;The following is a list of optional inline markups supported:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Option name&lt;/th&gt;&lt;th&gt;Markup&lt;/th&gt;&lt;th&gt;Result if enabled&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Intra-word emphasis&lt;/td&gt;&lt;td&gt;So A*maz*ing&lt;/td&gt;&lt;td&gt;So A&lt;em&gt;maz&lt;/em&gt;ing&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Strikethrough&lt;/td&gt;&lt;td&gt;~~Much wow~~&lt;/td&gt;&lt;td&gt;&lt;del&gt;Much wow&lt;/del&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Underline &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td&gt;_So doge_&lt;/td&gt;&lt;td&gt;&lt;em&gt;So doge&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Quote &lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td&gt;&amp;quot;Such editor&amp;quot;&lt;/td&gt;&lt;td&gt;&amp;quot;Such editor&amp;quot;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Highlight&lt;/td&gt;&lt;td&gt;==So good==&lt;/td&gt;&lt;td&gt;&lt;mark&gt;So good&lt;/mark&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Superscript&lt;/td&gt;&lt;td&gt;hoge^(fuga)&lt;/td&gt;&lt;td&gt;hoge^(fuga)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Autolink&lt;/td&gt;&lt;td&gt;http://t.co&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://t.co&quot;&gt;http://t.co&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Footnotes&lt;/td&gt;&lt;td&gt;[^4] and [^4]:&lt;/td&gt;&lt;td&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; and footnote 4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;&lt;a name=&quot;rendering-pane&quot;&gt;&lt;/a&gt;The Rendering Preference Pane&lt;/h2&gt;
&lt;p&gt;This is where I keep preferences relating to how I render and style the parsed markdown in the preview window.
&lt;img src=&quot;rendering-preferences-pane.png&quot; alt=&quot;Rendering preferences pane&quot;&gt;&lt;/p&gt;
&lt;h3&gt;CSS&lt;/h3&gt;
&lt;p&gt;You can choose different css files for me to use to render your html. You can even customize or add your own custom css files.&lt;/p&gt;
&lt;h3&gt;Syntax Highlighting&lt;/h3&gt;
&lt;p&gt;You have already seen how I can syntax highlight your fenced code blocks. See the &lt;a href=&quot;#fenced-code-block&quot;&gt;Fenced Code Block&lt;/a&gt; section if you haven’t! You can also choose different themes for syntax highlighting.&lt;/p&gt;
&lt;h3&gt;TeX-like Math Syntax&lt;/h3&gt;
&lt;p&gt;I can also render TeX-like math syntaxes, if you allow me to.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; I can do inline math like this: &lt;span class=&quot;katex-rendered&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt; 1 + 1 &lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.64444em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;strut bottom&quot; style=&quot;height:0.72777em;vertical-align:-0.08333em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;base textstyle uncramped&quot;&gt;&lt;span class=&quot;mord mathrm&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;mbin&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mord mathrm&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; or this (in MathML): &lt;math&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;, and block math:&lt;/p&gt;
&lt;div class=&quot;katex-rendered&quot;&gt;&lt;span class=&quot;katex&quot;&gt;&lt;span class=&quot;katex-mathml&quot;&gt;&lt;math&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;msubsup&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;T&lt;/mi&gt;&lt;/msubsup&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;B&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding=&quot;application/x-tex&quot;&gt;A^T_S = B&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class=&quot;katex-html&quot; aria-hidden=&quot;true&quot;&gt;&lt;span class=&quot;strut&quot; style=&quot;height:0.8413309999999999em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;strut bottom&quot; style=&quot;height:1.1166619999999998em;vertical-align:-0.275331em;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;base textstyle uncramped&quot;&gt;&lt;span class=&quot;mord&quot;&gt;&lt;span class=&quot;mord mathit&quot;&gt;A&lt;/span&gt;&lt;span class=&quot;vlist&quot;&gt;&lt;span style=&quot;top:0.275331em;margin-left:0em;margin-right:0.05em;&quot;&gt;&lt;span class=&quot;fontsize-ensurer reset-size5 size5&quot;&gt;&lt;span style=&quot;font-size:0em;&quot;&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;reset-textstyle scriptstyle cramped&quot;&gt;&lt;span class=&quot;mord mathit&quot; style=&quot;margin-right:0.05764em;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;top:-0.363em;margin-right:0.05em;&quot;&gt;&lt;span class=&quot;fontsize-ensurer reset-size5 size5&quot;&gt;&lt;span style=&quot;font-size:0em;&quot;&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;reset-textstyle scriptstyle uncramped&quot;&gt;&lt;span class=&quot;mord mathit&quot; style=&quot;margin-right:0.13889em;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;baseline-fix&quot;&gt;&lt;span class=&quot;fontsize-ensurer reset-size5 size5&quot;&gt;&lt;span style=&quot;font-size:0em;&quot;&gt;​&lt;/span&gt;&lt;/span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;mrel&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mord mathit&quot; style=&quot;margin-right:0.05017em;&quot;&gt;B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;or (in MathML)&lt;/p&gt;
&lt;p&gt;&lt;math display=&quot;block&quot;&gt;
&lt;msubsup&gt;&lt;mi&gt;A&lt;/mi&gt; &lt;mi&gt;S&lt;/mi&gt; &lt;mi&gt;T&lt;/mi&gt;&lt;/msubsup&gt;
&lt;mo&gt;=&lt;/mo&gt;
&lt;mi&gt;B&lt;/mi&gt;
&lt;/math&gt;&lt;/p&gt;
&lt;h3&gt;Task List Syntax&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; checked disabled&gt; I can render checkbox list syntax
&lt;ul&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; checked disabled&gt; I support nesting&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; checked disabled&gt; I support ordered &lt;em&gt;and&lt;/em&gt; unordered lists&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; disabled&gt; I don't support clicking checkboxes directly in the html window&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Jekyll front-matter&lt;/h3&gt;
&lt;p&gt;If you like, I can display Jekyll front-matter in a nice table. Just make sure you put the front-matter at the very beginning of the file, and fence it with &lt;code&gt;---&lt;/code&gt;. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: &amp;quot;Macdown is my friend&amp;quot;
date: 2014-06-06 20:00:00
---
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- Extra dash to escape for Lektor. --&gt;
&lt;h3&gt;Render newline literally&lt;/h3&gt;
&lt;p&gt;Normally I require you to put two spaces and a newline (aka return) at the end of a line in order to create a line break. If you like, I can render a newline any time you end a line with a newline. However, if you enable this, markdown that looks lovely when I render it might look pretty funky when you let some &lt;em&gt;other&lt;/em&gt; program render it.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;general-pane&quot;&gt;&lt;/a&gt;The General Preferences Pane&lt;/h2&gt;
&lt;p&gt;This is where I keep preferences related to application behavior.
&lt;img src=&quot;general-preferences-pane.png&quot; alt=&quot;General preferences pane&quot;&gt;&lt;/p&gt;
&lt;p&gt;The General Preferences Pane allows you to tell me how you want me to behave. For example, do you want me to make sure there is a document open when I launch? You can also tell me if I should constantly update the preview window as you type, or wait for you to hit &lt;code&gt;command-R&lt;/code&gt; instead. Maybe you prefer your editor window on the right? Or to see the word-count as you type. This is also the place to tell me if you are interested in pre-releases of me, or just want to stick to better-tested official releases.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;editor-pane&quot;&gt;&lt;/a&gt;The Editor Preference Pane&lt;/h2&gt;
&lt;p&gt;This is where I keep preferences related to the behavior and styling of the editing window.
&lt;img src=&quot;editor-preferences-pane.png&quot; alt=&quot;Editor preferences pane&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Styling&lt;/h3&gt;
&lt;p&gt;My editor provides syntax highlighting. You can edit the base font and the coloring/sizing theme. I provided some default themes (courtesy of &lt;a href=&quot;http://mouapp.com&quot;&gt;Mou&lt;/a&gt;’s creator, Chen Luo) if you don’t know where to start.&lt;/p&gt;
&lt;p&gt;You can also edit, or even add new themes if you want to! Just click the &lt;strong&gt;&lt;em&gt;Reveal&lt;/em&gt;&lt;/strong&gt; button, and start moving things around. Remember to use the correct file extension (&lt;code&gt;.styles&lt;/code&gt;), though. I’m picky about that.&lt;/p&gt;
&lt;p&gt;I offer auto-completion and other functions to ease your editing experience. If you don’t like it, however, you can turn them off.&lt;/p&gt;
&lt;h2&gt;Hack On&lt;/h2&gt;
&lt;p&gt;That’s about it. Thanks for listening. I’ll be quiet from now on (unless there’s an update about the app—I’ll remind you for that!).&lt;/p&gt;
&lt;p&gt;Happy writing!&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;If &lt;strong&gt;Underlines&lt;/strong&gt; is turned on, &lt;code&gt;_this notation_&lt;/code&gt; will render as underlined instead of emphasized &lt;a href=&quot;#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;If &lt;strong&gt;Underline&lt;/strong&gt; is disabled &lt;code&gt;_this_&lt;/code&gt; will be rendered as &lt;em&gt;emphasized&lt;/em&gt; instead of being underlined. &lt;a href=&quot;#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;strong&gt;Quote&lt;/strong&gt; replaces literal &lt;code&gt;&amp;quot;&lt;/code&gt; characters with html &lt;code&gt;&amp;lt;q&amp;gt;&lt;/code&gt; tags. &lt;strong&gt;Quote&lt;/strong&gt; and &lt;strong&gt;Smartypants&lt;/strong&gt; are syntactically incompatible. If both are enabled, &lt;strong&gt;Quote&lt;/strong&gt; takes precedence. Note that &lt;strong&gt;Quote&lt;/strong&gt; is different from &lt;em&gt;blockquote&lt;/em&gt;, which is part of standard Markdown. &lt;a href=&quot;#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;You don't have to use a number. Arbitrary things like &lt;code&gt;[^footy note4]&lt;/code&gt; and &lt;code&gt;[^footy note4]:&lt;/code&gt; will also work. But they will &lt;em&gt;render&lt;/em&gt; as numbered footnotes. Also, no need to keep your footnotes in order, I will sort out the order for you so they appear in the same order they were referenced in the text body. You can even keep some footnotes near where you referenced them, and collect others at the bottom of the file in the traditional place for footnotes. &lt;a href=&quot;#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot;  class=&quot;footnote-item&quot;&gt;&lt;p&gt;Internet connection required. &lt;a href=&quot;#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry xml:base="https://macdown.uranusjr.com/blog/the-macdown-blog/">
    <title type="text">Introducing the MacDown Blog</title>
    <id>urn:uuid:4048bf06-d145-3925-8e03-3d14244f587f</id>
    <updated>2014-07-31T00:00:00Z</updated>
    <link href="https://macdown.uranusjr.com/blog/the-macdown-blog/" />
    <author>
      <name>Tzu-ping Chung</name>
    </author>
    <content type="html">&lt;p&gt;Mic test one two. Eh-hem.&lt;/p&gt;
&lt;p&gt;This has been on my mind for some time. Back when I released MacDown 0.2 I felt that we have too much to fit inside the release note, so I wrote a &lt;a href=&quot;https://uranusjr.com/blog/post/59/macdown-0.2/&quot;&gt;blog post&lt;/a&gt; for it. But it seems a bit queer, to say at least, to use my personal blog for that purpose. And the post doesn’t really fit well with other posts there either, as my personal blog targets more toward Chinese audience. So I figured that it’d be better to find somewhere else in the future.&lt;/p&gt;
&lt;p&gt;I have also received a lot of emails/tweets/DMs recently for MacDown. I love them, and have tried (and will continue to try) answering them the best I could. But I am by no means an expert on Markdown, let alone many other topics people ask me about, and I’m sorry I can’t answer many of your questions. For those I can answer (not a lot, really), many are common enough that I got asked multiple times. Some of them have been added as &lt;a href=&quot;/faq/&quot;&gt;FAQ&lt;/a&gt;, but there are more that don’t fit, and they need a good place to the public.&lt;/p&gt;
&lt;p&gt;One particular instance is when I got asked whether I can recommend a blogging platform that supports extensions MacDown has. And I honestly have no idea. I &lt;a href=&quot;https://github.com/uranusjr/uranusjr.com&quot;&gt;host my own personal site/blog&lt;/a&gt;, and it uses a custom renderer to process Markdown. While the configuration does somehow resemble MacDown’s, they are still different, and at times incompatible with each other. I haven’t tried many other online services, but as far as I know there’s nothing that fits the asker’s requirement (which is not saying those platforms are bad—they are just incompatible).&lt;/p&gt;
&lt;p&gt;So, I decided that MacDown should have a blog. This way I can talk about topics on MacDown and Markdown-related things in general, in English, at a dedicated space. I also decided to &lt;a href=&quot;https://github.com/MacDownApp/macdown-site/tree/master/blog&quot;&gt;build the functionality myself&lt;/a&gt; instead of using an existing service/library, hoping to provide some ideas if somebody wish to make his/her own blogging/CMS platform compatible with MacDown. I am fairly satisfied with the current result, and might talk more about it in detail in the future, given the time.&lt;/p&gt;
&lt;p&gt;That’s about it. I’ve attached MacDown’s &lt;code&gt;help.md&lt;/code&gt; file as a post so that you can get an idea how compatible this thing is currently. You can see there are still issues, some of them require additional implementation at this side, and others are caused by bugs in MacDown and Hoedown. I will continue to improve it in the future.&lt;/p&gt;
&lt;p&gt;Until then!&lt;/p&gt;
</content>
  </entry>
</feed>
