-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
2,663 additions
and
1,808 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
""" | ||
COMMAND-LINE SPECIFIC STUFF | ||
============================================================================= | ||
""" | ||
|
||
import markdown | ||
import sys | ||
import optparse | ||
|
||
import logging | ||
from logging import DEBUG, INFO, CRITICAL | ||
|
||
logger = logging.getLogger('MARKDOWN') | ||
|
||
def parse_options(): | ||
""" | ||
Define and parse `optparse` options for command-line usage. | ||
""" | ||
usage = """%prog [options] [INPUTFILE] | ||
(STDIN is assumed if no INPUTFILE is given)""" | ||
desc = "A Python implementation of John Gruber's Markdown. " \ | ||
"http://packages.python.org/Markdown/" | ||
ver = "%%prog %s" % markdown.version | ||
|
||
parser = optparse.OptionParser(usage=usage, description=desc, version=ver) | ||
parser.add_option("-f", "--file", dest="filename", default=None, | ||
help="Write output to OUTPUT_FILE. Defaults to STDOUT.", | ||
metavar="OUTPUT_FILE") | ||
parser.add_option("-e", "--encoding", dest="encoding", | ||
help="Encoding for input and output files.",) | ||
parser.add_option("-q", "--quiet", default = CRITICAL, | ||
action="store_const", const=CRITICAL+10, dest="verbose", | ||
help="Suppress all warnings.") | ||
parser.add_option("-v", "--verbose", | ||
action="store_const", const=INFO, dest="verbose", | ||
help="Print all warnings.") | ||
parser.add_option("-s", "--safe", dest="safe", default=False, | ||
metavar="SAFE_MODE", | ||
help="'replace', 'remove' or 'escape' HTML tags in input") | ||
parser.add_option("-o", "--output_format", dest="output_format", | ||
default='xhtml1', metavar="OUTPUT_FORMAT", | ||
help="'xhtml1' (default), 'html4' or 'html5'.") | ||
parser.add_option("--noisy", | ||
action="store_const", const=DEBUG, dest="verbose", | ||
help="Print debug messages.") | ||
parser.add_option("-x", "--extension", action="append", dest="extensions", | ||
help = "Load extension EXTENSION.", metavar="EXTENSION") | ||
parser.add_option("-n", "--no_lazy_ol", dest="lazy_ol", | ||
action='store_false', default=True, | ||
help="Observe number of first item of ordered lists.") | ||
|
||
(options, args) = parser.parse_args() | ||
|
||
if len(args) == 0: | ||
input_file = None | ||
else: | ||
input_file = args[0] | ||
|
||
if not options.extensions: | ||
options.extensions = [] | ||
|
||
return {'input': input_file, | ||
'output': options.filename, | ||
'safe_mode': options.safe, | ||
'extensions': options.extensions, | ||
'encoding': options.encoding, | ||
'output_format': options.output_format, | ||
'lazy_ol': options.lazy_ol}, options.verbose | ||
|
||
def run(): | ||
"""Run Markdown from the command line.""" | ||
|
||
# Parse options and adjust logging level if necessary | ||
options, logging_level = parse_options() | ||
if not options: sys.exit(2) | ||
logger.setLevel(logging_level) | ||
logger.addHandler(logging.StreamHandler()) | ||
|
||
# Run | ||
markdown.markdownFromFile(**options) | ||
|
||
if __name__ == '__main__': | ||
# Support running module as a commandline command. | ||
# Python 2.5 & 2.6 do: `python -m markdown.__main__ [options] [args]`. | ||
# Python 2.7 & 3.x do: `python -m markdown [options] [args]`. | ||
run() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# | ||
# markdown/__version__.py | ||
# | ||
# version_info should conform to PEP 386 | ||
# (major, minor, micro, alpha/beta/rc/final, #) | ||
# (1, 1, 2, 'alpha', 0) => "1.1.2.dev" | ||
# (1, 2, 0, 'beta', 2) => "1.2b2" | ||
version_info = (2, 3, 1, 'final', 0) | ||
|
||
def _get_version(): | ||
" Returns a PEP 386-compliant version number from version_info. " | ||
assert len(version_info) == 5 | ||
assert version_info[3] in ('alpha', 'beta', 'rc', 'final') | ||
|
||
parts = 2 if version_info[2] == 0 else 3 | ||
main = '.'.join(map(str, version_info[:parts])) | ||
|
||
sub = '' | ||
if version_info[3] == 'alpha' and version_info[4] == 0: | ||
# TODO: maybe append some sort of git info here?? | ||
sub = '.dev' | ||
elif version_info[3] != 'final': | ||
mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'} | ||
sub = mapping[version_info[3]] + str(version_info[4]) | ||
|
||
return str(main + sub) | ||
|
||
version = _get_version() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.