markupeditor 0.9.24 → 0.9.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14688,10 +14688,9 @@ function liftOutOfList(state, dispatch, range) {
14688
14688
  return true;
14689
14689
  }
14690
14690
 
14691
- const pDOM = ["p", 0],
14692
- blockquoteDOM = ["blockquote", 0],
14691
+ const pDOM = ["p", 0],
14692
+ blockquoteDOM = ["blockquote", 0],
14693
14693
  hrDOM = ["hr"],
14694
- preDOM = ["pre", ["code", 0]],
14695
14694
  brDOM = ["br"];
14696
14695
 
14697
14696
  let baseNodes = OrderedMap.from({
@@ -14757,8 +14756,23 @@ let baseNodes = OrderedMap.from({
14757
14756
  group: "block",
14758
14757
  code: true,
14759
14758
  defining: true,
14760
- parseDOM: [{tag: "pre", preserveWhitespace: "full"}],
14761
- toDOM() { return preDOM }
14759
+ attrs: {
14760
+ language: {default: null}
14761
+ },
14762
+ parseDOM: [{
14763
+ tag: "pre",
14764
+ preserveWhitespace: "full",
14765
+ getAttrs(dom) {
14766
+ const className = dom.querySelector("code")?.getAttribute("class");
14767
+ const languageClass = className?.split(/\s+/).find(cls => cls.startsWith("language-"));
14768
+ const language = languageClass ? languageClass.slice("language-".length) : "";
14769
+ return {language: language ? language : null}
14770
+ }
14771
+ }],
14772
+ toDOM(node) {
14773
+ const language = node.attrs.language;
14774
+ return ["pre", language ? ["code", {class: `language-${language}`}, 0] : ["code", 0]]
14775
+ }
14762
14776
  },
14763
14777
 
14764
14778
  // :: NodeSpec The text node.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markupeditor",
3
- "version": "0.9.24",
3
+ "version": "0.9.25",
4
4
  "description": "A web component and API for WYSIWYG HTML editing.",
5
5
  "keywords": [
6
6
  "wysiwyg",