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 и так далее).