Skip to content

1vanK/MarkdownViewer

Folders and files

NameName
Last commit message
Last commit date
Mar 26, 2022
Dec 7, 2019
Mar 29, 2022
Mar 29, 2022
Mar 26, 2022
Mar 26, 2022
Mar 29, 2022
Mar 29, 2022

Repository files navigation

Ivan's Markdown Viewer (IMV)

Особенности

  • Автономное (standalone) офлайн приложение.
  • Программа написана на C и C++, поэтому максимально быстрая.
  • Поддерживает расширенный синтаксис GitHub Flavored Markdown (GFM).
  • Поддерживает формулы в формате LaTeX.
  • Поддерживает относительные ссылки на другие .md-файлы.
  • Поддерживает подключение пользовательских .js и .css-файлов к генерируемому html-коду.
  • Имеется пример плагина, реализующий систематизацию статей по тегам.
  • Работает в Linux и Windows.

Установка

  1. Скачайте последнюю скомпилированную версию: https://github.com/1vanK/MarkdownViewer/releases (ТУТ ПОКА ЧТО УСТАРЕВШИЕ ВЕРСИИ, КОМПИЛИРУЙТЕ САМИ).
  2. Распакуйте архив в любую папку (например в c:\Programs\IMV).
  3. Ассоциируйте .md-файлы с программой.

Управление

  • Backspace - назад (предварительно кликните мышкой в любом месте страницы, если фокус ввода находится на каком-то текстовом поле).
  • Средняя кнопка мыши - открыть ссылку в новом окне.
  • F5 - обновить страницу.

Формулы

Формула внутри строки (inline): `$ формула $` или `\( формула \)`.
Формула в центре отдельной строки: `$$ формула $$` или `\[ формула \]`.

Формулы набираются в формате LaTeX. Можно воспользоваться онлайн-редактором, однако там есть далеко не все символы. Например:

  • \cdot - dot protuct
  • \left| и \right| - прямые скобки переменной высоты

Да одних пробелов существует целая куча:

  • \; - толстый пробел
  • \: - средний
  • \, - тонкий
  • \! - "отрицательный" пробел (то есть наложение)

Подробнее: https://grammarware.net/text/syutkin/MathInLaTeX.pdf.

Используемые библиотеки

  • Chromium Embedded Framework
  • cmark-gfm
  • KaTeX

Компиляция в Windows

  1. Создайте пустую папку, а в ней bat-файл:
:: Меняем кодировку консоли на UTF-8
chcp 65001

:: Путь к git.exe
set "PATH=c:\program files\git\bin"

:: Качаем репозиторий в папку repo
git clone https://github.com/1vanK/MarkdownViewer repo

:: Ждём нажатие Enter перед закрытием консоли
pause
  1. Запустите этот батник, чтобы скачать репозиторий
  2. Скачайте https://cef-builds.spotifycdn.com/cef_binary_99.2.12%2Bg2977b3a%2Bchromium-99.0.4844.74_windows64.tar.bz2 и поместите содержимое папки cef_binary_* из архива в папку repo/third_party/cef без перезаписи
  3. Создайте и выполните bat-файл:
:: Меняем кодировку консоли на UTF-8
chcp 65001

:: Указываем путь к cmake.exe
set "PATH=c:\programs\cmake\bin"

:: Удаляем папку build_vs
rmdir /s /q build_vs

:: Создаём проекты для Visual Studio 2022 в папке build_vs, используя конфиг CMakeLists.txt из папки repo
cmake repo -B build_vs -G "Visual Studio 17" -A x64

:: Компилируем проекты в папке build_vs
::cmake --build build_vs --config Debug
cmake --build build_vs --config Release

:: Ждём нажатие Enter перед закрытием консоли
pause
  1. Результат сборки будет помещен в папку build/result

Компиляция в Linux (проверено только в Linux Mint 20.3 Cinnamon)

  1. Скрипт для скачивания репозитория:
#!/bin/sh

# Качаем репозиторий в папку repo
git clone https://github.com/1vanK/MarkdownViewer repo
  1. Скачайте https://cef-builds.spotifycdn.com/cef_binary_99.2.12%2Bg2977b3a%2Bchromium-99.0.4844.74_linux64.tar.bz2 и поместите содержимое папки cef_binary_* из архива в папку repo/third_party/cef без перезаписи
  2. Скрипт для установки зависимостей:
#!/bin/sh

sudo apt update
sudo apt install git cmake build-essential libx11-dev
  1. Скрипт для генерации и компиляции проектов
#!/bin/sh

cmake repo -B build -G "Unix Makefiles"
cmake --build build
  1. Установка xclip (чтобы работало копирование ссылок через контектное меню)
sudo apt install xclip
  1. Создание ассоциации md-файлов с приложением: ПКМ на любом md-файле > Открыть с помощью > Другое > Пользовательская команда > /путь/к/прорамме %u > Сохранить ассоциацию + Использовать по умолчанию > Ok

Примечания

Программа протестирована на Windows 10 x64 и Linux Mint 20.3 Cinnamon.

Кэш программы пишется в директорию Cache в папке с программой. Эту папку можно удалять, чтобы очистить кэш. Можно скомпилировать программу с автоудалением кэша при выходе (смотрите дефайн AUTOREMOVE_CACHE), однако внешние сайты станут открываться медленнее, так как картинки, скрипты, стили и т.д. будут каждый раз качаться заново.

Программа стартует заметно быстрее, если отключить Защиту в режиме реального времени для встроенного антивируса Windows 10. CEF - очень тяжелая библиотека, а винда проверяет все эти .dll-ки.

Для редактирования md-файлов лично я предпочитаю использовать Notepad++ с плагином Snippets в Windows и Textosaurus в Linux.