#!/usr/bin/env python3
LICENSE = """
"""
BaseHTML = """
{LICENSE}
{TITLE}
{INFO}
{BOARDS}
"""
InfoHTML = """
"""
BoardHTML = """
"""
from markdown import Markdown
"""
MainHeading = ''
def SetMainHeading(HTML):
global MainHeading
MainHeading = 'h' + HTML.split('')[0]
"""
def SplitPop(String, Key):
List = String.split(Key)
for i,s in enumerate(List):
if not s:
List.pop(i)
return List
def GetHeading(HTML):
return 'h' + HTML.split('')[0]
def GetDataHTML():
Path = 'Data.md'
try:
with open(Path, 'r') as f:
return Markdown().convert(f.read()).replace('\n','')
except Exception:
print("Can't load {} file for reading. Exiting.".format(Path))
exit(1)
def GetBoards(Data):
print(Data)
Boards = SplitPop(Data, ''.format(GetHeading(Data)))
print(Boards)
for i,b in enumerate(Boards):
Boards[i] = ''.format(GetHeading(Data)) + b
return Boards
def GetBoardParams(Title):
if Title.endswith(':Closed'):
Checkbox = 'checked'
Title = Title[:-len(':Closed')-1]
else:
Checkbox = ''
return (Title, Checkbox)
def GenBoard(Data, Template):
Heading = GetHeading(Data)
print(Heading)
Elements = SplitPop(
SplitPop(
Data,
'<{}>'.format(Heading))[0],
'{}>'.format(Heading))
Title, Checkbox = GetBoardParams(Elements[0])
Board = Template.format(
H=Heading,
TITLE=Title,
CHECKBOX=Checkbox,
CONTENT=Elements[1]
)
return Board
def WriteHTML(Info, Boards):
Path = 'index.html'
InfoBoard = GenBoard(Info, InfoHTML)
HTMLBoards = ''
for b in Boards:
HTMLBoards += GenBoard(b, BoardHTML)
Heading = GetHeading(Info)
Title = SplitPop(
SplitPop(
Info,
'<{}>'.format(Heading))[0],
'{}>'.format(Heading))[0]
Title, Checkbox = GetBoardParams(Title)
try:
with open(Path, 'w') as f:
f.write(
BaseHTML.format(
LICENSE=LICENSE,
TITLE=Title,
CHECKBOX=Checkbox,
INFO=InfoBoard,
BOARDS=HTMLBoards))
return True
except Exception:
raise
print("Can't load {} file for writing. Exiting.".format(Path))
exit(1)
def Main():
Data = GetDataHTML()
# SetMainHeading(Data)
Boards = GetBoards(Data)
Info = Boards[0]
Boards.pop(0)
WriteHTML(Info, Boards)
if __name__ == '__main__':
Main()