getContent() {
const code = this.querySelector('code') || this.querySelector('pre');
const tempEl = document.createElement('pre');
- tempEl.innerHTML = code.innerHTML.replace().replace(/<br\s*[\/]?>/gi ,'\n').replace(/\ufeff/g, '');
+ tempEl.innerHTML = code.innerHTML.replace(/\ufeff/g, '');
+
+ const brs = tempEl.querySelectorAll('br');
+ for (const br of brs) {
+ br.replaceWith('\n');
+ }
+
return tempEl.textContent;
}
}
this.cleanChildContent();
+ const content = this.getContent();
+ const lines = content.split('\n').length;
+ const height = (lines * 19.2) + 18 + 24;
+ this.style.height = `${height}px`;
const container = this.shadowRoot.querySelector('.CodeMirrorContainer');
const renderCodeMirror = (Code) => {
- this.cm = Code.wysiwygView(container, this.getContent(), this.getLanguage());
+ console.log({content});
+ this.cm = Code.wysiwygView(container, content, this.getLanguage());
Code.updateLayout(this.cm);
+ setTimeout(() => {
+ this.style.height = null;
+ }, 1);
};
window.importVersioned('code').then((Code) => {
showPopup(editor, textContent, '', (newCode, newLang) => {
const pre = doc.createElement('pre');
const code = doc.createElement('code');
+ console.log(newCode);
code.classList.add(`language-${newLang}`);
code.innerText = newCode;
pre.append(code);