123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/usr/bin/env python3
- import os
- import mistune
- from pygments import highlight
- from pygments.lexers import get_lexer_by_name
- from pygments.formatters import html
- base = """
- <html>
- <head>
- <meta charset="UTF-8">
- <title>-{title} | Ryozuki Blog</title>
- <meta name="description" content="-{about}">
- <meta name="keywords" content="-{tags}">
- <meta name="author" content="Ryozuki">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link rel="stylesheet" href="/css/code.css">
- <link rel="stylesheet" href="/css/style.css">
- <meta property="og:title" content="-{title} | Ryozuki Blog" />
- <meta property="og:description" content="-{about}" />
- <meta name='medium' content='blog'>
- </head>
- <body>
- <div class="container">
- <a href="/">cd /</a>
- -{body}
- </div>
- </body>
- </html>
- """
- class HighlightRenderer(mistune.Renderer):
- def block_code(self, code, lang):
- if not lang:
- return '\n<pre><code>%s</code></pre>\n' % \
- mistune.escape(code)
- lexer = get_lexer_by_name(lang, stripall=True)
- formatter = html.HtmlFormatter(linenos='inline')
- return highlight(code, lexer, formatter)
- if __name__ == "__main__":
- renderer = HighlightRenderer()
- markdown = mistune.Markdown(renderer=renderer)
- for x in os.listdir("blog"):
- with open(f"blog/{x}") as f:
- parsed = markdown(f.read())
- name, ext = os.path.splitext(x)
- if ext != ".md":
- continue
- info = open(f"blog/{name}.info", 'r')
- title = info.readline().replace("\n", "").strip()
- about = info.readline().replace("\n", "").strip()
- date = info.readline().replace("\n", "").strip()
- tags = info.readline().replace("\n", "").strip()
- info.close()
- _base = base.replace("-{title}", title)
- _base = _base.replace("-{about}", about)
- _base = _base.replace("-{tags}", tags)
- parsed = parsed.replace("-{title}", title)
- parsed = parsed.replace("-{date}", date)
- _base = _base.replace("-{body}", parsed)
- with open(f"public/blog/{name}.html", 'w') as out:
- out.write(_base)
- print(f"\033[94mGenerated file: \033[92m\033[1m{name}.html\033[0m")
|