让我对表单模板帖子的样式进行一些控制

我们不喜欢表单模板生成的帖子的样式。

我期望看到的是:

标签: 答案
标签: 答案
标签: 答案

查看 markdown
**标签:** 答案
**标签:** 答案
**标签:** 答案

我们得到的是:

标签

答案

标签

答案

标签

答案

查看 markdown
> ### 标签
> 答案
>
>
>
> ### 标签
> 答案
>
>
>
> ### 标签
> 答案

我们希望对此有一定的控制。在此期间,我正在考虑制作带有标签空间的表单(这样 * 仍然会显示为必填字段)。

这会产生类似这样的结果

答案

答案

答案

查看 markdown
###
answer


###
answer


###
answer

仍然有太多的空白,但它……不太难看。

建议: 如何将其设为表单输入的 attribute?例如:

- 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 个赞

与此同时,我想到了一种丑陋的解决方法来 a) 隐藏“复选框”答案,b) 在同一行显示非文本区域问题(<question?>: <answer>),以及 c) 修复项目之间的间距。

如果您对 Javascript 有一定的了解,可以根据自己的需要进行调整:

(这将被添加到 app.yml 的 hooks 部分)

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 个赞