Дайте мне возможность контролировать стиль шаблона публикации формы

Нам не нравится, как оформлен пост, созданный из шаблона формы.

Вот что мы ожидали увидеть:

Метка: ответ
Метка: ответ
Метка: ответ

Посмотреть разметку Markdown
**Метка:** ответ
**Метка:** ответ
**Метка:** ответ

А вот что мы получили:

метка

ответ

метка

ответ

метка

ответ

Посмотреть разметку Markdown
> ### метка
> ответ
> 
> 
> 
> ### метка
> ответ
> 
> 
> ### метка
> ответ

Мы хотели бы иметь возможность управлять этим. Тем временем я рассматриваю вариант создания форм с местами для меток (таким образом, символ * по-прежнему будет отображаться для обязательных полей).

Это даёт что-то вроде этого:

ответ

ответ

ответ

Посмотреть разметку Markdown
###
ответ


###
ответ


### 
ответ

Всё ещё слишком много пустого пространства, но это… менее неприятно.

Предложение: Как насчёт того, чтобы сделать это атрибутом поля ввода формы? Например:

- type: input
  id: rule
  attributes:
    label: "Метка"
    placeholder: "скажите что-нибудь!"
    answer-styling: bold
  validations:
    required: true
8 лайков

В продолжение обсуждения альтернативных вариантов отображения…

После того как я показал команде эту форму и результат её работы сегодня утром на летучке, реакция была следующей:

У нас отсутствует панель форматирования сверху… Я понимаю, что мне нужна не форма для создания поста, а обычный пост с обязательными полями

и

Хотелось бы, чтобы эти поля находились в небольшом блоке сверху [в получившемся посте], сбоку или где-то ещё

Так что… мы с нетерпением ждём, как это будет развиваться. :smiley:

3 лайка

Для этого случая вы можете просто отредактировать стандартный шаблон темы категории:

И этого, вероятно, можно добиться с помощью плагина Discourse Templates?

В любом случае… столько вариантов шаблонов :exploding_head: :smile:

3 лайка

Привет,

У нас уже есть «обычные» шаблоны в соответствующих категориях. Но это не значит, что люди предоставляют запрашиваемые данные. :sadpanda:

Эм… Нет. Речь шла о представлении данных, полученных из полей формы.

Спасибо, кстати. :smiley:

3 лайка

+1 за эту идею.

И, в связи с этим, было бы здорово предоставить пользователям стандартную панель форматирования для текстовых полей с короткими и/или длинными ответами.

3 лайка

Тем временем я придумал этот неуклюжий хак для: а) скрытия ответов «чекбокс», б) отображения вопросов, отличных от textarea, в одну строку (<вопрос>: <ответ>) и в) исправления отступов между элементами.

Если вы немного знакомы с JavaScript, вы можете адаптировать его под свои нужды:

(Это нужно добавить в раздел hooks файла app.yml)

hooks:
  after_code:
    - exec:
        # Обычно здесь находятся плагины
    - replace:
        filename: /var/www/discourse/app/assets/javascripts/discourse/app/lib/form-template-validation.js
        from: 'return formattedOutput.join("\n\n");'
        to: |
          const formattedOutput2 = mergedData.map((item) => {
            const key = Object.keys(item)[0];
            const value = item[key];
            const type = formTemplate.find(x => x.id == key).type;
            if (type == 'checkbox') return;
            if ((value) && (type != 'textarea')) return `**${labelMap[key]}**: ${value}`;
            if (value) return`\n### ${labelMap[key]}\n${value}\n`;
          });
          return formattedOutput2.join("\n");

2 лайка