Skip to content
This repository has been archived by the owner on Sep 24, 2022. It is now read-only.

Commit

Permalink
Update misaka script.
Browse files Browse the repository at this point in the history
  • Loading branch information
FSX committed Oct 4, 2015
1 parent 157e569 commit 7a7740b
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 34 deletions.
2 changes: 1 addition & 1 deletion misaka/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def _args_to_int(mapping, argument):
deprecation('passing extensions and flags as constants is deprecated')
return argument
elif isinstance(argument, (tuple, list)):
return reduce(op.or_, [mapping[n] for n in argument if n in mapping])
return reduce(op.or_, [mapping[n] for n in argument if n in mapping], 0)

raise TypeError('argument must be a list of strings or an int')

Expand Down
74 changes: 41 additions & 33 deletions scripts/misaka
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,29 @@ from os import path
from misaka import *


extensions = {
'--ext-tables': EXT_TABLES,
'--ext-fenced-code': EXT_FENCED_CODE,
'--ext-footnotes': EXT_FOOTNOTES,
'--ext-autolink': EXT_AUTOLINK,
'--ext-strikethrough': EXT_STRIKETHROUGH,
'--ext-underline': EXT_UNDERLINE,
'--ext-highlight': EXT_HIGHLIGHT,
'--ext-quote': EXT_QUOTE,
'--ext-superscript': EXT_SUPERSCRIPT,
'--ext-math': EXT_MATH,
'--ext-no-intra-emphasis': EXT_NO_INTRA_EMPHASIS,
'--ext-space-headers': EXT_SPACE_HEADERS,
'--ext-math-explicit': EXT_MATH_EXPLICIT,
'--ext-disable-indented-code': EXT_DISABLE_INDENTED_CODE
}

html_flags = {
'--html-skip-html': HTML_SKIP_HTML,
'--html-escape': HTML_ESCAPE,
'--html-hard-wrap': HTML_HARD_WRAP,
'--html-use-xhtml': HTML_USE_XHTML
}
extensions = (
'tables',
'fenced-code',
'footnotes',
'autolink',
'strikethrough',
'underline',
'highlight',
'quote',
'superscript',
'math',
'no-intra-emphasis',
'space-headers',
'math-explicit',
'disable-indented-code',
)

html_flags = (
'skip-html',
'escape',
'hard-wrap',
'use-xhtml',
)


help = '''\
Expand All @@ -44,16 +44,16 @@ Other options:
--smartypants
-h | --help
'''.format(
'\n'.join([' ' + a for a in extensions]),
'\n'.join([' ' + a for a in html_flags]))
'\n'.join([' --ext-' + a for a in extensions]),
'\n'.join([' --html-' + a for a in html_flags]))


if __name__ == '__main__':
args = sys.argv[1:]

files = []
flags = 0
ext = 0
flags = []
extensions = []
pants_enabled = False

for arg in args:
Expand All @@ -62,20 +62,28 @@ if __name__ == '__main__':
sys.exit(0)
elif arg == '--smartypants':
pants_enabled = True
elif arg in html_flags:
flags |= html_flags[arg]
elif arg in extensions:
ext |= extensions[arg]
elif arg.startswith('--ext'):
arg = arg[5:]
if not arg[5:] in extensions:
print('--ext-{} is not a valid Markdown extension'.format(arg))
sys.exit(1)
extensions.append(arg)
elif arg.startswith('--html'):
arg = arg[6:]
if not arg[6:] in extensions:
print('--html-{} is not a valid HTML render flag'.format(arg))
sys.exit(1)
extensions.append(arg)
else:
# If it's not a extension or HTML flag,
# then it must be a file, right?
files.append(arg)

renderer = HtmlRenderer(flags)
if pants_enabled:
to_html = lambda n: smartypants(Markdown(renderer, ext).render(n))
to_html = lambda n: smartypants(Markdown(renderer, extensions)(n))
else:
to_html = Markdown(renderer, ext).render
to_html = Markdown(renderer, extensions)

if files:
for fn in files:
Expand Down

0 comments on commit 7a7740b

Please sign in to comment.