lektor-website/docs/api/build/context/index.html

398 lines
13 KiB
HTML
Raw Normal View History

2022-02-20 15:15:38 +01:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
2022-02-23 01:16:10 +01:00
<link rel="stylesheet" href="../../../../static/styles.css?h=7041cc50">
2022-02-20 15:15:38 +01:00
<link rel="stylesheet" href="../../../../static/pygments.css">
<link rel="shortcut icon" href="../../../../static/favicon.png?h=fa09bedd">
<title>Context | Documentation | Lektor Static Content Management System</title>
</head>
<body class="default">
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../../../">Lektor</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="../../../../downloads/">Download</a></li>
<li class="active"><a href="../../../">Documentation</a></li>
<li><a href="../../../../showcase/">Showcase</a></li>
<li><a href="../../../../plugins/">Plugins</a></li>
<li><a href="../../../../community/">Community</a></li>
<li><a href="../../../../blog/">Blog</a></li>
</ul>
</div>
</div>
</nav>
<div class="body-wrapper">
<div class="container">
<div class="row">
<div class="col-sm-3">
<ul class="tree-nav nocontent">
<li><a href="../../../">Welcome</a></li>
<li><a href="../../../what/">What is Lektor</a>
<li><a href="../../../installation/">Installation</a>
<li><a href="../../../quickstart/">Quickstart</a>
<li><a href="../../../project/">Project</a>
<li><a href="../../../content/">Content</a>
<li><a href="../../../templates/">Templates</a>
<li><a href="../../../themes/">Themes</a>
<li><a href="../../../guides/">Guides</a>
<li><a href="../../../deployment/">Deployment</a>
<li><a href="../../../plugins/">Plugins</a>
<li><a href="../../../models/">Data Modelling</a>
<li><a href="../../../cli/">Command Line</a>
<li><a href="../../">API</a>
<ul>
<li><a href="../">Build System</a>
<ul>
<li><a href="../artifact/">Artifact</a>
<li><a href="../program/">BuildProgram</a>
<li class="active"><a href="./">Context</a>
<ul>
<li><a href="changed-base-url/">changed_base_url()</a>
<li><a href="gather-dependencies/">gather_dependencies()</a>
<li><a href="locale/">locale</a>
<li><a href="pad/">pad</a>
<li><a href="record/">record</a>
<li><a href="record-dependency/">record_dependency()</a>
<li><a href="source/">source</a>
<li><a href="sub-artifact/">sub_artifact()</a>
</ul>
<li><a href="../get-ctx/">get_ctx()</a>
</ul>
<li><a href="../../databags/">Databags</a>
<li><a href="../../db/">Database</a>
<li><a href="../../environment/">Environment</a>
<li><a href="../../plugins/">Plugins</a>
<li><a href="../../project/">Project</a>
<li><a href="../../publisher/">Publisher</a>
<li><a href="../../templates/">Template API</a>
<li><a href="../../utils/">Utilities</a>
</ul>
<li><a href="../../../search/">Search</a>
</ul>
<div class="visible-md-block visible-lg-block">
<h4>This Page</h4>
<ul class="toc">
<li><a href="#basic-example">Basic Example</a></li>
</ul>
</div>
</div>
<div class="col-sm-9 doc-styling">
<h1><i class="glyphicon glyphicon-leaf"></i> <code class="mod">lektor.context.</code><code class="obj">Context</code></h1>
<ul class=page-meta>
</ul>
<p>When Lektor builds sources into finished build artifacts it performs many
operations in addition to just creating the end result. For instance it needs
to perform dependency tracking, it needs to remember that there might be
associated other artifacts and more. All this information is tracked on the
<code>Context</code> during a build of a single source. At a later point the builder
will look at the context to decide on further operations to perform.</p>
<p>The current context can be discovered by calling the <a href="../get-ctx/" class="ref">get_ctx</a>
function which will return it. If there is no artifact build ongoing then
the return value will be <code>None</code>.</p>
2022-02-23 01:16:10 +01:00
<h2 id="basic-example">Basic Example</h2><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">lektor.context</span> <span class="kn">import</span> <span class="n">get_ctx</span>
2022-02-20 15:15:38 +01:00
<span class="n">ctx</span> <span class="o">=</span> <span class="n">get_ctx</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The current source is </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">ctx</span><span class="o">.</span><span class="n">source</span><span class="p">)</span>
</pre></div>
<div class="child-pages nocontent">
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-cog"></i>
<a href="changed-base-url/">changed_base_url()</a>
</h4>
<p class="summary">Can override the base URL that is used for relative URL generation.</p>
</div>
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-cog"></i>
<a href="gather-dependencies/">gather_dependencies()</a>
</h4>
<p class="summary">Can collect dependencies for a code block.</p>
</div>
</div>
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-info-sign"></i>
<a href="locale/">locale</a>
</h4>
<p class="summary">The current locale (language/territory) code for the context.</p>
</div>
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-info-sign"></i>
<a href="pad/">pad</a>
</h4>
<p class="summary">A reference to the active database pad.</p>
</div>
</div>
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-info-sign"></i>
<a href="record/">record</a>
</h4>
<p class="summary">A reference to the current source record.</p>
</div>
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-cog"></i>
<a href="record-dependency/">record_dependency()</a>
</h4>
<p class="summary">Instructs the builder to record a new dependency for the current artifact.</p>
</div>
</div>
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-info-sign"></i>
<a href="source/">source</a>
</h4>
<p class="summary">A reference to the current source object.</p>
</div>
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-cog"></i>
<a href="sub-artifact/">sub_artifact()</a>
</h4>
<p class="summary">Creates a sub-artifact of the current one.</p>
</div>
</div>
</div>
<div class="comment-box">
<h2>Comments</h2>
<div id="disqus_thread"></div>
<script>
var disqus_config = function() { this.page.identifier = "/docs/api/build/context"; this.page.url = "https://www.getlektor.com/docs/api/build/context/"; };
(function() {
var d = document, s = d.createElement('script');
s.src = '//lektordocumentation.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>
Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript"
rel="nofollow">comments powered by Disqus.</a>
</noscript>
</div>
</div>
</div>
</div>
</div>
<div class="bottomsummary">
<div class="container">
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-sm-4 icon-bar">
<a href="https://github.com/lektor/lektor/" title="Lektor on GitHub"
><i class="fa fa-github"></i></a>
<a href="https://github.com/lektor/lektor/issues/" title="Report Issues for Lektor"
><i class="fa fa-bug"></i></a>
<a href="https://twitter.com/getlektor" title="Find Lektor on Twitter"
><i class="fa fa-twitter"></i></a>
<a href="https://gitter.im/lektor/lektor" title="Chat on Gitter"
><i class="fa fa-comment"></i></a>
<a href="https://github.com/lektor/lektor-website/tree/master/content/docs/api/build/context/contents.lr" title="View source for this page"><i class="fa fa-code"></i></a>
</div>
<div class="col-sm-8">
<a href="../../../../license/">License & Copyright</a>
<a href="../../../../contact/">Contact</a>
Made with <i class="fa fa-fw fa-heart" title="Heart"><span hidden>Heart</span></i> in Carinthia
</div>
</div>
</div>
</footer>
2022-02-23 01:16:10 +01:00
<script type=text/javascript src="../../../../static/app.js?h=d85eb4b1" charset="utf-8"></script>
2022-02-20 15:15:38 +01:00
<script>
((window.gitter = {}).chat = {}).options = {
room: 'lektor/lektor',
activationElement: null
};
document.write('<button class="js-gitter-toggle-chat-button">Toggle Chat</button>');
var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
if (dnt != "1" && dnt != "yes") {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-70822533-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
} else {
console.debug("Respecting Do-Not-Track, not running analytics.");
}
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
</body>
</html>