# Defining markup solution

This page discusses solutions for Solvers that are written in a markup language. This language is nothing more than a human language, with a few special tags interspersed. It is designed for simplest problems, those that are solvable by simple formulas, or those that reduce to known problems that already have a solver defined. For example, a typical word problem that reduces to a linear system, could be written in this language.

See Triangle Solver for an example of use of such a solution.

```In any triangle, the sum of all angles is 180 degrees. Since in a
right triangle, one angle is always 90 degrees, that leaves 180-90=90
degrees for the sum of two other sharp angles. So, since one angle is
given as \$angle degrees, the other sharp angle is 90-\$angle, or
*\[assign angle1=90-\$angle\] \$angle1 degrees.
```
```So, the answer is that the angles of this straight triangle are 90,
\$angle, and \$angle1 degrees.
```

When my server evaluates this section, it prints text from left to right. Uses of variable names prefixed by the dollar sign "\$" mean that their values are substituted.

The commands to the server are given in *[ ... ] tags. The assign command, for example, assigns a value to variable name.

I will be adding more special markup tags, especially the tag that is needed to run other solvers.

After this is done, the server looks for expressions in {{{ }}} (triple curly braces). To those tutors who are already familiar with my free tutoring section, these enclose expressions that are rendered graphically. See [[Rendering expressions] for more details.