Introduction

Welcome to BML! This is a normal paragraph, and above we can see the #+TITLE, the #+AUTHOR and the #+DESCRIPTION of the file. #+TITLE is the name of the system and #+DESCRIPTION is a short summary of how the system works. #+AUTHOR is self explanatory. Introduction above, "headed by an asterisk", sets a section at the first level (the second level would have two asterisks etc).

In the paragraph above I encapsulated some words between equal signs. This means that they will show up as a monospaced font when exported to HTML or LaTeX. It is also possible to make words (or sentences) strong or bold or in italics.

The system presented in this example file is meant to showcase many of the current features in BML. Let's start with the basic opening structure of the system:

The above is an example of a bidding table; the reason why BML is more suited for bridge system notes than other markup languages. You start by writing the bid, then a number of whitespaces, and then the description of the bid. Simple! C is for clubs, D for diamonds, H for hearts, S for spades and N for no trump. There's also some special cases which you could use, above we use 1M (1 and 1), 2 (2 and 2) and 3X (3, 3, 3 and 3). We'll see more of these later.

The reason why the 1NT opening is left out above is a secret for now!

The 1 opening

You might have noticed the in the title of this section? This will be replaced by a club suit symbol when exported. The same is true for , and (but these will be converted to diamonds, hearts and spades, ofcourse).

In this example we use transfer responses to the 1 opening:

By writing 1— we define that the following bids should be continuations to the sequence 1. We could write 1- or 1– too, the number of dashes only matters to the way the output looks. Also note the 1red response, this defines both 1 and 1.

After a transfer

This section has two asterisks, meaning it will be at level two (so its a subsection). You might also have noticed that the paragraphs, the sections and the bidtables are separated by a blank line? This is important in BML, as the blankline are used to separate elements.

This bidding table shows a couple of new features. The most prominent is the ability to add continuations directly in the table, by using whitespaces. We also see another example of appending bids to an existing sequence, by using 1-1; in the beginning. There's also the use of 3m, meaning both 3 and 3.

Defense to 1NT

Defining bidding when both sides bid is a little bit more tricky, since you have to write all the bids (even passes). The opponents' bid are indicated by encapsulating them in parentheses. P is used for Pass, D for Double and R for Redouble.

Note that the above is only for a direct overcall over 1NT. To define the above also when balancing. We've used BML's copy/cut/paste functionality in order to showcase that you do not have to write it all over again. Take a look below (only visible in the example.txt file, not in HTML, LaTeX or .pdf):

First we used the #COPY command; the text between #COPY and #ENDCOPY got put into a sort of clipboard, with the tag nt_defense which we specified. To paste it into the bidding table above we used the #PASTE command. We also used the #HIDE option. When this is present in a bidding table the table will be exported to Full Disclosure, but not to HTML or LaTeX.

You could also include other BML-files into your main file by using the #INCLUDE command. Just type #INCLUDE <filename> and the entire file will be inserted at the point where you wrote the command. This is a useful way to separate your system into modules, or perhaps just to make it more manageable.

It is also possible to add continuations when the opponents interfere:

The 1NT opening

Here's the reason why I left out the 1NT opening earlier: I will showcase how to make sequences dependant on vulnerability and seat. This will be a bit messy, so hold tight!

We start by cutting our NT-module, since this will be used on all NT-openings. #CUT is similar to the #COPY command, but using #CUT means that it isn't parsed as a bidding table until it is pasted.

The #VUL command is used to set the vulnerability. It takes an argument of two characters, each can be Y, N or 0. The first character asks if we are vulnerable and the second asks if our opponents are vulnerable. Y is for Yes, N is for No and 0 means that it doesn't matter.

The #SEAT command sets the seat in which the bid should be valid. 0 means that the seat doesn't matter (all seats), 12 means first or second and 34 means third or fourth. 1–4 could also be used.

So when we're not vulnerable we open 1NT 12–14 in 1st and 2nd seat.

But in third and fourth seat it is 14–16.

When we're vulnerable we always open 1NT 14–16.

We've been using the #HIDE command, so we don't have to see our NT-system over and over again. This time tough we paste it normally, so that we see it at least once.

Lists

I'd like to show you how to make lists in BML. It is pretty simple:

You could also make ordered lists:

  1. This is ordered
  2. Just add numbers
  3. To each item