Added basic css and theme support
This commit is contained in:
parent
a46ca2bdb6
commit
fb7b0d727d
4
TODO
4
TODO
|
@ -2,7 +2,7 @@ Multiple template files
|
|||
Nice HTML tabs
|
||||
Don't hard-code timezone
|
||||
Build system
|
||||
Take input file as a command-line arguement
|
||||
Take input file as a command-line arguement, search multiple places for theme
|
||||
title, template, markdown
|
||||
Figure out licencing
|
||||
Try to replace beautifulsoup
|
||||
#Try to replace beautifulsoup
|
|
@ -0,0 +1,43 @@
|
|||
/* CSS stolen from https://www.alm.website with permission */
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
background-color: #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: monospace;
|
||||
background-color: #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
margin: auto;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: solid 1px black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
th, td {
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
/*nav {
|
||||
speak: always;
|
||||
}*/
|
|
@ -0,0 +1,28 @@
|
|||
/* Stolen from www.alm.website with permission */
|
||||
|
||||
nav {
|
||||
display: flow;
|
||||
border: solid 2px black;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
nav li {
|
||||
list-style: none;
|
||||
border: solid 1px black;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
nav h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
nav strong {
|
||||
font-family: serif;
|
||||
font-size: x-large;
|
||||
}
|
16
header.py
16
header.py
|
@ -1,20 +1,23 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import datetime
|
||||
import theme
|
||||
|
||||
|
||||
class readHead():
|
||||
outHead = ""
|
||||
#outHead = ""
|
||||
sTime = []
|
||||
sTitle = ""
|
||||
sTheme = "basicTheme"
|
||||
|
||||
def __init__(self, sTitle):
|
||||
def __init__(self, sTitle, sTheme = "basicTheme"):
|
||||
self.sTitle = sTitle
|
||||
# self.outHead = ""
|
||||
self.stime = []
|
||||
self.sTheme = sTheme
|
||||
|
||||
def __str__(self):
|
||||
return(str(self.genHead())) #TODO: pick css theme and append to output
|
||||
return(str(self.genHead())) #TODO: Append CSS, navbar, sidebar, footer
|
||||
|
||||
# Start genHead()
|
||||
def genHead(self):
|
||||
|
@ -27,7 +30,10 @@ class readHead():
|
|||
headerStr = "<!DOCTYPE HTML>\n<html>\n<head>\n\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n\t<title>"
|
||||
headerStr1 = "</title>\n\t<meta name=\"generator\" content=\"HTML.xonsh https://git.nixnet.services/amber/html.xonsh\"/>\n\t<meta name=\"created\" content=\""
|
||||
headerStr2 = "\">\n\t<meta name=\"changed\" content=\""
|
||||
headerStr3 = "\"/>\n</head>\n<body>\n\t"
|
||||
headerStr3 = "\n</head>\n<body>\n\t"
|
||||
|
||||
outHead = headerStr + str(self.sTitle) + headerStr1 + timeMod + headerStr2 + timeCreate + headerStr3
|
||||
outHead = headerStr + str(self.sTitle) + headerStr1 + timeMod + headerStr2 + timeCreate
|
||||
#append css
|
||||
outHead = outHead + "\">" + str(theme.css())
|
||||
outHead = outHead + headerStr3
|
||||
return(outHead)
|
||||
|
|
14
main.py
14
main.py
|
@ -5,15 +5,11 @@ import datetime
|
|||
import header
|
||||
|
||||
#outFile = outFile + ".html"
|
||||
timeCreate = ""
|
||||
timeMod = ""
|
||||
m2h = "" # markdown 2 html
|
||||
headerStr = ""
|
||||
footStr = "\n</body>\n</html>"
|
||||
|
||||
|
||||
def printHtml(head, body, foot, outFile):
|
||||
print("placeholder")
|
||||
file = open(outFile, 'w')
|
||||
file.write(str(head + body + foot))
|
||||
|
||||
|
@ -24,16 +20,14 @@ def parseMd(inFile):
|
|||
m2h = str(readFile.readMarkdown(inFile))
|
||||
return(m2h)
|
||||
|
||||
def css():
|
||||
print("placeholder")
|
||||
|
||||
def main():
|
||||
# metadata("sample.md")
|
||||
parseMd("sample.md")
|
||||
printHtml(headerStr, m2h, footStr, "outdir/index.html")
|
||||
humanReadableArg = str(header.readHead("Big Grand Tigle"))
|
||||
printHtml(humanReadableArg, m2h, footStr, "outdir/index.html")
|
||||
|
||||
def test():
|
||||
print(str(header.readHead("string")) + str(parseMd("sample.md")) + footStr)
|
||||
|
||||
#main()
|
||||
test()
|
||||
main()
|
||||
#test()
|
||||
|
|
13
readFile.py
13
readFile.py
|
@ -12,18 +12,15 @@ class readMarkdown():
|
|||
self.mdFile = mdFile
|
||||
|
||||
|
||||
def markdown(self, mdFile):
|
||||
print("placeholder")
|
||||
|
||||
def markdown(self):
|
||||
file = open(self.mdFile, 'r')
|
||||
#middleVar = file.read()
|
||||
self.outStr = str(markdown.markdown(file.read())) #TODO: I really want nice tab indentations
|
||||
outStr = str(markdown.markdown(file.read())) #TODO: I really want nice tab indentations
|
||||
file.close()
|
||||
return(self.outStr)
|
||||
return(outStr)
|
||||
|
||||
|
||||
def __str__(self):
|
||||
return(str(self.markdown(self.mdFile)))
|
||||
return(str(self.markdown()))
|
||||
|
||||
# might want to find a way to diff html from a file and readMarkdown()'s output if I want to update pages
|
||||
# Edit: just keep the original markdown files dumbass
|
||||
# Edit: just keep the original markdown files dumbass
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# Add argparse support, create themes
|
||||
# Default theme will use the stuff I currently have on the home page
|
||||
# TODO: don't hard-code theme, look into extensability
|
||||
|
||||
basic = {
|
||||
"navCss": "css/navbar.css",
|
||||
"bodyCss": "css/home.css",
|
||||
"headerCss": "",
|
||||
"footCss": ""
|
||||
}
|
||||
|
||||
class css():
|
||||
# sTheme = ""
|
||||
|
||||
def __init__(self, sTheme = basic):
|
||||
self.sTheme = sTheme
|
||||
|
||||
def getTheme(self):
|
||||
outStr = ""
|
||||
|
||||
for i in self.sTheme:
|
||||
outStr = outStr + "\n\t<link rel=\"stylesheet\" href=\""
|
||||
outStr = outStr + str(self.sTheme[i])
|
||||
outStr = outStr + "\" media=\"\">"
|
||||
return(outStr)
|
||||
|
||||
def __str__(self):
|
||||
return(self.getTheme())
|
||||
|
||||
|
||||
#def test(sTheme):
|
||||
# outStr = ""
|
||||
#
|
||||
# for i in sTheme.values():
|
||||
# print(str(i))
|
||||
|
||||
|
||||
#test(basic)
|
Loading…
Reference in New Issue