#!/usr/bin/env python3 LICENSE = """ """ BaseHTML = """ {LICENSE} {TITLE}
{INFO}
{BOARDS} """ BoardHTML = """
{TITLE}
{CONTENT}
""" # TODO: Just make it work with any heading by itself.. smh MainHeading = 'h3' from markdown import Markdown def SplitPop(String, Key): List = String.split(Key) for s in range(len(List)-1): if not List[s]: List.pop(s) return List def GetData(): 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): Boards = SplitPop(Data, '<{}>'.format(MainHeading)) #if not Boards[0]: # Boards.pop(0) #print(Boards) for b in range(len(Boards)): #print(Boards[b]) #Boards += ['

' + b] #Boards.pop(0) Boards[b] = '<{}>'.format(MainHeading) + Boards[b] #print(Boards) return Boards def GenBoard(Data): Elements = SplitPop( SplitPop( Data, '<{}>'.format(MainHeading))[0], ''.format(MainHeading)) Board = BoardHTML.format( TITLE=Elements[0], CONTENT=Elements[1] ) return Board def WriteHTML(Info, Boards): Path = 'WebPinBoard.html' HTMLBoards = '' for b in Boards: HTMLBoards += GenBoard(b) #print(Info) print(HTMLBoards) Title = SplitPop( SplitPop( Info, '<{}>'.format(MainHeading))[0], ''.format(MainHeading))[0] try: with open(Path, 'w') as f: f.write( BaseHTML.format( LICENSE=LICENSE, TITLE=Title, INFO=Info, BOARDS=HTMLBoards)) #BODY=BoardHTML.format( # TITLE="", # CONTENT="" #))) return True except Exception: raise print("Can't load {} file for writing. Exiting.".format(Path)) exit(1) def Main(): Data = GetData() Boards = GetBoards(Data) #print(Data) print(Boards) Info = Boards[0] Boards.pop(0) print(Info) print(Boards) WriteHTML(Info, Boards) if __name__ == '__main__': Main()