Booking options
Free - ยฃ1,234,567



Free - ยฃ1,234,567
Delivered In-Person
1 hour
All levels
Reference line, every mark: bold, italic, underline, strikethrough, code, link, colour, highlight.
A ยท Block coverage & empty states
A01 โ Plain paragraph
Baseline. Confirms a normal paragraph survives untouched.
A normal paragraph with nothing special about it.
A02 โ Two adjacent paragraphs
Tests that consecutive paragraphs stay separate and donโt merge into one block.
First paragraph.
Second paragraph.
A03 โ Empty paragraph between two filled ones
Empty blocks are a common serialisation crash point. The gap below should persist or collapse gracefully.
Above the gap.
Below the gap.
A04 โ Hard line break inside one paragraph
Distinguishes a soft line break (Shift+Enter) from a new paragraph. Line one and two should share one block.
Line one
Line two in the same paragraph block.
A05 โ Heading immediately followed by heading
No paragraph between two headings โ checks block boundary handling.
A06 โ Divider as the only thing in a region
A bare divider with no surrounding text. Should not collapse or attach to neighbours.
A07 โ Three dividers in a row
Consecutive dividers; some editors dedupe them. Expect three (or a documented collapse).
A08 โ Paragraph, divider, paragraph (tight)
Divider directly between two lines with no blank space โ boundary test.
Just above.
Just below.
A09 โ Long single paragraph (wrap & perf)
A long block of prose to test wrapping and that long paragraphs donโt lag or truncate.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
B ยท Headings
B01 โ H1 / H2 / H3 ladder
All three heading levels in order, mapping cleanly to the editorโs H1/H2/H3.
B02 โ Heading carrying inline marks
Marks inside a heading. Some editors strip marks from headings.
B03 โ Heading that is only a link
A heading whose entire content is a hyperlink.
B04 โ Very long heading
Tests heading wrapping and that long headings donโt overflow the layout.
B05 โ Heading with inline code
Monospace inside a heading โ a frequent rendering edge case.
app.config.json fileB06 โ Empty heading (build by hand)
Create an empty H2 in the editor directly. Empty headings often fail to save.
C ยท Inline marks โ single & combined
C01 โ Each mark alone
One sentence per mark, isolated, to confirm each works on its own.
Bold only.
Italic only.
Underline only.
Strikethrough only.
Inline code only.
Highlight only.
C02 โ Every pairwise combination
Two marks at once across the common pairs โ catches marks that cancel each other.
bold+italic, bold+underline, bold+strike, italic+underline, italic+strike, underline+strike, bold+highlight, italic+highlight.
C03 โ Triple and quad stacks
Three and four marks layered on the same text.
bold italic underline, then all four together.
C04 โ Partial overlap (mark-boundary bug)
โdogโ bold, โrepeatedlyโ bold+italic, โwithoutโ italic โ overlapping but not nested. The #1 cause of mark corruption after save/reload.
The lazy dog repeatedly without stopping.
C05 โ Mark at the very start of a block
First character formatted โ a common cursor/boundary failure.
Bold at the start, then plain.
C06 โ Mark at the very end of a block
Last character formatted.
Plain, then bold at the end.
C07 โ Whole block is one mark
The entire paragraph is bold โ should not leak into the next block.
The whole of this paragraph is bold from start to finish.
This next paragraph must be plain (no bold leak).
C08 โ Adjacent different marks, no space
Bold word touching an italic word with no gap โ boundary precision.
bolditalic touching.
C09 โ Link layered with marks
A link that is also bold, coloured and underlined โ mark + link interaction.
See this bold red link for details.
C10 โ Code span containing special characters
Inline code must render <, >, & literally, not parse them.
Run if (a < b && c > d) { return "<ok>"; } to check.
D ยท Colour & highlight deep dive
D01 โ Palette red (known-good)
Cademy palette #d32f2f. Should survive paste in this paragraph.
This text is palette red.
D02 โ Off-palette hex
Arbitrary purple #6a1b9a. If it drops while D01 survives, the importer uses a palette allowlist.
This text is off-palette purple.
D03 โ Named CSS colour
Colour given as a keyword (teal) instead of hex โ does the parser accept it?
This text is named teal.
D04 โ rgb() colour
Colour as rgb() โ tests style-value parsing variety.
This text is rgb blue.
D05 โ Several colours in one line
Multiple coloured spans together โ checks they donโt bleed into each other.
red green blue purple
D06 โ Highlight via <mark>
Highlight expressed as a mark tag.
This is mark-tag highlight.
D07 โ Highlight via background-color
Highlight expressed as an inline background-color style โ does it map to the same highlight mark?
This is background-style highlight.
D08 โ Colour + highlight together
Text that is both coloured and highlighted at once.
red text on yellow highlight
D09 โ Colour inside other block types
Same palette red placed in a heading, a list item, a quote and a table cell. Reveals whether colour survival is block-dependent.
List item with red
Quote with red
Cell with red |
D10 โ Highlight in those same blocks
Control for D09 โ highlight already survives, so this isolates colour as the variable.
List item with highlight
Quote with highlight
Cell with highlight |
E ยท Links & URL schemes
E01 โ Standard https with query & fragment
Full URL must keep its query string and #fragment.
https link with query and fragment
E02 โ mailto
Email link.
E03 โ tel
Telephone link.
call us
E04 โ Relative path
Relative URL โ preserved, or rewritten to absolute?
E05 โ In-page anchor
Fragment-only link.
E06 โ Protocol-relative
//host/path โ should resolve, not break.
E07 โ Bare URL as text (autolink test)
A raw URL typed as plain text. Does the editor auto-link it or leave it inert?
Visit https://cademy.io/courses for more.
E08 โ Link wrapping several words and a mark
Link spanning multiple words, one of which is bold.
enrol on the advanced course today
E09 โ Very long URL
A long href to test truncation/wrapping of the stored link.
F ยท Lists
F01 โ Bulleted, 6 levels deep
Deep indentation. Each level should persist after save/reload.
Level 1 โ the top-level bullet
Level 2 โ nested once, sits under Level 1
Level 3 โ nested twice
Level 4 โ nested three times, with inline code
Level 5 โ nested four times, highlighted
Level 6 โ the deepest bullet, with a link
F02 โ Numbered, 4 levels deep
Each item names its level โ so you can see at a glance that numbering restarts at 1 on every new level and that marks survive deep ordered nesting.
Level 1 โ the first numbered item
Level 2 โ a sub-item under Level 1
Level 3 โ a sub-sub-item
Level 4 โ the deepest item; numbering should restart at 1 here, with code
F03 โ Mixed ordered/unordered nesting
Each item names its level and its list type, so you can confirm the type actually switches (numbered โ bulleted โ numbered) at each depth.
Level 1 (numbered) โ top step
Level 2 (bulleted) โ the type should switch to bullets here
Level 3 (numbered) โ first numbered child, highlighted
Level 3 (numbered) โ second numbered child, coloured
Level 2 (bulleted) โ second bullet at this level
Level 1 (numbered) โ second top step, with a link
F04 โ List item with two paragraphs
A single item holding multiple paragraphs.
First paragraph of the item
Second paragraph, same item.
F05 โ List item containing a quote
Block-in-list nesting (quote inside a bullet).
Item with a quote:
quoted inside a list item
F06 โ List item containing a code block
Code block nested in a list item.
Run this:npm install
F07 โ Ordered list with custom start
A list starting at 5 (start="5"). Does the editor honour the offset?
five
six
seven
F08 โ Task list (checkboxes)
Checkbox list โ Cademy may have no task-list block; observe whether it maps or flattens.
โ unchecked task
โ checked task
F09 โ Every mark inside list items
Each inline style exercised within list context.
bold item
italic item
colour item
highlight item
link item
code item
F10 โ Very long single list item
Wrapping inside a bullet.
This single list item contains enough text to wrap across several lines, which tests that bullet indentation and hanging alignment hold up when the content is long.
G ยท Quotes
G01 โ Single-line quote
Baseline quote that should publish correctly.
A single-line quote.
G02 โ Multi-paragraph quote (known empty-render bug)
Two paragraphs in one quote โ the structure that published empty before. Key repro.
You should not be able to have paragraphs in quates
This is the second line
G03 โ Quote with a link inside
Earlier the link inside a quote vanished on publish. Watch this one specifically.
A quote containing ย a linkย that must survive.
G04 โ Quote with mixed marks
Bold/italic/colour/highlight inside a quote.
A quote with bold, italic, colour and highlight.
G05 โ Quote containing a list
Block nesting: a bulleted list inside a quote.
Reasons:
- one
- two
G06 โ Nested quote (quote in quote)
A quote inside a quote โ deep block nesting.
Outer quote.
I ยท Tables
I01 โ Basic 3ร3
Standard table with header row.
A | B | C |
1 | 2 | 3 |
4 | 5 | 6 |
I02 โ Empty cells scattered
Blank cells must hold their position, not collapse.
X | Y | Z |
filled | filled | |
filled |
I03 โ Marks inside cells
Every inline style inside table cells.
bold | italic | highlight |
colour |
|
I04 โ Block content inside cells
A list and a heading inside cells โ block-in-table nesting.
List cell | Heading cell |
| cell heading |
I05 โ Merged cells (colspan/rowspan)
Spanned cells. Many editors flatten these โ note how itโs handled.
spans two columns | normal | |
spans two rows | a | b |
c | d |
I06 โ Overflow content in a cell
A long unbroken word stresses column width.
short | long |
ok | Loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtempor |
I07 โ Single row / single column / 1ร1
Degenerate table shapes.
only row, cell 1 | cell 2 |
only column, row 1 |
row 2 |
1ร1 |
I08 โ Wider table (5 columns)
Tests horizontal handling and that wide tables donโt break the page.
Col1 | Col2 | Col3 | Col4 | Col5 |
a | b | c | d | e |
J ยท Unicode, i18n & encoding
J01 โ Emoji incl. ZWJ sequences
Compound emoji must stay intact, not split into parts.
Simple ๐๐ฅโ โ ZWJ ๐จโ๐ฉโ๐งโ๐ฆ ๐ณ๏ธโ๐ ๐ฉ๐ฝโ๐ป
J02 โ Combining diacritics
Stacked combining marks shouldnโt corrupt the cursor or rendering.
aฬeฬoฬ and Zอaฬดlฬทgฬถoฬก
J03 โ RTL Arabic & Hebrew
Right-to-left scripts should render RTL.
Arabic: ู ุฑุญุจุง ุจู ูู ุงูุฏูุฑุฉ โ Hebrew: ืฉืืื ืขืืื
J04 โ Mixed LTR/RTL in one line
Bidirectional text โ the trickiest layout case.
Price is 100 ุดููู today and thatโs final.
J05 โ CJK
Chinese / Japanese / Korean rendering.
ๆฅๆฌ่ชใฎใใญในใ ไธญๆๆๅญ ํ๊ตญ์ด ํ ์คํธ
J06 โ Zero-width characters
Invisible characters between the bars must not corrupt the block.
start|โโ|end
J07 โ HTML entities as literal text
These must display as characters, not be parsed as markup.
& < > " ' ยฉ โ โข ยฝ โค โฅ โฌ ยฃ
J08 โ Literal angle-bracket โtagsโ
Text that looks like HTML must stay as text.
Type <not a tag> and </closing> and <b>literal</b> here.
J09 โ Smart punctuation
Curly quotes, dashes and ellipsis preserved.
โcurlyโ โquotesโ โ enโdash, emโdash, ellipsisโฆ and ยซguillemetsยป.
J10 โ Very long unbroken word
No break opportunities โ must wrap or scroll without breaking layout.
Lorem_ipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaUtenimadminimveniam
K ยท Whitespace & alignment
K01 โ Left / centre / right / justify
Four alignment modes.
Left-aligned.
Centre-aligned.
Right-aligned.
Justified paragraph long enough to show the spacing spread evenly across the line width when it wraps to a second line.Justified paragraph long enough to show the spacing spread evenly across the line width when it wraps to a second line.
K02 โ Alignment on a heading
Centre-aligned heading.
K03 โ Alignment on a list
Right-aligned list items.
right one
right two
one
two
K04 โ Multiple internal spaces
Runs of spaces โ most editors collapse them; note the behaviour.
three spaces and a tab between words.
K05 โ Leading / trailing spaces
Spaces at the edges of a line.
leading and trailing
K06 โ Whitespace-only block
A block containing only spaces โ does it persist or get dropped?
N ยท Containers (build by hand)
N01 โ Callout
Usually pastes; if not, use /callout.
N02 โ Toggle (insert manually: /toggle)
Wrap the lines below in a toggle
Toggle body with italic, a ย linkย , and a list:
inside the toggle
second item with code
N03 โ 2 Columns (insert manually: /2 columns)
Build a 2-column block, then move each columnโs content in.
Italic, underline, highlight.
N04 โ 3 Columns (insert manually: /3 columns)
Build a 3-column block, then move each columnโs content in.
Bold and a link.
N05 โ Button Link
Button block; if it pastes as a plain link, thatโs the fallback to note.