20070827

TiddlyWiki: персональный вики-блокнот

TiddlyWiki — это очень необычное приложение, это полноценная вики, умещающаяся в одном HTML файле. Да, в одном файле! При этом, если его открыть в почти любом современном браузере*, то появиться настоящая вики с довольно удобным интерфейсом. Можно вносить в неё любые изменения и сохранять их в этот же файл.

*С TiddlyWiki умеют работать Firefox и другие основанные на Gecko, а также Opera**, IE, Safari**, Camino. А вот в Konqueror не работает редактирование.


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

Однако проще один раз увидеть, чем сто раз услышать. Но ещё лучше попробовать (см. ниже). Посмотрите также на ссылки в конце этого поста, если интересно увидеть, как по-разному может выглядеть TiddlyWiki.

На мой взгляд, TiddlyWiki может быть удачной заменой таким приложениям как Tomboy или Zim. В прошлом я пользовался Tomboy, и TiddlyWiki удовлетворяет меня гораздо больше: она быстрее и отзывчивее, она кроссплатформенна, набор заметок и навигация по ним удобнее, и в добавок файл TiddlyWiki всегда можно выложить в веб :)

Ещё одно возможное применение: ведение дневника-блога. Этому помогает функция датированных записей и встроенная поддержка RSS.

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

Итак, я вижу следующие преимущества TiddlyWiki:
  • Переносимость. Ведь все данные и сама программа находятся в одном файле. Его можно поместить на флэшку и иметь доступ к своим записям где бы вы ни оказались. Это большое преимущество перед традиционными программами для ведения записей, которые требуют установки.
  • Кроссплатформенность. Для работы с ней достаточно браузера. И неважно, какая операционная система у вас стоит.
  • Быстрый запуск. Ведь веб-браузер и так почти всегда открыт :) Для приложения, предназначенного для коротких быстрых записей это существенно.
  • Удобный ввод данных. Богатый набор средств разметки. Ненавязчивый интерфейс.
  • Удобство навигации по записям: поиск, теги, возможность выбирать какие записи видны на экране.
  • Формат данных максимально приближен к plain-text. При желании всегда можно отредактировать в обычном текстовом редакторе. При этом, благодаря вики-разметке, записи остаются наглядными и читаемыми.
  • TiddlyWiki является свободным программным обеспечением с очень активным сообществом. Действительно, попробовав, наверное, нельзя в эту программку не влюбиться. Как результат: есть много модов, плагинов и тому подобных вещей.

С чего начать

Инструкция по «установке» следующая:
  1. Пойти на http://www.tiddlywiki.com/#DownloadSoftware и скачать пустой файл вики.
  2. (Необязательно) Пойти на http://glebsite.ru/tw/ и следуя приведённым там инструкциям установить модуль русификаци написанный Глебом Тржемецким (спасибо!)
  3. (Необязательно) По аналогии с установкой модуля русификации можно установить другие модули с других TW-сайтов, например, панельку инструментов wikibar c http://aiddlywiki.sourceforge.net/wikibar_demo_2.html
Для тех, кому лень проделывать все эти шаги самостоятельно, я выложил уже готовые русифицированные шаблоны TiddlyWiki. Они дополнены также небольшой справкой по вики-разметке. Мне её не хватало в умолчальном «пустом» шаблоне. Поэтому для близких и друзей я её написал.

Вот мои шаблоны:
empty-ru.html — базовая TW + русификация + ReminderMacros + справка по вики-разметке
empty-ru-wikibar.html — базовая TW + русификация + ReminderMacros + справка по вики-разметке + wikibar

Впрочем, если времени с момента написания этого поста (август 2007) до момента, когда вы его читаете, прошло немало, лучше пойти на www.tiddlywiki.com и взять последнюю версию оттуда. Кстати, там же есть и инструкция как обновлять код TW с сохранением данных.

Внимание! При сохранении важно использовать вариант «Сохранить ссылку как...» в контекстном меню при правом щелчке мыши по ссылке. Другие варианты могут не работать. Вариант wget URL тоже приемлим.

После этого сохранённый файл можно открывать в браузере и начинать редактировать. Первая запись, которая будет открыта называется GettingStarted. В ней можно задать своё имя и перейти к специальным записям SiteTitle и SiteSubtitle задающим название вашей вики. Ну а дальше на ваше усмотрение. Полезно также заглянуть в раздел «Установки» («Options») справа. После сеанса редактирования вики не забудьте нажать ссылку «Сохранить изменения» или ALT+S (впрочем, браузер вам напомнит, если что). При попытке сохранить файл на диск, браузер вероятно попросит разрешения на диск писать (обычно у него такого права нет, так что это нормально).

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

Миграция записей Tomboy

До TiddlyWiki я пользовался (пытался пользоваться) Tomboy. Милое приложение, только несколько медленное. И не всегда было легко добиться, чтобы создавалась нужная ссылка. И как-то совсем перестало работать, потому что во время одного из distupgrade-ов сломалось Mono, точнее что-то, от чего оно где-то глубоко внутри зависит... В общем, как и с некоторыми другими Mono-приложениями*, Tomboy у меня был, а теперь его нет. Однако после него остались записи.

*В числе других Mono-приложений, от которых я отказался: F-Spot (хотя я однажды и дождался, когда он проиндексирует мой фотоархив, работал медленно, пользоваться тегами было неудобно, а функции редактирования в нём меня после Picasa только расстраивали) и Beagle (поиск это конечно здорово, но не очень-то быстро, и самое главное, что ищет далеко не всё, а это делает его несколько бесполезным). Так что из всех Mono-приложений пользуюсь только autopano-sift.

Для конвертации записей Tomboy в TiddlyWiki я написал маленький скрипт tomboy2tiddly, описание и инструкции к нему здесь. Скрипт сохраняет гиперссылки в записях Tomboy и преобразует их в вики-ссылки, но все выделения шрифтом игнорируются. Для работы скрипта нужен xmlstarlet и python.

Скорость работы

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

Я провёл следующий эксперимент: взял свою вики с несколькими десятками записей, открыл в vim, и вставил 1001 короткую запись со случайным названием и содержимым (формат записи довольно простой). После этого полученный файл, который увеличился примерно на 100 кБ, открыл в браузере. Результат такой: время открытия файла увеличилось, файл открывался около 2 секунд, но скорость работы с вики осталась субъективно такой же (мои записи среди этой кучи мусора открывались так же быстро и изменение-сохранение записей никак не пострадало). Надо отметить, что генерировались эти 1001 запись куда дольше ;)

Мне кажется это неплохой результат. Во всяком случае, для личного вики-блокнота этого вполне достаточно. И после загрузки, в отличие от того же Tomboy, время отклика зато гораздо меньше.

Ссылки по теме

В заключение хочу дать ссылки на сайты с разными расширениями для TiddlyWiki и её модами (большинство из них сделаны, кстати, на самой TW):
  • Список разных модификаций и вариантов есть как обычно на Wikipedia
  • mptw.tiddlyspot.com MonkeyPirateTiddlyWiki, популярная модификация с изменённой системой тегов
  • www.tiddlytools.com большой архив расширений, тем и прочего добра
  • tw.lewcid.org ещё один репозиторий с расширениями для TW
  • tiddlywiki.abego-software.de и ещё один архив...
  • tiddlythemes.com архив тем для TiddlyWiki
Есть также возможность пользоваться TiddlyWiki онлайн, для этого есть как минимум два сервиса. В этом случае вики находится на сервере, но её всегда можно скачать на локальный диск, и потом синхронизировать обратно:
Стоит также отдельно отметить сайт сообщества разработчиков www.tiddlywiki.org и очень активную гугл-группу, посвящённую обсуждению TiddlyWiki.

Приятных записей!

Обновления: упомянул о поддержке RSS и поставил ссылку на гугл-группу.

Обновление 7.9.2007
**В комментариях отметили, что в Opera 9 не работает сохранение. Я установил Оперу, попробовал — действительно. Впрочем, в Google-группе TiddlyWiki объясняется в чём дело (Javascript в Opera в принципе не может писать на локальный жёсткий диск) и предложено решение проблемы. Сохранять TiddlyWiki в Opera (и Safari) можно с помощью Java-апплета TiddlySaver, помещённого туда же, где находится файл TiddlyWiki. Конечно, в этом случае требуется, чтобы в Opera была включена Java, а в ~/.java.policy было добавлено разрешение на запись файлов
grant codeBase "file:${user.home}/text/wiki/*" {
permission java.io.FilePermission "${user.home}${/}text${/}wiki${/}*", "read,write";
};