пятница, 14 марта 2014 г.

Ведение заметок в Linux

Наверное, каждому пользователю персонального компьютера встречается время от времени информация, которую хотелось бы запомнить или сохранить. Первое, что может придти в голову - это добавить закладку в браузер или сохранить целиком заинтересовавшую страницу, если информация попалась вам при блуждании по просторам интернета, или создать файл в текстовом редакторе и сохранить его куда-нибудь. Вариантов масса, однако, в таком случае информация может быть разрозненна и найти что-то в дальнейшем будет достаточно сложно, особенно, если что-то было сохранено через браузер, что-то было набрано вручную или отсканировано и где-то сохранено на жёстком диске.

В этой статье я расскажу о способах хранения заметок с возможностью структурирования и полнотекстового поиска, которыми я пользовался, и, основываясь на своём опыте, попытаюсь перечислить все плюсы и минусы.

Gnote/Tomboy

Эти две программы я рассматриваю одновременно, т.к. их возможности почти полностью совпадают, отличие лишь в том, что Gnote написан на Си с использованием библиотеки Gtk+, а Tomboy написан на C# и работает под управлением Mono.

Обе утилиты просты в использовании, достаточно кликнуть "Добавить заметку", скопировать или набрать текст, сохранение происходит автоматически. Поддерживается форматирование текста, первая строка заметки - это заголовок. Можно ссылаться на другие заметки, используя заголовки, таким образом, можно создать целую систему. Поддерживается также добавление тегов, при помощи которых происходит разделение на блокноты. При сохранении заметки программа сама создаёт уникальное имя файла, и вам не приходится придумывать название для файла, а ссылки всегда остаются уникальными не смотря на изменение названия, при этом происходит автоматическое переименование всех ссылок на данную заметку. Обе программки интегрируются в среду Gnome, можно настроить глобальную горячую клавишу на быстрое добавление.

Сам я пользовался сначала Tomboy, потом перешёл на Gnote, и это был основной инструмент для ведения заметок. Постараюсь перечислить плюсы и минусы этих систем, информация по большей части относится к Gnote, в Tomboy может что-то отличаться.

Плюсы:

  • Простота в использовании, можно быстро добавить заметку.
  • Интеграция с Gnome.
  • Поддерживаются ссылки на другие заметки и внешние гиперссылки.
  • Встроенный полнотекстовый поиск.

Минусы:

  • Нельзя вставлять картинки, таблицы.

Программы свободные и присутствуют практически в любом современном дистрибутиве Linux.

Набор текстовых/markdown/html/odt и прочих файлов

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

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

Для структурирования может подойти сама файловая система, т.е. разбиение по каталогам уже внесёт структуру. С полнотекстовым поиском сложнее, если файлы имеют различный формат, требуется стороннее программное обеспечение, предназначенное для этой цели. В случае текстовых файлов может помочь консольная утилита grep.

Рассмотрим несколько форматов по отдельности кроме текстового, т.к. там всё и так понятно.

Markdown

Это расширенный способ хранения текстовых файлов. Формат файла при этом остаётся текстовым, но редакторы, поддерживающие этот формат, отображают текст отформатированным соответствующим образом, т.е. заголовки, списки, ссылки и даже, в некоторых случаях, таблицы и рисунки. Формат легко конвертируются во множество других при помощи утилиты pandoc. Данный формат комбинирует в себе достоинства текстовых файлов и более сложных, типа html или odt.

Достоинства:

  • Простой текстовый файл.
  • Достаточно легко конвертируется из html, если последний не имеет изображений.
  • Полнотекстовый поиск возможен через grep или другие утилиты.
  • Поддерживается форматирование текста (атрибуты шрифта, заголовки).
  • Поддерживаются ссылки, как локальные, так и внешние.
  • Поддерживается вставка картинок.
  • В некоторых редакторах возможно также ведение таблиц.

Недостатки:

  • Картинки вставляются в виде ссылок, поэтому нужно позаботиться о доступности файла с изображением, сама картинка в текстовом файле, по понятным причинам, не отображается.
  • Мало редакторов, поддерживающих этот формат (имеется в виду отображение форматирования), например, vim или emacs.

Кстати, эту статью я набирал в vim с использованием markdown с последующей конвертацией в html.

HTML

Если нужная информация попадается вам преимущественно через интернет, то данный способ её хранения может быть достаточно удобным, т.к. любой браузер поддерживает сохранение страниц со всем содержимым. Также возможно создать файл-содержания на том же html со ссылками на другие файлы, можно даже реализовать целую wiki-подобную систему, всё зависит от ваших желаний и знаний html. Помимо этого файлы практически любого формата могут быть сконвертированы в html.

Достоинства:

  • Поддерживаются очень широкие возможности по форматированию текста.
  • Можно быстро сохранять информацию из браузера.
  • Возможна конвертация из других форматов, текстовые процессоры вроде Libre Office Writer, поддерживают экспорт в html.
  • Поддержка ссылок, в том числе на текст внутри документа.
  • Возможность вставки изображений.
  • Возможность вставлять произвольный контент, даже видео (хотя здесь уже возникают некоторые трудности).

Недостатки:

  • При простом сохранении из браузера сохраняется много лишней информации.
  • Полнотекстовый поиск возможен только при помощи стороннего программного обеспечения (хотя вроде есть способ самими средствами html, т.к., например, справка по языку Perl распространяется именно в виде html, и там присутствует полнотекстовый поиск).
  • Сложности с редактированием, хотя, если привыкнуть и подобрать подходящее ПО для этого, то всё довольно тривиально.

ODT и прочее

Достоинства:

  • Лёгкость редактирования и вставки информации из любых источников.
  • Широкие возможности форматирования текста.
  • Поддержка ссылок, при чём даже внутри документа.

Недостатки:

  • Часто, это сложный формат, поэтому возникает сложность, если вы захотите использовать что-то другое, другую систему, другой формат хранения.
  • Ещё более затруднён полнотекстовый поиск.

VimWiki

Если вы любитель vim или хардкорный пользователь линукс, то этот вариант может вам подойти. Это уже не просто какой-то формат файла, это целая система, очень гибкая, настраиваемая, вы сами вольны в выборе структуры данных. Используя vimwiki, вы будете думать только о структурировании информации, а не файлов, в которых она хранится. Формат самих файлов подобен markdown, но значительно отличается по синтаксису, при этом переход по внутренним ссылкам возможен внутри текстового редактора. Также имеется множество встроенных функций по форматированию, например, легко создаются текстовые таблицы, списки, имеется поддержка TO-DO списков и многое другое. В общем, система предназначена именно для хранения и упорядочивания информации любого рода.

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

Преимущества:

  • Простой текстовый формат.
  • Широкие возможности по структурированию информации.
  • Встроенная команда для полнотекстового поиска по шаблону.
  • Поддержка ссылок и форматирования текста.
  • Поддержка таблиц и средства для их редактирования.
  • Поддержка TO-DO списков.
  • Поддержка рисунков.
  • Встроенные возможности конвертации в набор html-страниц.

Недостатки:

  • Сложность вставки информации, т.к. форматирование в любом случае теряется.
  • Требуется подготовка для того, чтоб использование было простым и комфортным.
  • Рисунки, разумеется, в vim не отображаются, а только после конвертации в html, при этом нужно следить за доступностью самого изображения (лучше сохранить в каталог с html-файлами).

Лично я остановился на использовании этого способа хранения информации и даже написал конвертер из Gnote/Tomboy.

Evernote

Я думаю, если вы задумываетесь о том, каким образом хранить заметки, то вы, скорее всего, уже встречали упоминание об этой системе в интернете. Возможности гораздо шире, чем у всех перечисленных выше способов, даже есть встроенные средства синхронизации, онлайн-доступ и программа для мобильных устройств. Существуют плагины для большинства браузеров, что позволяет не только добавить быстро заметку, но и убрать на лету ненужную информацию, при чём автоматически. Вставка изображений, поддержка TO-DO списков и многое другое. Возможно хранение не только текстовой информации, но и звуковой, и даже видео.

Сам я пробовал некоторое время пользоваться ей, но то, что данное решение несвободно, а также отсутствие нормального приложения для линукс перечёркивает все его достоинства.

PS

Я попытался рассмотреть здесь лишь те способы, которые сам использовал, и на себе ощутил достоинства и недостатки каждого из них. Можно также рассмотреть вариант с каким-нибудь wiki-движком под Apache, который может использоваться локально через браузер, но это уже слишком сложная система для простого хранения заметок.

В достоинства я включал такой пункт, как "Простой текстовый формат", возможно, кто-то спросит: "В чём же состоит достоинство?" Это моё личное мнение, может кто-то разделит его со мной, кто-то нет. Дело в том, что с текстовыми файлами вы можете делать всё, что вздумается, например, можно использовать вместе с системой хранения заметок систему управления версиями, с помощью которой вы сможете отслеживать сделанные изменения, что затруднено при использовании сложных форматов. Также содержание текстового файла можно менять любым редактором, и не требуется специализированное программное обеспечение.

Комментариев нет:

Отправить комментарий