858e5755ad
- big commit.
134 lines
6.1 KiB
Markdown
134 lines
6.1 KiB
Markdown
# MDView — Просмотрщик Markdown для Sprinter
|
||
|
||
**MDView** — программа для просмотра документов в формате *Markdown* на компьютере
|
||
Sprinter (процессор Z80). Документ хранится в отдельном W3 окне и не занимает
|
||
основную RAM программы.
|
||
|
||
## Возможности
|
||
|
||
- Документы до **128 КБ** (8 страниц EMM по 16 КБ каждая)
|
||
- До **16 384** экранных строк в индексе
|
||
- Автоматический перенос слов по ширине экрана (80 столбцов)
|
||
- Горизонтальный сдвиг для широких строк (блоки кода, таблицы)
|
||
- Статус-бар: имя файла, диапазон строк, процент прокрутки
|
||
- Спиннер в строке состояния во время загрузки и индексации
|
||
- Поддержка «мягкого» склеивания строк в абзацах и цитатах
|
||
|
||
## Запуск
|
||
|
||
```
|
||
mdview [имя_файла.md]
|
||
```
|
||
|
||
Если имя файла не задано, загружается `README.MD`.
|
||
|
||
## Управление
|
||
|
||
```
|
||
Клавиша Действие
|
||
───────────── ────────────────────────────────────────
|
||
Up Down Прокрутка на одну строку вверх / вниз
|
||
PgUp PgDn Прокрутка на страницу (30 строк)
|
||
Home Начало документа
|
||
End Конец документа
|
||
Left Right Горизонтальный сдвиг (только nowrap-строки)
|
||
F1 Окно справки
|
||
F10 / Esc Выход из программы
|
||
```
|
||
|
||
## Синтаксис Markdown
|
||
|
||
### Заголовки
|
||
|
||
Поддерживаются уровни H1–H4. Уровни H5 и H6 отображаются как H4.
|
||
|
||
# Заголовок первого уровня
|
||
## Заголовок второго уровня
|
||
### Заголовок третьего уровня
|
||
#### Заголовок четвёртого уровня
|
||
|
||
### Текстовое форматирование
|
||
|
||
**Жирный текст** выделяется двойными звёздочками: `**текст**`
|
||
|
||
*Курсив* выделяется одиночными звёздочками `*текст*` или знаком подчёркивания `_текст_`
|
||
|
||
`Встроенный код` обозначается обратными кавычками
|
||
|
||
~~Зачёркнутый текст~~ — двойные тильды: `~~текст~~`
|
||
|
||
### Ненумерованный список
|
||
|
||
Маркеры `-`, `*` или `+`:
|
||
|
||
- Первый пункт списка
|
||
- Второй пункт списка
|
||
- Третий пункт с достаточно длинным текстом, который при необходимости
|
||
будет перенесён на следующую строку с сохранением отступа
|
||
|
||
### Нумерованный список
|
||
|
||
1. Первый элемент
|
||
2. Второй элемент
|
||
3. Третий элемент
|
||
|
||
### Цитата
|
||
|
||
> Блок цитаты начинается с символа `>`. Несколько последовательных
|
||
> строк одной цитаты склеиваются в единый абзац с автоматическим
|
||
> переносом слов.
|
||
|
||
### Блок кода (verbatim)
|
||
|
||
Блок кода заключается в тройные обратные кавычки. Внутри блока
|
||
текст отображается «как есть» без разбора Markdown:
|
||
|
||
```
|
||
#include <stdio.h>
|
||
#include <sprinter.h>
|
||
|
||
int main(void) {
|
||
puts("Hello, Sprinter!");
|
||
return 0;
|
||
}
|
||
```
|
||
|
||
### Горизонтальная линия
|
||
|
||
Три или более символов `---`, `***` или `___` на отдельной строке:
|
||
|
||
---
|
||
|
||
## Технические характеристики
|
||
|
||
- **Платформа:** Sprinter, процессор Z80 @ 21 МГц
|
||
- **Кодировка:** CP866 (DOS Cyrillic)
|
||
- **Максимальный размер файла:** 128 КБ
|
||
- **Максимальное число строк в индексе:** 16 384
|
||
- **Режим памяти:** small
|
||
- Код программы, cтек, данные, куча — окнa W1-W2 (32 КБ, адреса 0x4000–0xBFFF).
|
||
- Буфер файла — страницы EMM, отображаемые в W3 (0xC000–0xFFFF)
|
||
|
||
## TODO
|
||
|
||
1. **Увеличение размера документов.** Снять лимит 128 КБ: Достаточно
|
||
разрешить работать с большим кол-вом страниц памяти, пока оттестированно
|
||
на работе с 8-мю страницами по 16Кб.
|
||
|
||
2. **Форматированные таблицы.** Разбирать строки вида `| ячейка | ячейка |`
|
||
с автоматическим выравниванием столбцов и отрисовкой разделительных
|
||
линий (строки `|---|---|`). На текущий момент таблицы отображаются
|
||
как обычные nowrap-строки без выравнивания.
|
||
|
||
3. **Поддержка кодировок CP1251 и UTF-8.** Автоопределение кодировки
|
||
по BOM, явное указание через аргумент командной строки (`--encoding cp1251`),
|
||
возможность переключения кодировки во время просмотра (`F8`).
|
||
Нужно прежде всего для документов на русском языке; CP866 кодировака уже поддерживается.
|
||
|
||
4. **Ускорение рендеринга.** Кэш строк экрана. Оптимизация цикла вывода
|
||
символов через BIOS WRCHAR (пакетный вывод, DMA).
|
||
|
||
---
|
||
|
||
*MDView v0.2 · (c) 2026 Петров А.Г.*
|