LINUX.ORG.RU

В crengine-ng добавлена поддержка Markdown

 , ,


2

1

Вышла новая версия crengine-ng 0.9.4. Основное изменение — это поддержка файлов с разметкой Markdown.

Доступно на выбор две реализации: используя cmark или cmark-gfm, для этого добавлены соответствующие опции cmake USE_CMARK и USE_CMARK_GFM. Опция USE_CMARK_GFM включена по умолчанию.

cmark — https://github.com/commonmark/cmark

cmark-gfm — https://github.com/github/cmark-gfm

crengine-ng — форк CoolReader, нацеленный на развитие только библиотеки парсинга и рендеринга.

Сборки crqt-ng-1.0.4 с crengine-ng-0.9.4: https://gitlab.com/coolreader-ng/crqt-ng/-/releases/1.0.4

crqt-ng — форк CoolReader, нацеленный на развитие только программы для чтения, клиент на Qt.

Ебилды для Gentoo подготовлены.

>>> Релиз на gitlab



Проверено: maxcom ()

Шикарный подарок пользователям на НГ.

DrBrown ()
Ответ на: комментарий от Im_not_a_robot

Этого мало, автор должен приплачивать пользователям.

DrBrown ()

А парсеры FB2 в этом форке Cool Reader не переписывали? Там код ведь был очень старый со множеством Legacy-проблем и сегфолтов.

EXL ★★★★★ ()
Ответ на: комментарий от Im_not_a_robot

Если бы автор умел, он бы обязательно подготовил.

virx ()
Ответ на: комментарий от EXL

Нет, не переписывали. Но хочется думать, что от множества там осталась малая часть, проблемы исправлялись по мере нахождения, большая часть еще в рамках CoolReader.

virx ()

этот тот кулридер, который на теелефонах был и на кпк всяких?

SpaceRanger ★★ ()

используя cmark или cmark-gfm

А в Gentoo зависимость от app-text/cmark (он в дереве есть) попросите, пожалуйста, добавить и включить его использование (можно опционально).

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 3)
Ответ на: комментарий от Im_not_a_robot

Мне вот интересно, лор_овцы, которые ставят пальчик_вниз, они принципиально против всяких удобств? Типа Линупс создан для страдания и мы принципиально отрицаем все, что облегчает жизнь?

Im_not_a_robot ★★★★★ ()
Ответ на: комментарий от grem

Я сначала так и сделал (использование системной библиотеки cmark), но потом понял, что будут проблемы на других платформах, на каких-то системах пакет cmark отсутствует. При сборке статической библиотеки libcrengine-ng.a нужна статическая libcmark.a, которой в gentoo нет и т.д. Т.е., по любому, нужно иметь в своём составе исходники cmark для максимальной совместимости.

Дальше больше, выяснилось, что cmark-gfm более функционален, и как мне показалось, это именно то, что нужно пользователю, там есть поддержка таблиц, strikethrough, автоссылок без скобок, соответственно в базовом cmark всего этого нет. cmark-gfm отсутствует в Gentoo, т.е. нужно встраивать исходники.

Итого, конечно, можно предусмотреть использование системной библиотеки libcmark.so для поддержки Markdown, но это усложнит систему сборки, и, как мне кажется никому не будет нужно, выбор большинства - cmark-gfm.

Зачем нужен выбор между cmark и cmark-gfm в crengine-ng? Пока сам не знаю, просто почему бы и нет. Позднее, возможно, надо будет удалить поддержку и исходники cmark из crengine-ng.

virx ()
Ответ на: комментарий от Im_not_a_robot

А как связаны flatpak и удобство? Это же вещи которые не пересекаются.

vbcnthfkmnth123 ()
Ответ на: комментарий от virx

Мне просто казалось, что включение markdown само по себе уже опциональное.

cmark-gfm

есть в ::guru, но это значит, что нужно протаскивать его в ::gentoo, чтобы использовать для пакета из основного дерева.

grem ★★★★★ ()
Ответ на: комментарий от Im_not_a_robot

Им неприятно осознавать тот факт, что заветы RMS привели к появлению пользователей, которым все что-то должны (такие как @bairos).

DrBrown ()

Хороший просмотщик

Cобрать/установить:

#!/bin/sh

#-----------Variables-------------------
# Versions
CRQT_VERSION=1.0.4
CRENGINE_VERSION=0.9.4

# Working directory
WORK_DIR=coolreader-ng
#---------------------------------------


#-----------Tools (if needed)-----------
# Arch-based distro
sudo pacman -S --needed base-devel qt5-base cmake
#---------------------------------------


#--------Building and installing--------
# Download and extract
mkdir $HOME/$WORK_DIR
cd $HOME/$WORK_DIR
wget -c https://gitlab.com/coolreader-ng/crqt-ng/-/archive/$CRQT_VERSION/crqt-ng-$CRQT_VERSION.tar.gz -O - | tar -xz
wget -c https://gitlab.com/coolreader-ng/crengine-ng/-/archive/$CRENGINE_VERSION/crengine-ng-$CRENGINE_VERSION.tar.gz -O - | tar -xz

# Build and install crengine-ng
mkdir ./crengine-ng-build
cd ./crengine-ng-build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DCRE_BUILD_SHARED=ON -DCRE_BUILD_STATIC=OFF ../crengine-ng-$CRENGINE_VERSION
make -j10 VERBOSE=1
sudo make install

# Build and install crqt-ng
cd $HOME/$WORK_DIR
mkdir ./crqt-ng-build
cd ./crqt-ng-build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ../crqt-ng-$CRQT_VERSION
make -j10 VERBOSE=1
sudo make install
#---------------------------------------


#--------Post install-------------------
# Enable /usr/local/lib/
echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/usrlocal.conf
sudo ldconfig

# Enable /usr/local/bin/ /usr/local/sbin/
# Make sure both of these are in your PATH variable in /etc/profile
#---------------------------------------

Удалить:

#!/bin/sh

#-----------Variables-------------------
# Working directory
WORK_DIR=coolreader-ng
#---------------------------------------


#-----------Remove----------------------
sudo xargs rm < $HOME/$WORK_DIR/crengine-ng-build/install_manifest.txt
sudo xargs rm < $HOME/$WORK_DIR/crqt-ng-build/install_manifest.txt

# For perfectionists
# sudo rm -rf /usr/local/share/crengine-ng /usr/local/share/crqt /usr/local/include/crengine-ng /usr/local/lib/cmake/crengine-ng

# Remove working directory (if needed)
rm -rf $HOME/$WORK_DIR
#---------------------------------------

flatpack/appimage прибавил бы популярности.

unisky ★★ ()
Ответ на: комментарий от unisky

sudo make install

Если я усну и проснусь через сто лет и меня спросят, что сейчас происходит на ЛОРе, я отвечу: пользователи превращают Linux-дистриубтивы в Слаку.

EXL ★★★★★ ()
Ответ на: комментарий от dataman

Ну можно же использовать FetchContent или CPM.

Можно, но мне почему-то не нравится. Хочется, чтобы в тарболе были уже все необходимые исходники. Кроме того, когда изучал FetchContent, не нашел как автоматизировать наложение своих патчей. Но FetchContent всё же использую для подключения GoogleTest и скачивания шрифтов для модульного тестирования, т.е. необязательной для юзера части.

А Qt используют md4c.

А вот этого не знал, спасибо, посмотрю.

virx ()
Ответ на: комментарий от virx

А Qt используют md4c.

А вот этого не знал, спасибо, посмотрю.

Не нашёл там расширения GitHub Flavored Markdown, а без него поддержка Markdown ну очень базовая. Да и сишный cmark-gfm наверное самая протестированная и стабильная Markdown либа, учитывая что ей пользуется сам GitHub.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

$ md2html -h

Markdown dialect options:
(note these are equivalent to some combinations of the flags below)
      --commonmark     CommonMark (this is default)
      --github         Github Flavored Markdown
#define MD_DIALECT_GITHUB (MD_FLAG_PERMISSIVEAUTOLINKS | MD_FLAG_TABLES | MD_FLAG_STRIKETHROUGH | MD_FLAG_TASKLISTS)
dataman ()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от CrX

Вот, короче. Работает. Но вроде для crengine-ng не все зависимости прописал.

crengine-ng

pkgname=crengine-ng
pkgver=0.9.4
pkgrel=1
pkgdesc='Cross-platform library designed to implement e-book readers'
arch=('x86_64')
url='https://gitlab.com/coolreader-ng/crengine-ng'
license=('GPL-2')
depends=('zlib' 'libpng' 'libjpeg-turbo' 'harfbuzz' 'zstd' 'fontconfig')
makedepends=('cmake')
source=("https://gitlab.com/coolreader-ng/${pkgname}/-/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha256sums=('18fb5b45ba02f990491e005acf690e24e60a027c32ebd150d23546bc42a48b2c')

build() {
    cmake \
        -B "${pkgname}-${pkgver}/build" \
        -S "${pkgname}-${pkgver}" \
        -DCMAKE_INSTALL_PREFIX:PATH='/usr' \
        -DCMAKE_BUILD_TYPE=Release \
        -DCRE_BUILD_SHARED=ON \
        -DCRE_BUILD_STATIC=OFF
    make -C "${pkgname}-${pkgver}/build" all
}

package() {
    make -C "${pkgname}-${pkgver}/build" DESTDIR="$pkgdir" install
    install -D -m644 "${pkgname}-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

crqt-ng

pkgname=crqt-ng
pkgver=1.0.4
pkgrel=1
pkgdesc='Cross-platform e-book reader'
arch=('x86_64')
url='https://gitlab.com/coolreader-ng/crqt-ng'
license=('GPL-2')
depends=('crengine-ng')
makedepends=('cmake')
source=("https://gitlab.com/coolreader-ng/${pkgname}/-/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha256sums=('f88c2b63179a3f7c4372beebdd488a38a88e138c03211eca98cf868c43add13d')

build() {
    cmake \
        -B "${pkgname}-${pkgver}/build" \
        -S "${pkgname}-${pkgver}" \
        -DCMAKE_INSTALL_PREFIX:PATH='/usr' \
        -DCMAKE_BUILD_TYPE=Release
    make -C "${pkgname}-${pkgver}/build" all
}

package() {
    make -C "${pkgname}-${pkgver}/build" DESTDIR="$pkgdir" install
    install -D -m644 "${pkgname}-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
CrX ()
Ответ на: комментарий от CrX

Было бы здорово в AUR добавить. PKGBUILD’ы пишутся легко.

Я точно не смогу это сделать, проверять не на чем.

virx ()
Ответ на: комментарий от CrX

Навскидку, в зависимостях отсутствуют FreeType, utf8proc, libunibreak, fribidi. И неплохо было бы явно указать cmake опции, которые задействуют эти библиотеки, например, WITH_HARFBUZZ=ON, остальные опции описаны в README.md.

virx ()

Автор хотя бы написал в новости что это вообще такое crengine-ng? Пишет так, как будто все знают какое-то очередное поделие.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

crengine-ng — форк CoolReader, нацеленный на развитие только библиотеки парсинга и рендеринга.

crqt-ng — форк CoolReader, нацеленный на развитие только программы для чтения, клиент на Qt.

В предыдущей новости ТС писал более подробно. Правда, сразу так её не найдёшь, поскольку в там был тег coolreader, а здесь почему-то нет. Добавил.

hobbit ★★★★★ ()
Ответ на: комментарий от grem

Добавить недостаточно - нужно ещё поддерживать.

Именно поэтому я и не делаю этого сам. Знаю, что следить за обновлениями и т.д. постоянно не смогу.

CrX ()
Ответ на: комментарий от Im_not_a_robot

Я думаю, что пальцы вниз не из-за удобств и прочего. Думаю, что это может быть вызвано формой сообщения.

«Хотя бы» – это что-то про то, что можно было бы сделать много всякого хорошего, но раз уж не выходит, то хотя бы вот это. Довольно пассивно-агрессивный посыл.

«если хочет, чтобы его программой пользовались» – в текущем виде, результатами работы автора вряд ли кто-то будет пользоваться. Что тоже больше похоже на выпад.

Ну, и думаю, что часть пальцев вниз была поставлена теми, кому не нравится flatpak, по какой-то причине, и нравится какой-то другой подход. Я влепил чисто из-за формы. Мне кажется, что более дружелюбным вариантом было бы что-то в духе «Flatpak планируется? Очень хотелось бы!»

kirich ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.