all repos — h3rald @ 6b243ded05a7593922d198634c681075de1c12e2

The sources of https://h3rald.com

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
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
-----
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&#8217;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&#8217;s not <em>too</em> bad if you think about it, unless
	you&#8217;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&#8217;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>