Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 向Rails ActionText工具栏添加按钮_Ruby On Rails_Actiontext - Fatal编程技术网

Ruby on rails 向Rails ActionText工具栏添加按钮

Ruby on rails 向Rails ActionText工具栏添加按钮,ruby-on-rails,actiontext,Ruby On Rails,Actiontext,配置ActionText以向工具栏添加按钮的最佳方式是什么。例如,一个h2和h3按钮?我找不到任何关于“正确”操作方法的文档,但以下方法有效: 我对我的/app/javascript/application.js文件做了这些修改,ActiveText在其中放置了trix和actiontext的require语句 首先,我通过将require返回到一个变量中来获得Trix实例 var Trix = require("trix") console.log("Config", Trix.config

配置ActionText以向工具栏添加按钮的最佳方式是什么。例如,一个h2和h3按钮?

我找不到任何关于“正确”操作方法的文档,但以下方法有效:

我对我的/app/javascript/application.js文件做了这些修改,ActiveText在其中放置了trix和actiontext的require语句

首先,我通过将require返回到一个变量中来获得Trix实例

var Trix  = require("trix")
console.log("Config", Trix.config);
然后我指定我希望Trix识别的额外项目:

Trix.config.blockAttributes.heading2 = {
  tagName: 'h2'
}
Trix.config.blockAttributes.heading3 = {
  tagName: 'h3'
}
Trix.config.textAttributes.underline = {
  tagName: 'u'
}
然后,我通过粘贴Trix的代码并修改html重新构建了工具栏,虽然很详细,但很容易理解:

const {lang} = Trix.config;

Trix.config.toolbar = {
  getDefaultHTML() { return `\
<div class="trix-button-row">
  <span class="trix-button-group trix-button-group--text-tools" data-trix-button-group="text-tools">
    <button type="button" class="trix-button trix-button--icon trix-button--icon-bold" data-trix-attribute="bold" data-trix-key="b" title="${lang.bold}" tabindex="-1">${lang.bold}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-italic" data-trix-attribute="italic" data-trix-key="i" title="${lang.italic}" tabindex="-1">${lang.italic}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-strike" data-trix-attribute="strike" title="${lang.strike}" tabindex="-1">${lang.strike}</button>
    <button type="button" class="trix-button  " data-trix-attribute="underline" title="h3" tabindex="-1">u</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-link" data-trix-attribute="href" data-trix-action="link" data-trix-key="k" title="${lang.link}" tabindex="-1">${lang.link}</button>
  </span>
  <span class="trix-button-group trix-button-group--block-tools" data-trix-button-group="block-tools">
    <button type="button" class="trix-button  " data-trix-attribute="heading1" title="h1" tabindex="-1">h1</button>
    <button type="button" class="trix-button  " data-trix-attribute="heading2" title="h2" tabindex="-1">h2</button>
    <button type="button" class="trix-button  " data-trix-attribute="heading3" title="h3" tabindex="-1">h3</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-quote" data-trix-attribute="quote" title="${lang.quote}" tabindex="-1">${lang.quote}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-code" data-trix-attribute="code" title="${lang.code}" tabindex="-1">${lang.code}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-bullet-list" data-trix-attribute="bullet" title="${lang.bullets}" tabindex="-1">${lang.bullets}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-number-list" data-trix-attribute="number" title="${lang.numbers}" tabindex="-1">${lang.numbers}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-decrease-nesting-level" data-trix-action="decreaseNestingLevel" title="${lang.outdent}" tabindex="-1">${lang.outdent}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-increase-nesting-level" data-trix-action="increaseNestingLevel" title="${lang.indent}" tabindex="-1">${lang.indent}</button>
  </span>
  <span class="trix-button-group trix-button-group--file-tools" data-trix-button-group="file-tools">
    <button type="button" class="trix-button trix-button--icon trix-button--icon-attach" data-trix-action="attachFiles" title="${lang.attachFiles}" tabindex="-1">${lang.attachFiles}</button>
  </span>
  <span class="trix-button-group-spacer"></span>
  <span class="trix-button-group trix-button-group--history-tools" data-trix-button-group="history-tools">
    <button type="button" class="trix-button trix-button--icon trix-button--icon-undo" data-trix-action="undo" data-trix-key="z" title="${lang.undo}" tabindex="-1">${lang.undo}</button>
    <button type="button" class="trix-button trix-button--icon trix-button--icon-redo" data-trix-action="redo" data-trix-key="shift+z" title="${lang.redo}" tabindex="-1">${lang.redo}</button>
  </span>
</div>
<div class="trix-dialogs" data-trix-dialogs>
  <div class="trix-dialog trix-dialog--link" data-trix-dialog="href" data-trix-dialog-attribute="href">
    <div class="trix-dialog__link-fields">
      <input type="url" name="href" class="trix-input trix-input--dialog" placeholder="${lang.urlPlaceholder}" aria-label="${lang.url}" required data-trix-input>
      <div class="trix-button-group">
        <input type="button" class="trix-button trix-button--dialog" value="${lang.link}" data-trix-method="setAttribute">
        <input type="button" class="trix-button trix-button--dialog" value="${lang.unlink}" data-trix-method="removeAttribute">
      </div>
    </div>
  </div>
</div>\
`; }
};
const{lang}=Trix.config;
Trix.config.toolbar={
getDefaultHTML(){return`\
${lang.bold}
${lang.italic}
${lang.strike}
U
${lang.link}
h1
氢
h3
${lang.quote}
${lang.code}
${lang.shollets}
${lang.numbers}
${lang.outdent}
${lang.indent}
${lang.attachFiles}
${lang.undo}
${lang.redo}
\
`; }
};

这是从

中获取的(并取消定义),要添加到Will的答案中,您可以在初始化回调后使用trix避免重新创建整个工具栏:

例如,添加将文本变为红色的“红色”按钮:

var-Trix=require(“Trix”);
/*新创建的按钮的作用是什么*/
Trix.config.texttributes.red={
样式:{color:“red”},
解析器:函数(元素){
return element.style.color==“红色”
},
可继承:正确
}
/*在默认工具栏中插入可视按钮*/
addEventListener(“trix初始化”,函数(事件){
var buttonHTML=‘红色’
event.target.toolbar元素。
查询选择器(“.trix按钮组”)。
insertAdjacentHTML(“beforeend”,buttonHTML)
})
输出:

可以添加
class=“trix button”
使按钮与其他按钮混合。