MobileSheets Forums

Full Version: ChordPro markup
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
in Sciurius wrote:
As for "highlight commands combined with other text on the same line": If you mean "Foo {highlight: bar} blech": This is explicitly not part of the ChordPro standard. For ChordPro 6 (or 5.x) I'm currently considering a subset of markdown.

Being able to format only a part of a line differently is very useful for me. The {highlight: tag in MSP is a very welcome step forward.
I often use underscore to mark stressed syllables and bold to mark the words where a second voice shall join in (and the like).
Currently I have to leave ChordPro in these cases and use PDF instead. So I loose the possibility to transpose.

Please Johan & Mike: coordinate MSP and the ChordPro standard so that some more basic markup features are available. Thanks in advance.
It goes without saying that being able to format only a part of a line differently is very useful. One might even say neccessary.

Currently there is no suitable way to specify formatting. In fact, we are already abusing {comment}, {comment_italic}, {comment_box} and {highlight}  to obtain certain formatting effects. Quick hacks will lead to dead ends (or more hacks).

As said, I'm considering markdown, but I'm more inclined to introduce styles (= combination of font, colour, size, background) and line-oriented directives similar to MSPro's {highlight} to use them. Markdown would affect ordinary symbols (e.g., underscore, asterisk) while braces are much less common in ordinary text.

So we could see something like

{style: loud font Times-Bold size 120% colour red}
And [C] then we {loud: all sing} [F]hello

I'm open to suggestions.
Styles like that would be even better.

A little issue could be that part of the lyrics will be missing in ChordPro programs that don't support the latest standard. This is also the case today with e.g. unsupported comment styles or Mike's {highlight:... but much more cumbersome when lyrics or chords are affected.
It would be great if that could be avoided.

What do you think about
{style loud font Times-Bold size 120% colour red}
And [C] then we {loud}all sing{/loud} [F]hello
As embedded directives are not (and have never been) part of ChordPro, I assume that the text will come out ‘as is’, so

And [C]then we {loud all sing} [F]hello

will come out as

    C                       F
And then we {loud all sing} hello

As for {loud}...{/loud}: I'm afraid this will soon become too cumbersome. After all, we're musicians, not HTML writers.
Any progress about this topic?
Just came back to this thread while searching for "highlight"

Meanwhile I'm using Markdown for everyday notes (outside MSP) and really like it.
One more thought regarding Markdown vs. braces:
Markdown is designed to stay useful and readable when it is not supported at all, whereas the braces syntax e.g. {highlight: xxx} causes the highlighted text to disappear in case the current application doesn't support it (as most chordpro apps).
Supporting markdown is relatively easy, but is it sufficient? In markdown texts you have bold, italic, bold-italic, but not text sizes and colours.
It would be at least a good start and very helpful anyway. Especially that it shows up in a useful way in each and every program is great. The most important thing is to change a few words or letters, not only complete lines.

When I started using markdown I was surprised that ++underline++ and **++bold underline++** is not standard but supported only by some programs. Supporting underline would be also essential.

Switching fonts and font size is imho sufficient if it is supported for complete lines.
Chenging the text color and highlighting would be great in addition.

Most important of all: convincing Mike to support new ChordPro features also in MSP.
As you found out, there is no such thing as 'standard markdown'. Well, there is John Grubers original implementation but this is generally considered too limited. So there are many non-standard 'extended' versions (not unlike ChordPro). It seems that nowadays the GitHub extended version of markdown (GitHub Flavored Markdown, GFM) is very popular, but even GFM cannot change the text colour and highlighting unless you resort to its HTML extensions.

So for ChordPro we basically need to create our own markup, possibly a markdown-like variant. The only thing we want is to tweak in-line text appearance. Everything else (headers, paragraphs, lists, etc.) is not relevant for ChordPro. Since we are dealing with lyrics texts there is a much bigger choice of 'special characters' than in general purpose texts, but many different markup characters are hard to remember.

Personally, I'd still opt for something simple but flexible like {style text...} or <style text...>, where style is either predefined (e.g. em, strong, ul) or —in the case of the ChordPro application— one of the defined font styles. Multiple styles can be combined with +, e.g. <strong+em text...>.

What do you think?
Well thought, as always.
I agree, that we are discussing a possibility for "in-line text formatting", changing the appearance of only a part of a line.

Styles are definitely the most powerful and flexible solution. It would even be possible to combine both, like existing markdown dialects do it with their HTML extensions.

What I don't like actually: the existing syntax like {highlight:this ishighlighted} or {ci:this is comment italic} let's the marked text disappear if it is not supported by a specific program. That's a crucial limitation for using several programs and Markdown handles that so much better.
As you are creating a new syntax variant, please do it better.
That's why I added the <...> alternative.