Компоненты формул Notion 2.0
Во встроенном справочнике Notion, ровно как и в другой официальной документации, нет описания компонентов формул Notion 2.0. Автором сайта «Формулы Notion 2.0» предпринята попытка систематизировать компоненты формул Notion.
/* https://notionformulas.chumakova.ru */lets(
/* Показатель: */
name, "Цена продажи",
/* Значение: */
value, round((prop("Базовая цена") + prop("Торговая наценка")) * 1.237),
/* Вывод: */
name + ": " + value + " ₽"
)
Формулы Notion могут содержать следующие компоненты:
- литералы:
1.237,"Цена продажи",": "," ₽"; - функции:
lets,round; - ссылки на значения из ячеек свойств базы данных:
prop("Базовая цена"),prop("Торговая наценка"); - операторы:
(),+,*; - переменные:
name,value; - комментарии:
/* Показатель: */,/* Значение: */,/* Вывод: */; - символы перевода строки;
- символы табуляции.
Хотите чувствовать себя в Notion как рыба в воде?
Подпишитесь на канал автора сайта «Формулы Notion 2.0» с обзорами новых функций, советами начинающим и продвинутым пользователям, шаблонами, видеоуроками и эксклюзивными формулами! Перейти
Литералы
Литералы представляют собой константы, включаемые непосредственно в код формулы. Они могут быть изменены в коде формулы только во время ее редактирования.
Числовые литералы
Числовые литералы могут записываться в виде целого числа или с десятичным знаком – точкой. Использование запятой в качестве десятичного знака приводит к ошибке.
/* https://notionformulas.chumakova.ru */100
/* https://notionformulas.chumakova.ru */100.99
Числовые литералы могут записываться со знаком «минус». Между знаком «минус» и числом допускаются пробелы.
/* https://notionformulas.chumakova.ru */-100.99
/* https://notionformulas.chumakova.ru */- 100.99
Использование разделителей разрядов не допускается. Использование пробела в качестве разделителя разрядов приводит к возникновению ошибки.
Поддерживается экспоненциальная запись. Регистр латинской буквы e не влияет на работу формулы.
/* https://notionformulas.chumakova.ru */1e+100
/* https://notionformulas.chumakova.ru */1E+100
Во встроенном редакторе кода и в окне ввода формулы Notion числовые литералы подсвечиваются пурпурным цветом в светлой теме и светло-розовым в темной.
Строковые литералы
Строковый литерал (название происходит от слова «строка») – это текст, который необходимо «зашить» в формулу.
Строковые литералы должны быть заключены в универсальные двойные кавычки («машинописные», «программистские»). Использование других видов кавычек не допускается. Текст без кавычек будет интерпретироваться как название функции или переменной и, скорее всего, вызовет ошибку.
/* https://notionformulas.chumakova.ru */"Привет, мир!"
В строковых литералах допускается использование символов Юникода, включая эмодзи.
/* https://notionformulas.chumakova.ru */"👨🦳🌅 夕阳下沉思的老人"
Строковые литералы подсвечиваются в Notion салатовым цветом.
Логические литералы
Логические литералы ограничены только двумя значениями – true и false. Они записываются «как есть» – без дополнительных знаков и операторов.
/* https://notionformulas.chumakova.ru */true
/* https://notionformulas.chumakova.ru */false
Логические литералы подсвечиваются пурпурным цветом в светлой теме Notion и светло-розовым в темной.
Литералы-массивы
Литералы-массивы записываются с использованием оператора «квадратные скобки». В качестве разделителя элементов массива (списка) используется запятая (попытка использовать другие разделители вызывает ошибку). После последнего элемента запятой быть не должно. Между квадратными скобками и элементами массива (списка) допускается использование пробелов, переносов строк и табуляции.
/* https://notionformulas.chumakova.ru */[1,2,3]
/* https://notionformulas.chumakova.ru */[ "Один", "Два", "Три" ]
/* https://notionformulas.chumakova.ru */[
true,
false,
true
]
25 формул Notion на каждый день
Бесплатный шаблон для Notion с подборкой из 25 востребованных формул от автора сайта «Формулы Notion 2.0». Перейти
Функции
Функция – это код, который выполняет определенную задачу, был написан разработчиками приложения и скрыт от глаз пользователя. Чтобы вызвать функцию, необходимо прописать ее название и поставить после нее две круглые скобки. Названия функции чувствительны к регистру, поэтому их необходимо записывать ровно так, как они приведены в справочнике.
/* https://notionformulas.chumakova.ru */formatDate()
Если функция принимает аргументы (параметры), то их необходимо прописать внутри скобок. Если аргументов два или более, требуется разделить их запятыми. Порядок аргументов должен соответствовать спецификации функции.
/* https://notionformulas.chumakova.ru */formatDate(prop("Дата"), "YYYY")
Большинство аргументов функций Notion являются обязательными. Если обязательный аргумент не передан в функцию, выводится сообщение об ошибке.
Однако в Notion есть и функции с необязательными аргументами. В схеме функции такие аргументы помечены знаком вопроса. Если необязательный аргумент не передан в функцию, сообщение об ошибке не выводится.
/* https://notionformulas.chumakova.ru */substring("Текст", 1)
/* https://notionformulas.chumakova.ru */substring("Текст", 1, 3)
Также в формулах Notion имеются функции, которые не принимают аргументов. Скобки после названия таких функций всегда должны оставаться пустыми.
/* https://notionformulas.chumakova.ru */today()
В качестве аргументов функций могут выступать литералы, выражения, ссылки на свойства базы данных, а также другие функции.
Список функций с классификацией по назначению, а также спецификацию и готовые формулы можно найти в разделе «Функции Notion».
Традиционная запись функций Notion
Традиционный способ записи функции Notion подразумевает, что сначала указывается название функции, затем прописываестя оператор «круглые скобки». В скобках через запятую перечисляются агрументы функции.
/* https://notionformulas.chumakova.ru */substring("Текст", 1)
/* https://notionformulas.chumakova.ru */dateBetween(dateEnd(prop("Дедлайн")), dateStart(prop("Дедлайн")), "days")
Альтернативная запись функций Notion
В языке Notion Formula 2.0 появилась возможность использовать альтернативный способ записи функций, схожий с записью методов в языке JavaScript.
Эта запись начинается с первого аргумента функции, затем следует оператор «точка», название функции и оператор «круглые скобки». В скобках через запятую прописываются другие агрументы функции. Если других аргументов нет, скобки оставляют пустыми.
Такая запись недоступна для функций, не принимающих аргументов, а также для функций let, lets, prop.
Удобство данной записи заключается в том, что она делает логику построения формулы более прозрачной: функции записываются слева направо. В этом же направлении мы, русскоговорящие пользователи Notion, читаем текст.
/* https://notionformulas.chumakova.ru */"Текст".substring(1)
/* https://notionformulas.chumakova.ru */prop("Дедлайн").dateEnd().dateBetween(prop("Дедлайн").dateStart(), "days")
В справочнике «Формулы Notion 2.0» большинство формул представлено в обеих записях.
Функции подсвечиваются в Notion ярко-розовым цветом в светлой теме и белым в темной. Исключением являются функции, выполняющие роль операторов (например, if let, and): они подсвечиваются синим в светлой теме и светло-розовым в темной.
Значения из ячеек свойств баз данных
Для получения значений из ячеек свойств (столбцов) баз данных используется фукнция prop, которая принимает в качестве аргумента строковый литерал с названием свойства.
В спецификации Notion prop не называется функцией. Однако автор сайта «Формулы Notion 2.0» включила prop в список функций, поскольку запись ссылки на свойство аналогична записи функции.
/* https://notionformulas.chumakova.ru */prop("Цена") * prop("Количество")
В поле ввода кода формулы Notion функция prop автоматически преобразуется в динамическую ссылку на свойство (подсвечивается серым фоном). Это – всего лишь визуальное представление функции prop, добавленное для облегчения восприятия формул Notion 2.0.
При копировании формулы из окна ввода формулы в буфер обмена копируется иcходная функция prop. При вставке формулы из буфера обмена в окно ввода формулы Notion функция prop автоматически преобразуется в динамическую ссылку (при выполнении этой операции иногда случаются сбои – ссылки на свойства приходится проставлять вручную).
prop преобразуется в динамическую ссылкуprop преобразуется в динамическую ссылку – справочник формул Notion 2.0 с примерами
1440
900
Новчики часто совершают ошибку, пытаясь поместить динамическую переменную в prop. Такая конструкция является заведомо неправильной, поскольку имеет место попытка передать один экземпляр функции prop в качестве аргумента в другой экземпляр функции.
При переименовании свойств базы данных ссылки на свойства, содержащиеся в формуле, переписываются автоматически.
Слово prop подсвечивается в Notion оранжевым цветом. Динамические ссылки в окне редактирования формулы подсвечиваются серым фоном.
Операторы
Операторы в формулах Notion в большинстве случаев работают так же, как в языках программирования.
Некоторые операторы доступны только в символьном виде (например, *, %), другие – как в символьном, так и текстовом (например, && (and), ! (not)).
У большинства операторов есть функции-аналоги (например, multiply, mod, and, not).
Список операторов, а также спецификацию и готовые формулы можно найти в разделе «Встроенное».
Символьные операторы подсвечиваются в Notion коричневым цветом в светлой теме и оранжевым в темной. Текстовые – синим в светлой теме и светло-розовым в темной. Операторы-скобки, операторы «запятая» и «точка» подсвечиваются серым цветом.
Переменные
В формулах Notion 2.0 появились пользовательские и предопределенные переменные.
Пользовательские переменные
Для добавления пользовательских переменных используются функции let и lets. Использование операторов присваивания (например, знака «равно» =) не допускается.
/* https://notionformulas.chumakova.ru */let(
symbol, "*",
symbol.repeat(10)
)
Пользовательские переменные в Notion можно именовать с использованием кириллицы.
/* https://notionformulas.chumakova.ru */lets(
коэффициент, prop("Коэффициент"),
ставка, prop("Ставка"),
ставка * коэффициент
)
Названия пользовательских переменных не могут включать в себя операторы (например, +, %), служебные символы (например, $, #), составные символы (эмодзи).
Предопределенные переменные
Предопределенные переменные можно обнаружить в функциях, работающих со списками (массивами).
Переменная index позволяет обратиться к ключу (индексу) элемента списка (массива), а переменная current – к значению элемента списка (массива).
/* https://notionformulas.chumakova.ru */map(prop("Участники"), index)
/* https://notionformulas.chumakova.ru */map(prop("Участники"), current)
Переменные подсвечиваются в Notion черным цветом в светлой теме и белым в темной.
Комментарии
В формулах Notion 2.0 стали доступны блочные комментарии. Чтобы добавить комментарий в формулу, необходимо поставить открывающие символы /*, прописать текст комментария и поставить закрывающие символы */. Содержимое комментариев игнорируется при выполнении кода формулы.
/* https://notionformulas.chumakova.ru */prop("Выполнено") / prop("Всего") /* Процент выполнения */
Комментарии подсвечиваются в Notion серым цветом в светлой теме и светло-коричневым в темной.
Перевод строки
Для перевода строки в окне ввода формулы необходимо воспользоваться клавиатурным сочетанием Shift + Return в macOS, Shift + Enter в Windows. Во встроенном редакторе кода достаточно нажатия на клавишу Return в macOS, Enter в Windows.
Табуляция
Для добавления отступов слева нужно поставить курсор в начало строки и нажать на клавишу Tab столько раз, сколько отступов необходимо получить. Для удаления отступов слева можно воспользоваться клавиатурным сочетанием Shift + Tab. Tab и Shift + Tab срабатывают также и при выделении нескольких строк кода.