Существует ли способ расшириться xdg-открытый?

Я надеюсь, что заголовок не вводит в заблуждение.

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

[read more](/path/to/file.pdf)

Я не мог найти способ открыть его на уровне определенной страницы. Я не могу создать ссылку в формате, который принимает читатель PDF.

Существует ли хороший способ, которым я могу открыть файлы со сценарием? В основном я хочу заменить #page=5 с -p 5 каждый раз.

Я думал, что мог записать, что моя собственная обертка пишет сценарий таким образом, что я могу ввести:

[read more](/path/to/file.pdf#page=5)

и мой сценарий анализирует путь и преобразовывает его в

 xdg-open /path/to/file.pdf -p 5
3
задан 12 October 2018 в 17:11

1 ответ

Я не уверен, насколько изящный метод ниже. Но это обычно работает на меня.

Я использую ReText в качестве редактора Markdown и планирую использовать

[link-to-pdf](pdf-filename.pdf#page=2)

синтаксис для PDF с номером страницы.

Таким образом, я определил свое локальное xdg-open сценарий обертки:

mkdir /home/$USER/bin
echo "export PATH=/home/$USER/bin:$PATH" >> .bashrc

и помещенный следующий код в /home/$USER/bin/xdg-open:

#!/bin/sh

pdfviewer=atril
filename="$1";

case $filename in
    *.pdf#page=*) 
            file=$(echo "$filename" | cut -d "#" -f 1);
            page=$(echo "$filename" | cut -d "#" -f 2 | sed "s/page=/-p /");
            $pdfviewer "$file" $page ;;
    *)      /usr/bin/xdg-open "$@" ;;
esac

Этот сценарий должен быть исполняемым файлом (набор с chmod +x /home/$USER/bin/xdg-open), и это будет использоваться только если .pdf#page= будет найден, иначе это будет использовать в масштабе всей системы /usb/bin/xdg-open.

Я протестировал этот метод со средством просмотра PDF Atril на моем ПОМОЩНИКЕ LTS Ubuntu 16.04.
Можно измениться pdfviewer переменная к evince если Вы хотите.

Как свободная премия мы можем использовать .pdf#page= синтаксис в терминале:

xdg-open /usr/share/doc/qpdf/qpdf-manual.pdf#page=12

Примечание: после таких манипуляций мы имеем два xdg-open исполняемые файлы - вывод whereis xdg-open должен стать xdg-open: /usr/bin/xdg-open /home/user/bin/xdg-open /usr/share/man/man1/xdg-open.1.gz.

3
ответ дан 1 December 2019 в 16:16

Другие вопросы по тегам:

Похожие вопросы: