{"route":"/en-US-v0.13.1/reference/foundations/eval/","title":"Evaluate","description":"Documentation for the `eval` function.","part":null,"outline":[{"id":"summary","name":"Summary","children":[]},{"id":"example","name":"Example","children":[]},{"id":"parameters","name":"Parameters","children":[{"id":"parameters-source","name":"source","children":[]},{"id":"parameters-mode","name":"mode","children":[]},{"id":"parameters-scope","name":"scope","children":[]}]}],"body":{"kind":"func","content":{"path":[],"name":"eval","title":"Evaluate","keywords":[],"oneliner":"Evaluates a string as Typst code.","element":false,"contextual":false,"deprecation":null,"details":"<p>Evaluates a string as Typst code.</p>\n<p>This function should only be used as a last resort.</p>\n<h2 id=\"example\">Example</h2>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;1 + 1&quot;</span><span class=\"typ-punct\">)</span> <span class=\"typ-escape\">\\</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;(1, 2, 3, 4)&quot;</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">.</span><span class=\"typ-func\">len</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">)</span> <span class=\"typ-escape\">\\</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;*Markup!*&quot;</span><span class=\"typ-punct\">,</span> mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;markup&quot;</span><span class=\"typ-punct\">)</span> <span class=\"typ-escape\">\\</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.13.1/assets/2997ea0d9ffb5751252b8ba6f78bef8f.png\" alt=\"Preview\"></div></div>","example":null,"self":false,"params":[{"name":"source","details":"<p>A string of Typst code to evaluate.</p>","example":null,"types":["str"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"mode","details":"<p>The <a href=\"/en-US-v0.13.1/reference/syntax/#modes\">syntactical mode</a> in which the string is\nparsed.</p>","example":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;= Heading&quot;</span><span class=\"typ-punct\">,</span> mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;markup&quot;</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;1_2^3&quot;</span><span class=\"typ-punct\">,</span> mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;math&quot;</span><span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.13.1/assets/e0e6267dbae8e994f5b5de63e11e70c8.png\" alt=\"Preview\"></div></div>","types":["str"],"strings":[{"string":"code","details":"<p>Evaluate as code, as after a hash.</p>"},{"string":"markup","details":"<p>Evaluate as markup, like in a Typst file.</p>"},{"string":"math","details":"<p>Evaluate as math, as in an equation.</p>"}],"default":"<code><span class=\"typ-str\">&quot;code&quot;</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":false},{"name":"scope","details":"<p>A scope of definitions that are made available.</p>","example":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span><span class=\"typ-str\">&quot;x + 1&quot;</span><span class=\"typ-punct\">,</span> scope<span class=\"typ-punct\">:</span> <span class=\"typ-punct\">(</span>x<span class=\"typ-punct\">:</span> <span class=\"typ-num\">2</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span> <span class=\"typ-escape\">\\</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">eval</span><span class=\"typ-punct\">(</span>\n  <span class=\"typ-str\">&quot;abc/xyz&quot;</span><span class=\"typ-punct\">,</span>\n  mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;math&quot;</span><span class=\"typ-punct\">,</span>\n  scope<span class=\"typ-punct\">:</span> <span class=\"typ-punct\">(</span>\n    abc<span class=\"typ-punct\">:</span> <span class=\"typ-math-delim\">$</span>a + b + c<span class=\"typ-math-delim\">$</span><span class=\"typ-punct\">,</span>\n    xyz<span class=\"typ-punct\">:</span> <span class=\"typ-math-delim\">$</span>x + y + z<span class=\"typ-math-delim\">$</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.13.1/assets/d2f0fe3b3499c315f41aa9a6f3f4a4f4.png\" alt=\"Preview\"></div></div>","types":["dictionary"],"strings":[],"default":"<code><span class=\"typ-punct\">(</span><span class=\"typ-punct\">:</span><span class=\"typ-punct\">)</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":false}],"returns":["any"],"scope":[]}}}