HTML format

This commit is contained in:
Bob Mottram 2014-04-27 20:47:08 +01:00
parent 6ceb56ade7
commit 99ce916df0
2 changed files with 66 additions and 7 deletions

View File

@ -17,10 +17,10 @@ As a Git repository the file isn't all that useful. You can export it in other
```bash ```bash
python makeJargon.py python makeJargon.py
``` ```
All of the resulting documents can be found in the _docs_ subdirectory. Current formats supported are manpages, HTML and org-mode markup.
To install the manpage: To install the manpage:
```bash ```bash
sudo install -m 644 docs/jargon.1.gz /usr/local/share/man/man1 sudo install -m 644 docs/jargon.1.gz /usr/local/share/man/man1
``` ```
The org-mode formatted document can be found in _docs/jargon-org.txt_

View File

@ -75,7 +75,7 @@ def saveLicense(fp, year, publishername):
fp.write("A copy of the license is included in the section entitled \"GNU\n") fp.write("A copy of the license is included in the section entitled \"GNU\n")
fp.write("Free Documentation License\".\n\n") fp.write("Free Documentation License\".\n\n")
def jargonWithDefinitions(text, definitions): def jargonWithDefinitions(text, definitions, isHtml):
result = '' result = ''
prevpos = 0 prevpos = 0
for i in range(definitions): for i in range(definitions):
@ -83,9 +83,19 @@ def jargonWithDefinitions(text, definitions):
if pos > -1 and i > 0: if pos > -1 and i > 0:
if result != '': if result != '':
result = result + "\n\n" result = result + "\n\n"
result = result + text[prevpos:pos]
if not isHtml:
result = result + text[prevpos:pos]
else:
result = result + "<p>" + text[prevpos:pos] + "</p>"
prevpos = pos prevpos = pos
return result + "\n\n" + text[prevpos:]
if not isHtml:
result = result + "\n\n" + text[prevpos:]
else:
result = result + "\n\n" + "<p>" + text[prevpos:] + "</p>"
return result
def jargonToManpage(manpageFilename, entries, version, publishername): def jargonToManpage(manpageFilename, entries, version, publishername):
year = int(time.strftime("%Y")) year = int(time.strftime("%Y"))
@ -109,7 +119,7 @@ def jargonToManpage(manpageFilename, entries, version, publishername):
text = entry[1] text = entry[1]
definitions = jargonSubdefinitions(entry[1]) definitions = jargonSubdefinitions(entry[1])
if definitions > 1: if definitions > 1:
text = jargonWithDefinitions(text, definitions) text = jargonWithDefinitions(text, definitions, False)
fp.write(".SH " + title + "\n") fp.write(".SH " + title + "\n")
fp.write(text + "\n\n") fp.write(text + "\n\n")
@ -150,7 +160,7 @@ def jargonToOrgMode(orgFilename, entries, version, publishername):
text = entry[1] text = entry[1]
definitions = jargonSubdefinitions(entry[1]) definitions = jargonSubdefinitions(entry[1])
if definitions > 1: if definitions > 1:
text = jargonWithDefinitions(text, definitions) text = jargonWithDefinitions(text, definitions, False)
if title[0:1] != subsection: if title[0:1] != subsection:
subsection = title[0:1] subsection = title[0:1]
@ -161,9 +171,58 @@ def jargonToOrgMode(orgFilename, entries, version, publishername):
fp.close() fp.close()
def jargonToHTML(htmlFilename, entries, version, publishername):
year = int(time.strftime("%Y"))
if not os.path.isdir("docs"):
os.system("mkdir docs")
if os.path.isfile(htmlFilename):
os.system("rm " + htmlFilename)
fp = open(htmlFilename,'w')
fp.write("<!DOCTYPE html>\n")
fp.write("<html>\n")
fp.write(" <head>\n")
fp.write(" <title>The Jargon File</title>\n")
fp.write(" </head>\n")
fp.write(" <body>\n")
fp.write(" <H1>The Jargon File</H1>\n")
fp.write(" <H2>License</H2>\n")
fp.write(" <p>\n")
saveLicense(fp, year, publishername)
fp.write(" </p>\n")
fp.write(" <H2>Glossary</H2>\n")
subsection = ''
for entry in entries:
title = entry[0]
text = entry[1]
if title[0:1] != subsection:
subsection = title[0:1]
fp.write(" <H3>" + subsection.upper() + "</H3>\n")
fp.write(" <H4>" + title + "</H4>\n")
definitions = jargonSubdefinitions(entry[1])
if definitions > 1:
text = jargonWithDefinitions(text, definitions, True)
fp.write(" " + text + "\n")
else:
fp.write(" <p>\n")
fp.write(" " + text + "\n")
fp.write(" </p>\n")
fp.write(" </body>\n");
fp.write("</html>\n")
fp.close()
if __name__ == "__main__": if __name__ == "__main__":
version = "x.xx" version = "x.xx"
publishername = "My Name" publishername = "My Name"
entries = jargonGetEntries('entries') entries = jargonGetEntries('entries')
jargonToManpage("docs/jargon.1", entries, version, publishername) jargonToManpage("docs/jargon.1", entries, version, publishername)
jargonToOrgMode("docs/jargon-org.txt", entries, version, publishername) jargonToOrgMode("docs/jargon-org.txt", entries, version, publishername)
jargonToHTML("docs/jargon.html", entries, version, publishername)