我们的目标:
我们需要StackEdit编辑器在文本框所在的位置准确呈现(TinyMCE 和其他编辑器的方式),而不是在模式/全屏/覆盖 HTML 页面上的整个 UI 中呈现它。
我们正在尝试在我们的应用程序中实现https://stackedit.io/标记编辑器。为此,我们在以下本地 url设置了https://github.com/benweet/stackedit的本地实例,例如https://localhost:4433。
这将作为一个本地端点http://localhost:8080/app以https://stackedit.io/app的方式为stackedit 编辑器提供服务。我们设置了一个本地实例,以便编辑器渲染 StackEdit 域本身的远程端点不应该命中。
为了使用该端点并在 html 页面上使用 stackit 编辑器,我们使用https://benweet.github.io/stackedit.js/并编写以下代码来呈现编辑器:
var el = document.querySelector('textarea');
var stackedit = new Stackedit({
url: 'https://localhost:4433/app'
});
// Open the iframe
stackedit.openFile({
name: 'Filename', // with an optional filename
content: {
text: el.value // and the Markdown content.
}
});
// Listen to StackEdit events and apply the changes to the textarea.
stackedit.on('fileChange', (file) => {
el.value = file.content.text;
});
我们从https://benweet.github.io/stackedit.js/获取了该代码
上述实现的问题是编辑器呈现为模式并隐藏了 html 页面上的所有 UI。这是它的呈现方式:
这不是我们需要的。在我们的应用程序中,单个页面上会有多个编辑器,并且将该编辑器设置为全屏或模态将无法使用。我们对编辑器的期望是让 StackEditor 像流行的 TinyMCE 编辑器一样呈现,即它应该被呈现在文本框所在的相同位置。
TinyMCE 编辑器:
StackExchange 编辑器是这样来的:
所以回到我原来的问题,是否可以使用 StackEdit 在文本框而不是模式或全屏的地方实现编辑器?
编辑:
我去了以下具有类似请求的链接,但也没有成功:
https://github.com/benweet/stackedit.js/issues/10