Denote. Соглашение об именовании
Denote. Соглашение об именовании.
Содержание
1 Общая информация
- Emacs. Пакет denote
- Поддерживает любые текстовые форматы файлов.
- Информация кодируется в названии файла.
- Название файла следует строгим соглашениям.
2 Схема именования файлов
Каталог с файлами содержит просто список файлов, желательно избегать подкаталоги.
Шаблон имени файла:
1DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
Поле
DATE
: дата в формате год-месяц-день, за которой следует с большой буквыT
(для «времени») текущее время в обозначение час-минута-секунда.- Примерно так:
20220531T091625
. DATE
служит уникальным идентификатором каждого файла.
- Примерно так:
Поле
SIGNATURE
: строка буквенно-цифровых символов.- Не имеют чётко определённой цели.
- Определяется пользователем.
- Одним из вариантов использования является их использование для установления последовательные отношения между файлами (например, 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
).
- По умолчанию это
Примеры:
Различные разделители полей, а именно
--
и__
дают эффективный способ поиска.- Запрос для
_word
всегда соответствует ключевому слову, а регулярное выражение в виде"\\([0-9T]+?\\)--\\(.*?\\)_"
фиксирует дату в группе\1
и название в\2
.
- Запрос для
Можно использовать следующие перестановки частей имён файлов:
По умолчанию имена файлов имеют три поля и два набора разделителей между ними:
1DATE--TITLE__KEYWORDS.EXTENSION
Когда подпись присутствует:
1DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
3 Изменение порядка компонентов имени файла
- Стандартная схема именования файлов предписывает определённый порядок компонентов имени файла.
- Также предоставляется опция пользователя
denote-file-name-components-order
, позволяющая пользователю изменить их порядок по своему усмотрению. - Значением этой пользовательской опции является список следующих символов:
identifier
: комбинация даты и времени. Когда он первый в списке, то пишется без префикса. Когда он находится в другом месте имени файла, он пишется с префиксом@@
(например,@@20240519T073456
).signature
: произвольная строка, которую можно использовать для определения файла каким-либо образом, в соответствии с методологией пользователя. Строка всегда имеет префикс==
.title
: произвольная строка, описывающая файл. Всегда с префиксом--
.keywords
: серия из одного или нескольких слов. Несколько ключевых слов разделяются подчёркиванием. Компонент имени файла всегда имеет префикс__
.
- Все четыре символа должны появиться ровно один раз. Дубликаты игнорируются. Любой недостающий символ добавляется автоматически.
- Примеры:
1(setq denote-file-name-components-order '(identifier signature title keywords)) 2;; => 20240519T07345==hello--this-is-the-title__denote_testing.org 3 4(setq denote-file-name-components-order '(signature identifier title keywords)) 5;; => ==hello@@20240519T07345--this-is-the-title__denote_testing.org 6 7(setq denote-file-name-components-order '(title signature identifier keywords)) 8;; => --this-is-the-title==hello@@20240519T07345__denote_testing.org 9 10(setq denote-file-name-components-order '(keywords title signature identifier)) 11;; => __denote_testing--this-is-the-title==hello@@20240519T07345.org
- Выберите один вариант расположения элементов имени.
3.1 Очистка компонентов имени файла
- Имена файлов могут содержать любые символы, разрешённые файловой системой.
- Denote накладывает несколько дополнительных ограничений:
- Элементы
==
,__
и--
интерпретируются Denote и должны появляются только один раз. - В имени файла не допускается использование точки, за исключением расширения типа файла.
- Denote распознает два расширения для зашифрованных файлов, например
.txt.gpg
.
- Denote распознает два расширения для зашифрованных файлов, например
- Элементы
- По умолчанию Denote применяет правила к именам файлов
denote-file-name-slug-functions
. - Эти правила применяются к имена файлов по умолчанию:
- Удаляются незаконные символы.
- Запись названия файла осуществляется через дефис.
- Из ключевых слов удаляются пробелы и другие разделители.
- Все компоненты имени файла записываются в нижнем регистре.
ы