1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-27 17:09:53 +02:00

Replace "zero width whitspace" with "zero width no break" character (#2234)

This fixes https://github.com/ianstormtaylor/slate/issues/2231 where
a rogue empty line appears before an inline block.
This commit is contained in:
Kaspars Dancis
2018-10-09 13:30:01 -06:00
committed by Ian Storm Taylor
parent 933c938765
commit b1ec914467
11 changed files with 30 additions and 30 deletions

View File

@@ -133,7 +133,7 @@ class Leaf extends React.Component {
// COMPAT: Render text inside void nodes with a zero-width space. // COMPAT: Render text inside void nodes with a zero-width space.
// So the node can contain selection but the text is not visible. // So the node can contain selection but the text is not visible.
if (schema.isVoid(parent)) { if (schema.isVoid(parent)) {
return <span data-slate-zero-width="z">{'\u200B'}</span> return <span data-slate-zero-width="z">{'\uFEFF'}</span>
} }
// COMPAT: If this is the last text node in an empty block, render a zero- // COMPAT: If this is the last text node in an empty block, render a zero-
@@ -145,14 +145,14 @@ class Leaf extends React.Component {
parent.text === '' && parent.text === '' &&
parent.nodes.last() === node parent.nodes.last() === node
) { ) {
return <span data-slate-zero-width="n">{'\u200B'}</span> return <span data-slate-zero-width="n">{'\uFEFF'}</span>
} }
// COMPAT: If the text is empty, it's because it's on the edge of an inline // COMPAT: If the text is empty, it's because it's on the edge of an inline
// node, so we render a zero-width space so that the selection can be // node, so we render a zero-width space so that the selection can be
// inserted next to it still. // inserted next to it still.
if (text === '') { if (text === '') {
return <span data-slate-zero-width="z">{'\u200B'}</span> return <span data-slate-zero-width="z">{'\uFEFF'}</span>
} }
// COMPAT: Browsers will collapse trailing new lines at the end of blocks, // COMPAT: Browsers will collapse trailing new lines at the end of blocks,

View File

@@ -51,7 +51,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -59,7 +59,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -70,7 +70,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -78,7 +78,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -49,7 +49,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -57,7 +57,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -68,7 +68,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -76,7 +76,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -49,7 +49,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -57,7 +57,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -68,7 +68,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n"></span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>
@@ -76,7 +76,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -42,7 +42,7 @@ export const output = `
<div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <div data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -39,7 +39,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<a href="https://google.com"> <a href="https://google.com">
@@ -49,7 +49,7 @@ export const output = `
</a> </a>
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<a href="https://google.com"> <a href="https://google.com">
@@ -59,7 +59,7 @@ export const output = `
</a> </a>
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<a href="https://google.com"> <a href="https://google.com">
@@ -69,7 +69,7 @@ export const output = `
</a> </a>
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -40,14 +40,14 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<span data-slate-void="true" contenteditable="false"> <span data-slate-void="true" contenteditable="false">
<span data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute"> <span data-slate-spacer="true" style="height:0;color:transparent;outline:none;position:absolute">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</span> </span>
@@ -57,7 +57,7 @@ export const output = `
</span> </span>
<span> <span>
<span> <span>
<span data-slate-zero-width="n">&#x200B;</span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -37,7 +37,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<a href="https://google.com"> <a href="https://google.com">
@@ -47,7 +47,7 @@ export const output = `
</a> </a>
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -19,7 +19,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<span style="position:relative"> <span style="position:relative">
@@ -29,7 +29,7 @@ export const output = `
</span> </span>
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -17,7 +17,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="n">\u200B</span> <span data-slate-zero-width="n">\uFEFF</span>
</span> </span>
</span> </span>
</div> </div>

View File

@@ -41,7 +41,7 @@ export const output = `
<div style="position:relative"> <div style="position:relative">
<span> <span>
<span> <span>
<span data-slate-zero-width="z">&#x200B;</span> <span data-slate-zero-width="z">&#xFEFF;</span>
</span> </span>
</span> </span>
<span data-slate-void="true"> <span data-slate-void="true">
@@ -51,7 +51,7 @@ export const output = `
</span> </span>
<span> <span>
<span> <span>
<span data-slate-zero-width="n">&#x200B;</span> <span data-slate-zero-width="n">&#xFEFF;</span>
</span> </span>
</span> </span>
</div> </div>