Начал делать свой outliner

Начал делать свой outliner

В последнее время здесь в блоге я много писал про разные Outliner’ы и персональные вики. Вроде бы программ такого типа полно, но лично мне в каждой из них чего-то, но не хватало, поэтому решил все-таки делать свой outliner, пусть и не очень навороченный. Года два назад я уже задумывался над этим, но все-таки надеялся найти уже готовую программу, которая меня бы полностью устроила.

В последнее время приступил к написанию своего outliner’а (странно, что для этого термина в русском языке как-то не нашлось даже жаргонного аналога, можно пользоваться выражением «персональная вики», но это не совсем то). Рабочее название проги — OutWiker (от слов outliner и wiki).

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

  • Каждая страница может быть разного типа (простой текст, HTML, текст в нотации wiki и т.д.).
  • Дерево заметок хранится в виде обычных директорий на диске
  • Возможность шифрования заметок
  • К каждой странице можно прикреплять любое количество файлов, причем для этого достаточно просто скопировать файл в определенную папку
  • Список последних измененных страниц (чтобы не искать страницы, с которыми работал в последний раз)
  • К каждой заметке можно добавлять теги
  • Шаблоны для новых страниц
  • И всякие мелочи вроде установки иконок для записей в дереве, возможность редактирования страниц во внешнем редакторе.
  • Возможно, что сделаю возможность расширения типов страниц с помощью плагинов, но это не сразу.

Прогу пишу на связке Python + wxPython, чтобы было проще с кроссплатформенностью, прога будет опенсорсная.

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

В качестве рендера для страниц хочу использовать движок WebKit в виде компонента wxWebKit.

Пока думаю как быть с шифрованием. Шифроваться будут отдельные страницы, а вот как быть с прикрепленными файлами? Сейчас хочу кидать их в запароленный архив.

И заодно хотелось бы спросить, может вы знаете, где можно скачать бесплатные иконки для кнопок размером 16×16, чтобы меня потом не повесили за нарушение авторских прав? У меня есть коллекция иконок из Eclipse, но, честно говоря, какие-то они страшненькие.

PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 3, средняя оценка: 5,00)
Загрузка...

комментариев 12

  1. Mad:

    Вот сет «Silk», бесплатный и очень удачный — http://www.famfamfam.com/lab/icons/silk/.

  2. Renat:

    Ждём-с, где можно будет код посмотреть?

  3. Jenyay:

    @Mad Спасибо, пожалуй, им и воспользуюсь.

    @Renat Я сейчас залил исходники на github, но пока ссылку не даю, хочу более-менее до удобоваримого состояния довести, чтобы были полностью готовы хотя бы простейшие операции с GUI.

  4. Bobrovod:

    Давно ищу аутлайнер, с удовольствием читал ваши заметки на эту тему.
    Вы уж извините, не удежусь, напишу что я думаю о идеальном для меня оутлайнере. такие хотелки, может и вам интересные
    1. редактор текста, мне очень нравится как сделан редактор в notepad++, и подсветка там замечательная, и выделять можно блоками, почти что чудесный доснавигаторовский редактор (а там была возможность рисовать псевдографикой рамки!, но сейчас такое малоактуально)
    2. в том же NPP есть удобная штука, когда убирается часть текста отмеченного структурными тегами чкак-бы под кат
    а я вижу это, как некие «кармашки», выделил, например, текст, или картинку в заметке, сказал, «скрыть» и оно спряталось в полоску со стрелкой.
    3. Интерфейс гибкий, как в foobar2000, и возможность переключения двух видов, один максимальный, когда открыты все панели инструментов и менюшки, а другой — только редактор текста, с минимумом кнопок, чтоб его можно было в углу в четверть экрана пристроить.
    4. Возможность открывать сразу несколько проектов, и перенос между ними заметок.
    5. Простейшие таблицы, добавление, удаление колонок и строк.
    6. Возможность отмечать заметки в календаре, т.е привязывать к дате, как задачи.
    7. Еще возможность вести хронологию, когда создана, изменена та или иная заметка. и поиск по этим полям. Тут ещё напрашивается некое повременное представление заметок, таймлайн.
    8. Возможность привязки одной заметки к нескольким узлам дерева, или создание линка, виртуальной заметки.
    9. Категории заметок, фавориты и тэги.
    Вот, пока всё, что вспомнил)

  5. Jenyay:

    @Bobrovod Постараюсь учесть Ваши пожелания. Идея с таймлайном мне особенно понравилась.

    По поводу 8 и 9: тоже хочу сделать что-то подобное (виртуальные узлы, фавориты и теги).

  6. Red Fox:

    А механизм подключения плагинов планируете встроить? Или расширять функции можно будет только в исходном коде? По-моему возможность подключения плагинов была бы нелишней, все-таки разбираться в большом объеме кода сложнее, чем написать относительно автономную часть. Имея возможность подключать плагины любой сможет создать приложение с разной степенью навороченности.
    Я тоже перебираю много разных аутлайнеров, идеала пока не нашел, но свой писать не могу, я, к сожалению, не программист. Хотя уже были мысли научиться программировать, потому что перебрав множество аутлайнеров, не нашел подходящего, действительно, прямо хоть сам пиши.
    На Python есть проект — KeepNote — http://rasm.ods.org/keepnote/ — пока не особенно много чего умеет, но вроде бы не заброшен. Может с его автором объединить усилия? Или использовать что-то из него?

  7. Jenyay:

    @Red Fox В будущем да, но нет особой уверенности, что программа будет особенно раскрученной, чтобы для нее писали плагины. Из того, что хотелось бы переложить на плагины — это разные типы страниц и форматирование страниц в формате вики (в смысле, что плагины могли бы расширять доступное по умолчанию форматирование).

    Да, KeepNote я видел, но у меня он не всегда запускается, причем если дома, например, какая-то версия работает, то приношу ее на работу, а там она молча закрывается. Да и еще мне не нравится там то, что диалоги открытия/сохранения оформлены под GTK — очень не удобно.

    Мне больше нравится WikidPad, он тоже написан на питоне + wx.

  8. Bobrovod:

    Подумал по поводу фаворитных заметок, для них нужно некое поле, например, если Вы собираетесь делать классический дизайн, под деревом оставить место, куда их можно перетягивать мышью, и где они на глазах будут всегда, и ограничить кол-во фаворитов 10-15 штуками (или оставить на откуп пользователю в настройках, но всё равно ограничить, скажем 99).
    Ещё вспомнил, очень бы желательно, чтобы не забывали о горячих клавишах, обычно в работе с тесктом, мышь лишь вспомогательный, вынужденный инструмент, у меня по крайней мере.
    и, есть ещё пожелание, все настройки чтобы хранились в папке с программой, для пущей портабельности.
    про шифрование, можно шифровать заметку целиком, а можно лишь часть заметки, т.е. шифруется блок информации, но при этом в заметке есть и нешифрованные данные, и отображается в заметке только открытая часть, пока пароль не введешь.
    и ещё архинужная вешь — бакапы, достаточно жать всё в zip-архив по крону.

  9. Jenyay:

    > Подумал по поводу фаворитных заметок…

    Для начала я их собираюсь делать как в браузерах в виде меню.

    > Ещё вспомнил, очень бы желательно, чтобы не забывали о горячих клавишах

    Обязательно

    > все настройки чтобы хранились в папке с программой, для пущей портабельности.

    Тоже обязательно. Сам ношу такие заметки на переносном диске.

    > про шифрование, можно шифровать заметку целиком, а можно лишь часть заметки, т.е. шифруется блок информации, но при этом в заметке есть и нешифрованные данные, и отображается в заметке только открытая часть, пока пароль не введешь.

    На первое время такого не обещаю, но добавлю в ToDoList на всякий случай.

    > и ещё архинужная вешь – бакапы, достаточно жать всё в zip-архив по крону.

    Согласен.

  10. anonymous:

    Bobrovod, как Вы точно org-mode описали.

  11. vvi:

    прога будет опеРсорсная

  12. Jenyay:

    @vvi, спасибо, поправил.

Leave a comment

Subscribe without commenting