войти

Форматы данных

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; }