Denote. Соглашение об именовании
Denote. Соглашение об именовании.
Содержание
1 Общая информация
- Emacs. Пакет denote
- Поддерживает любые текстовые форматы файлов.
- Информация кодируется в названии файла.
- Название файла следует строгим соглашениям.
2 Схема именования файлов
Каталог с файлами содержит просто список файлов, желательно избегать подкаталоги.
Шаблон имени файла:
DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSIONПоле
DATE: дата в формате год-месяц-день, за которой следует с большой буквыT(для «времени») текущее время в обозначение час-минута-секунда.- Примерно так:
20220531T091625. DATEслужит уникальным идентификатором каждого файла.
- Примерно так:
Поле
SIGNATURE: строка буквенно-цифровых символов.- Не имеют чётко определённой цели.
- Определяется пользователем.
- Варианты заполнения:
- Разделение видео на части :
part1иpart2. - Приоритет :
a,b,c. - Для установления последовательные отношения между файлами (например, 1, 1a, 1b, 1b1, 1b2, …).
- Разделение видео на части :
- Подписи — это дополнительное расширение схемы именования файлов Denote.
- Их можно добавлять во вновь создаваемые файлы по требованию с помощью команды
denote-signatureили изменив значение пользовательской опцииdenote-prompts.
Поле
TITLE: заголовок заметки, предоставленный пользователем.- По умолчанию он автоматически записывается строчными буквами, через дефис (см. Соглашения о кодировании).
Поле
KEYWORDSсостоит из одной или нескольких записей, разделённых значком подчёркивание.- Каждое ключевое слово строка, предоставленная пользователем в соответствующем приглашении, которая в целом описывает содержание записи.
- Каждое из ключевых слов представляет собой одно слово.
- Пользователи, которым необходимо составить ключевое слово из нескольких слов, например как camelCase/CamelCase, рекомендуется использовать опцию пользователя
denote-file-name-slug-functions.
EXTENSION: тип файла.- По умолчанию это
.org(org-mode) хотя пользовательский вариантdenote-file-typeобеспечивает поддержку Markdown с вариантами YAML или TOML (.md) и простой текст (.txt).
- По умолчанию это
Примеры:
20220610T043241--initial-thoughts-on-the-zettelkasten-method__notetaking.org 20220610T062201--define-custom-org-hyperlink-type__denote_emacs_package.md 20220610T162327--on-hierarchy-and-taxis__notetaking_philosophy.txtРазличные разделители полей, а именно
--и__дают эффективный способ поиска.- Запрос для
_wordвсегда соответствует ключевому слову, а регулярное выражение в виде"\\([0-9T]+?\\)--\\(.*?\\)_"фиксирует дату в группе\1и название в\2.
- Запрос для
Можно использовать следующие перестановки частей имён файлов:
DATE.EXT DATE--TITLE.EXT DATE__KEYWORDS.EXT DATE==SIGNATURE.EXT DATE==SIGNATURE--TITLE.EXT DATE==SIGNATURE--TITLE__KEYWORDS.EXT DATE==SIGNATURE__KEYWORDS.EXTПо умолчанию имена файлов имеют три поля и два набора разделителей между ними:
DATE--TITLE__KEYWORDS.EXTENSIONКогда подпись присутствует:
DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
3 Изменение порядка компонентов имени файла
- Стандартная схема именования файлов предписывает определённый порядок компонентов имени файла.
- Также предоставляется опция пользователя
denote-file-name-components-order, позволяющая пользователю изменить их порядок по своему усмотрению. - Значением этой пользовательской опции является список следующих символов:
identifier: комбинация даты и времени. Когда он первый в списке, то пишется без префикса. Когда он находится в другом месте имени файла, он пишется с префиксом@@(например,@@20240519T073456).signature: произвольная строка, которую можно использовать для определения файла каким-либо образом, в соответствии с методологией пользователя. Строка всегда имеет префикс==.title: произвольная строка, описывающая файл. Всегда с префиксом--.keywords: серия из одного или нескольких слов. Несколько ключевых слов разделяются подчёркиванием. Компонент имени файла всегда имеет префикс__.
- Все четыре символа должны появиться ровно один раз. Дубликаты игнорируются. Любой недостающий символ добавляется автоматически.
- Примеры:
(setq denote-file-name-components-order '(identifier signature title keywords)) ;; => 20240519T07345==hello--this-is-the-title__denote_testing.org (setq denote-file-name-components-order '(signature identifier title keywords)) ;; => ==hello@@20240519T07345--this-is-the-title__denote_testing.org (setq denote-file-name-components-order '(title signature identifier keywords)) ;; => --this-is-the-title==hello@@20240519T07345__denote_testing.org (setq denote-file-name-components-order '(keywords title signature identifier)) ;; => __denote_testing--this-is-the-title==hello@@20240519T07345.org - Выберите один вариант расположения элементов имени.
3.1 Очистка компонентов имени файла
- Имена файлов могут содержать любые символы, разрешённые файловой системой.
- Denote накладывает несколько дополнительных ограничений:
- Элементы
==,__и--интерпретируются Denote и должны появляются только один раз. - В имени файла не допускается использование точки, за исключением расширения типа файла.
- Denote распознает два расширения для зашифрованных файлов, например
.txt.gpg.
- Denote распознает два расширения для зашифрованных файлов, например
- Элементы
- По умолчанию Denote применяет правила к именам файлов
denote-file-name-slug-functions. - Эти правила применяются к имена файлов по умолчанию:
- Удаляются незаконные символы.
- Запись названия файла осуществляется через дефис.
- Из ключевых слов удаляются пробелы и другие разделители.
- Все компоненты имени файла записываются в нижнем регистре.
ы
4 Поддержка цепочек заметок
- Denote может поддерживать концепцию Folgezettel (см. Нумерация Folgezettel).
- Поддержка осуществляется расширением
denote-sequence.el. - Используется необязательная компонента имени файла
SIGNATURE. - Специализированный вариант использования
SIGNATURE— определить иерархические отношения между файлами. - Предлагается разделать элементы знаком равно:
=. - Например, примечание с
SIGNATURE1=1является первым дочерним примечанием к1и сестринским примечаним к1=2. - Пользовательская опция
denote-sequence-schemeпозволяет выбрать либо числовую (numeric) схему вида1=1=2или буквенно-цифровую (alphanumeric) схему вида1a2.
4.1 Числовая схема секвенирования
- Числовая последовательность состоит только из чисел.
- Поля разделены знаком равно.
- Таким образом, последовательность
1=1=2состоит из трёх уровней глубины. - Для более глубоких последовательностей числовая схема станет длиннее.
- Плюс состоит в том, что можно использовать большие числа, такие как
1=100=2=50.
4.2 Буквенно-цифровая схема секвенирования
- Буквенно-цифровая последовательность объединяет цифры и буквы, которые чередуются.
- Например, последовательность
1a2имеет три уровня глубины. - Эта схема компактнее.
- Может труднее восприниматься, например
1zzzv2zxсоответствует числовой схеме1=100=2=50(число 26 - z, 27 - это za, 52 zz и так далее).
5 Концепции
5.1 Принципы именования Denote
- В основе Denote лежит философия, при которой имя файла становится самодостаточным источником информации.
- Это достигается за счёт нескольких ключевых принципов.
| Принцип | Реализация в имени файла | Пояснение |
|---|---|---|
| Предсказуемость и уникальность | ДАТА | Временная метка в формате ISO 8601 служит уникальным и неизменным идентификатором для каждой заметки или файла. |
| Описательность и содержание | --ЗАГОЛОВОК | Человекочитаемый заголовок, переведённый в нижний регистр с дефисами (kebab-case), кратко описывает суть содержимого. |
| Классификация и тегирование | __КЛЮЧЕВЫЕ_СЛОВА | Одна или несколько тематических меток (ключевых слов), разделённых подчёркиванием, для категоризации. Тег может состоять из нескольких слов через дефис. |
| Семантическая последовательность | ==ПОДПИСЬ | Произвольная буквенно-цифровая строка для создания пользовательских последовательностей или иерархий между файлами (например, 1a, 1b). |
| Явное разделение полей | --, __, ==, . | Строгие разделители делают структуру имени машиночитаемой и позволяют эффективно искать файлы, используя шаблоны. |
| Гибкость и независимость | Поддержка любых расширений | Схема не привязана к типам файлов или приложениям. |
5.2 Концептуальные вариации применения
- Идеология Denote совместима с разными методологиями.
| Концепция | Как применяется в Denote |
|---|---|
| Плоское хранение (Flat-file) | Все файлы можно хранить в одной папке, а для навигации полагаться на уникальные имена и ключевые слова. Это основной и рекомендуемый подход. |
| Zettelkasten и Folgezettel | Поле SIGNATURE подходит для создания сложных цепочек заметок (например, 20231001==1a, 20231002==1a1, 20231003==1a2 ). |
| Проектное управление | Ключевые слова можно использовать как теги проектов (например, __project_alpha ), а в заголовке указывать конкретную задачу. |
| Мультимедийный архив | Схему можно применять не только к текстовым заметкам, но и к любым другим файлам. Имя файла становится универсальным описательным якорем. |
5.3 Что важно сохранять при внесении изменений
При создании вариаций стоит придерживаться двух ключевых принципов Denote, которые обеспечивают её эффективность:
- Уникальность: идентификатор на основе timestamp (
ДАТА) должен оставаться неизменным якорем файла. - Машиночитаемость: чёткие разделители (
--,__,==) нужно сохранять, чтобы система и скрипты могли легко парсить имена.
- Уникальность: идентификатор на основе timestamp (
Denote есть каркас, а не жёсткий стандарт.
Вы можете убрать необязательные поля, изменить порядок или использовать подпись для своих целей, сохраняя при этом главные преимущества системы — понятность, уникальность и независимость от инструментов.
6 Гибридная структура: Denote + Johnny Decimal + гибкая дата
6.1 Основная идея
- Использовать каталоги для грубой семантической и хронологической группировки.
- Полное имя файла Denote — универсальный, уникальный идентификатор и описание.
- Идея категорий взята из Johnny Decimal (Система именования каталогов Johnny Decimal)
6.2 Преимущества
- Плоская и гибкая категоризация: файл может принадлежать к нескольким равнозначным категориям без жёсткой иерархии.
- Машиночитаемость: знак
=есть уникальный разделитель, который легко выделить скриптом или настроить поиск. - Визуальная ясность: категории чётко сгруппированы в начале имени между
==и--
6.3 Варианты меток даты для поля DATE
- Вы можете выбирать формат даты в зависимости от смысла содержимого, сохраняя сортировку.
| Формат даты в имени файла | Когда использовать | Пример имени файла |
|---|---|---|
2026 (год) | Для документов, тематика которых актуальна целый год: годовые отчёты, планы, резюме. | 2026--годовой-отчет__финансы.pdf |
2026-1 (полугодие) | Для целей, планов или результатов, сгруппированных по полугодиям. | 2026-1--планы-на-семестр__стратегия.md |
2026-02-06 (конкретная дата) | Для заметок, событий и документов, привязанных к конкретному дню (встречи, дневниковые записи). | 2026-02-06--встреча-с-командой__проект_митинг.org |
6.4 Поле SIGNATURE
- В поле
SIGNATURE(после==) указывается набор равноправных категорий, разделённых знаком=. - Это создаёт плоский, но структурированный список категорий прямо в имени файла.
- Общий формат:
ДАТА==КАТЕГОРИЯ1=КАТЕГОРИЯ2=КАТЕГОРИЯ3--ЗАГОЛОВОК__КЛЮЧЕВЫЕ_СЛОВА - Примеры:
2026-02-10==проект=вебсайт=дизайн--обзор-макетов__ui_клиент_встреча.fig2026-1==сфера=здоровье=питание--полезные-рецепты__еда_идеи.md2025-12-24==архив=путешествия=япония=фото--поездка-в-токио__отпуск.jpg
