Using Python-Markdown on the Command Line
=========================================

While Python-Markdown is primarily a python library, a command line script is 
included as well. While there are many other command line implementations 
of Markdown, you may not have them installed, or you may prefer to use 
Python-Markdown's various extensions.

Setup
-----

Generally, you may simply call the ``markdown`` file from the command 
line. However, if you have fully installed Markdown (``setup.py install`` or 
``easy_install``), then the ``markdown`` script will have been copied to
you Python "Scripts" directory. Different systems require different methods to
ensure that any files in the Python "Scripts" directory are on your system 
path.

* **Windows**:

    Assuming a default install on Windows, your "Scripts" directory is most
    likely something like ``C:\\Python25\Scripts``. Verify the location of
    your "Scripts" directory and add it to you system path.

    Calling ``markdown`` from th ecommand line will call the wrapper batch file
    ``markdown.bat`` in the "Scripts" directory created during install.

* **Linux**:

    As each Linux distribution is different and we can't possibly document all 
    of them here, we'll provide a few helpful pointers:

    * Some systems will automatically install the script on your path. Try it 
      and see if it works. Just run ``markdown`` from the command line.

    * Other systems may maintain a separate "Scripts" directory which you
      need to add to your path. Find it (check with your distribution) and
      either add it to your path or make a symbolic link to it from your path.

    * If you are sure ``markdown`` is on your path, but it still isn't being
      found, check the permissions of the file and make sure it is executable.

    As an alternative, you could just ``cd`` into the directory which contains
    the source distribution, and run it from there. However, remember that your
    markdown text files will not likely be in that directory, so it is much more 
    convenient to have ``markdown`` on your path.

The Basics
----------

To use ``markdown`` from the command line, run it as 

    $ markdown input_file.txt

or 

    $ markdown input_file.txt > output_file.html

More Options
------------

If you are using Python 2.3 or higher, you can also use advanced
command line options to specify encoding or to run extensions.

    $ markdown --help
    Usage: markdown INPUTFILE [options]

    Options:
      -h, --help            show this help message and exit
      -f OUTPUT_FILE, --file=OUTPUT_FILE
                            write output to OUTPUT_FILE
      -e ENCODING, --encoding=ENCODING
                            encoding for input and output files
      -q, --quiet           suppress all messages
      -v, --verbose         print info messages
      -s SAFE_MODE, --safe=SAFE_MODE
                            safe mode ('replace', 'remove' or 'escape'  user's
                            HTML tag)
      -o OUTPUT_FORMAT, --output_format=OUTPUT_FORMAT
                            Format of output. One of 'xhtml1' (default) or
                            'html4'.
      --noisy               print debug messages
      -x EXTENSION, --extension=EXTENSION
                            load extension EXTENSION

Using Extensions
----------------

For an extension to be ran this way it must be provided in a module
which should be in your python path (see [[writing_extensions]] for details). 
It can then be invoked by the name of that module:

    $ markdown -x footnotes text_with_footnotes.txt > output.html

If the extension supports config options, you can pass them in as well:

    $ markdown -x "footnotes(PLACE_MARKER=~~~~~~~~)" input.txt