| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import re
- if (__name__ == "__main__"):
- # Assemble the script which embeds the Markdeep page into the preview blog
- PreviewBlogPage = open("PreviewBlogPage.htm", "rb").read().decode("utf-8")
- HeadMatch = re.search("<head(.*?)>(.*?)</head>", PreviewBlogPage, re.DOTALL)
- HeadAttributes = HeadMatch.group(1)
- FullDocumentHead = HeadMatch.group(2)
- BodyMatch = re.search("<body(.*?)>(.*?)</body>", PreviewBlogPage, re.DOTALL)
- BodyAttributes = BodyMatch.group(1)
- FullPreviewBody = BodyMatch.group(2)
- ArticleHTMLCodeMacro = "$(ARTICLE_HTML_CODE)"
- iArticleHTMLCodeMacro = FullPreviewBody.find(ArticleHTMLCodeMacro)
- DocumentBodyPrefix = FullPreviewBody[0:iArticleHTMLCodeMacro]
- DocumentBodySuffix = FullPreviewBody[iArticleHTMLCodeMacro + len(ArticleHTMLCodeMacro):]
- FullPrepareHTMLCode = open("PrepareHTML.js", "rb").read().decode("utf-8")
- ReplacementList = [("$(FULL_DOCUMENT_HEAD)", FullDocumentHead),
- ("$(DOCUMENT_BODY_PREFIX)", DocumentBodyPrefix),
- ("$(DOCUMENT_BODY_SUFFIX)", DocumentBodySuffix)]
- for Macro, Replacement in ReplacementList:
- FullPrepareHTMLCode = FullPrepareHTMLCode.replace(
- Macro,
- Replacement.replace("\r\n", "\\r\\n\\\r\n").replace("'", "\\'"))
- # Generate code which sets body and head attributes appropriately
- for Element, AttributeCode in [("head", HeadAttributes), ("body", BodyAttributes)]:
- FullPrepareHTMLCode += "\r\n// Setting " + Element + " attributes\r\n"
- for Match in re.finditer("(\\w+)=\\\"(.*?)\\\"", AttributeCode):
- FullPrepareHTMLCode += "document." + Element + ".setAttribute(\"" + Match.group(
- 1) + "\",\"" + Match.group(2) + "\");\r\n"
- open("PrepareHTML.full.js", "wb").write(FullPrepareHTMLCode.encode("utf-8"))
- # Concatenate all the scripts together
- SourceFileList = [
- "PrepareHTML.full.js", "SetMarkdeepMode.js", "markdeep.min.js", "DisplayMarkdeepOutput.js",
- "InvokeMathJax.js"
- ]
- OutputCode = "\r\n\r\n".join([
- "// " + SourceFile + "\r\n\r\n" + open(SourceFile, "rb").read().decode("utf-8")
- for SourceFile in SourceFileList
- ])
- OutputFile = open("MarkdeepUtility.js", "wb")
- OutputFile.write(OutputCode.encode("utf-8"))
- OutputFile.close()
- print("Done.")
|