# 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.