Хранение заметок в виде дерева
Обновлено: 07.09.2024
Такое хранение заметок подразумевает, что файлы и папки заметок могут быть в любой момент изменены внешними средствами, например, файловыми менеджерами, с помощью них вы можете переносить заметки из одной ветви дерева в другую или даже в другое дерево с заметками, а если вам не хватает возможностей встроенного в OutWiker редактора, то вы можете редактировать заметки с помощью любого текстового редактора, способного открывать и сохранять файлы в кодировке UTF-8, для этого можно воспользоваться плагином ExternalTools.
Однако такой способ хранения, а особенно предположение, что заметки могут изменяться без участия OutWiker, накладывает ряд ограничений. Во-первых, под Windows на данный момент вы ограничены в длине пути до файла, она не может превышать 255 символов (есть пути обхода этого ограничения, возможно, в будущем эта проблема будет преодолена). Во-вторых, поскольку любая заметка может изменяться без участия OutWiker, нет возможности сделать какой-либо кэш с общей информацией обо всех заметках, например, индекс для поиска или информацию о тегах заметок. Поэтому при глобальном поиске приходится каждый раз заново просматривать содержимое каждой заметки, что может занимать достаточно долгое время.
Как уже было сказано, каждая заметка - это просто папка с некоторыми служебными файлами внутри другой папки-заметки, поэтому для создания вложенной заметки достаточно создать папку с именем вложенной заметки, а в ней создать два файла: __page.opt и __page.text (этот файл не нужен для страниц глобального поиска). Формат хранения каждого типа заметок может отличаться, но файл __page.opt должен присутствовать всегда, о его формате будет написано ниже .
При работе с исходниками OutWiker, например, при создании плагина папки и файлы явно создавать не нужно, для создания заметок и работы с прикрепленными файлами существуют специальные классы внутри API OutWiker (классы, предназначенные для работы со страницами содержатся в файле src/outwiker/core/tree.py.
Также в папке с заметкой может храниться значок, установленный для заметки. Файл со значком может записан в различных графических форматах, но рекомендуется использовать формат png. В этом случае файл со значком должен иметь имя __icon.jpg . Изображение значка должно иметь размер 16x16 пикселей и может использовать прозрачность. Чтобы внешний вид заметок не зависел от настроек программы OutWiker на различных компьютерах, файл значков копируется в папку с заметкой.
Стиль страниц хранится в файле __style.html . Если нужно, в папке __style могут находиться дополнительные файлы. Подразумевается, что основные определения стиля хранятся в __style.html , а в папке __style могут находиться рисунки или скрипты на языке JavaScript, необходимые для отображения стиля. Если для страницы устанавливается стиль по умолчанию, то файл __style.html и папка __style просто удаляются.
Ограничения на имена заметок¶
На имена заметок накладываются некоторые ограничения. Во-первых, ограничения накладывает файловая система. Если под Linux имя директории не может включать в себя только нулевой символ (0), а в остальном вы не ограничены, то под Windows вы не можете создать папку (и, соответственно, заметку) с символами >, __attach внутри каждой заметки (в случае, если прикрепленные файлы есть). Про хранение вложенных файлов будет сказано ниже .
Также ограничения выражаются в том, что внутри одной заметки не может быть двух вложенных заметок с одинаковыми именами.
Обойти эти ограничения можно с помощью псевдонимов .
Формат файла __page.opt¶
Файл __page.opt является основным файлом в папке заметки, именно он определяет формат страницы, а также различные ее настройки, но этот файл не содержит содержимое страницы, которое видит пользователь (для этого служит файл __page.text ).
В данном примере содержатся три раздела параметров: General , Tree , wiki и Misc . Количество разделов и настроек внутри них зависит от формата страницы, в этом примере приведены параметры для викистраницы.
Параметры, общие для всех видов страниц¶
Для начала разберем параметры, общие для всех типов страниц. Начнем с раздела [General] .
type . Это единственный обязательный параметр среди всех параметров. Именно он определяет тип страницы. На данный момент существуют 4 типа страниц со следующими типами:
- text - простая текстовая страница.
- html - страница в формате HTML.
- wiki - викистраница.
- search - страница глобального поиска.
tags . Этот параметр хранит список меток, которые были применены к странице. Метки перечисляются через запятую (после запятой можно ставить пробел).
order . Задает положение заметки в дереве по сравнению с заметками того же уровня. Чем это значение меньше, тем выше располагается заметка в ветви. Если заметки имеют одинаковое значение параметра order или оно отсутствует, то такие заметки сортируются по алфавиту.
cursorposition . Положение курсора, которое было перед закрытием страницы. Это значение используется для того, чтобы при повторном открытии страницы курсор стоял на том же самом месте, как и в тот момент, когда страница закрывалась.
uid . Уникальынй идентификатор страницы, который используется для ссылок. В приведенном выше примере идентификатор равен __a07bd7a7-2be3-41f7-a17d-1ec3997ee988 , это значит, что ссылка на эту страницу будет выглядить как page://__a07bd7a7-2be3-41f7-a17d-1ec3997ee988 . При создании заметки странице не присваивается никакой идентификатор, и этот параметр отсутствует, он появляется, когда идентификатор впервые запрашивается, например, при копировании ссылки на страницу в буфер обмена с помощью пункта меню Инструменты ‣ Копировать ссылку на страницу или одноименного пункта контекстного меню.
alias . Псевдоним страницы или отображаемое имя. Если данный параметр не задан, то в программе OutWiker имя заметки отображается по имени папки, которая содержит данную заметку. Однако, как было написано выше , это накладывает некоторые ограничения на имена заметок. С помощью псевдонима можно обойти эти ограничения. Псевдоним - это строка, содержащая любые символы. Если для страницы установлен псевдоним, то псевдоним будет отображаться везде вместо имени заметки. Таким образом, для имени папки сохраняются прежние ограничения, а отобржаемое имя заметки может быть произвольным. В основном интерфейсе программы OutWiker нет указаний на возможность установки псевдонимов, чтобы не запутать пользователей. Однако, если вы уверенный пользователь, то можете воспользоваться плагином HackPage, который среди прочего позволяет устанавливать псевдонимы для страниц.
Хранение значка страницы¶
Все стандартные значки расположены в папке iconset в папке программы, а их имена начинаются с префикса __std_ .
Если для страницы устновлен один из стандартных значков, то в файл __page.opt в раздел [General] добавляется параметр icon , значение которого равно относительному пути до файла значка, начиная из папки iconset . Например, если для страницы установлен значок __std_envelope.jpg , которая расположена непосредственно в папке iconset , то в файле __page.opt будет такая строка:
Если для страницы установлен пользовательский значок, то из файла __page.opt удаляется параметр icon , а в папку заметки будет скопирован пользовательский значок с именем __icon.* , расширение которого совпадает с расширением пользовательского значка. То есть, если исходный пользовательский значок имеет имя myicon.jpg , то в папке заметки будет создан файл __icon.jpg .
Такой способ хранения заметок сделан для того, чтобы программа могла бы отображать как стандартные значки, так и пользовательские, которые могут быть не установлены на том компьютере, где открывается дерево заметок.
Хранение вложенных файлов¶
Одно из применений таких служебных папок описывается в следующем разделе.
Хранение миниатюр¶
На викистраницах есть возможность создавать уменьшенные копии изображений (миниатюры) с помощью команды %thumb% . %% . При использовании этой команды могут быть заданы размеры создаваемых миниатюр. Поскольку миниатюры иногда могут оказаться полезными сами по себе, то они отображаются не просто с помощью тега со ссылкой на оригинальный файл и с атрибутами width и height, задающими размер, а миниатюра создается в виде отдельного файла.
Поскольку в большинстве случаев пользователю незачем видеть созданные миниатюры в списке прикрепленных файлов, а хранить эти файлы где-то надо, для этого в папке __attach создается вложенная папка __thumb . Так как ее имя начинается символов __, она не отображается в списке прикрепленных файлов.
Сами миниатюры хранятся в этой папке и имена их файлов однозначно идентифицируют файл картинки, из которого они были созданы, а также размер миниатюры.
Например, если к викистранице прикреплен файл image.jpg, а на самой странице содержится текст:
то в папке attach/__thumb/ будут созданы следующий файлы:
- th_width_200_image.jpg
- th_width_400_image.jpg
- th_height_200_image.jpg
- th_maxsize_200_image.jpg
Таким же образом создаются миниатюры для каждого размера, и в то же время если в тесте страницы встретится еще одно упоминание миниатюры с тем же размером, то оно не будет создано повторно. К тому же имена миниатюр остаются читабельными, можно легко найти нужную миниатюру и скопировать ее с помощью файлового менеджера в другую папку, если этот файл миниатюр понадобится для других целей.
Формат простых текстовых заметок¶
Формат файла __page.opt для простых текстовых заметок не имеет каких-то специфических параметров. При этом параметр type в разделе [General] должен иметь значение text .
Текст заметки хранится в файле __page.text в том виде, в котором он отображается в окне редактирования.
Классы, предназначенные для работы с текстовой страницей расположены в папке src/outwiker/pages/text/.
Формат страниц в формате HTML¶
Если этот параметр имеет значение False , тогда теги
добавляться не будут, и пользователь сам должен будет писать теги
или
для оформления абзацев. В этом случае введенный код HTML будет интерпретироваться точно так, как он введен. Этот режим может быть удобен, например, для подготовки текста для сайта.
При работе с OutWiker пользователь вводит только тело HTML, а именно то, что обычно включается в теги …
На днях я выложил новую версию программы для хранения заметок OutWiker. Когда-то, больше года назад, я уже писал про нее на Хабре, за это время программа много раз обновлялась, обрастала новыми возможностями, что уже нет смысла сравнивать последнюю версию программы с ее (поза)прошлогодней версией.
OutWiker — это кроссплатформенная (Windows, Linux) программа для хранения заметок в виде дерева. Распространяется OutWiker с открытыми исходниками. Особенностью программы является то, что все записи хранятся не в одном файле, а структура формируется из вложенных файлов и папок. Кроме того, программа поддерживает несколько типов страниц: простые текстовые страницы, страницы, где для оформления заметок используется HTML и страницы в формате викинотации (напоминающую pmWiki).
Например, на следующем скриншоте показан викитекст для первой картинки поста.
Для викинотации можно посмотреть ее соответствие в формате HTML. Эту возможность можно использовать, например, для оформления постов в блоги. Все-таки викинотация более лаконична, чем HTML, поэтому, ИМХО, для написания больших текстов пользоваться ей удобнее.
Если не хотите пользоваться викинотацией, то можно писать заметки непосредственно в формате HTML. И в том и в другом формате на панель инструментов выведены кнопки для вставки наиболее часто используемых тегов (для HTML-страниц) и викикоманд (для викистраниц). Есть еще тип страниц без оформления — обычные текстовые записи, но о них говорить особо нечего.
Для каждой страницы можно устанавливать метки (теги), которые группируются в облако тегов на отдельной панели. При клике на метку откроется список заметок, помеченные этим тегом.
С недавних пор OutWiker начал поддерживать плагины, список которых можно увидеть здесь. На момент написания этих строк созданы следующие плагины: для раскраски кода на различных языках, для экспорта заметок и веток дерева в формат HTML, для оформления ссылок на ЖЖ-пользователей, как это принято в самом ЖЖ, и еще несколько плагинов, связанные с оформлением страниц в викинотации. Например, на следующем скриншоте показана работа плагина Source для раскраски исходников.
В ближайших планах есть идеи еще некоторых полезных плагинов.
В викистраницы можно вставлять формулы в формате TeX, вставлять прикрепленные картинки или их уменьшенные превьюшки (в планах есть плагин для создания галереи из прикрепленных картинок).
Кроме того, относительно недавно прислали украинскую локализацию OutWiker'а.
В OutWiker 1.6 появилась возможность устанавливать стили страниц. Ниже на скриншотах показана одна и та же страница с применением разных стилей.
Как я уже говорил, программа является кроссплатформенной, пользователи Windows могут скачать сборку под эту ОС, для линуксоидов есть архив с исходниками, а для пользователей Ubuntu подготовлен PPA, ссылки на все это есть на странице программы.
. Приводится примерный список программ и их условная классификация, для того чтобы можно было определиться с желаемым функционалом.
Программы, которые заслуживают внимания: KeepNote, Ultra Recall , LivePAD -чуть ли не аналог OneNOTE, INFOSELECT
Организаторы, дерево заметок + текст для каждой ветки дерева: - имеют примитивный или мало функциональный текстовый редактор
Блокнотик бесплатный, проект остановлен, MemPad бесплатный и простой, TakeNote еще такой же, TheGuide opensource , TreePad Lite
Программы под LINUX системы , ZIM-WIKI Win&Linux under Gtk2-Perl
Возможности:
• Древовидная структура записей.
• Во встроенном редакторе: форматирование шрифта, маркированные списки.
• Вставка через буфер более богатого форматирования, изображений, таблиц.
• Автосохранение записей.
• Портабельность: может работать сразу без инсталляции со съёмных носителей.
• Фильтр (поиск) по всем записям по мере набора поискового запроса.
• Импорт записей:
• из папок с RTF и TXT-файлами;
• из программы OutWiker (из текстовых файлов с поддержкой некоторых видов форматирования (ссылки, маркированные списки одного уровня);
• Экспорт:
• в кликабельный HTML (готовый к заливке на любой хостинг, с некоторым форматированием: ссылки, списки одного уровня),
(возможна настройка html-шаблона всех страниц),
• в отдельные RTF-файлы с полным форматированием,
• в один DOC-файл с полным форматированием.
• Автоматическое резервное копирование базы (mdb, не файлов).
• Работает на Windows (XP, 7, 8, 10).
• Простой текст хранится в базе MDB, форматированный в файлах.
• Создаётся минимум файлов и папок: файлы не создаются для пустых страниц без текста (категорий, разделов), папки не создаются для страниц, у которых нет дочерних.
• Можно редактировать текст внешними программами (Word), затем вставлять текст в программу через буфер.
• Внимание. Если в папках базы изменить форматированный текст внешней программой, изменения не будут доступны в поиске, нужно обязательно скопировать весь текст в буфер, закрыть файл с форматированием, вставить скопированный текст в окно программы.
На мой взгляд такой формат должен быть построен на общепринятом формате вроде JSON или XML, при этом иметь заголовочную часть, куда можно записать такую информацию как кодировка, возможно сведения об авторах дерева заметок и т.п.
Потом должно быть описано дерево заметок, причем каждая заметка должна хранить информацию о странице (может быть опять кодировку, теги, ID, цвета в дереве заметок и что-то в этом роде), а вторая часть должна включать саму заметку с оформлением в общепринятом формате (RTF или HTML). Markdown тут не подойдет, поскольку он создан специально с ограниченными возможностями, а не как замена HTML.
Также надо в каждой заметке уметь хранить произвольные файлы, скорее всего кодированные в base64.
Проблема с форматами XML или JSON может заключаться в том, что такой файл будет огромный, и насколько возможно распарсить эти форматы, не загружая их полностью в память.
Это уже пусть пользователь решает, нужно ему или нет (лично для меня выделение цветом - полезная вещь). Если программа предоставляет эту возможность, ее нужно сохранить при импорте / экспорте.
Свободный и легкий планировщик, всего 465 КБ, который позволяет вам хранить все ваши заметки, электронные письма, тексты, гиперссылки и многое другое в одной или нескольких текстовых базах данных.
Благодаря привычному интерфейсу Windows Explorer редактирование, хранение, просмотр, поиск и извлечение данных не может быть проще!
TreePad может быть запущен непосредственно с USB-накопителя, поэтому его можно легко переносить.
Чтобы найти любую статью, которую вы ранее создали или импортировали, вы можете просматривать дерево и папки как в Windows Explorer.
Альтернативы для TreePad
832
Приложение для ноутбука для хранения заметок и других записей в цифровом виде.
- Бесплатная
- Windows
- Android
- iPhone
- Mac OS
Microsoft OneNote, часть Microsoft Office Suite, представляет собой приложение для ноутбуков для хранения заметок и других записей в цифровом виде. Программа предлагает общие записные книжки, синхронизацию между несколькими компьютерами и устройствами через онлайн-хранилище Windows Live, а также оптическое распознавание символов (OCR) для получения текста с изображений, визитных карточек и т. д.
393
Красочное и мощное приложение для заметок для Windows и телефонов.
- Платная
- Windows
- Android
- iPhone
- Онлайн сервис
356
Персональная вики на рабочем столе с встроенным предварительным просмотром по мере ввода и множеством плагинов.
Zim переносит концепцию вики на рабочий стол. Сохраняйте информацию, связывайте страницы и редактируйте их с помощью разметки WYSISYG или непосредственно набирайте синтаксис упрощенной разметки и просматривайте ее в режиме предварительного просмотра.
203
CintaNotes - это ультра-эргономичное приложение для заметок с возможностью повышения производительности Windows.
CintaNotes - это ультра-эргономичное приложение для заметок с возможностью повышения производительности Windows. Оно поможет вам собирать, систематизировать и находить любую информацию.
169
Приложение для создания иерархических заметок, с выделением частей форматированного текста и синтаксиса, хранящее данные в одном xml или sqlite файле.
Приложение для создания иерархических заметок, с выделением частей форматированного текста и синтаксиса, хранящее данные в одном xml или sqlite файле.
155
wikidPad - это Wiki-подобная записная книжка для хранения ваших мыслей, идей, списков задач и контактов.
130
Настольное приложение для Windows, позволяющее оставаться в курсе ваших повседневных задач.
Простой, но эффективный способ быть в курсе ваших задач, 10 языков.
67
RightNote - менеджер информации для Windows.
64
Персональный информационный менеджер. Может использоваться как приложение для заметок или список дел.
- Платная
- Windows
- Android
- iPhone
- Mac OS
- Онлайн сервис
WizNote - это программное обеспечение Note, специально разработанное для пользователей Интернета. WizNote большое внимание уделяет быстрому сбору, управлению, чтению и обмену информацией. WizNote компактен, стабилен и максимально подходит для компьютеров, телефонов и мобильных устройств. У этого приложения есть более богатая организация примечаний. Используя соответствующий онлайн-сервис, вы можете синхронизировать заметки между вашим компьютером и вашим мобильным телефоном.
45
AllMyNotes Organizer - многофункциональный иерархический информационный менеджер для Windows.
AllMyNotes Organizer - многофункциональный иерархический информационный менеджер для Windows, дающий возможность хранить все свои заметки в виртуальных папках в одном файле!
39
Приложение Online Notebook: Zoho Notebook позволяет объединять текст, изображения, аудио, видео, RSS-каналы, документы и многое другое.
- Бесплатная
- Android
- iPhone
- Mac OS
- Онлайн сервис
Приложение Online Notebook: Zoho Notebook позволяет комбинировать текст, изображения, аудио, видео, RSS-каналы, документы и многое другое.
38
TreeDBNotes - это мощная и простая в использовании программа для работы с персональными базами данных.
TreeDBNotes - это мощная и простая в использовании программа для работы с персональными базами данных с древовидной структурой. Доступен пользовательский интерфейс на 21 языке.
37
MyTetra - это кроссплатформенный персональный менеджер с открытым исходным кодом для накопления информации.
MyTetra - это кроссплатформенный персональный менеджер с открытым исходным кодом для накопления информации. Мощная программа для запоминания данных и структурирования заметок.
34
Quiver - это приложение, созданное для программистов.
Quiver - это приложение, созданное для программистов. Оно позволяет легко совмещать текст, код и Markdown в одной заметке, редактировать код с помощью потрясающего редактора кода, просматривать в реальном времени ячейки Markdown и LaTeX и мгновенно находить любую заметку с помощью полнотекстового поиска.
28
Outwiker - личная вики и планировщик.
27
The Guide представляет собой двухпанельную схему - программу, которая позволяет вам размещать текстовые заметки в виде дерева.
The Guide представляет собой двухпанельную программу - программу, которая позволяет вам размещать текстовые заметки в древовидной структуре. Он поддерживает форматированный текст, экспорт в RTF и гиперссылки (как внутренние, так и внешние).
22
myBase - это уникальное программное обеспечение для баз данных произвольной формы, которое создает полнотекстовые базы данных с возможностью поиска и упорядочивания информации.
myBase - это уникальное программное обеспечение для работы с базами данных свободной формы, которое создает полнотекстовые базы данных с возможностью поиска и упорядочивает информацию в виде древовидной структуры, а также обеспечивает возможность сбора информации из различных источников данных, таких как тексты, веб-страницы, изображения, документы Word, электронные таблицы Excel, элементы Outlook и даже произвольные файлы и т.д.
18
My Notes Keeper - это главное приложение для создания заметок.
My Notes Keeper - это главное приложение для создания заметок для Windows 9x / 2000 / XP / NT. Оно позволяет вам хранить все ваши заметки и информацию. Вы можете быстро найти то, что вам нужно.
12
Это очень полезный менеджер персональной информации в виде дерева.
Это очень полезный менеджер персональной информации в виде дерева.
Что в этом списке?
В списке находится программы которые можно использовать для замены TreePad.
Это аналоги похожие по функционалу на TreePad, которые заменяют программу частично или полностью. Этот список содержит 19 замен.
С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone
Читайте также: