replace maxLevels option with levels for heading node

This commit is contained in:
Philipp Kühn
2018-10-24 07:58:08 +02:00
parent 6b03315e59
commit bde1527eff
14 changed files with 26 additions and 21 deletions

View File

@@ -150,7 +150,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -39,7 +39,7 @@ export default {
}, },
}), }),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new Bold(), new Bold(),
new Code(), new Code(),
new Italic(), new Italic(),

View File

@@ -24,7 +24,7 @@ export default {
editor: new Editor({ editor: new Editor({
extensions: [ extensions: [
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new Bold(), new Bold(),
new Italic(), new Italic(),
new History(), new History(),

View File

@@ -144,7 +144,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -100,7 +100,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -152,7 +152,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -38,7 +38,7 @@ export default {
editor: new Editor({ editor: new Editor({
extensions: [ extensions: [
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new Image(), new Image(),
new Bold(), new Bold(),
new Code(), new Code(),

View File

@@ -62,7 +62,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -37,7 +37,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -70,7 +70,7 @@ export default {
new BulletList(), new BulletList(),
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new ListItem(), new ListItem(),
new OrderedList(), new OrderedList(),
new TodoItem(), new TodoItem(),

View File

@@ -25,7 +25,7 @@ export default {
editable: false, editable: false,
extensions: [ extensions: [
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new Bold(), new Bold(),
new Code(), new Code(),
new Italic(), new Italic(),

View File

@@ -49,7 +49,7 @@ export default {
editor: new Editor({ editor: new Editor({
extensions: [ extensions: [
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new Mention({ new Mention({
// a list of all suggested items // a list of all suggested items
items: [ items: [

View File

@@ -68,7 +68,7 @@ export default {
extensions: [ extensions: [
new CodeBlock(), new CodeBlock(),
new HardBreak(), new HardBreak(),
new Heading({ maxLevel: 3 }), new Heading({ levels: [1, 2, 3] }),
new TodoItem(), new TodoItem(),
new TodoList(), new TodoList(),
new Bold(), new Bold(),

View File

@@ -9,14 +9,10 @@ export default class Heading extends Node {
get defaultOptions() { get defaultOptions() {
return { return {
maxLevel: 6, levels: [1, 2, 3, 4, 5, 6],
} }
} }
get levels() {
return Array.from(new Array(this.options.maxLevel), (value, index) => index + 1)
}
get schema() { get schema() {
return { return {
attrs: { attrs: {
@@ -28,7 +24,7 @@ export default class Heading extends Node {
group: 'block', group: 'block',
defining: true, defining: true,
draggable: false, draggable: false,
parseDOM: this.levels.map(level => ({ tag: `h${level}`, attrs: { level } })), parseDOM: this.options.levels.map(level => ({ tag: `h${level}`, attrs: { level } })),
toDOM: node => [`h${node.attrs.level}`, 0], toDOM: node => [`h${node.attrs.level}`, 0],
} }
} }
@@ -38,7 +34,7 @@ export default class Heading extends Node {
} }
keys({ type }) { keys({ type }) {
return this.levels.reduce((items, level) => ({ return this.options.levels.reduce((items, level) => ({
...items, ...items,
...{ ...{
[`Shift-Ctrl-${level}`]: setBlockType(type, { level }), [`Shift-Ctrl-${level}`]: setBlockType(type, { level }),
@@ -47,9 +43,18 @@ export default class Heading extends Node {
} }
inputRules({ type }) { inputRules({ type }) {
return this.options.levels.map(level => {
return textblockTypeInputRule(
new RegExp(`^(#{1,${level}})\\s$`),
type,
match => ({ level }),
)
})
return [ return [
textblockTypeInputRule( textblockTypeInputRule(
new RegExp(`^(#{1,${this.options.maxLevel}})\\s$`), new RegExp(`^(#{1,${this.options.levels}})\\s$`),
type, type,
match => ({ level: match[1].length }), match => ({ level: match[1].length }),
), ),