Aidan Woods
54f2c4eb4c
Fix recovered spaces calculation
2019-04-07 16:38:12 +01:00
Aidan Woods
117912c373
Substr over indexing string
2019-04-07 16:38:12 +01:00
Aidan Woods
63a97a926b
Remove leftover hackyness
2019-04-07 16:38:12 +01:00
Aidan Woods
cb211a88a8
PHP < 7 compat
2019-04-07 16:38:12 +01:00
Aidan Woods
c49d40027f
Add StateBearer which can carry state
2019-04-07 16:38:11 +01:00
Aidan Woods
4dee1e9a55
Add convenience instance-based initialisers
2019-04-07 16:38:11 +01:00
Aidan Woods
dbc0efeec0
Require integer-keyed lists so that array_merge result is predictable
2019-04-07 16:38:11 +01:00
Aidan Woods
a2bca78f7e
Fix whitespace errors
2019-04-07 16:38:11 +01:00
Aidan Woods
f47ba7aa34
Track whitespace left on blank lines to match CommonMark
...
Test changes copy pasted to match CommonMark reference parser
2019-04-07 16:38:10 +01:00
Aidan Woods
49dd8b113d
Make sure closing sequence is removed correctly
2019-04-07 16:38:10 +01:00
Aidan Woods
30763a0f38
HTML tags should have a name
2019-04-07 16:38:10 +01:00
Aidan Woods
3dd1326ded
Trim paragraph contents
2019-04-07 16:38:10 +01:00
Aidan Woods
0f55cd5b26
Permit empty links
2019-04-07 16:38:10 +01:00
Aidan Woods
82d20d8ffe
Markup like CommonMark
2019-04-07 16:38:09 +01:00
Aidan Woods
7fd6e0bb31
Backslash escape like CommonMark
2019-04-07 16:38:09 +01:00
Aidan Woods
eab734b457
Match CommonMark's rendering a bit better
2019-04-07 16:38:08 +01:00
Aidan Woods
2e0ad27c5e
CommonMark escapes double-quotes
2019-04-07 16:38:08 +01:00
Aidan Woods
d6c97ee111
Make escaping slightly less aggressive
2019-04-07 16:38:08 +01:00
Aidan Woods
62615f4fc5
Allow empty code spans
2019-04-07 16:38:08 +01:00
Aidan Woods
4563ee592d
Don't assume marker type is correct
2019-04-07 16:38:07 +01:00
Aidan Woods
aab56cf8cc
Fix strange formatting
2019-04-07 16:38:07 +01:00
Aidan Woods
48c0c34470
Caching for initial configurable values removes need to seed state
2019-04-07 16:38:07 +01:00
Aidan Woods
bc3c1544c5
Don't special case invisible
...
If something has no html, it doesn't need to have a newline
2019-04-07 16:38:06 +01:00
Aidan Woods
d6f526d80f
Return state after block parse instead of mutating the instance copy
2019-04-07 16:38:06 +01:00
Aidan Woods
b728f254b7
Ensure Url parsing is removed all the way down (not just edge)
2019-04-07 16:38:06 +01:00
Aidan Woods
d733c262c2
Cleanup logical operators
2019-04-07 16:38:06 +01:00
Aidan Woods
11da347aa1
We don't need to pass a Parsedown instance down
...
Since Parsedown is instancible from State, we only
need to carry that down.
2019-04-07 16:38:05 +01:00
Aidan Woods
b89bd0e3c2
Add breaks configurable
2019-04-07 16:38:05 +01:00
Aidan Woods
fce09a702a
Put reused code in a trait so boolean configurables are easy to make
2019-04-07 16:38:05 +01:00
Aidan Woods
8fe93f30ac
Add easy way to remove Components from InlineTyes and BlockTypes
2019-04-07 16:38:05 +01:00
Aidan Woods
9f9ef78662
This should be slightly faster
...
Merge would honour changes, and removals
are equivalent to changing to default value.
2019-04-07 16:38:05 +01:00
Aidan Woods
57632f38fb
More meaningful method name
2019-04-07 16:38:05 +01:00
Aidan Woods
5e7fb61879
More keyword fixes for pre-PHP7
2019-04-07 16:38:05 +01:00
Aidan Woods
2618509cc6
Now the class is a bit shorter we can remove these makeshift dividers
2019-04-07 16:38:04 +01:00
Aidan Woods
fce4633ff9
Inlines and Blocks as Configurables
2019-04-07 16:38:04 +01:00
Aidan Woods
eb90905d27
Default value is intrinsic to a configurable, we can just always
...
retrieve that.
2019-04-07 16:38:04 +01:00
Aidan Woods
5a50930cb0
Allow inlines to backtrack into characters that were suspected as
...
inlines but ruled out
This is required for backslash escaped Hard breaks to work:
Parsedown first checks to see if these are escape sequences,
however when they are ruled out they should not be assumed to be
plaintext since a later inline (Hardbreak) may backtrack into these
unconsumed characters.
2019-04-07 16:38:04 +01:00
Aidan Woods
1fd2e14b72
Add hard and soft breaks
2019-04-07 16:38:04 +01:00
Aidan Woods
714ae50211
Text variable isn't very useful inside the loop
2019-04-07 16:38:04 +01:00
Aidan Woods
14b3761687
Produce Blocks before converting to StateRenderables
...
(As we do with Inlines)
2019-04-07 16:38:04 +01:00
Aidan Woods
00821bd072
Don't remove right #'s too early (before dealing with whitesapce)
2019-04-07 16:38:03 +01:00
Aidan Woods
b8cdc6e9a5
Remove closing # sequence from header
2019-04-07 16:38:03 +01:00
Aidan Woods
67231cbae1
Tabs are allowed after header delimiter
2019-04-07 16:38:03 +01:00
Aidan Woods
81a2050608
Headers can't start with more than three spaces
2019-04-07 16:38:03 +01:00
Aidan Woods
3d41f270c2
Better name for testing safe mode and strict mode state
...
Add a nice named constructor
2019-04-07 16:38:03 +01:00
Aidan Woods
bb424e606f
Improve indent handling by lists
2019-04-07 16:38:03 +01:00
Aidan Woods
51c3d9d445
Make it clearer this is one backslash character
2019-04-07 16:38:02 +01:00
Aidan Woods
74bba0b2fa
rtrim non hard breaking lines
2019-04-07 16:38:02 +01:00
Aidan Woods
fc37ad11ed
Tabs shouldn't break thematic breaks
2019-04-07 16:38:02 +01:00
Aidan Woods
4e9a0113c3
Thematic breaks can't have an indent of more than 3
2019-04-07 16:38:02 +01:00