Test /
PmSyntax-ChordPro
SDVA($CustomSyntax, array(
'CHORDPRO,00' => '<ws0 =directive>comment>*meta_nobg>=meta_nobg>punct
/(\|\|:)([\s\S]*?)(:\|\|)/g
/^ *#.*$/gm
/\{[a-z_]+:?\}/gi
/(\{[a-z_]+:)(.+?)(\})/gi
/\[[A-G][b#]?m?[769]?\]/g
'));
I'm not sure if the "#comment" can only appear alone on a line (currently defined), or after other text on the same line.
This is fantastic thanks, I hadn't progressed in my understanding enough to appreciate the power of this. # comment apply to an entire line
The above is enabled on this page, test samples below. Note: only the $CustomSyntax configuration is enabled here, not the full ChordPro recipe, hence (:markup class=norender:).
!!Long markup
||:{debug:on}
{version}
{Title: Title test example}
{Subtitle: Subtitle}
{Album: Album}
{Key:F#m}
:||
!!Long markup
||:{debug:on}
{Capo: 3}
Chords [Bb]and [C#]Lyrics
[A]An example [D]of [G7]lyrics and tablature
An example with no chords
[G][F][E][Chords][Only]
And another example with no chords, followed by an empty line
{Comment: a comment}
{Comment_italic: an italic comment}
{Comment_box: a comment box}
# comment line
{start_of_chorus}
[B]text of chorus
more chorus text[Cm7]
{end_of_chorus}
{start_of_tab}
D D D D D
-------------2-----2----------------2-----2----------------2-
-------------3-----3----------------3-----3----------------3-
----------o--2-----2-------------o--2-----2-------------o--2-
----2--4--------o----------2--4--------o----------2--4-------
-o----------------------o----------------------o-------------
-------------------------------------------------------------
{end_of_tab}
:||
!!short markup
||:{d:on}{v}
{T: Title test example}
{St: Subtitle}
{A: Album}
:||
!!short markup
||:{d:on}{v}
[A]An example [D]of [G]lyrics and tablature
{C: a comment}
{Ci: italic comment}
{Cb: comment box}
# comment line
{soc}
[B]chorus
{eoc}
{sot}
Csus4 (x33011) Fmaj7 (132211)
{eot}
:||
!!test cases
||:
{TITLE: First title}
{SUBTITLE: First subtitle}
Blank line follows[G]
Blank line precedes[A] and follows
{ci:Chorus} {soc}
Two directives on one line
{eoc}
{c:two}comments{ci:on one line}
# indented comment
embedded directive {Title: Embedded title directive}
{subtitle: Indented lowercase subtitle directive}
{define: <chord_name> <position> <String6> .. <String1>}
['|]
{unknown: directive}
:||
!!pathological markup
||::||
----
||: :||
----
||:
:||
----
||:test:||
----
||:test
:||
----
:||:
:test:||
!!Test if ChordPro CustomSyntax impacts normal PmWiki markup
# not a comment
{comment: not a comment}
{ChordPro: not a chordpro directive}
Just normal [B]rackets
|