contents/glyph/book/text_editing/esc_quot.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
----- title: "Glyph – Escaping and Quoting" content-type: page ----- <nav class="navigation"><a href="/glyph/book/text_editing/macro_composition.html">← Macro Composition</a> | <a href="/glyph/book/index.html">Contents</a> | <a href="/glyph/book/text_editing/sections.html">Sections and Headers →</a></nav> <p>Glyph doesn’t require any special control characters like LaTeX, and its macro syntax is very straightforward and liberal. This however comes with a price: because square brackets are used as delimiters, you must escape any square bracket in your text with a backslash. That’s not <em>too</em> bad if you think about it, unless you’re writing programming code, in which case escaping every single square bracket can be painful.</p> <p>If a portion of your text contains an excessive amount of square brackets, you may consider using the <a href="/glyph/book/macros/macros_core.html#m_escape"><code>escape</code></a> macro (or its alias <code>.</code>) with the <code>[=</code> and <code>=]</code> delimiters. By itself, the escape macro doesn’t do anything: it just evaluates to its contents, but the special delimiters act as an escape for any square bracket within them. As a consequence, any macro within <code>[=</code> and <code>=]</code> will <em>not</em> be evaluated.</p> <p>You can use the quoting delimiters with <em>any</em> macro identifier. Obviously, using them as delimiters for things like <a href="/glyph/book/macros/macros_structure.html#m_section"><code>section</code></a> macros may not be a good idea, but they should be more or less mandatory with the <a href="/glyph/book/macros/macros_block.html#m_codeblock"><code>codeblock</code></a> macro or the <a href="/glyph/book/macros/macros_filters.html#m_highlight"><code>highlight</code></a> macro, especially when it contains square brackets or even Glyph code, like this:</p> <div class="CodeRay"> <div class="code"><pre><span class="line-numbers"> <a href="#n1" name="n1">1</a></span>codeblock[= <span class="line-numbers"> <a href="#n2" name="n2">2</a></span> section[ <span class="line-numbers"> <a href="#n3" name="n3">3</a></span> @title[A section] <span class="line-numbers"> <a href="#n4" name="n4">4</a></span> @id[test] <span class="line-numbers"> <a href="#n5" name="n5">5</a></span>This is a section. <span class="line-numbers"> <a href="#n6" name="n6">6</a></span> section[ <span class="line-numbers"> <a href="#n7" name="n7">7</a></span> @title[A nested section] <span class="line-numbers"> <a href="#n8" name="n8">8</a></span>This is another section. <span class="line-numbers"> <a href="#n9" name="n9">9</a></span> ] <span class="line-numbers"><strong><a href="#n10" name="n10">10</a></strong></span> ] <span class="line-numbers"><a href="#n11" name="n11">11</a></span>=]</pre></div> </div> <aside class="note"> <span class="note-title">Note</span>Although quoting delimiters allow you to use square brackets without escaping them, you must still escape them if you want to escape quoting delimiters themselves. </aside> <p>Besides square brackets, there are other characters that must or can be escaped with backslashes, as shown in the following table:</p> <table> <tr> <th>Escape Sequence</th> <th>Evaluates to...</th> <th>Notes</th> </tr> <tr> <td> <code>\[</code> </td> <td> <code>[</code> </td> <td> Square brackets must be escaped unless used as macro delimiters or within a quoting macro. </td> </tr> <tr> <td> <code>\]</code> </td> <td> <code>]</code> </td> <td> Square brackets must be escaped unless used as macro delimiters or within a quoting macro. </td> </tr> <tr> <td> <code>\\</code> </td> <td> <code>\</code> </td> <td>Backslashes do not have to be escaped by default, but an escaped backslash will evaluate to itself.</td> </tr> <tr> <td> <code>\=</code> </td> <td> <code>=</code> </td> <td>Equal signs do not have to be escaped by default, but an escaped equal sign will evaluate to iself.</td> </tr> <tr> <td> <code>\|</code> </td> <td> <code>|</code> </td> <td>Pipes must be escaped (even within quoting macros) unless they are used to separate macro parameters.</td> </tr> <tr> <td> <code>\/</code> </td> <td /> <td>An escaped dot evaluates to nothing. Useful to separate macro identifiers from other characters: <br /><code>_\/=>[#link|This link is emphasized using Textile]_ </code> </td> </tr> </table> <nav class="navigation"><a href="/glyph/book/text_editing/macro_composition.html">← Macro Composition</a> | <a href="/glyph/book/index.html">Contents</a> | <a href="/glyph/book/text_editing/sections.html">Sections and Headers →</a></nav> |