<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brett Terpstramarkdown page  - Brett Terpstra</title>
	<atom:link href="http://brettterpstra.com/tag/markdown/feed/" rel="self" type="application/rss+xml" />
	<link>http://brettterpstra.com</link>
	<description>Elegant solutions to complex problems.</description>
	<lastBuildDate>Tue, 22 May 2012 02:49:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Markdown Editing for Sublime Text 2: humble beginnings</title>
		<link>http://brettterpstra.com/markdown-editing-for-sublime-text-2-humble-beginnings/</link>
		<comments>http://brettterpstra.com/markdown-editing-for-sublime-text-2-humble-beginnings/#comments</comments>
		<pubDate>Thu, 17 May 2012 22:30:37 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[multimarkdown]]></category>
		<category><![CDATA[sublimetext]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=4035</guid>
		<description><![CDATA[<p>I was disappointed to find that there weren’t any good packages available for Sublime Text 2 that added decent Markdown editing features. I figured it was time to learn my way around. I still haven’t dug into Python, so my script-fu in there is weak right now. I got a few things working, though, and this will evolve as I&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-editing-for-sublime-text-2-humble-beginnings/">Markdown Editing for Sublime Text 2: humble beginnings</a></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/05/sublime_markdown_editor_shot.jpg?9d7bd4" alt="Sublime Markdown Editor Shot" height="235" width="650" class="aligncenter" style="border: solid 1px #aaa;  display: block; margin-right: auto; margin-left: auto;" ></p>

<p>I was disappointed to find that there weren’t any good packages available for <a href="http://www.sublimetext.com/2">Sublime Text 2</a> that added decent Markdown editing features. I figured it was time to learn my way around. I still haven’t dug into Python, so my script-fu in there is weak right now. I got a few things working, though, and this will evolve as I learn new things. I’ll probably look back at this first version with embarrassment, but I’ll just overwrite it with better stuff as it progresses.</p>

<p>From the README on the <a href="https://github.com/ttscoff/MarkdownEditing">Github repo</a>:</p>

<p>This package will make MarkdownEditor your default theme for Markdown/MultiMarkdown files. Adjust it to your liking or remove the line from the .sublime-settings files</p>

<ul>
<li>Asterisks and underscores are autopaired and will wrap selected text</li>
<li>If you start an empty pair and hit backspace, both elements are deleted</li>
<li>If you start an empty pair and hit space, the right element is deleted</li>
<li>backticks are paired</li>
<li>Left bracket pairing is modified to eliminate the selection and leave the cursor at a point where you can insert a <code>[]</code> or <code>()</code> pair for a link</li>
<li>⌘⌥V will paste the contents of the clipboard as an inline link on selected text</li>
<li>⌘⌥R will paste the contents of the clipboard as a reference link</li>
<li>⌘K inserts a standard inline link, ⌘⇧K inserts an inline image</li>
<li>⌘B and ⌘I are bound to bold and italics (Markdown). <em>If you don’t like losing your default shortcut for “Build”, modify the sublime-keymap file. This only overrides while editing Markdown files.</em></li>
</ul>

<p>There’s a long way to go and I have a lot of Python to learn.</p>

<p>The theme pays some homage to <a href="http://bywordapp.com">Byword</a>, but I make no pretense that it’s anywhere as pretty.</p>

<h3>Installation</h3>

<p>Just download or clone the <a href="https://github.com/ttscoff/MarkdownEditing">MarkdownEditing repo</a> into a MarkdownEditing folder within your <code>~/Library/Application Support/Sublime Text 2/Packages</code> folder. You may have to restart Sublime to get it working, but once it’s installed (if all goes well), you should be able to open a Markdown file and see my custom theme. If you do, then the features listed above should also be available.</p>

<p>Right now, this is designed to be tweaked. I can’t guess what you’re preferred editing environment is like, so I went with mine. I’d love to see any permutations you come up with.</p>

<p>Oh, and by the way, if you’re doing any theming for Sublime Text, here’s a handy little plugin I whipped up to copy the scope of the character after the cursor to the clipboard for easily adding keys to a .tmtheme XML file:</p>

<script src="http://gist.github.com/2721811.js"></script>

<p>Also check out Philip Belesky’s <a href="https://github.com/philipbelesky/Byworded">Byworded themes</a> for TextMate and Sublime Text 2.</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/auto-link-text-service-updated/' rel='bookmark' title='Auto-link text service updated'>Auto-link text service updated</a></li>
<li><a href='http://brettterpstra.com/markdown-service-tools-1-3/' rel='bookmark' title='Markdown Service Tools 1.3'>Markdown Service Tools 1.3</a></li>
<li><a href='http://brettterpstra.com/markdown-quicktags-wordpress-plugin/' rel='bookmark' title='Markdown QuickTags: WordPress plugin for Markdown lovers'>Markdown QuickTags: WordPress plugin for Markdown lovers</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-editing-for-sublime-text-2-humble-beginnings/">Markdown Editing for Sublime Text 2: humble beginnings</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/markdown-editing-for-sublime-text-2-humble-beginnings/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Regarding my dream Markdown editor</title>
		<link>http://brettterpstra.com/regarding-my-dream-markdown-editor/</link>
		<comments>http://brettterpstra.com/regarding-my-dream-markdown-editor/#comments</comments>
		<pubDate>Thu, 10 May 2012 01:06:30 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Write]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[markdown]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=4015</guid>
		<description><![CDATA[<p>While there was some excitement and hearty agreement with the list of my ideal Markdown text editor features, there was also some criticism. There were some valid points in all of the critiques, and I’d like to address them. I’ll do so by rambling a bit. First, I think that some critics felt the list was overwhelming, and didn’t really&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/regarding-my-dream-markdown-editor/">Regarding my dream Markdown editor</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/05/markdowncloud.jpg?9d7bd4" alt="Markdown Editor Word Cloud" title="markdowncloud" width="231" height="380" class="alignright size-full wp-image-4025" />While there was some excitement and hearty agreement with the <a href="http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/">list of my ideal Markdown text editor features</a>, there was also some criticism. There were some valid points in all of the critiques, and I’d like to address them. I’ll do so by rambling a bit.</p>

<p>First, I think that some critics felt the list was overwhelming, and didn’t really dive in and consider the ramifications (or lack) of the features mentioned. I think the length and detail of the text was misleading when skimmed. The feature set is not as intrusive as it looks at first glance.</p>

<p>There was also a healthy portion of “Markdown is plain text, I want to edit it as plain text.” And that’s fine. If you don’t need anything more than TextEdit or your favorite code editor, then a Markdown editor isn’t really your market anyway. The list–and any debate surrounding it–is for people who use Markdown-specific editors and want to expand on them.</p>

<p>There’s room for those who fall in between, of course, and I understand that anything that makes Markdown editing into a word processor is counterproductive. Markdown is also, however, about convenience. Increasing productivity while writing is my goal, not adding buttons, bloat or new markup features.</p>

<p>My initial list was formulated over several years, but written in about 20 minutes. It was loosely organized and quickly typed. I’ll attempt here to sort things a little better as I expound on my requests. This probably won’t be brief. Apologies in advance<sup id="fnref:post"><a href="#fn:post" rel="footnote">1</a></sup>.</p>

<p><span id="more-4015"></span></p>

<h3>Invisible and unobtrusive</h3>

<p>My dream editor’s features are transparent. <a href="http://bywordapp.com/">Byword</a> is a great example of this. You can just edit text in it with nothing standing in your way. However, it has a <a href="http://brettterpstra.com/byword-for-keyboard-nerds/">lot of handy tricks</a> under the surface if you learn how to access them. They’re not blatant; you have to seek them out. Many of the items on my list fall into this category. They’re not attached to standard keyboard motions, so you’d never know they were there.</p>

<p>This is the basis for all of my requests. They are features that should flow with you, not jump out at you.</p>

<h3>Keyboard shortcuts.</h3>

<p>Having more advanced features assigned to key combinations that you’d never type accidentally does not add friction to standard text editing. It adds power for those who want to use them. There’s no reason, in my mind, not to have non-standard editing features available if they don’t interfere with standard Cocoa text field features.</p>

<p>Many of the items in my list mentioned an unspecified “hotkey” or “keyboard shortcut.” I didn’t assign anything because that isn’t really important at this phase. Developers will eventually work out what’s best, and a standard will evolve. I generally subscribe to the <a href="http://manual.macromates.com/en/key_bindings#conventions">conventions</a> that Allan Odgaard laid out for shortcuts in TextMate bundles. The key combinations I <em>did</em> specify were fairly standard for their behavior in this regard.</p>

<p>Take ⌘↩ for example. I don’t believe there’s any reason in the regular text system to hit Command-Return while typing text. Most people don’t have that in their muscle memory and generally wouldn’t think to hit it, so it’s an easy-to-remember but out-of-the-way shortcut. TextMate users, on the other hand, generally adore the fact that in TextMate this jumps out of the paragraph and starts a new line without breaking the line at your cursor (it’s ⎋o in Vim). This is useful, and you don’t have to avoid it if it’s unwelcome; unless you have a valid reason to be hitting ⌘↩, it’s a feature you’ll never notice.</p>

<p>On my own system (using <a href="http://brettterpstra.com/keybinding-madness/">Cocoa keybindings</a>), ^⌘←/→ indents and outdents lines, and ^⌘↑/↓ moves lines up and down, swapping places with lines above and below. This is another convention borrowed from several places, and I believe it to be relatively standard for this action. I’m completely open to developers making arguments for something else, but again, this is a key combination that is easy to use but not something you’d accidentally trigger. ⌘[/] are also commonly used for indent/outdent. I’m open to anything that meets the criteria.</p>

<h3>Automatically inserted text</h3>

<p>Some features involve text being inserted as you type, which I think are the features that scare people the most. Rightly so; improperly implemented they’re an annoyance that <em>adds</em> friction to an otherwise very simple process. Properly done, they transparently remove friction and save time.</p>

<p>Features such as list continuation (an asterisk and a space being inserted on a new line when you press return at the end of an existing list item) are already becoming par for the course. List continuation has been around in some editors since I started writing Markdown some years ago. Many implementations of it, though, do annoying things like making you backspace the last list item before pressing Return. That’s a hindrance. I shouldn’t have to remove text I didn’t insert.</p>

<p>The same goes for auto-pairing. A poor implementation of it ends up with me spending more time deleting characters I didn’t want than it saves. It has to be smart enough to know when I actually want a right bracket inserted, and gracious enough to delete the extra character automatically when it’s apparent I didn’t want it. If it can’t do that, I’d rather not have it (selection wrapping, though, I don’t want to be without). Specifications for this behavior were in the original list, but I think that some readers glazed over that part (understandable, but you really should finish reading the post before firing off a Tweet).</p>

<h3>Text manipulation</h3>

<p>Along the same lines as ⌘↩, using tab to indent a block of text is very useful in Markdown, especially for creating “verbatim” blocks (code/poetry with line breaks respected). It also doesn’t tread all over any standard behavior. If you’d never used such a feature, why would you select text before hitting tab? It’s not a normal method of deleting text and inserting an indent, even though that’s what the default behavior for that action is. I’d bet that not many people have ever done that intentionally.</p>

<p>Wrapping and auto-pairing are usually mentioned together, but really are separate in my mind. As I said before, I’d rather not have auto-pairing if it’s not done right. Wrapping is hard to screw up, though, beyond how you handle the selection after the surrounding characters are inserted. In a normal situation you’d rarely select text and type a quote character. It would delete the selected text and leave you with a quote. To actually quote a section, you’d likely option-arrow to the beginning of the sentence, type your quote, option arrow to the end of the quoted section and insert another quote<sup id="fnref:vim"><a href="#fn:vim" rel="footnote">2</a></sup>. Wrapping means you can hold shift and option-arrow from one end of the quoted section to the other, type quote once and be done, cursor ready to go at the end of the quote.</p>

<h3>Service features</h3>

<p>These features don’t even need keyboard shortcuts; they do just fine as menu items. Out of the way, but great tools to have available. Converting a selected block of lines into a list and batch reference link pasting from the clipboard are good examples. They are in no way interfering with your normal writing tasks. Learn to use them when you want to, and once you do you’ll be that much happier.</p>

<p>Other features such as footnote insertion and connection are advanced tools that should be connected to non-standard shortcuts, but ones that are easy to work into your habits if you choose to.</p>

<p>Link pasting behavior and reference title auto-completion should happen automatically but intelligently. Reference title completion is a huge timesaver if you have a group of reference links at the very top or bottom of your document and not visible on your screen from the current location. If your document is long enough for that to happen, you’ve probably forgotten the exact title you used for each reference. Get it wrong and you’ll have broken output. Type-ahead autocompletion prevents you from having to scroll to a document boundary, check the list, jump back and type in what’s probably only 5–10 characters.</p>

<p>Link pasting behavior is a little sketchier. I believe that <a href="elasticthreads.tumblr.com/post/18472570712/nvalt22#markdownlinkpasting">Elastic Thread’s innovations</a> are headed in a very positive direction. Selecting text and pasting a link <em>should</em> link that text. I’m willing to concede that–as we implemented in nvALT–the behavior might be best with a modifier key on ⌘V, rather than replacing the standard behavior for the “paste” key combination. Same with pasting a standalone link and having it automatically surrounded with angle brackets to create a self link, or preceded by “[]: ” if it’s at the beginning of a line. ⌘⌥V works nicely in both situations, with different behaviors based on context and selection.</p>

<h3>Regarding syntax highlighting in text editors</h3>

<p>I’m a big fan of the subtle highlighting that Byword does. Markdown text is designed to be readable, and dimming the markup and emphasizing marked up text appropriately just makes it that much more readable for me. iA Writer’s ability to pull the leaders on <code>###</code> style headlines outside of the left margin also has this effect. I <em>don’t</em> like color changes or size changes. I do <em>not</em> want my plain text changing scale and hue while I type. Keep it simple, make it beneficial and unobtrusive.</p>

<h3>Moving forward</h3>

<p>I’ve already implemented almost every one of these features in one form or another across my own projects. <a href="http://brettterpstra.com/project/markdown-quicktags/">Markdown QuickTags</a>, for example, does about 80% of what I’ve mentioned, but it does it in a web  browser textarea. Javascript doesn’t allow for the clean implementation that the Cocoa Text System does, and editing in a web view is not my first choice (or even my third or fourth). The <a href="http://bundle.weblogzinc.com/docs/index.php">Blogsmith Bundle</a> for TextMate also has many of these features, as well as a somewhat dizzying array of additional writing tools, providing an enhanced environment for web writers. It was a playground for my ideas, and a way for me to weed out what was actually useful and what was a hindrance. Now I just want the fruits of that research brought to bear in an elegant, dedicated Markdown editor.</p>

<p>The tools I’ve built in <a href="http://brettterpstra.com/project/markdown-service-tools/">System Services</a> are handy because they’re application-agnostic and allow keyboard shortcuts and behavior to be consistent across editing environments. They’re slow, though. Having their functionality built in to my primary writing space would be much more ideal. Based on downloads and traffic, I think a few people agree that they’re useful tools. Elegantly implemented within an app, I think they’d be dynamite.</p>

<p>That’s enough of a rambling response for now. I’ll end by once again saying that this is fodder for critique among the plain-text faithful. These are my personal desires, but they’ll never come into being without being passed through a gauntlet of thoughtful debate. If I haven’t lost your attention, I’d enjoy hearing more responses. Then let’s make the best damn Markdown editor ever.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:post">
<p>Yeah, that got ridiculously long. I called in sick to work but I can write 2000 words for a blog post? <a href="#fnref:post" rev="footnote">↩</a></p>
</li>

<li id="fn:vim">
<p>Unless you’re a vim user, in which case you do that in a much more efficient–though somewhat unintuitive–manner. <a href="#fnref:vim" rev="footnote">↩</a></p>
</li>

</ol>
</div>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/' rel='bookmark' title='My ultimate Markdown editor wishlist'>My ultimate Markdown editor wishlist</a></li>
<li><a href='http://brettterpstra.com/crowdsourcing-ios-text-editor-comparisons/' rel='bookmark' title='Crowdsourcing iOS Text Editor comparisons'>Crowdsourcing iOS Text Editor comparisons</a></li>
<li><a href='http://brettterpstra.com/markdown-quicktags-0-7/' rel='bookmark' title='Markdown QuickTags 0.7'>Markdown QuickTags 0.7</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/regarding-my-dream-markdown-editor/">Regarding my dream Markdown editor</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/regarding-my-dream-markdown-editor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My ultimate Markdown editor wishlist</title>
		<link>http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/</link>
		<comments>http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/#comments</comments>
		<pubDate>Sun, 06 May 2012 21:12:46 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Write]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[markdown]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3972</guid>
		<description><![CDATA[<p>There are a few great Markdown text editors available, and more being worked on right now. I want to put a list of features out there that I think any true Markdown editor should include. Some of these are implemented in one editor or another, but nothing has brought it all together (aside from TextMate with all of my customizations,&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/">My ultimate Markdown editor wishlist</a></p>]]></description>
			<content:encoded><![CDATA[<p>There are a few great Markdown text editors available, and more being worked on right now. I want to put a list of features out there that I think any true Markdown editor should include. Some of these are implemented in one editor or another, but nothing has brought it all together (aside from TextMate with all of my customizations, and even that lacks some of the polish mentioned below).</p>

<p><span id="more-3972"></span></p>

<h3>The wish list</h3>

<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/05/wishlist.jpg?9d7bd4" alt="Wishlist" title="wishlist" width="230" height="528" class="alignright size-full wp-image-3975" /></p>

<ul>
<li><p><strong>Emphasis shortcuts for selected text</strong></p>

<p>Preferably Command-B and Command-I. Selection should remain (expanded to include inserted emphasis characters) so that I can add multiple emphasis if I want. Typing any characters other than emphasis or auto-paired characters (including Space) at this point should move the cursor to the right, deselecting the text and continuing to type after the emphasis end.</p></li>
<li><p><strong>Intelligent indentation</strong></p>

<p>Creating a newline should maintain the previous line’s indentation, except when ending a list, in which case the indentation should be removed. Pasting text should remove indentation from the text and preserve the current indentation of the preceding line.</p></li>
<li><p><strong>List continuation</strong></p>

<p>Pressing enter at the end of a list item should create a new list item at the same indentation level and with the same list type, incrementing the number if it’s an ordered list. Pressing return on a line that contains <em>only</em> the list item delimiter (no text) should remove that delimiter and insert a newline. Never leave me with an orphaned, empty list item.</p></li>
<li><p><strong>Auto-pairing</strong></p>

<p>Needs to be smart enough to know when <em>not</em> to pair: Avoid pairing when inserting a starting element when there’s a non-whitespace character immediately to right, or when inserting a paired element at the end of a string that begins with an unclosed starting element.</p>

<p>Backspacing the first character of a pair immediately followed by the right character should delete both of them.</p>

<p>Obvious note: Characters inserted in this way must have the cursor placed between the resulting pair.</p></li>
<li><p><strong>Wrapping</strong></p>

<p>When the first element of a pair is typed while text is selected, it should wrap the selected text with the pair. Unlike pairing, the cursor should be placed <em>outside</em> of the last character of the pair, allowing you to start typing immediately.</p></li>
<li><p><strong>Link pasting</strong></p>

<p>Elastic Threads has worked some really intelligent link paste detection into nvALT, and I love it. If a link is pasted while text is selected, it adds an inline link to the selected text using the pasted url. If it’s at the beginning of a line, you can paste it as a reference title and position the cursor inside the title brackets. Pasted by itself with leading and trailing whitespace, it should make a self-link (<code>&lt;url&gt;</code>).</p></li>
<li><p><strong>Tab indents entire selection block</strong></p>

<p>God help you if Tab deletes a selection instead. Shift-Tab should function in the same way, outdenting entire selections.</p></li>
<li><p><strong>Shortcuts for moving lines up and down and indenting and outdenting.</strong></p>

<p>This should function on <em>any</em> line, not just within lists. If a current selection is shorter than the current line, the entire line moves, and if it spans multiple lines, the entire block moves including characters within the paragraph but outside of the selection.</p></li>
<li><p><strong>Auto-complete reference titles</strong></p>

<p>When the cursor is inside of square brackets immediately following a closing square bracket, it should start type-ahead autocompletion using all existing references in the document.</p></li>
<li><p><strong>Table of contents navigation based on existing headers, and shortcuts to jump to the next/previous header.</strong></p></li>
<li><p><strong>Footnote insertion</strong></p>

<p>When a hotkey is pressed, a footnote marker should be added and the cursor should jump to a blank line after the current paragraph, inserting newline and a matching reference. Once you finish editing the footnote, the same hotkey should jump back to the footnote marker. I’ve already made this work in the Blogsmith bundle. It’s not that hard.</p>

<p>This same method could be applied to reference links. When a shortcut is pressed while there is selected text, wrap the text with <code>[text][unique title]</code> and move the cursor to the next blank line or existing reference link title, insert <code>[unique title]:</code> and place the cursor after the colon and a trailing space. Using the shortcut immediately after typing should return to the last edit point in the text. Pressing the shortcut on a line beginning with a reference title should scan the document for the first reference to that title and jump to it.</p></li>
<li><p><strong>Headline level conversion</strong></p>

<p>Shortcut should increment/decrement header level for the current line, cycling from 0–6 and looping at beginning/end.</p></li>
<li><p><strong>List creation/conversion</strong></p>

<p>Running this on multiple lines should compact them into a list, preserving indentation. Running it on an existing list should change the list type between unordered and ordered. Needs to be aware of context, only changing within the current scope of indentation and not modifying nested lists. Byword does a really good job with this already.</p></li>
<li><p><strong>Blockquote level shortcut</strong></p>

<p>Using this shortcut should create a blockquote from the current line or selected text, and increase the quote level for the line/selection when pressed repeatedly.</p></li>
<li><p><strong>Reference list insertion</strong></p>

<p>There should be an option to parse the clipboard for all links and insert a set of reference links with a unique title for each, preferably based on the domain of the link for easier use when referencing later. The Blogsmith Bundle and my Markdown Service tools both include this feature.</p></li>
<li><p><strong>Ability to convert all inline links to references</strong></p>

<p>Should scan the entire document for inline links and replace them with reference links, references collected at the end of the document. The Markdown Service Tools have this capability, but Writing Kit on iOS is the only other place I’ve seen it implemented.</p></li>
<li><p><strong>Shift-Return and Command-Return</strong></p>

<p>Shift-Return (or possibly Control-Return) should insert two spaces and a newline to create a hard break. Command-Return should jump to the end of the current paragraph/line and insert a newline, allowing you to jump out of the middle of a line without breaking it. Command-Shift-Return should function like Command-Return, but add the two spaces before inserting the newline.</p></li>
<li><p><strong>Command-Arrow</strong></p>

<p>Command-Left/Right Arrow should jump to the first non-whitespace character of a paragraph, only jumping to the actual beginning of the line on second press. If the current line is wrapped on the screen, jump to the left side of the current line and then to the first character on a repeat press, just to maintain basic compatiblity with existing behavior.</p></li>
</ul>

<h3>Choose your own adventure</h3>

<p>This list isn’t complete, but it includes the major things that I find missing (or would just like to see) in current implementations. Have any to add? I’ll edit this post as I think of more or hear good suggestions. Keep in mind that this represents my personal desires, not necessarily yours. I’m also open to hearing from developers who think any of these might be more cumbersome or confusing than helpful, especially if you have suggestions for modification.</p>

<p>[Update]: Still feel like reading about Markdown editors? There’s a <a href="http://brettterpstra.com/regarding-my-dream-markdown-editor/">followup post.</a></p>
<p>No related posts.</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/">My ultimate Markdown editor wishlist</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/my-ultimate-markdown-editor-wishlist/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>MultiMarkdown Quick Look with Style</title>
		<link>http://brettterpstra.com/multimarkdown-quick-look-with-style/</link>
		<comments>http://brettterpstra.com/multimarkdown-quick-look-with-style/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 23:43:04 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[multimarkdown]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[quicklook]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3798</guid>
		<description><![CDATA[<p>I added a little hack to Fletcher Penney’s MultiMarkdown Quick Look generator to give it a default style (Github CSS) and allow for customization via a .mdqlstyle.css file located in your home folder. Full details and download available on Github. Screenshot of a Quick Look preview using the Upstanding Citizen style (available on the Github page): I have found that&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/multimarkdown-quick-look-with-style/">MultiMarkdown Quick Look with Style</a></p>]]></description>
			<content:encoded><![CDATA[<p>I added a little hack to Fletcher Penney’s MultiMarkdown Quick Look generator to give it a default style (Github CSS) and allow for customization via a <code>.mdqlstyle.css</code> file located in your home folder. Full details and download available <a href="https://github.com/ttscoff/MMD-QuickLook">on Github</a>.</p>

<p>Screenshot of a Quick Look preview using the Upstanding Citizen style (available on the Github page):</p>

<p><img src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/03/MMDQLUpstandingCropped.jpg?9d7bd4" alt="Upstanding Citizen preview" /></p>

<p>I have found that some Markdown tools which come with their own Quick Look generators will always override my custom one, even when they aren’t the file’s owner (e.g. iA Writer). I don’t know how to get around this short of the brute force hack: open the <code>Info.plist</code> inside the qlgenerator file within the offending app’s bundle and delete the entry for <code>net.daringfireball.markdown</code>. That, or just delete the .qlgenerator bundle in the app entirely. That only works until the next time you upgrade, though, and it’s not recommended. If anyone knows a better solution, please shout.</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/marked-1-3-1-more-multimarkdown-goodies/' rel='bookmark' title='Marked 1.3.1, more MultiMarkdown goodies'>Marked 1.3.1, more MultiMarkdown goodies</a></li>
<li><a href='http://brettterpstra.com/notational-velocity-and-multimarkdown/' rel='bookmark' title='Notational Velocity and MultiMarkdown'>Notational Velocity and MultiMarkdown</a></li>
<li><a href='http://brettterpstra.com/notational-velocity-alternative-multimarkdown-version/' rel='bookmark' title='Notational Velocity alternative MultiMarkdown version'>Notational Velocity alternative MultiMarkdown version</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/multimarkdown-quick-look-with-style/">MultiMarkdown Quick Look with Style</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/multimarkdown-quick-look-with-style/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Markdown Service Tools get blockquotes, self-links and more</title>
		<link>http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/</link>
		<comments>http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 04:33:54 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[markdownservices]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3697</guid>
		<description><![CDATA[<p>I needed some relaxing regular expression fun tonight, so I’ve updated a couple of services in the Markdown Service Tools and made some small additions. The main new feature is for handling blockquotes, and there are two versions of the Service. I’m providing some brief explanations after the jump, but feel free to skip to the Markdown Service Tools page&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/">Markdown Service Tools get blockquotes, self-links and more</a></p>]]></description>
			<content:encoded><![CDATA[<p>I needed some relaxing regular expression fun tonight, so I’ve updated a couple of services in the Markdown Service Tools and made some small additions. The main new feature is for handling blockquotes, and there are two versions of the Service. I’m providing some brief explanations after the jump, but feel free to skip to the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Service Tools page</a> and just check the <a href="http://brettterpstra.com/project/markdown-service-tools/#changelog">changelog</a>.</p>

<p><span id="more-3697"></span></p>

<h3>Block quoting</h3>

<p>The first of the blockquoting tools, “Blockquote Selection,” just adds a “&gt;” and a space before every line in the selection which contains text. It preserves existing indentation and is best for quoting single paragraphs quickly or for large chunks with code blocks and other indented text you want to keep that way.</p>

<p>The second version, “Convert Indents to Quote Levels,” is for turning hierarchically-indented text (using tabs, not spaces) into nested blockquotes in Markdown format. In essence, it swaps tabs for <code>&gt;</code>‘s. You can turn a conversation like this:</p>

<pre><code>Ut enim ad minima veniam, quis nostrum 

    exercitationem ullam corporis 

        suscipit laboriosam, nisi ut aliquid ex ea 

            commodi consequatur? 

        Quis autem vel eum iure reprehenderit qui in ea 

voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
</code></pre>

<p>into this:</p>

<pre><code>&gt; Ut enim ad minima veniam, quis nostrum

&gt;&gt; exercitationem ullam corporis

&gt;&gt;&gt; suscipit laboriosam, nisi ut aliquid ex ea

&gt;&gt;&gt;&gt; commodi consequatur?

&gt;&gt;&gt; Quis autem vel eum iure reprehenderit qui in ea

&gt; voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
</code></pre>

<p>Which previews/converts as something like:</p>

<p><img src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/02/indented_blockquotes.jpg?9d7bd4" alt="Indented blockquotes" height="215" width="450" ></p>

<h3>Self-linking URLs</h3>

<p>The other big feature, and probably the one that took me the most time this evening, is a service for converting standalone URLs into hyperlinks. If a URL isn’t part of an HTML or Markdown (reference or inline) link, it gets turned into a Markdown-style self-link, which will preview/convert as a hyperlink with the URL itself as the text. This is done by surrounding the URL with angle brackets (<code>&lt;http://yourlink.com&gt;</code>).</p>

<p>This service will ignore anything in an href attribute, anything preceded by ”](“ (assumed to be an inline link), anything on a line that starts with a reference (<code>[title]: ...</code>) and any links that are already “self-linked.” It looks for common punctuation marks at the end of a link and removes them from the conversion (comma, period, etc.). It also does its best to recognize when a paired character (parenthesis, brackets, quotes) exists at the beginning and end of the link so they can be separated from the url without brutally removing every occurence from the link (thus breaking any wikipedia link, et al)<sup id="fnref:lookbehind"><a href="#fn:lookbehind" rel="footnote">1</a></sup>.</p>

<p>The Service currently only looks for http, https and ftp links. If you have another use case I should consider, let me know.</p>

<h3>Unwrap Paragraphs updated</h3>

<p>The <a href="http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/">Unwrap Paragraphs</a> service I added the other day has had a small dose of “smart” added to it. It won’t mess with your code blocks or other specially-formatted text now, and should do a much better job of concatenating words that were hyphenated when the text was hard-wrapped to begin with. Let me know how it goes, I’m definitely looking to improve this one. All of them, really, so don’t be shy with the feedback.</p>

<h3>Download</h3>

<p>You can grab the whole pack of Services and read up on the rest of the included tools on the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Service Tools</a> project page. There’s a readme included in the download (and I just updated it and the documentation) with the full contents of that page, so feel free to download directly below and browse that on your own.</p>

<div class="download_desc"><p class="download-icon"><a href="http://brettterpstra.com/downloads/MarkdownServiceTools1.4.zip?9d7bd4" title="Download Markdown Service Tools (4273)"><img src="http://brettterpstra.com/wp-content/images/serviceicon.jpg?9d7bd4" alt="download image for Markdown Service Tools" width="64" /></a><br /><a href="http://brettterpstra.com/downloads/MarkdownServiceTools1.4.zip?9d7bd4" title="Download Markdown Service Tools (4273)" class="download-button">Download</a></p><p class="desc"><a href="http://brettterpstra.com/downloads/MarkdownServiceTools1.4.zip?9d7bd4" title="Download Markdown Service Tools (4273)">Markdown Service Tools</a> — Markdown Service Tools is a collection of OS X Services to make creating Markdown-formatted text that much easier. Services work in any Cocoa based application. (Updated to no longer swear at you when converting HTML to Markdown.) <a href="http://brettterpstra.com/code/markdown-service-tools/">More Info</a></p></div>

<div class="footnotes">
<hr />
<ol>

<li id="fn:lookbehind">
<p>This took a lot of bending over backward because I need it to support Ruby 1.8 (default on your OS X machine), and Ruby 1.8 doesn’t support <a href="http://www.perlmonks.org/?node_id=518444">negative lookbehinds</a> in regular expressions. I apologize for the inelegance of the code. When 1.9+ becomes standard on Macs, I might update it to be much prettier. <a href="#fnref:lookbehind" rev="footnote">↩</a></p>
</li>

</ol>
</div>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/markdown-service-tools-1-3/' rel='bookmark' title='Markdown Service Tools 1.3'>Markdown Service Tools 1.3</a></li>
<li><a href='http://brettterpstra.com/some-chrome-love-for-the-markdown-service-tools/' rel='bookmark' title='Some Chrome love for the Markdown Service Tools'>Some Chrome love for the Markdown Service Tools</a></li>
<li><a href='http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/' rel='bookmark' title='Unwrap Paragraphs for the Markdown Service Tools'>Unwrap Paragraphs for the Markdown Service Tools</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/">Markdown Service Tools get blockquotes, self-links and more</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Unwrap Paragraphs for the Markdown Service Tools</title>
		<link>http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/</link>
		<comments>http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 15:38:43 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[markdownservices]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[System Service]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3656</guid>
		<description><![CDATA[<p>Inspired by a Twitter request this morning, I’ve updated the Markdown Service Tools to version 1.3.1 to include an experimental version of a new service: Unwrap Paragraphs. Opposite from the “Preserve line breaks” service, this one will look for consecutive lines and merge them together into one paragraph. It handles hyphenated words and won’t mess up em/en dashes in Markdown&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/">Unwrap Paragraphs for the Markdown Service Tools</a></p>]]></description>
			<content:encoded><![CDATA[<p>Inspired by a Twitter request this morning, I’ve updated the Markdown Service Tools to version 1.3.1 to include an experimental version of a new service: Unwrap Paragraphs.</p>

<p>Opposite from the “Preserve line breaks” service, this one will look for consecutive lines and merge them together into one paragraph. It handles hyphenated words and won’t mess up em/en dashes in Markdown style (<code>--</code> or <code>---</code>). If there’s a newline between two lines, it assumes it’s a new paragraph and treats it as such.</p>

<p><strong>Note:</strong> this <em>does</em> currently unwrap list items and code blocks as well. It should be used selectively on paragraph text. I’ll eventually put in the time to come up with a regular expression that will avoid this.</p>

<p>Version 1.3.1 is available on the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Service Tools project page</a>. Somebody <a href="https://twitter.com/lucianofuentes/status/169379718062288896">owes me a box of Aussie Tim Tams</a>.</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/' rel='bookmark' title='Markdown Service Tools get blockquotes, self-links and more'>Markdown Service Tools get blockquotes, self-links and more</a></li>
<li><a href='http://brettterpstra.com/some-chrome-love-for-the-markdown-service-tools/' rel='bookmark' title='Some Chrome love for the Markdown Service Tools'>Some Chrome love for the Markdown Service Tools</a></li>
<li><a href='http://brettterpstra.com/markdown-service-tools-1-3/' rel='bookmark' title='Markdown Service Tools 1.3'>Markdown Service Tools 1.3</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/">Unwrap Paragraphs for the Markdown Service Tools</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Markdown Service Tools 1.3</title>
		<link>http://brettterpstra.com/markdown-service-tools-1-3/</link>
		<comments>http://brettterpstra.com/markdown-service-tools-1-3/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 21:00:50 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[markdownservices]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3651</guid>
		<description><![CDATA[<p>I updated the Markdown Service Tools today to include some recently-developed services and some revisions to existing services. Notably, Force Line Breaks has become Preserve Line Breaks, a slightly more elegant service for getting github-style linebreaks in your documents. If you have a block of text with hard returns in it… this is a line this is a line following&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-service-tools-1-3/">Markdown Service Tools 1.3</a></p>]]></description>
			<content:encoded><![CDATA[<p>I updated the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Service Tools</a> today to include some recently-developed services and some revisions to existing services.</p>

<p>Notably, <strong>Force Line Breaks</strong> has become <strong>Preserve Line Breaks</strong>, a slightly more elegant service for getting github-style linebreaks in your documents. If you have a block of text with hard returns in it…</p>

<pre><code>this is a line
this is a line following a hard return
</code></pre>

<p>(Multi)Markdown will generally concatenate those into a single paragraph. This service looks for these and adds the two spaces at the end of the line required to convert it into a <code>&lt;br&gt;</code> and preserve your formatting.</p>

<p><strong>Lucky Link</strong> is now <strong>Auto-link web search</strong>, the same idea but it functions a little better. Select some text and run it to get a Markdown link to the top result from a web search for that text.</p>

<p>There are a couple of inclusions, such as cleanup scripts for tables and lists, and minor revisions for other commands. Download it from the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Services project page</a>.</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/markdown-service-tools-get-blockquotes-self-links-and-more/' rel='bookmark' title='Markdown Service Tools get blockquotes, self-links and more'>Markdown Service Tools get blockquotes, self-links and more</a></li>
<li><a href='http://brettterpstra.com/some-chrome-love-for-the-markdown-service-tools/' rel='bookmark' title='Some Chrome love for the Markdown Service Tools'>Some Chrome love for the Markdown Service Tools</a></li>
<li><a href='http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/' rel='bookmark' title='Unwrap Paragraphs for the Markdown Service Tools'>Unwrap Paragraphs for the Markdown Service Tools</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-service-tools-1-3/">Markdown Service Tools 1.3</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/markdown-service-tools-1-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Gather, a Cocoa Markdownifier</title>
		<link>http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier/</link>
		<comments>http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 02:43:36 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3619</guid>
		<description><![CDATA[<p>I wrote something a couple of nights ago that I thought I’d share. I’m calling it “Gather,” and it’s basically an “appified” version of my Readability/Markdownify work. A Cocoa version of Marky the Markdownifier, if you will. You can paste in a URL and it will attempt to find the core text of the page, download it and turn it&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier/">Introducing Gather, a Cocoa Markdownifier</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/02/GatherNew250.png?9d7bd4" alt="" title="GatherNew250" width="250" height="250" class="alignright size-full wp-image-3624" />I wrote something a couple of nights ago that I thought I’d share. I’m calling it “Gather,” and it’s basically an “appified” version of my <a href="http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/">Readability/Markdownify</a> work. A Cocoa version of <a href="http://markdownrules.com/">Marky the Markdownifier</a>, if you will. You can paste in a URL and it will attempt to find the core text of the page, download it and turn it into Markdown for clean web clipping. It displays the result in a field you can copy from, and it can optionally auto-copy the result to your clipboard.</p>

<p>It’s a little shaky, especially on sites with bad markup. I’d say that right now it has about a 60% success rate. As I have time to work on it I’ll be improving this and adding a bevy of features that may eventually become an App Store submission. We’ll see. This proof-of-concept version<sup id="fnref:icon"><a href="#fn:icon" rel="footnote">1</a></sup>, however, is free to download. I’ll ask nicely that you please not steal the idea and <a href="http://www.youtube.com/watch?v=PyupJo5SRHI&amp;feature=related">beat me to the punch</a>.</p>

<p>This build is Lion-only; it won’t run at all on Snow Leopard. I’m not really taking any feature suggestions right now, as I already have an extensive roadmap for it that will turn it into something highly useful in many situations (and I’m quite aware of what it lacks in this state). I <em>would</em> enjoy hearing from you with your reactions, though.</p>

<h3>Credit due</h3>

<p>This version uses <a href="https://github.com/curthard89/COCOA-Stuff/tree/master/GGReadabilityParser">GGReadability</a> by Curtis Hard. You should definitely check out his work-in-progress app, <a href="http://www.geekygoodness.com/">Caffeinated</a>. It’s an RSS reader with Google Reader support and some serious potential. I’m also using <a href="http://www.aaronsw.com/2002/html2text/">HTML2Text</a> for “markdownifying.”</p>

<p>Enjoy.</p>

<h3>Download</h3>

<div class="download_desc"><p class="download-icon"><a href="http://brettterpstra.com/downloads/Gather0.1.zip?9d7bd4" title="Download Gather (437)"><img src="http://cdn2.brettterpstra.com/wp-content/uploads/downloads/thumbnails/2012/02/GatherNew250.png?9d7bd4" alt="download image for Gather" width="64" /></a><br /><a href="http://brettterpstra.com/downloads/Gather0.1.zip?9d7bd4" title="Download Gather (437)" class="download-button">Download</a></p><p class="desc"><a href="http://brettterpstra.com/downloads/Gather0.1.zip?9d7bd4" title="Download Gather (437)">Gather</a> — Turn web pages into clean Markdown for clipping. <a href="http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier">More Info</a></p></div>

<div class="footnotes">
<hr />
<ol>

<li id="fn:icon">
<p>I know the icon is pretty terrible. I liked my <a href="http://cdn2.brettterpstra.com/wp-content/uploads/2012/02/GatheredOriginal.png?9d7bd4">first version</a> when it was in Photoshop, but it looked horrible in the Dock. It’ll get better. <a href="#fnref:icon" rev="footnote">↩</a></p>
</li>

</ol>
</div>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/meet-marky-the-markdownifier/' rel='bookmark' title='Meet Marky, the Markdownifier'>Meet Marky, the Markdownifier</a></li>
<li><a href='http://brettterpstra.com/introducing-the-marked-bonus-pack/' rel='bookmark' title='Introducing the Marked Bonus Pack'>Introducing the Marked Bonus Pack</a></li>
<li><a href='http://brettterpstra.com/instapaper-beyond-bugs/' rel='bookmark' title='Instapaper Beyond Bugs (fixed)'>Instapaper Beyond Bugs (fixed)</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier/">Introducing Gather, a Cocoa Markdownifier</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/introducing-gather-a-cocoa-markdownifier/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>A Service for writing MultiMarkdown footnotes inline</title>
		<link>http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline/</link>
		<comments>http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 16:52:39 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[multimarkdown]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3576</guid>
		<description><![CDATA[<p>This post should have been titled “What happens to my mornings.” I get a lot of one-off requests for scripts and tips on how to handle tasks specific to people’s workflow or writing style. I generally keep myself pretty busy, so I usually reply with a quick idea or thought and leave it up to them to run with it.&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline/">A Service for writing MultiMarkdown footnotes inline</a></p>]]></description>
			<content:encoded><![CDATA[<p>This post should have been titled “What happens to my mornings.”</p>

<p>I get a lot of one-off requests for scripts and tips on how to handle tasks specific to people’s workflow or writing style. I generally keep myself pretty busy, so I usually reply with a quick idea or thought and leave it up to them to run with it. <a href="http://havecamerawilltravel.com/">David Coleman</a> emailed me this morning, though, with a request that struck me as an interesting enough idea to whip up a script before work.</p>

<p>What David wanted to do was take the idea behind my “Inline Links to References” command in the <a href="http://brettterpstra.com/project/markdown-service-tools/">Markdown Service Tools</a> and do something similar for footnotes, allowing him to write footnotes inline in a paragraph and have them converted before processing with MultiMarkdown. It’s not such a chore to skip a few lines and drop in the footnote syntax that this should be part of the spec, but it <em>is</em> something I would find handy in several situations. So…</p>

<p><span id="more-3576"></span></p>

<p>The format I picked uses a syntax like this to denote a footnote:</p>

<pre><code>This is the regular text(*This is the footnote*), and you can drop the footnote in at any point.
</code></pre>

<p>The Service can handle footnotes inside of lines, at the end of lines, spanning multiple lines with breaks (creates paragraphs) and does fine with Markdown <em>within</em> the footnote. One nice thing about this syntax is that–if you’re previewing as you write–it italicizes the output to differentiate it until you’ve used the service to move it out of the main text.</p>

<p>Multi-line footnotes need to begin at the end of a line of text, and just use double-newlines to separate paragraphs within the footnote, e.g.:</p>

<pre><code>...the end of the paragraph. (*This is a footnote

which is going to span

more than one line*)
</code></pre>

<p>Here’s the script, also available as a Service download at the end of the post.</p>

<p><strong>Update:</strong> I just added a fix (in code below and the Service download) for making sure that footnote reference titles aren’t duplicated if you have existing MultiMarkdown-formatted footnotes in the document.</p>


<div class="wp_syntax"><div class="code"><pre class="ruby"><span class="co1">#!/usr/bin/env ruby</span>
&nbsp;
<span class="kw1">def</span> e_sh<span class="br0">&#40;</span>str<span class="br0">&#41;</span>
	str.<span class="me1">to_s</span>.<span class="kw3">gsub</span><span class="br0">&#40;</span><span class="sy0">/</span><span class="br0">&#40;</span>?=<span class="br0">&#91;</span>^a<span class="sy0">-</span>zA<span class="sy0">-</span>Z0<span class="sy0">-</span><span class="nu0">9</span>_.\<span class="sy0">/</span>\<span class="sy0">-</span>\x7F<span class="sy0">-</span>\xFF\n<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">/</span>n, <span class="st0">'<span class="es0">\\</span>'</span><span class="br0">&#41;</span>
<span class="kw1">end</span>
&nbsp;
input = STDIN.<span class="me1">read</span>
&nbsp;
footnotes = input.<span class="me1">scan</span><span class="br0">&#40;</span><span class="sy0">/</span>\<span class="br0">&#40;</span>\<span class="sy0">*</span><span class="br0">&#40;</span>.<span class="sy0">*</span>?<span class="br0">&#41;</span>\<span class="sy0">*</span>\<span class="br0">&#41;</span><span class="sy0">/</span>m<span class="br0">&#41;</span>
existing = input.<span class="me1">scan</span><span class="br0">&#40;</span><span class="sy0">/</span>^\<span class="br0">&#91;</span>\^fn<span class="br0">&#40;</span>\d<span class="sy0">+</span><span class="br0">&#41;</span>\<span class="br0">&#93;</span>: <span class="sy0">/</span>i<span class="br0">&#41;</span>
counter = existing.<span class="me1">empty</span>? ? <span class="nu0">1</span> : existing.<span class="me1">uniq</span>.<span class="me1">sort</span><span class="br0">&#91;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">join</span>.<span class="me1">to_i</span> <span class="sy0">+</span> <span class="nu0">1</span>
&nbsp;
output = <span class="br0">&#91;</span><span class="br0">&#93;</span>
footnotes.<span class="me1">each</span> <span class="br0">&#123;</span><span class="sy0">|</span>note<span class="sy0">|</span> 
	output <span class="sy0">&lt;&lt;</span> <span class="br0">&#123;</span><span class="st0">'orig'</span> <span class="sy0">=&gt;</span> note<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="st0">'title'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;fn#{counter}&quot;</span>, <span class="st0">'footnote'</span> <span class="sy0">=&gt;</span> note<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="br0">&#125;</span>
	counter <span class="sy0">+</span>= <span class="nu0">1</span>
<span class="br0">&#125;</span>
&nbsp;
o = <span class="br0">&#91;</span><span class="br0">&#93;</span>
output.<span class="me1">each_with_index</span> <span class="br0">&#123;</span> <span class="sy0">|</span>x,i<span class="sy0">|</span> 
	o.<span class="me1">push</span><span class="br0">&#40;</span><span class="st0">&quot;[^#{x['title']}]: #{x['footnote'].gsub(/<span class="es0">\n</span><span class="es0">\n</span>(<span class="es0">\s</span>*.)/,&quot;</span>\n\n\t\\<span class="nu0">1</span><span class="st0">&quot;)}&quot;</span><span class="br0">&#41;</span>
	input.<span class="kw3">gsub!</span><span class="br0">&#40;</span><span class="sy0">/</span>\<span class="br0">&#40;</span>\<span class="sy0">*</span><span class="co1">#{e_sh x['orig']}\*\)/m,&quot;[^#{x['title']}]&quot;)</span>
<span class="br0">&#125;</span>
<span class="kw3">puts</span> input.<span class="me1">strip</span> <span class="sy0">+</span> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>#{o.join(&quot;</span>\n\n<span class="st0">&quot;)}<span class="es0">\n</span>&quot;</span></pre></div></div>


<p>I’m in San Francisco for an AOL Tech code jam right now, so I don’t have a lot of time to thoroughly test this. Please let me know about any bugs that need fixing.</p>

<p>If you’re in San Francisco and like coffee or beer, hit me up <a href="http://twitter.com/ttscoff">on Twitter</a>. If you’re here for Macworld, then you’d better be at my <a href="http://www.macworldiworld.com/techtalks/thursday-overview/thursday-agenda/#903">“40 Tips in 40 Minutes”</a> talk with David Sparks and Merlin Mann on Thursday!</p>

<div class="download_desc"><p class="download-icon"><a href="http://brettterpstra.com/downloads/ConvertInlineFootnotesService1.21.zip?9d7bd4" title="Download Convert Inline Footnotes Service (107)"><img src="http://brettterpstra.com/wp-content/plugins/download-monitor/page-addon/thumbnail.gif?9d7bd4" alt="download image for Convert Inline Footnotes Service" width="64" /></a><br /><a href="http://brettterpstra.com/downloads/ConvertInlineFootnotesService1.21.zip?9d7bd4" title="Download Convert Inline Footnotes Service (107)" class="download-button">Download</a></p><p class="desc"><a href="http://brettterpstra.com/downloads/ConvertInlineFootnotesService1.21.zip?9d7bd4" title="Download Convert Inline Footnotes Service (107)">Convert Inline Footnotes Service</a> — Convert inline footnotes in ‘(*Footnote to be created*)‘ format to MultiMarkdown footnotes. <a href="http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline">More Info</a></p></div>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/unwrap-paragraphs-for-the-markdown-service-tools/' rel='bookmark' title='Unwrap Paragraphs for the Markdown Service Tools'>Unwrap Paragraphs for the Markdown Service Tools</a></li>
<li><a href='http://brettterpstra.com/a-better-os-x-system-service-for-evernote-notes-with-multimarkdown/' rel='bookmark' title='A better System Service for Evernote clipping — with MultiMarkdown'>A better System Service for Evernote clipping — with MultiMarkdown</a></li>
<li><a href='http://brettterpstra.com/natural-language-date-service-update/' rel='bookmark' title='Natural Language Date Service update'>Natural Language Date Service update</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline/">A Service for writing MultiMarkdown footnotes inline</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/a-service-for-writing-multimarkdown-footnotes-inline/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Scripting Readability and Markdownify for clipping web pages</title>
		<link>http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/</link>
		<comments>http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 15:07:28 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3524</guid>
		<description><![CDATA[<p>I wanted to share a handy tool that I realized I use daily but rarely talk about. I call it Read2Text, but it’s really just a Frankenstein script which combines Python Readability (license) with html2text (license). The combination allows you to grab web pages, process them with a port of Arc90’s Readability and convert the HTML to Markdown, ready for&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/">Scripting Readability and Markdownify for clipping web pages</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2012/01/read2textheader.jpg?9d7bd4" alt="read2text header image" title="read2text header" width="650" height="165" class="aligncenter size-full wp-image-3526" /></p>

<p>I wanted to share a handy tool that I realized I use daily but rarely talk about. I call it Read2Text, but it’s really just a Frankenstein script which combines <a href="https://github.com/gfxmonk/python-readability/blob/master/README">Python Readability</a> (<a href="http://www.apache.org/licenses/LICENSE-2.0">license</a>) with <a href="http://www.aaronsw.com/2002/html2text/">html2text</a> (<a href="https://github.com/aaronsw/html2text/blob/master/COPYING">license</a>). The combination allows you to grab web pages, process them with a port of <a href="http://lab.arc90.com/2009/03/02/readability/">Arc90’s Readability</a> and convert the HTML to Markdown, ready for pasting or piping to a text file.</p>

<p><a href="http://brettterpstra.com/project/nvalt/">nvALT</a> has this built in, but it’s been a little crashy lately. I find it more reliable to just do this from the command line. If you install it in your path (both the <code>read2text</code> script and the “readability” folder), you can run <code>read2text http://brettterpstra.com/keybinding-madness/ | pbcopy</code>.</p>

<p>You’ll get a Markdown-ified version of the page, with links, image links, headers, code blocks and text intact, but no comments, sidebars, ads, etc. It’s not perfect, but it does a solid job and cleanup only takes me a minute, even on huge sites. I use this most of the time instead of clipping to Evernote these days.</p>

<p>I alias it in my .bash_profile to <code>rtt</code>, and often redirect the output straight to a text file in my nvALT folder: <code>rtt http://grml.org/zsh/zsh-lovers.html &gt; ~/Dropbox/Notes/nvALT2.1/zsh\ lovers.md</code></p>

<p>Now I have a new note that automatically shows up in nvALT with the text of the zsh-lovers page (yeah, I tried switching to zsh this morning. I’ll have to come back to that). Anyway, I thought others might find this hack of use, so I’m making the download available below.</p>

<div class="download_desc"><p class="download-icon"><a href="http://brettterpstra.com/downloads/Read2Text1.zip?9d7bd4" title="Download Read2Text (384)"><img src="http://cdn2.brettterpstra.com/wp-content/uploads/downloads/thumbnails/2012/01/read2texticon.png?9d7bd4" alt="download image for Read2Text" width="64" /></a><br /><a href="http://brettterpstra.com/downloads/Read2Text1.zip?9d7bd4" title="Download Read2Text (384)" class="download-button">Download</a></p><p class="desc"><a href="http://brettterpstra.com/downloads/Read2Text1.zip?9d7bd4" title="Download Read2Text (384)">Read2Text</a> — A Frankenstinian combination of html2text and Python Readability. This command line tool makes clipping web pages into Markdown text without ads and comments simple. <a href="http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages">More Info</a></p></div>

<p>By the way, I also have <a href="http://markdownrules.com/">a web service</a> for this. You can get <a href="http://fuckyeahmarkdown.com/go/?u=http%3A%2F%2Fbrettterpstra.com%2Fscripting-readability-markdownify-for-clipping-web-pages%2F&amp;read=1">raw markdown</a> or a <a href="http://fuckyeahmarkdown.com/go/?read=1&amp;showframe=1&amp;u=http%3A%2F%2Fbrettterpstra.com%2Fscripting-readability-markdownify-for-clipping-web-pages%2F">nice interface</a> for previewing and copying. There’s also an API and bookmarklets for integration into your favorite browser. Have fun!</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/meet-marky-the-markdownifier/' rel='bookmark' title='Meet Marky, the Markdownifier'>Meet Marky, the Markdownifier</a></li>
<li><a href='http://brettterpstra.com/nvalt-1-0-8-progress/' rel='bookmark' title='nvALT 1.0.8 progress'>nvALT 1.0.8 progress</a></li>
<li><a href='http://brettterpstra.com/clippable/' rel='bookmark' title='Clippable'>Clippable</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/">Scripting Readability and Markdownify for clipping web pages</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Markdown QuickTags 0.8 for Christmas</title>
		<link>http://brettterpstra.com/markdown-quicktags-0-8-for-christmas/</link>
		<comments>http://brettterpstra.com/markdown-quicktags-0-8-for-christmas/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 21:38:28 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[mdqt]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3450</guid>
		<description><![CDATA[<p>We’re having a low-key holiday this year. I mean really low-key. Aditi’s napping on the couch, the dogs are all sleeping, the cats and the bird are lazily preening themselves and I just fixed Markdown QuickTags. Markdown QuickTags, my WordPress plugin which adds a massive number of Markdown-editing features to the built-in post/page editor had broken with the release of&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-quicktags-0-8-for-christmas/">Markdown QuickTags 0.8 for Christmas</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://cdn2.brettterpstra.com/wp-content/uploads/2011/12/mdqt0.8screenshot-full.jpg?9d7bd4"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-3452 shadow" title="Markdown QuickTags 0.8" src="http://cdn2.brettterpstra.com/wp-content/uploads/2011/12/mdqt0.8screenshot.jpg?9d7bd4" alt="Markdown QuickTags 0.8 Screenshot" width="300" height="227" /></a>We’re having a low-key holiday this year. I mean <em>really</em> low-key. Aditi’s napping on the couch, the dogs are all sleeping, the cats and the bird are lazily preening themselves and I just fixed Markdown QuickTags.</p>

<p><a href="http://wordpress.org/extend/plugins/markdown-quicktags/">Markdown QuickTags</a>, my WordPress plugin which adds a massive number of Markdown-editing features to the built-in post/page editor had broken with the release of WordPress 3.3. Basically, the <code>quicktags.js</code> file which generates the buttons in the HTML editor changed completely. For the better, of course, but that’s what Markdown QuickTags (hackishly) overrides to work its magic, and the change pulled the rug out from under the plugin. I had to rewrite a good portion of the JavaScript, and it took me a while just to figure out what was going on, but it’s back in action. I’m writing this post with it right now.</p>

<p>I added some new font options (served via Google Fonts), more size choices and a live editor preview from the settings page. I’m working on adding a few “themes” to the editor and making it a little more customizable, but it’s lower on my list than things like, <em>um,</em> working.</p>

<p>Eventually I’ll make a video of it in action, I think I’ve probably snuck in a few features that I’ve done a poor job of documenting, anyway. I revamped the look this time, too (much more <a href="http://bywordapp.com/">Byword</a>–esque) so a screenshot refresh is in order as well. But that’s for <em>after</em> Christmas.</p>

<p>Happy Holidays, hope you’re all having great times.</p>

<p>If you write in Markdown and use WordPress, you’d be insane not to try this out. Version 0.8 just became available <a href="http://wordpress.org/extend/plugins/markdown-quicktags/">in the WordPress Plugin Repository</a>.</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/markdown-quicktags-wordpress-plugin/' rel='bookmark' title='Markdown QuickTags: WordPress plugin for Markdown lovers'>Markdown QuickTags: WordPress plugin for Markdown lovers</a></li>
<li><a href='http://brettterpstra.com/markdown-quicktags-0-7/' rel='bookmark' title='Markdown QuickTags 0.7'>Markdown QuickTags 0.7</a></li>
<li><a href='http://brettterpstra.com/markdown-quicktags-makes-1000-people-happier-and-more-attractive/' rel='bookmark' title='Markdown QuickTags makes 1000 people happier and more attractive'>Markdown QuickTags makes 1000 people happier and more attractive</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/markdown-quicktags-0-8-for-christmas/">Markdown QuickTags 0.8 for Christmas</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/markdown-quicktags-0-8-for-christmas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Marked 1.3.2 in review</title>
		<link>http://brettterpstra.com/marked-1-3-2-in-review/</link>
		<comments>http://brettterpstra.com/marked-1-3-2-in-review/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 15:48:59 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[marked]]></category>
		<category><![CDATA[multimarkdown]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3399</guid>
		<description><![CDATA[<p>Marked v1.3.2 has been uploaded and is waiting for review. This release, despite being an incremental version number, has some exciting new features. Here’s a preview of the changelog: Fixed More careful when stripping javascript from the document More responsive to a wider range of files/locations (Lion-only) Moved TOC to toolbar button Increased file size limit, offers a warning on&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/marked-1-3-2-in-review/">Marked 1.3.2 in review</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://markedapp.com">Marked</a> v1.3.2 has been uploaded and is waiting for review. This release, despite being an incremental version number, has some exciting new features. Here’s a preview of the changelog:</p>

<p><strong>Fixed</strong></p>

<ul>
<li>More careful when stripping javascript from the document</li>
<li>More responsive to a wider range of files/locations (Lion-only)</li>
<li>Moved TOC to toolbar button</li>
<li>Increased file size limit, offers a warning on large files</li>
</ul>

<p><strong>New</strong></p>

<ul>
<li>Save/Copy as RTF</li>
<li>Word count for selection</li>
<li>Word repetition visualization</li>
<li>Readability Statistics</li>
<li>Keyboard navigation

<ul>
<li>help hud (press “h” in preview) for navigation keyboard shortcuts</li>
</ul></li>
<li>Option to disable SmartyPants typography extension</li>
<li>Updated multimarkdown executable to development version

<ul>
<li>Better handling of HTML5 elements</li>
<li>Fix for bold/emphasis handling in complex blocks</li>
</ul></li>
</ul>

<p>The new location of the Table of Contents avoids a lot of overlap concerns. When there are headers (h2-h6) in the document, a button will appear next to the gear menu (to the left) and clicking it will slide up a list of those headers. Clicking a header in the list will navigate the document to that header and temporarily highlight it.</p>

<p>The <strong>increased file size limit</strong> will allow massive text files to be loaded, presenting a warning about decreased performance one time.</p>

<p><strong>Save/Copy as RTF</strong> should be handy for people composing emails and other documents in Marked. It will maintain most aspects of the current custom style when creating the Rich Text version. The Copy as RTF has a little trouble with blockquotes right now, and I’m not sure I can do much about it, but beyond that it’s a quick way to get your preview into another document.</p>

<p><strong>Word count for selection</strong> is pretty darn nifty: when you make a selection with the mouse, a small popup at the mouse cursor location will tell you the word and character count for just the selected text.</p>

<p><strong>Word repetition visualization</strong> allows you to see words repeated by paragraph or across the entire document. You can click on a bolded (repeated) word and dim everything else so that it’s easy to see where the repetitions are located. It uses a stemming algorithm so that various forms of the same word are dectected, including plurals and conjugations.</p>

<p>The <strong>keyboard navigation</strong> is fairly extensive, with home-key controls for scrolling, the ability to use up to nine numeric bookmarks for rapid return, navigation by header and more. Pressing “h” in the preview will show all available shortcuts.</p>

<p>Fletcher Penney has been really great about providing some <strong>updates to the MultiMarkdown processor</strong> to handle a few edge cases. People who’ve experienced rendering anomolies should be quite satisfied!</p>

<p><strong>Readability statistics</strong> are experimental, but Marked attempts to provide a grade level and Fog Index for your document.</p>

<p>There are a few new options in Preferences to cover some more requests for control over the preview and rendering. I’ve also updated the help system and added a Markdown reference you can keep open while working.</p>

<p>It’s a big release with a little version number… I’ll update the <a href="http://markedapp.com">Marked website</a> and post here as soon as it’s approved. Special thanks to the beta testers and their great feedback on this version. Also, if you buy Marked now, all of these features will be yours for free when the update comes out!</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/marked-is-on-the-mac-app-store/' rel='bookmark' title='Marked is on the Mac App Store'>Marked is on the Mac App Store</a></li>
<li><a href='http://brettterpstra.com/marked-1-3-1-more-multimarkdown-goodies/' rel='bookmark' title='Marked 1.3.1, more MultiMarkdown goodies'>Marked 1.3.1, more MultiMarkdown goodies</a></li>
<li><a href='http://brettterpstra.com/the-second-marked-giveaway/' rel='bookmark' title='The second Marked giveaway!'>The second Marked giveaway!</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/marked-1-3-2-in-review/">Marked 1.3.2 in review</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/marked-1-3-2-in-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The second Marked giveaway!</title>
		<link>http://brettterpstra.com/the-second-marked-giveaway/</link>
		<comments>http://brettterpstra.com/the-second-marked-giveaway/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 14:00:55 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[giveaway]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[marked]]></category>
		<category><![CDATA[multimarkdown]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3255</guid>
		<description><![CDATA[<p>Following up on the 50% off Marked sale over the weekend, I’m putting three more Marked promo codes up for grabs. Marked is my own MultiMarkdown preview app which works with any text editor to provide an updated preview every time you save your file. There’s a new version of Marked on the horizon with a few new features, and&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/the-second-marked-giveaway/">The second Marked giveaway!</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2011/11/newmarkedlogo.png?9d7bd4" class="alignright" width="122" height="140" />Following up on the 50% off Marked sale over the weekend, I’m putting three more <a href="http://markedapp.com">Marked</a> promo codes up for grabs. Marked is my own MultiMarkdown preview app which works with any text editor to provide an updated preview every time you save your file.</p>

<p>There’s a new version of Marked on the horizon with a few new features, and one a little down the road with built-in support for <a href="http://brettterpstra.com/marked-scripts-nvalt-evernote-marsedit-scrivener/">more applications</a> (that aren’t necessarily straight text editors). Enter for a promo code (by leaving a comment on this post) and you’ll have a chance at a free copy ($3.99). In addition to a fine app, winners will, of course, get free updates as they come out. Winners will be drawn at random from the comments on this post at noon on Saturday, December 3rd. Good luck!</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/marked-1-3-drawing-winners/' rel='bookmark' title='Marked 1.3 drawing winners'>Marked 1.3 drawing winners</a></li>
<li><a href='http://brettterpstra.com/marked-1-3-released-plus-5-free-copies/' rel='bookmark' title='Marked 1.3 released, plus 5 free copies!'>Marked 1.3 released, plus 5 free copies!</a></li>
<li><a href='http://brettterpstra.com/marked-is-on-the-mac-app-store/' rel='bookmark' title='Marked is on the Mac App Store'>Marked is on the Mac App Store</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/the-second-marked-giveaway/">The second Marked giveaway!</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/the-second-marked-giveaway/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>Mac App Giveaway: Byword</title>
		<link>http://brettterpstra.com/mac-app-giveaway-byword/</link>
		<comments>http://brettterpstra.com/mac-app-giveaway-byword/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 14:00:10 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[giveaway]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mac app store]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3282</guid>
		<description><![CDATA[<p>I’m really excited to be putting this one up: Five promo codes for Byword for Mac. It’s US $9.99 on the App Store, but leave a comment on this post and have a chance to pick up a copy for free! I’ve mentioned Byword before, and it’s one of my favorite writing tools on my Mac. It has great tools&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/mac-app-giveaway-byword/">Mac App Giveaway: Byword</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2011/08/byword_icon_200.jpg?9d7bd4" class="alignright" />I’m really excited to be putting this one up: Five promo codes for <a href="http://bywordapp.com/">Byword</a> for Mac. It’s US $9.99 <a href="http://itunes.apple.com/us/app/byword/id420212497?mt=12">on the App Store</a>, but <a href="#leave-a-reply">leave a comment</a> on this post and have a chance to pick up a copy for free! I’ve <a href="http://brettterpstra.com/app-review-byword/">mentioned Byword before</a>, and it’s one of my favorite writing tools on my Mac. It has great tools for Markdown writers, too, and some very handy <a href="http://brettterpstra.com/byword-for-keyboard-nerds/">keyboard shortcuts</a>.</p>

<p>Leave a comment below to be entered in the drawing. The “robot” will be randomly selecting winners from the list on Friday, December 2nd at noon. The lucky winners will be notified by email (so use a valid address on your comment). Good luck, and be sure to check out all of the <a href="http://brettterpstra.com/tag/giveaway/">other great giveaways</a> running right now!</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/mac-app-giveaway-textexpander/' rel='bookmark' title='Mac App Giveaway: TextExpander'>Mac App Giveaway: TextExpander</a></li>
<li><a href='http://brettterpstra.com/mac-app-giveaway-pdfpen/' rel='bookmark' title='Mac App Giveaway: PDFpen'>Mac App Giveaway: PDFpen</a></li>
<li><a href='http://brettterpstra.com/app-review-byword/' rel='bookmark' title='App Review: Byword'>App Review: Byword</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/mac-app-giveaway-byword/">Mac App Giveaway: Byword</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/mac-app-giveaway-byword/feed/</wfw:commentRss>
		<slash:comments>135</slash:comments>
		</item>
		<item>
		<title>Mac App Giveaway: MultiMarkdown Composer</title>
		<link>http://brettterpstra.com/mac-app-giveaway-multimarkdown-composer/</link>
		<comments>http://brettterpstra.com/mac-app-giveaway-multimarkdown-composer/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 14:00:47 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[giveaway]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mac app store]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[multimarkdown]]></category>

		<guid isPermaLink="false">http://brettterpstra.com/?p=3290</guid>
		<description><![CDATA[<p>Continuing the very exciting Thanksgiving giveaways today I have five promo codes for Fletcher Penney’s MultiMarkdown Composer (reviewed here). It’s a text editor packed with features for editing Markdown and MultiMarkdown, including syntax highlighting, document header navigation, shortcuts for adding MultiMarkdown syntax and much more. The latest version in development includes some really exciting new features: A HUD panel shows&#8230;</p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/mac-app-giveaway-multimarkdown-composer/">Mac App Giveaway: MultiMarkdown Composer</a></p>]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn2.brettterpstra.com/wp-content/uploads/2011/11/MultiMarkdown-Composer_icon.jpg?9d7bd4" alt="MultiMarkdown Composer icon" title="MultiMarkdown Composer icon" width="250" height="250" class="alignright size-full wp-image-3292" />Continuing the very exciting Thanksgiving <a href="http://brettterpstra.com/tag/giveaway/">giveaways</a> today I have five promo codes for Fletcher Penney’s <a href="http://multimarkdown.com/">MultiMarkdown Composer</a> (<a href="http://brettterpstra.com/multimarkdown-composer-hits-the-app-store/">reviewed here</a>). It’s a text editor packed with features for editing Markdown and MultiMarkdown, including syntax highlighting, document header navigation, shortcuts for adding MultiMarkdown syntax and much more.</p>

<p>The latest version in development includes some really exciting new features:</p>

<ul>
<li>A HUD panel shows a list of labels that have been defined in your document that can be used when creating links, footnotes, citations, etc. This can be used to remind yourself of which label you used previously to define an element by reference. Another HUD panel shows word, paragraph, and character counts for your documents.</li>
<li>A group of new key commands for selecting and moving parts of your document around without using the mouse, as well as for creating and cleaning up lists automatically.</li>
<li>Composer now uses <a href="http://developer.apple.com/library/mac/#documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html">UTIs</a> to define which documents it can open/save. This will have several behind-the-scenes benefits when it comes to saving, opening, previewing, and indexing documents for Spotlight searches.</li>
<li>Significant improvements to responsiveness when working with long documents (e.g. using the ToC to scroll).</li>
<li>Improved support for <code>font-size</code> and <code>font-family</code> in stylesheets. These will help <a href="http://brettterpstra.com/a-few-themes-for-multimarkdown-composer/">my own themes</a> work more smoothly.</li>
<li>Plenty more!</li>
</ul>

<p>Picking up a license now gets you free access to all of the new features when they’re released. Comment below for a chance at one of the five licenses (<a href="http://itunes.apple.com/us/app/multimarkdown-composer/id473566589?ls=1&amp;mt=12">App Store</a> US $9.99). Winners will be drawn at random (by the Giveaway Robot) on <strong>Thursday, December 1st at noon.</strong></p>

<p>Notification is via email, so be sure to use a valid address. It’s also helpful to use a unique name (first and last preferred, but anything to help avoid duplicates) so announcements of the winners don’t get the <em>other</em> “Rob” or “Jim” all excited, only to be disappointed when they figure out it wasn’t them.</p>

<p>There are still a few more (very exciting) giveaways coming up over the next couple of days, so keep checking back. There’s no rule against entering for all of them (once each, please, or the robot gets angry. You don’t want to see him angry), so keep at it!</p>
<p>Related posts:<ol>
<li><a href='http://brettterpstra.com/mac-app-giveaway-pdfpen/' rel='bookmark' title='Mac App Giveaway: PDFpen'>Mac App Giveaway: PDFpen</a></li>
<li><a href='http://brettterpstra.com/marked-is-on-the-mac-app-store/' rel='bookmark' title='Marked is on the Mac App Store'>Marked is on the Mac App Store</a></li>
<li><a href='http://brettterpstra.com/break-up-your-text-documents/' rel='bookmark' title='Break up your text documents'>Break up your text documents</a></li>
</ol></p><p>Originally posted on <a href="http://brettterpstra.com" title="BrettTerpstra.com">BrettTerpstra.com</a> at <a href="http://brettterpstra.com/mac-app-giveaway-multimarkdown-composer/">Mac App Giveaway: MultiMarkdown Composer</a></p>]]></content:encoded>
			<wfw:commentRss>http://brettterpstra.com/mac-app-giveaway-multimarkdown-composer/feed/</wfw:commentRss>
		<slash:comments>95</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using disk: enhanced
Database Caching 35/163 queries in 0.814 seconds using xcache
Object Caching 4341/4482 objects using xcache
Content Delivery Network via cdn2.brettterpstra.com

Served from: brettterpstra.com @ 2012-05-23 03:33:18 -->
