Support horizontal rules in Classic editor

Ref T727
pull/443/head
Matt Baer 4 years ago
parent 02490c798c
commit c01fb585ba
  1. 5
      less/prose-editor.less
  2. 2
      prose/markdownParser.js
  3. 4
      prose/markdownSerializer.js
  4. 2
      prose/prose.js
  5. 1
      prose/schema.js

@ -273,16 +273,17 @@ li.ProseMirror-selectednode:after {
/* Add space around the hr to make clicking it easier */
.ProseMirror-example-setup-style hr {
padding: 2px 10px;
padding: 4px 10px;
border: none;
margin: 1em 0;
background: initial;
}
.ProseMirror-example-setup-style hr:after {
content: "";
display: block;
height: 1px;
background-color: silver;
background-color: #ccc;
line-height: 2px;
}

@ -25,7 +25,7 @@ export const writeFreelyMarkdownParser = new MarkdownParser(
getAttrs: (tok) => ({ params: tok.info || "" }),
noCloseToken: true,
},
// hr: { node: "horizontal_rule" },
hr: { node: "horizontal_rule" },
image: {
node: "image",
getAttrs: (tok) => ({

@ -47,6 +47,10 @@ export const writeFreelyMarkdownSerializer = new MarkdownSerializer(
state.renderInline(node);
state.closeBlock(node);
},
horizontal_rule: function horizontal_rule(state, node) {
state.write(node.attrs.markup || "---");
state.closeBlock(node);
},
bullet_list(state, node) {
node.attrs.tight = true;
state.renderList(node, " ", () => `${node.attrs.bullet || "*"} `);

@ -104,7 +104,7 @@ class ProseMirrorView {
}
get content() {
return defaultMarkdownSerializer.serialize(this.view.state.doc);
return writeFreelyMarkdownSerializer.serialize(this.view.state.doc);
}
focus() {
this.view.focus();

@ -4,7 +4,6 @@ import { Schema } from "prosemirror-model";
export const writeFreelySchema = new Schema({
nodes: schema.spec.nodes
.remove("blockquote")
.remove("horizontal_rule")
.addToEnd("readmore", {
inline: false,
content: "",

Loading…
Cancel
Save