Форматы данных
JSON и UTF-8
Запросы и ответы — JSON в UTF-8, заголовок Content-Type: application/json. Текст может содержать
любые символы, кроме одиночных суррогатов (\ud83d без пары): на них сервер отвечает 422.
Позиции в тексте
start и end у упоминаний — номера символов (кодовых точек Unicode) с нуля,
end не включается: text[start:end] в Python даёт само упоминание.
/api/findи/api/markсformat: "text"— позиции в переданной строке./api/markс HTML — позиции считаются по видимому тексту страницы (теги убраны, блочные элементы разделены переводом строки), а не по HTML-строке. Используйте их как справку о том, кого нашли, а размеченный HTML берите изcontent.- В JavaScript строки считаются в единицах UTF-16: эмодзи и другие символы вне базовой плоскости занимают две единицы — пересчитайте позиции. Метод виджета отдаёт позиции сразу в UTF-16.
Что вставляется в HTML
HTML не перестраивается: в исходную строку только вставляются пометки, остальное остаётся байт в байт.
| Вставка | Где | Когда |
|---|---|---|
<sup class="am-mark" title="Екатерина Шульман — иностранный агент">*</sup> |
сразу после упоминания | вид «значок и сноски» и «и статус, и сноски» |
<span class="am-inline" style="color:#c4382b">(иностранный агент)</span> |
через пробел после первого упоминания | вид «статус в скобках» и «и статус, и сноски»;
style — по настройкам цвета и курсива |
<div class="am-footnotes"><p>* Екатерина Шульман — иностранный агент.</p>…</div> |
в конце текста | есть сноски |
<div class="am-warning">Незаконное потребление наркотических средств…</div> |
перед текстом | подключена доп. услуга и в тексте упомянуто вещество из перечня |
В обычном тексте (format: "text") значок ставится сразу после упоминания, сноски — отдельными
строками через пустую строку, предупреждение — первым абзацем:
Интервью с Екатериной Шульман* о выборах.
* Екатерина Шульман — иностранный агент.
Повторная разметка
Размеченный текст можно отправлять снова — например, после обновления реестров. Старые пометки сервиса
(am-mark, am-inline, am-footnotes, am-warning) убираются
и ставятся заново, дублей не будет. Если автор уже поставил пометку сам — «Шульман (признана иноагентом)»,
«ФБК*», — повторная не ставится; абзац-плашка со списком запрещённых организаций тоже считается пометкой.
Оформление
Значки и сноски не несут стилей, кроме цвета статуса в скобках. Оформите их под сайт:
.am-mark { color: #d13a2c; font-weight: 700; }
.am-footnotes { margin-top: 16px; padding-top: 10px; border-top: 1px solid #e4e4df;
font-size: 14px; color: #6d6d68; }
.am-footnotes p { margin: 4px 0; }
.am-warning { padding: 10px 14px; margin-bottom: 16px; border: 1px solid #e4e4df;
font-size: 13px; font-weight: 600; text-transform: uppercase; }