Skip to content

1vanK/MarkdownViewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.