import sys
import re
# on Python 3.5
'''
v0.6 Jun. 22, 2018
- conv_super_pre_notation() handles [vhdl]
- conv_super_pre_notation() handles [verilog]
v0.5 May, 29, 2018
- add conv_tex()
v0.4 Apr. 25, 2018
- add conv_tableFormat()
v0.3 Apr. 25, 2018
- conv_super_pre_notation() takes cpp notation
v0.2 Apr. 25, 2018
- add conv_super_pre_notation()
- add conv_sublist()
v0.1 Apr. 24, 2018
- sub list is converted to Markdown style
'''
def conv_tex( intxt) :
if r"[Tex:" in intxt or r"[tex:" in intxt:
wrk = re .sub ( '\[ Tex:' , r'```math\r \n ' , intxt)
wrk = re .sub ( '\[ tex:' , r'```math\r \n ' , wrk)
wrk = re .sub ( r']' , r'\r \n ```' , wrk)
return wrk
return intxt
def conv_sublist( astr) :
if "---" in astr:
astr = astr.replace ( "---" , SPACE4 + SPACE4 + "-" )
if "--" in astr:
astr = astr.replace ( "--" , SPACE4 + "-" )
return astr
def conv_super_pre_notation( astr) :
astr = astr.replace ( ">||" , "```" )
astr = astr.replace ( ">|cpp|" , "```cpp" )
astr = astr.replace ( ">|c|" , "```c" )
astr = astr.replace ( "||<" , "```" )
astr = astr.replace ( ">|verilog|" , "```verilog" )
astr = astr.replace ( ">|vhdl|" , "```vhdl" )
return astr
def getTableFormat( numVertical) :
wrk = "|"
for loop in range ( numVertical - 1 ) : # -1: except for first
wrk += ":-:|"
return wrk
def conv_tableFormat( astr) :
global countTbl
if "|" in astr:
countTbl += 1
if countTbl == 2 :
num = astr.count ( '|' )
fmt = getTableFormat( num)
return fmt + "\r \n " + astr
else :
countTbl = 0
return astr
# read from stdin
lines = sys .stdin .readlines ( )
SPACE4 = " "
countTbl = 0 # Table format counter
for elem in lines:
wrk = conv_sublist( elem)
wrk = conv_super_pre_notation( wrk)
wrk = conv_tableFormat( wrk)
wrk = conv_tex( wrk)
print ( wrk, end= '' )
aW1wb3J0IHN5cwppbXBvcnQgcmUKCiMgb24gUHl0aG9uIDMuNQoKJycnCnYwLjYgSnVuLiAyMiwgMjAxOAogICAtIGNvbnZfc3VwZXJfcHJlX25vdGF0aW9uKCkgaGFuZGxlcyBbdmhkbF0KICAgLSBjb252X3N1cGVyX3ByZV9ub3RhdGlvbigpIGhhbmRsZXMgW3Zlcmlsb2ddCnYwLjUgTWF5LCAyOSwgMjAxOAogICAtIGFkZCBjb252X3RleCgpCnYwLjQgQXByLiAyNSwgMjAxOAogICAtIGFkZCBjb252X3RhYmxlRm9ybWF0KCkKdjAuMyBBcHIuIDI1LCAyMDE4CiAgIC0gY29udl9zdXBlcl9wcmVfbm90YXRpb24oKSB0YWtlcyBjcHAgbm90YXRpb24KdjAuMiBBcHIuIDI1LCAyMDE4CiAgIC0gYWRkIGNvbnZfc3VwZXJfcHJlX25vdGF0aW9uKCkKICAgLSBhZGQgY29udl9zdWJsaXN0KCkKdjAuMSBBcHIuIDI0LCAyMDE4CiAgIC0gc3ViIGxpc3QgaXMgY29udmVydGVkIHRvIE1hcmtkb3duIHN0eWxlCicnJwoKCmRlZiBjb252X3RleChpbnR4dCk6CiAgICBpZiByIltUZXg6IiBpbiBpbnR4dCBvciByIlt0ZXg6IiBpbiBpbnR4dDoKICAgICAgICB3cmsgPSByZS5zdWIoJ1xbVGV4OicsIHInYGBgbWF0aFxyXG4nLCBpbnR4dCkKICAgICAgICB3cmsgPSByZS5zdWIoJ1xbdGV4OicsIHInYGBgbWF0aFxyXG4nLCB3cmspCiAgICAgICAgd3JrID0gcmUuc3ViKHInXScsIHInXHJcbmBgYCcsIHdyaykKICAgICAgIAlyZXR1cm4gd3JrCiAgICByZXR1cm4gaW50eHQKCgpkZWYgY29udl9zdWJsaXN0KGFzdHIpOgogICAgaWYgIi0tLSIgaW4gYXN0cjoKICAgICAgICBhc3RyID0gYXN0ci5yZXBsYWNlKCItLS0iLCBTUEFDRTQgKyBTUEFDRTQgKyAiLSIpCiAgICBpZiAiLS0iIGluIGFzdHI6CiAgICAgICAgYXN0ciA9IGFzdHIucmVwbGFjZSgiLS0iLCBTUEFDRTQgKyAiLSIpCiAgICByZXR1cm4gYXN0cgoKCmRlZiBjb252X3N1cGVyX3ByZV9ub3RhdGlvbihhc3RyKToKICAgIGFzdHIgPSBhc3RyLnJlcGxhY2UoIj58fCIsICJgYGAiKQogICAgYXN0ciA9IGFzdHIucmVwbGFjZSgiPnxjcHB8IiwgImBgYGNwcCIpCiAgICBhc3RyID0gYXN0ci5yZXBsYWNlKCI+fGN8IiwgImBgYGMiKQogICAgYXN0ciA9IGFzdHIucmVwbGFjZSgifHw8IiwgImBgYCIpCiAgICBhc3RyID0gYXN0ci5yZXBsYWNlKCI+fHZlcmlsb2d8IiwgImBgYHZlcmlsb2ciKQogICAgYXN0ciA9IGFzdHIucmVwbGFjZSgiPnx2aGRsfCIsICJgYGB2aGRsIikKICAgIHJldHVybiBhc3RyCgoKZGVmIGdldFRhYmxlRm9ybWF0KG51bVZlcnRpY2FsKToKICAgIHdyayA9ICJ8IgogICAgZm9yIGxvb3AgaW4gcmFuZ2UobnVtVmVydGljYWwgLSAxKTogICAjIC0xOiBleGNlcHQgZm9yIGZpcnN0CiAgICAgICB3cmsgKz0gIjotOnwiCiAgICByZXR1cm4gd3JrCgoKZGVmIGNvbnZfdGFibGVGb3JtYXQoYXN0cik6CiAgICBnbG9iYWwgY291bnRUYmwKICAgIGlmICJ8IiBpbiBhc3RyOgogICAgICAgIGNvdW50VGJsICs9IDEKICAgICAgICBpZiBjb3VudFRibCA9PSAyOgogICAgICAgICAgICBudW0gPSBhc3RyLmNvdW50KCd8JykKICAgICAgICAgICAgZm10ID0gZ2V0VGFibGVGb3JtYXQobnVtKQogICAgICAgICAgICByZXR1cm4gZm10ICsgIlxyXG4iICsgYXN0cgogICAgZWxzZToKICAgICAgICBjb3VudFRibCA9IDAKICAgIHJldHVybiBhc3RyCiAgICAKIyByZWFkIGZyb20gc3RkaW4KbGluZXMgPSBzeXMuc3RkaW4ucmVhZGxpbmVzKCkKClNQQUNFNCA9ICIgICAgIgoKY291bnRUYmwgPSAwICAjIFRhYmxlIGZvcm1hdCBjb3VudGVyCmZvciBlbGVtIGluIGxpbmVzOgogICAgd3JrID0gY29udl9zdWJsaXN0KGVsZW0pCiAgICB3cmsgPSBjb252X3N1cGVyX3ByZV9ub3RhdGlvbih3cmspCiAgICB3cmsgPSBjb252X3RhYmxlRm9ybWF0KHdyaykKICAgIHdyayA9IGNvbnZfdGV4KHdyaykKICAgIHByaW50KHdyaywgZW5kPScnKQo=
stdin
fEF8QnxDfAp8QXxCfEN8CnxBfEJ8Q3wK44OG44K544OICnxBfEJ8Q3wKfEF8QnxDfAp8QXxCfEN8CgotIEEKLS0gQgotLS0gQwoKJmd0O3xjcHB8Ci8vIHNvbWUgY3BwIHByb2dyYW0KfHwmbHQ7CgpbVGV4OlpfYyA9IFxmcmFjezF9ezIgXHBpIGYgQ31dCgpbdGV4OlpfYyA9IFxmcmFjezF9e1xvbWVnYSBDfV0KCltbW0FBQV1dXQ==
|A|B|C|
|A|B|C|
|A|B|C|
テスト
|A|B|C|
|A|B|C|
|A|B|C|
- A
-- B
--- C
>|cpp|
// some cpp program
||<
[Tex:Z_c = \frac{1}{2 \pi f C}]
[tex:Z_c = \frac{1}{\omega C}]
[[[AAA]]]