Выравнивание текста / изображения в портативном текстовом редакторе Sanity.io

Есть ли возможность выровнять текст (а также изображение) по центру в редакторе форматированного текста sanity.io (переносимый текст)? Ничего не нашел в документации


person Uri Klar    schedule 17.04.2020    source источник


Ответы (2)


Нет, готового решения пока нет. У Sanity много просьб об этом. Но вы можете сделать его самостоятельно на основе css. Подробнее об этом здесь. Вы можете быстрее получить поддержку по Sanity Slack. Есть также несколько существующих подходов к согласованию с сообществом, если вы используете там поиск.

person Tim    schedule 21.04.2020

К сожалению, это известное (текущее) ограничение редактора Portable Text. Согласно документации Stanity:

Бывают ситуации, когда грань между смыслом и презентацией нечеткая. Возьмите выравнивание текста. Во многих случаях это может быть связано с таблицей стилей, где отображается контент. Но есть случаи, когда вам нужно контролировать выравнивание текста, чтобы иметь возможность воспроизводить определенные представления текста, такие как стихи и тому подобное. В этом случае мы бы предложили либо добавить настраиваемый тип, либо создать отдельный стиль, который также более конкретно встраивал бы этот вариант использования.

Решения:

1. Создайте произвольный тип

{
  name: 'textAlignment',
  type: 'object',
  title: 'Text Alignment',
  fields: [
    {
      title: 'Content',
      name: 'text',
      type: 'portableText'
    },
    {
      title: 'Alignment',
      name: 'alignment',
      type: 'string',
      options: {
        list: [
          {title: 'Left', value: 'left'},
          {title: 'Right', value: 'right'},
          {title: 'Center', value: 'center'},
        ],
      }
    }
  ]
}

2. Создайте собственный стиль.

например normal + right и реализуйте выравнивание в своем интерфейсе с помощью сериализатора блоков. Обратной стороной является то, что вы не можете сочетать это с другими стилями. Например. у вас не может быть блока H1 с выравниванием текста.

person Jeremy Lynch    schedule 12.07.2021