PK egN submark/__init__.py"""
A Subset of Markdown
Use it like this:
submark something.md > something.html
or:
cat something.html | submark > something.html
or:
$ echo '**hi**' | submark
hi
"""
__version__ = "0.7"
from .submark import convert # noqa
from .cli import main # noqa
PK 'Nov v submark/cli.py"""
"""
from .submark import convert_list
import fileinput
def main():
print(convert_list(fileinput.input()))
PK nN%'N N submark/submark.py"""
"""
import re
def headers(line):
line = re.sub(r"^# (.*)", r"
\1
", line)
line = re.sub(r"^## (.*)", r" \1
", line)
line = re.sub(r"^### (.*)", r" \1
", line)
line = re.sub(r"^#### (.*)", r" \1
", line)
line = re.sub(r"^##### (.*)", r" \1
", line)
return line
def strong(line):
line = re.sub(r"\*\*(.*)\*\*", r"\1", line)
line = re.sub(r"__(.*)__", r"\1", line)
return line
def em(line):
line = re.sub(r"\*(.*)\*", r"\1", line)
line = re.sub(r"_(.*)_", r"\1", line)
return line
def link(line):
line = re.sub(r'\[(.+)\]\(([^ ]+) (".+")\)',
r'\1',
line)
line = re.sub(r'\[(.+)\]\(([^ ]+)\)',
r'\1',
line)
return line
def image(line):
# example: r' "title")',
# out: r'
',
line = re.sub(r'!\[(.+)\]\(([^ ]+) "(.+)"\)',
r'
',
line)
return line
def code_span(line):
# example: this is `some code`
# out: this is some code
line = re.sub(r'`([^`]+)`', r'\1', line)
return line
def horizontal_rule(line):
# example: ---
# out:
line = re.sub(r'^---+ *$', r'
', line)
return line
def line_break(line):
# example: some text
# out: some text
line = re.sub(r'\s\s$', r'
', line)
return line
def convert_line(line):
line = line.rstrip('\n')
line = headers(line)
line = strong(line)
line = em(line)
line = image(line)
line = link(line)
line = code_span(line)
line = horizontal_rule(line)
line = line_break(line)
return line
def convert_list(lines):
converted_list = [convert_line(l) for l in lines]
return "\n".join(converted_list)
def convert(some_string):
return convert_list(some_string.split("\n"))
PK !Hu$ ( &