The following suggestions appeared on TaviSuggestions. They will not be merged into the main codebase, in order to maintain general consistency with existing wiki implementations. Site admins are welcome to make these changes to their own wiki, however. Thanks to JohnBelmonte for these ideas.

Back to TaviPatches...

Reverse the precedence of headings

(This solution doesnt work as expected with $MaxHeading see below)

Since "===This===" appears more prominent when editing than "=This=", change the code so that more equals signs generate a bigger heading.

In function parse_heading in parse/transforms.php, change the following lines:
return new_entity(array('head_start', $level)) .
to
return new_entity(array('head_start', $MaxHeading + 1 - $level)) .
and
new_entity(array('head_end', $level));
to
new_entity(array('head_end', $MaxHeading + 1 - $level));

Reverse the precedence of headings - The $MaxHeading version

In function parse_heading in parse/transforms.php, change the latter part to become this:
  if(($level = strlen($result[1])) > $MaxHeading)
    { $level = $MaxHeading ; }

  //return new_entity(array('head_start', $level)) .
  return new_entity(array('head_start', 6 + 1 - $level)) .
         $result[2] .
         //new_entity(array('head_end', $level));
         new_entity(array('head_end', 6 + 1 - $level));
}

Start headings at level 2 rather than level 1

Pages should generally only have one l1 heading, so the engine should disallow it. In defense of the current behavior, it is sufficient for the community to ensure heading levels are correct, just like the community helps tweak spelling and other minor problems.

In function parse_heading in parse/transforms.php, on the two lines where new_entity is called, adjust the second parameter of the array function. Add one to the parameter ("+ 1").

Reduce the number of allowed headings

This keeps things simple and reduces the chance of unintended markup, it is suggested that ==x== and =x= be the only two allowed heading levels.

In config.php, set $MaxHeading to a smaller value, such as 3.