From 92a528b03b9a0c77d84bd6811a4f7e10cf7c62e7 Mon Sep 17 00:00:00 2001 From: Mikhail Romanko Date: Thu, 17 Apr 2025 11:56:15 +0300 Subject: [PATCH] Initial commit --- .gitignore | 256 ++++++++++++++++++ .idea/.gitignore | 3 + .idea/SiteGen.iml | 10 + .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + content/common/404.md | 9 + content/common/favicon.ico | Bin 0 -> 122702 bytes content/common/favicon.png | Bin 0 -> 26905 bytes content/common/images/01-oldsite.png | Bin 0 -> 133318 bytes content/common/images/hex.png | Bin 0 -> 26905 bytes content/common/index.md | 3 + content/common/robots.txt | 14 + content/en/about.md | 19 ++ content/en/blog.md | 4 + content/en/blog/2025/01-sitegen.md | 135 +++++++++ content/en/projects.md | 3 + content/ru/about.md | 19 ++ content/ru/blog.md | 4 + content/ru/blog/2025/01-sitegen.md | 134 +++++++++ content/ru/projects.md | 3 + main.py | 89 ++++++ requirements.txt | 5 + template/en.html | 5 + template/none.html | 5 + template/ru.html | 5 + template/style.html | 16 ++ 28 files changed, 767 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/SiteGen.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 content/common/404.md create mode 100644 content/common/favicon.ico create mode 100644 content/common/favicon.png create mode 100644 content/common/images/01-oldsite.png create mode 100644 content/common/images/hex.png create mode 100644 content/common/index.md create mode 100644 content/common/robots.txt create mode 100644 content/en/about.md create mode 100644 content/en/blog.md create mode 100644 content/en/blog/2025/01-sitegen.md create mode 100644 content/en/projects.md create mode 100644 content/ru/about.md create mode 100644 content/ru/blog.md create mode 100644 content/ru/blog/2025/01-sitegen.md create mode 100644 content/ru/projects.md create mode 100644 main.py create mode 100644 requirements.txt create mode 100644 template/en.html create mode 100644 template/none.html create mode 100644 template/ru.html create mode 100644 template/style.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cfd9b9d --- /dev/null +++ b/.gitignore @@ -0,0 +1,256 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Artifacts +*.tgz +public \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/SiteGen.iml b/.idea/SiteGen.iml new file mode 100644 index 0000000..f286330 --- /dev/null +++ b/.idea/SiteGen.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..06ec480 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d4faa8a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/content/common/404.md b/content/common/404.md new file mode 100644 index 0000000..05ed756 --- /dev/null +++ b/content/common/404.md @@ -0,0 +1,9 @@ +Sorry, there is no page you're looking for :( + +Check [main page](/en/about) + +--- + +Извините, здесь нет страницы, которую вы ищете :( + +Загляните на [главную страницу](/ru/about) diff --git a/content/common/favicon.ico b/content/common/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b0bfab5b950a2a9f1658f283f99f120e6379bb9a GIT binary patch literal 122702 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 L;0SO8v?K686^;q) literal 0 HcmV?d00001 diff --git a/content/common/favicon.png b/content/common/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8813264287e1c80926de9cb43b42bc627000cd22 GIT binary patch literal 26905 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≦hyn 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 literal 0 HcmV?d00001 diff --git a/content/common/images/hex.png b/content/common/images/hex.png new file mode 100644 index 0000000000000000000000000000000000000000..8813264287e1c80926de9cb43b42bc627000cd22 GIT binary patch literal 26905 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 University +and Saint Petersburg State Polytechnic University. + +I like: +- programing in C and C++ +- studying various algorithms +- developing games (usually small prototypes) +- foxes + +## Contacts + +Social Media: +- X/Twitter (`@_blankhex_`) +- Reddit (`u/_blankhex_`) +- GitHub (`blankhex`) + +You can also contact me via email: [me@blankhex.com](mailto:me@blankhex.com) \ No newline at end of file diff --git a/content/en/blog.md b/content/en/blog.md new file mode 100644 index 0000000..b5363e1 --- /dev/null +++ b/content/en/blog.md @@ -0,0 +1,4 @@ +# Blog + +## 2025 +Apr 16 - [Static site generator in 90 lines of Python code](blog/2025/01-sitegen) diff --git a/content/en/blog/2025/01-sitegen.md b/content/en/blog/2025/01-sitegen.md new file mode 100644 index 0000000..99fb97f --- /dev/null +++ b/content/en/blog/2025/01-sitegen.md @@ -0,0 +1,135 @@ +# Static site generator in 90 lines of Python code + +Created: Apr 16, 2025 + +[На русском](/ru/blog/2025/01-sitegen) + +A long time ago, I made a small business card website. It consisted of three +simple HTML pages, one CSS file (which I generated from SCSS), several fonts +and images. That was more than enough to get a link to my website featured +in a resume or social media profile. + + +![Picture of the old website](/images/01-oldsite.png "Picture of the old website") + +I recently decided to continue working on my pet-project +and would like to publish all sorts of notes and articles on this topic on my +website. I didn't want to manually mess with HTML files, so I decided to look +for an alternative in the form of some kind of static website generator. +Ideally, I would like it to be: + +- Small and simple +- Able to work with Markdown +- Able syntax-highlight blocks of code + +Unfortunately, I couldn't find any suitable solutions for myself, so I decided +to build my own using Python, mistune +Markdown parser, Jinja2 +template engine, and Pygments. +The whole generation process boils down to the following: + +1. For every file in the input directory check whether it is Markdown + - If yes - convert it to HTML (with highlighting) and write to output directory + - If no - copy as is to output directory +2. Compress content of the output directory + +This generation process has a rather major drawback - due to the fact that +there is no post-processing of HTML, any links to other Markdown pages must +end with a `.html` extension[^1]. + +[^1]: This can be mitigated by special web-server configuration, that replaces + `.md` extension with `.html` or by omitting `.md` extension entirely and + using something like `try_files $uri $uri.html` + +Here is the code: + +```python +import re, jinja2, mistune, shutil, os, pathlib, tarfile +from pygments.lexers import get_lexer_by_name +from pygments.formatters import HtmlFormatter +from pygments import highlight + + +class PygmentsHTMLRenderer(mistune.HTMLRenderer): + def block_code(self, code: str, info = None): + if not info: + return '\n
%s
\n' % mistune.escape(code) + lexer = get_lexer_by_name(info, stripall=True) + formatter = HtmlFormatter(lineseparator='
') + return highlight(code, lexer, formatter) + + +def convert_markdown(page: str): + plugins = ['footnotes', 'table', 'strikethrough', 'url'] + renderer = PygmentsHTMLRenderer(escape=False) + return mistune.create_markdown(plugins=plugins, renderer=renderer)(page) + + +def extract_title(page: str): + matches = re.match('

(.*?)

', page) + if matches: + return matches.group(1) + return 'BlankHex' + + +def handle_file(path: str, input_dir: str, output_dir: str, template_name: str): + # Calculate input and output paths + relpath = os.path.relpath(path, input_dir) + input_path = path + output_path = os.path.join(output_dir, relpath) + if input_path.endswith('.md'): + output_path = output_path.replace('.md', '.html') + + # Don't convert if output path exists + if os.path.exists(output_path): + return + + # Run conversion + pathlib.Path(os.path.dirname(output_path)).mkdir(parents=True, exist_ok=True) + if input_path.endswith('.md'): + # Read Markdown document + with open(input_path, 'r') as handle: + markdown_page = handle.read() + + # Get Pygments styles for light and dark themes + light_style = HtmlFormatter(style='default').get_style_defs() + dark_style = HtmlFormatter(style='monokai').get_style_defs() + + # Convert Markdown document to HTML document + html_page = convert_markdown(markdown_page) + html_header = extract_title(html_page) + environment = jinja2.Environment(loader=jinja2.FileSystemLoader('template/')) + template = environment.get_template(template_name) + output_page = template.render(title=html_header, + body=html_page, + light_style=light_style, + dark_style=dark_style) + + # Write HTML document + with open(output_path, 'w') as handle: + handle.write(output_page) + else: + # Copy file as is + shutil.copy(path, output_path) + + +def convert_dir(input_dir: str, output_dir: str, template_name: str): + # Convert or copy every file from the input directory to the output directory + for subdir, dirs, files in os.walk(input_dir): + for file in files: + handle_file(os.path.join(subdir, file), input_dir, output_dir, template_name) + + +# Remove output from previous run +if os.path.isdir('public'): + shutil.rmtree('public') +if os.path.isfile('public.tgz'): + os.remove('public.tgz') + +# Run conversion +convert_dir('content', 'public', 'template.html') +with tarfile.open('public.tgz', 'w:gz') as tar: + for file in os.listdir('public'): + tar.add(os.path.join('public', file), file) +``` + diff --git a/content/en/projects.md b/content/en/projects.md new file mode 100644 index 0000000..3440a80 --- /dev/null +++ b/content/en/projects.md @@ -0,0 +1,3 @@ +# Projects + +As of now this page is empty :( \ No newline at end of file diff --git a/content/ru/about.md b/content/ru/about.md new file mode 100644 index 0000000..d7e0007 --- /dev/null +++ b/content/ru/about.md @@ -0,0 +1,19 @@ +# Обо мне + +Выпускник университетов ИТМОСПбПУ. + +Я люблю: +- программирование на C и C++ +- изучение различных алгоритмов +- разработку игр (обычно небольшие прототипы) +- лис + +## Контакты + +Я в соцсетях: +- X/Twitter (`@_blankhex_`) +- Reddit (`u/_blankhex_`) +- GitHub (`blankhex`) + +Также можно воспользоваться электронной почтой [me@blankhex.com](mailto:me@blankhex.com) diff --git a/content/ru/blog.md b/content/ru/blog.md new file mode 100644 index 0000000..b12aece --- /dev/null +++ b/content/ru/blog.md @@ -0,0 +1,4 @@ +# Блог + +## 2025 +16 апреля - [Генератор статических сайтов в 90 строк Python кода](blog/2025/01-sitegen) \ No newline at end of file diff --git a/content/ru/blog/2025/01-sitegen.md b/content/ru/blog/2025/01-sitegen.md new file mode 100644 index 0000000..76b7353 --- /dev/null +++ b/content/ru/blog/2025/01-sitegen.md @@ -0,0 +1,134 @@ +# Генератор статических сайтов в 90 строк Python кода + +Создано: 16 апреля 2025 + +[In English](/en/blog/2025/01-sitegen) + +Давным-давно я сделал небольшой сайт-визитку - он состоял из трех простеньких +HTML-страниц, одного CSS-файла (который я генерировал из SCSS), нескольких +шрифтов и картинок. Этого было более чем достаточно, чтобы ссылка на мой +сайт красовалась в каком-либо резюме или профиле соцсети. + +![Изображение старого сайта](/images/01-oldsite.png "Изображение старого сайта") + +Недавно я решил продолжить работу над своим pet проектом +и хотел бы публиковать на своем сайте всякие заметки и статьи на эту тему. +Мне не хотелось вручную возиться с HTML-файлам, поэтому я решил подыскать +альтернативу в виде какого-нибудь статического генератора сайтов. В идеале, я +хотел бы, чтобы он был: + +- Небольшим и достаточно простым +- Мог работать с Markdown +- Мог выполнять подсветку синтаксиса в блоках кода + +К сожалению, я не смог найти ни одно подходящее для себя решение, поэтому +я решил собрать свое на коленке используя Python, парсер Markdown'а mistune, +шаблонизатор Jinja2Pygments. Весь процесс +генерации сводиться к следующему: + +1. Для каждого файла во входном каталоге проверяем, является ли он Markdown + - Если да - преобразуем его в HTML (с подсветкой синтаксиса) и записываем + в выходной каталог + - Если нет - копируем файл как есть в выходной каталог +2. Сжимаем содержимое выходного каталога + +У данного процесса генерации есть достаточно крупный недостаток - из-за того, +что нет постобработки HTML, любые ссылки на другие страницы Markdown должны +заканчиваться расширением `.html`[^1]. + +[^1]: Эту проблему можно устранить с помощью специальной настройки веб-сервера, + которая заменяет в расширение `.md` на `.html` или путем автоматического + дописывания расширения `.html` (к примеру: `try_files $uri $uri.html`). + +Сам код генератора: + +```python +import re, jinja2, mistune, shutil, os, pathlib, tarfile +from pygments.lexers import get_lexer_by_name +from pygments.formatters import HtmlFormatter +from pygments import highlight + + +class PygmentsHTMLRenderer(mistune.HTMLRenderer): + def block_code(self, code: str, info = None): + if not info: + return '\n
%s
\n' % mistune.escape(code) + lexer = get_lexer_by_name(info, stripall=True) + formatter = HtmlFormatter(lineseparator='
') + return highlight(code, lexer, formatter) + + +def convert_markdown(page: str): + plugins = ['footnotes', 'table', 'strikethrough', 'url'] + renderer = PygmentsHTMLRenderer(escape=False) + return mistune.create_markdown(plugins=plugins, renderer=renderer)(page) + + +def extract_title(page: str): + matches = re.match('

(.*?)

', page) + if matches: + return matches.group(1) + return 'BlankHex' + + +def handle_file(path: str, input_dir: str, output_dir: str, template_name: str): + # Calculate input and output paths + relpath = os.path.relpath(path, input_dir) + input_path = path + output_path = os.path.join(output_dir, relpath) + if input_path.endswith('.md'): + output_path = output_path.replace('.md', '.html') + + # Don't convert if output path exists + if os.path.exists(output_path): + return + + # Run conversion + pathlib.Path(os.path.dirname(output_path)).mkdir(parents=True, exist_ok=True) + if input_path.endswith('.md'): + # Read Markdown document + with open(input_path, 'r') as handle: + markdown_page = handle.read() + + # Get Pygments styles for light and dark themes + light_style = HtmlFormatter(style='default').get_style_defs() + dark_style = HtmlFormatter(style='monokai').get_style_defs() + + # Convert Markdown document to HTML document + html_page = convert_markdown(markdown_page) + html_header = extract_title(html_page) + environment = jinja2.Environment(loader=jinja2.FileSystemLoader('template/')) + template = environment.get_template(template_name) + output_page = template.render(title=html_header, + body=html_page, + light_style=light_style, + dark_style=dark_style) + + # Write HTML document + with open(output_path, 'w') as handle: + handle.write(output_page) + else: + # Copy file as is + shutil.copy(path, output_path) + + +def convert_dir(input_dir: str, output_dir: str, template_name: str): + # Convert or copy every file from the input directory to the output directory + for subdir, dirs, files in os.walk(input_dir): + for file in files: + handle_file(os.path.join(subdir, file), input_dir, output_dir, template_name) + + +# Remove output from previous run +if os.path.isdir('public'): + shutil.rmtree('public') +if os.path.isfile('public.tgz'): + os.remove('public.tgz') + +# Run conversion +convert_dir('content', 'public', 'template.html') +with tarfile.open('public.tgz', 'w:gz') as tar: + for file in os.listdir('public'): + tar.add(os.path.join('public', file), file) +``` diff --git a/content/ru/projects.md b/content/ru/projects.md new file mode 100644 index 0000000..16a61b1 --- /dev/null +++ b/content/ru/projects.md @@ -0,0 +1,3 @@ +# Проекты + +Пока здесь ничего нет :( \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..e9fd447 --- /dev/null +++ b/main.py @@ -0,0 +1,89 @@ +import re, jinja2, mistune, shutil, os, pathlib, tarfile +from pygments.lexers import get_lexer_by_name +from pygments.formatters import HtmlFormatter +from pygments import highlight + + +class PygmentsHTMLRenderer(mistune.HTMLRenderer): + def block_code(self, code: str, info = None): + if not info: + return '\n
%s
\n' % mistune.escape(code) + lexer = get_lexer_by_name(info, stripall=True) + formatter = HtmlFormatter(lineseparator='
') + return highlight(code, lexer, formatter) + + +def convert_markdown(page: str): + plugins = ['footnotes', 'table', 'strikethrough', 'url'] + renderer = PygmentsHTMLRenderer(escape=False) + return mistune.create_markdown(plugins=plugins, renderer=renderer)(page) + + +def extract_title(page: str): + matches = re.match('

(.*?)

', page) + if matches: + return matches.group(1) + return 'BlankHex' + + +def handle_file(path: str, input_dir: str, output_dir: str, template_name: str): + # Calculate input and output paths + relpath = os.path.relpath(path, input_dir) + input_path = path + output_path = os.path.join(output_dir, relpath) + if input_path.endswith('.md'): + output_path = output_path.replace('.md', '.html') + + # Don't convert if output path exists + if os.path.exists(output_path): + return + + # Run conversion + pathlib.Path(os.path.dirname(output_path)).mkdir(parents=True, exist_ok=True) + if input_path.endswith('.md'): + # Read Markdown document + with open(input_path, 'r') as handle: + markdown_page = handle.read() + + # Get Pygments styles for light and dark themes + light_style = HtmlFormatter(style='default').get_style_defs() + dark_style = HtmlFormatter(style='monokai').get_style_defs() + + # Convert Markdown document to HTML document + html_page = convert_markdown(markdown_page) + html_header = extract_title(html_page) + environment = jinja2.Environment(loader=jinja2.FileSystemLoader('template/')) + template = environment.get_template(template_name) + output_page = template.render(title=html_header, + body=html_page, + light_style=light_style, + dark_style=dark_style) + + # Write HTML document + with open(output_path, 'w') as handle: + handle.write(output_page) + else: + # Copy file as is + shutil.copy(path, output_path) + + +def convert_dir(input_dir: str, output_dir: str, template_name: str): + # Convert or copy every file from the input directory to the output directory + for subdir, dirs, files in os.walk(input_dir): + for file in files: + handle_file(os.path.join(subdir, file), input_dir, output_dir, template_name) + + +# Remove output from previous run +if os.path.isdir('public'): + shutil.rmtree('public') +if os.path.isfile('public.tgz'): + os.remove('public.tgz') + +# Run conversion for english, russian and 'common' folder +convert_dir('content/en', 'public/en', 'en.html') +convert_dir('content/ru', 'public/ru', 'ru.html') +convert_dir('content/common', 'public', 'none.html') +with tarfile.open('public.tgz', 'w:gz') as tar: + for file in os.listdir('public'): + tar.add(os.path.join('public', file), file) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7694f3b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +Jinja2==3.1.6 +MarkupSafe==3.0.2 +mistune==3.1.3 +Pygments==2.19.1 +typing_extensions==4.13.2 diff --git a/template/en.html b/template/en.html new file mode 100644 index 0000000..0ffc06e --- /dev/null +++ b/template/en.html @@ -0,0 +1,5 @@ + + +{% include 'style.html' %}{{ title }} +
{{ body }}

outline of an orange hexagon
+ diff --git a/template/none.html b/template/none.html new file mode 100644 index 0000000..fdb646c --- /dev/null +++ b/template/none.html @@ -0,0 +1,5 @@ + + +{% include 'style.html' %} +
{{ body }}

+ diff --git a/template/ru.html b/template/ru.html new file mode 100644 index 0000000..cc64c9c --- /dev/null +++ b/template/ru.html @@ -0,0 +1,5 @@ + + +{% include 'style.html' %}{{ title }} +
{{ body }}

очертание оранжевого шестиугольника
+ diff --git a/template/style.html b/template/style.html new file mode 100644 index 0000000..01d4a37 --- /dev/null +++ b/template/style.html @@ -0,0 +1,16 @@ + \ No newline at end of file