Release v0.1.2

This commit is contained in:
Sergey Filkin
2026-04-18 10:15:47 +03:00
parent e495df98b3
commit 2a3ff10786
4 changed files with 49 additions and 17 deletions
+6
View File
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and the project uses Semantic Versioning. The format is based on Keep a Changelog, and the project uses Semantic Versioning.
## [0.1.2] - 2026-04-18
### Added
- Streamlit UI now supports converting Markdown pasted from the clipboard in addition to uploaded `.md` files.
## [0.1.1] - 2026-04-17 ## [0.1.1] - 2026-04-17
### Fixed ### Fixed
+6 -6
View File
@@ -2,7 +2,7 @@
Сервис конвертации Markdown в самодостаточный HTML (через GitHub API). Сервис конвертации Markdown в самодостаточный HTML (через GitHub API).
Текущая версия: `0.1.1` Текущая версия: `0.1.2`
Часто нужен адекватно (минималистично) выглядящий HTML из Markdown. HTML получем через открытый API GitHub, а стили просто захардкожены в шаблоне. Часто нужен адекватно (минималистично) выглядящий HTML из Markdown. HTML получем через открытый API GitHub, а стили просто захардкожены в шаблоне.
@@ -13,7 +13,7 @@ GITHUB_TOKEN не нужен, если не требуется массовая
Есть два интерфейса: Есть два интерфейса:
- FastAPI на `http://localhost:8000` - FastAPI на `http://localhost:8000`
- Streamlit UI на `http://localhost:8501` - Streamlit UI на `http://localhost:8501` с двумя режимами ввода: загрузка `.md` файла или вставка Markdown-текста из буфера обмена
## Локальный запуск ## Локальный запуск
@@ -68,14 +68,14 @@ curl http://localhost:8000/version
```bash ```bash
git add VERSION CHANGELOG.md git add VERSION CHANGELOG.md
git commit -m "Release v0.1.1" git commit -m "Release v0.1.2"
git tag v0.1.1 git tag v0.1.2
git push origin main --tags git push origin main --tags
gh release create v0.1.1 --notes-file CHANGELOG.md gh release create v0.1.2 --notes-file CHANGELOG.md
``` ```
После публикации релиза GitHub Actions автоматически собирает Docker-образ и публикует его в GitHub Container Registry: После публикации релиза GitHub Actions автоматически собирает Docker-образ и публикует его в GitHub Container Registry:
```bash ```bash
docker pull ghcr.io/fserg/md-to-html:v0.1.1 docker pull ghcr.io/fserg/md-to-html:v0.1.2
``` ```
+1 -1
View File
@@ -1 +1 @@
0.1.1 0.1.2
+33 -7
View File
@@ -149,15 +149,34 @@ if "preview_url" not in st.session_state:
st.title("Markdown → HTML") st.title("Markdown → HTML")
st.caption( st.caption(
f"Версия {__version__}. Загрузите markdown-файл, проверьте превью и скачайте готовый HTML." f"Версия {__version__}. Загрузите markdown-файл или вставьте текст, проверьте превью и скачайте готовый HTML."
) )
uploaded_file = st.file_uploader( input_mode = st.segmented_control(
"Источник Markdown",
options=["Файл", "Текст"],
default="Файл",
)
uploaded_file = None
pasted_markdown = ""
if input_mode == "Файл":
uploaded_file = st.file_uploader(
"Загрузите .md файл", "Загрузите .md файл",
type=["md", "markdown"], type=["md", "markdown"],
) )
else:
pasted_markdown = st.text_area(
"Вставьте Markdown из буфера обмена",
placeholder="# Заголовок\n\nВставьте сюда markdown-текст.",
height=260,
)
html_result = st.session_state["html_result"] html_result = st.session_state["html_result"]
is_convert_disabled = (
uploaded_file is None if input_mode == "Файл" else not pasted_markdown.strip()
)
with st.container(border=True): with st.container(border=True):
action_col, preview_col, download_col = st.columns( action_col, preview_col, download_col = st.columns(
@@ -168,7 +187,7 @@ with st.container(border=True):
with action_col: with action_col:
convert_clicked = st.button( convert_clicked = st.button(
"Конвертировать", "Конвертировать",
disabled=uploaded_file is None, disabled=is_convert_disabled,
type="primary", type="primary",
icon=":material/auto_awesome:", icon=":material/auto_awesome:",
use_container_width=True, use_container_width=True,
@@ -213,14 +232,21 @@ with st.container(border=True):
else: else:
st.caption("После конвертации здесь появятся действия с готовым файлом.") st.caption("После конвертации здесь появятся действия с готовым файлом.")
if convert_clicked and uploaded_file is not None: if convert_clicked and not is_convert_disabled:
if input_mode == "Файл":
markdown_bytes = uploaded_file.getvalue() markdown_bytes = uploaded_file.getvalue()
markdown_text = markdown_bytes.decode("utf-8") markdown_text = markdown_bytes.decode("utf-8")
output_name = f"{Path(uploaded_file.name).stem}.html" fallback_title = Path(uploaded_file.name).stem or "Document"
output_name = f"{fallback_title}.html"
else:
markdown_text = pasted_markdown
fallback_title = "Document"
output_name = "document.html"
try: try:
st.session_state["html_result"] = convert( st.session_state["html_result"] = convert(
markdown_text, markdown_text,
fallback_title=Path(uploaded_file.name).stem or "Document", fallback_title=fallback_title,
) )
st.session_state["output_name"] = output_name st.session_state["output_name"] = output_name
st.session_state["preview_url"] = register_preview(st.session_state["html_result"]) st.session_state["preview_url"] = register_preview(st.session_state["html_result"])