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
— определить иерархические отношения между файлами. - Предлагается разделать элементы знаком равно:
=
. - Например, примечание с
SIGNATURE
1=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 и так далее).