Your comments

The good thing is Multimarkdown Composer 2 and Marked both handle the TOC issue with --- and === markers. I know, Marked is just a viewer but the best IMHO. 

I use Marked even with Multimarkdown Composer (I'm working with beta 2 version right now). Like reading Brett's blog but find myself tying out too many markdown apps ;-).  IMHO for iPhone - Textastic and Byword are the best, for Mac combination of Marked with Byword and/or Multimarkdown Composer and now Textastic.  Byword is good until the file gets long and without navigation to #...# headers it becomes painful but it sync's very nicely using iCloud (or Dropbox).

Yes, dragging the icon works even for files that are saved to iCloud.  

Here are quick fixes.  Fix one is very simple and I use it for Mou.  This works if you substitute Textastic for Mou.

#!/usr/bin/env bash
# Open Mou markdown editing application.
open -a Mou "$@"
and more complex that looks at options and where app is installed.  This is 'mvim' for macvim.  Also looks at name so other names can be symlinked to this shell script, like 'vimdiff'.

# This shell script passes all its arguments to the binary inside the
# application bundle.  If you make links to this script as view,
# gvim, etc., then it will peek at the name used to call it and set options
# appropriately.
# Based on a script by Wout Mertens and suggestions from Laurent Bihanic.  This
# version is the fault of Benji Fisher, 16 May 2005 (with modifications by Nico
# Weber and Bjorn Winckler, Aug 13 2007).
# First, check "All the Usual Suspects" for the location of the bundle.
# You can short-circuit this by setting the VIM_APP_DIR environment variable
# or by un-commenting and editing the following line:
# VIM_APP_DIR=/Applications
if [ -z "$VIM_APP_DIR" ]
myDir="`dirname "$0"`"
for i in ~/Applications ~/Applications/vim $myDir $myDir/vim $myAppDir $myAppDir/vim /Applications /Applications/vim /Applications/Utilities /Applications/Utilities/vim; do
if [ -x "$i/" ]; then
if [ -z "$VIM_APP_DIR" ]
echo "Sorry, cannot find  Try setting the VIM_APP_DIR environment variable to the directory containing"
exit 1
# Next, peek at the name used to invoke this script, and set options
# accordingly.
name="`basename "$0"`"
# GUI mode, implies forking
case "$name" in m*|g*|rm*|rg*) gui=true ;; esac
# Restricted mode
case "$name" in r*) opts="$opts -Z";; esac
# vimdiff, view, and ex mode
case "$name" in
opts="$opts -dO"
opts="$opts -R"
opts="$opts -e"
# Last step:  fire up vim.
# The program should fork by default when started in GUI mode, but it does
# not; we work around this when this script is invoked as "gvim" or "rgview"
# etc., but not when it is invoked as "vim -g".
if [ "$gui" ]; then
# Note: this isn't perfect, because any error output goes to the
# terminal instead of the console log.
# But if you use open instead, you will need to fully qualify the
# path names for any filenames you specify, which is hard.
exec "$binary" -g $opts ${1:+"$@"}
exec "$binary" $opts ${1:+"$@"}
For 'mark' (which starts up Marked) I have a link to executable file.  This requires the developer to install this in the app.

mark -> /Applications/