diff --git a/src/ts/ribbit-editor.ts b/src/ts/ribbit-editor.ts index 14477f8..f33ca43 100644 --- a/src/ts/ribbit-editor.ts +++ b/src/ts/ribbit-editor.ts @@ -386,7 +386,7 @@ export class RibbitEditor extends Ribbit { return block; } - console.log(`Parsing line '${line}'`); + //console.log(`Parsing line '${line}'`); for (const rule of BLOCK_RULES) { const prefixLength = rule.prefixLength(line); @@ -447,6 +447,7 @@ export class RibbitEditor extends Ribbit { #parseInline(text: string): DocumentFragment { var t = text; text = disambiguateAsteriskRuns(text); + //console.log(`${t} => ${text}`); const classes: Record = { '**': 'md-bold', '*': 'md-italic', @@ -468,7 +469,7 @@ export class RibbitEditor extends Ribbit { let match: RegExpExecArray | null; while ((match = INLINE_PATTERN.exec(text)) !== null) { - console.log(`DELIM: ${match.groups!.delimiter} CONTENT: ${match.groups!.content} CLOSER: ${match.groups!.closer}`) + // console.log(`DELIM: ${match.groups!.delimiter} CONTENT: ${match.groups!.content} CLOSER: ${match.groups!.closer}`) if (match.index > lastIndex) { fragment.appendChild(document.createTextNode(text.slice(lastIndex, match.index))); } @@ -481,7 +482,7 @@ export class RibbitEditor extends Ribbit { fragment.appendChild(document.createTextNode(text.slice(lastIndex))); } - console.log(`'${t}' => '${text.replace('\u200C', '|')}`, fragment.children); + // console.log(`'${t}' => '${text.replace('\u200C', '|')}`, fragment.children); return fragment; } @@ -501,6 +502,8 @@ export class RibbitEditor extends Ribbit { const caretOffset = this.#getCaretOffset(block); const lineText = normalizeLineText(block.textContent!); + console.log(`'${block.textContent}' normalized to '${lineText}'`); + const newBlock = this.#buildBlock(lineText); block.className = newBlock.className; block.innerHTML = ''; @@ -515,7 +518,6 @@ export class RibbitEditor extends Ribbit { lastChild.textContent = lastChild.textContent!.replace(/ $/, '\u00A0'); } } - */ if (lineText.endsWith(' ')) { // Find the last text node in the block (may be nested inside spans) const walker = document.createTreeWalker(block, NodeFilter.SHOW_TEXT); @@ -527,13 +529,17 @@ export class RibbitEditor extends Ribbit { if (lastTextNode) { lastTextNode.textContent = lastTextNode.textContent!.replace(/ $/, '\u00A0'); } + console.log(`updating lastTextNode.textContent to '${lastTextNode!.textContent}'`); } + */ const prefixSpan = block.firstElementChild; const prefixLen = (prefixSpan?.classList.contains(DELIM_CLASS) || prefixSpan?.classList.contains(LIST_PREFIX_CLASS)) ? prefixSpan.textContent!.length : 0; + console.log(`${block.textContent!}: ${caretOffset} <= ${prefixLen} && ${prefixSpan} ?`); + if (caretOffset <= prefixLen && prefixSpan) { const sel = window.getSelection()!; const range = document.createRange();