New extension: strike through with two tildes [jgm/peg-markdown]

See https://github.com/jgm/peg-markdown/commit/7cc5b73
This commit is contained in:
Michael Teichgräber 2013-06-11 01:51:23 +02:00
parent 765928916d
commit 13604f76a7
3 changed files with 17 additions and 2 deletions

View File

@ -212,6 +212,8 @@ func (w *htmlOut) elem(elt *element) *htmlOut {
w.inline("<em>", elt) w.inline("<em>", elt)
case STRONG: case STRONG:
w.inline("<strong>", elt) w.inline("<strong>", elt)
case STRIKE:
w.inline("<del>", elt)
case LIST: case LIST:
w.children(elt) w.children(elt)
case RAW: case RAW:

View File

@ -71,6 +71,7 @@ const (
HTML HTML
EMPH EMPH
STRONG STRONG
STRIKE
PLAIN PLAIN
PARA PARA
LISTITEM LISTITEM
@ -480,6 +481,7 @@ Inline = Str
| Space | Space
| Strong | Strong
| Emph | Emph
| Strike
| Image | Image
| Link | Link
| NoteReference | NoteReference
@ -532,6 +534,7 @@ Symbol = < SpecialChar >
UlOrStarLine = (UlLine | StarLine) { $$ = p.mkString(yytext) } UlOrStarLine = (UlLine | StarLine) { $$ = p.mkString(yytext) }
StarLine = < "****" '*'* > | < Spacechar '*'+ &Spacechar > StarLine = < "****" '*'* > | < Spacechar '*'+ &Spacechar >
UlLine = < "____" '_'* > | < Spacechar '_'+ &Spacechar > UlLine = < "____" '_'* > | < Spacechar '_'+ &Spacechar >
TildeLine = < "~~~~" '~'* > | < Spacechar '~'+ &Spacechar >
Emph = EmphStar | EmphUl Emph = EmphStar | EmphUl
@ -567,6 +570,15 @@ StrongUl = "__" !Whitespace
"__" "__"
{ $$ = p.mkList(STRONG, a) } { $$ = p.mkList(STRONG, a) }
TwoTildeOpen = !TildeLine "~~" !Spacechar !Newline
TwoTildeClose = !Spacechar !Newline a:Inline "~~" { $$ = a; }
Strike = TwoTildeOpen
a:StartList
( !TwoTildeClose Inline { a = cons($$, a) } )*
TwoTildeClose { a = cons($$, a) }
{ $$ = p.mkList(STRIKE, a) }
Image = '!' ( ExplicitLink | ReferenceLink ) Image = '!' ( ExplicitLink | ReferenceLink )
{ if $$.key == LINK { { if $$.key == LINK {
$$.key = IMAGE $$.key = IMAGE
@ -702,7 +714,7 @@ Nonspacechar = !Spacechar !Newline .
Newline = '\n' | '\r' '\n'? Newline = '\n' | '\r' '\n'?
Sp = Spacechar* Sp = Spacechar*
Spnl = Sp (Newline Sp)? Spnl = Sp (Newline Sp)?
SpecialChar = '*' | '_' | '`' | '&' | '[' | ']' | '(' | ')' | '<' | '!' | '#' | '\\' | '\'' | '"' | ExtendedSpecialChar SpecialChar = '~' | '*' | '_' | '`' | '&' | '[' | ']' | '(' | ')' | '<' | '!' | '#' | '\\' | '\'' | '"' | ExtendedSpecialChar
NormalChar = !( SpecialChar | Spacechar | Newline ) . NormalChar = !( SpecialChar | Spacechar | Newline ) .
Alphanumeric = [0-9A-Za-z] | '\200' | '\201' | '\202' | '\203' | '\204' | '\205' | '\206' | '\207' | '\210' | '\211' | '\212' | '\213' | '\214' | '\215' | '\216' | '\217' | '\220' | '\221' | '\222' | '\223' | '\224' | '\225' | '\226' | '\227' | '\230' | '\231' | '\232' | '\233' | '\234' | '\235' | '\236' | '\237' | '\240' | '\241' | '\242' | '\243' | '\244' | '\245' | '\246' | '\247' | '\250' | '\251' | '\252' | '\253' | '\254' | '\255' | '\256' | '\257' | '\260' | '\261' | '\262' | '\263' | '\264' | '\265' | '\266' | '\267' | '\270' | '\271' | '\272' | '\273' | '\274' | '\275' | '\276' | '\277' | '\300' | '\301' | '\302' | '\303' | '\304' | '\305' | '\306' | '\307' | '\310' | '\311' | '\312' | '\313' | '\314' | '\315' | '\316' | '\317' | '\320' | '\321' | '\322' | '\323' | '\324' | '\325' | '\326' | '\327' | '\330' | '\331' | '\332' | '\333' | '\334' | '\335' | '\336' | '\337' | '\340' | '\341' | '\342' | '\343' | '\344' | '\345' | '\346' | '\347' | '\350' | '\351' | '\352' | '\353' | '\354' | '\355' | '\356' | '\357' | '\360' | '\361' | '\362' | '\363' | '\364' | '\365' | '\366' | '\367' | '\370' | '\371' | '\372' | '\373' | '\374' | '\375' | '\376' | '\377' Alphanumeric = [0-9A-Za-z] | '\200' | '\201' | '\202' | '\203' | '\204' | '\205' | '\206' | '\207' | '\210' | '\211' | '\212' | '\213' | '\214' | '\215' | '\216' | '\217' | '\220' | '\221' | '\222' | '\223' | '\224' | '\225' | '\226' | '\227' | '\230' | '\231' | '\232' | '\233' | '\234' | '\235' | '\236' | '\237' | '\240' | '\241' | '\242' | '\243' | '\244' | '\245' | '\246' | '\247' | '\250' | '\251' | '\252' | '\253' | '\254' | '\255' | '\256' | '\257' | '\260' | '\261' | '\262' | '\263' | '\264' | '\265' | '\266' | '\267' | '\270' | '\271' | '\272' | '\273' | '\274' | '\275' | '\276' | '\277' | '\300' | '\301' | '\302' | '\303' | '\304' | '\305' | '\306' | '\307' | '\310' | '\311' | '\312' | '\313' | '\314' | '\315' | '\316' | '\317' | '\320' | '\321' | '\322' | '\323' | '\324' | '\325' | '\326' | '\327' | '\330' | '\331' | '\332' | '\333' | '\334' | '\335' | '\336' | '\337' | '\340' | '\341' | '\342' | '\343' | '\344' | '\345' | '\346' | '\347' | '\350' | '\351' | '\352' | '\353' | '\354' | '\355' | '\356' | '\357' | '\360' | '\361' | '\362' | '\363' | '\364' | '\365' | '\366' | '\367' | '\370' | '\371' | '\372' | '\373' | '\374' | '\375' | '\376' | '\377'
AlphanumericAscii = [A-Za-z0-9] AlphanumericAscii = [A-Za-z0-9]
@ -1032,6 +1044,7 @@ var keynames = [numVAL]string{
HTML: "HTML", HTML: "HTML",
EMPH: "EMPH", EMPH: "EMPH",
STRONG: "STRONG", STRONG: "STRONG",
STRIKE: "STRIKE",
PLAIN: "PLAIN", PLAIN: "PLAIN",
PARA: "PARA", PARA: "PARA",
LISTITEM: "LISTITEM", LISTITEM: "LISTITEM",

2
portid
View File

@ -1 +1 @@
208 9629df92a0de