lektor-website/docs/plugins/index.html

296 lines
9.8 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-12-17 10:12:40 +01:00
<link rel="stylesheet" href="../../static/styles.css?h=dff0aaad">
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>Plugins | 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 class="active"><a href="./">Plugins</a>
<ul>
<li><a href="dev/">Development</a>
<li><a href="howto/">How To</a>
<li><a href="publishing/">Publishing</a>
</ul>
<li><a href="../models/">Data Modelling</a>
<li><a href="../cli/">Command Line</a>
<li><a href="../api/">API</a>
<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="#installing-published-plugins">Installing Published Plugins</a></li>
<li><a href="#loading-plugins">Loading Plugins</a></li>
</ul>
</div>
</div>
<div class="col-sm-9 doc-styling">
<h1>Plugins</h1>
<ul class=page-meta>
</ul>
<p>Lektor can be extended through the use of plugins. This is something that
can be done on a per-project basis. This gives a quick overview of how
to use plugins and how to build your own.</p>
<h2 id="installing-published-plugins">Installing Published Plugins</h2><p>Lektor can find and install plugins that have been published to <a href="https://pypi.org/" class="ext">PyPI</a> for you.
For completely automated plugin management just open your project file in a
text editor and edit or extend the <code>[packages]</code> section. Just add a line
for each plugin in the form <code>name = version</code>:</p>
2023-01-02 03:39:06 +01:00
<div class="hll"><pre><span></span><span class="k">[packages]</span>
<span class="na">lektor-cool-plugin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1.0</span>
<span class="na">lektor-other-plugin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1.2</span>
2022-02-20 15:15:38 +01:00
</pre></div>
<p>It's also possible to use the <a href="../cli/plugins/add/" class="ref">plugins add</a> command
<code>lektor plugin add NAME</code> to automatically add the latest version of a plugin
to the project file.</p>
<p>To upgrade a plugin just increase the version number to the release you want
and Lektor will do the rest.</p>
<h2 id="loading-plugins">Loading Plugins</h2><p>Plugins can be added to a Lektor project in two different ways:</p>
<ol>
<li>Plugins can be added to the <code>[packages]</code> section of the project. In that
case Lektor will automatically download and enable the plugin next time
you build the project or run the server. This can be accomplished for you
with the automatic install above, or it can be done manually.</li>
<li>Plugins can be added to the <code>packages/</code> folder in your project. Each
plugin has to go into a separate folder. This method is especially useful
for project specific plugins or for plugin development.</li>
</ol>
<div class="child-pages nocontent">
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-list-alt"></i>
<a href="dev/">Development</a>
</h4>
<p class="summary">A quick introduction to plugin development.</p>
</div>
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-list-alt"></i>
<a href="howto/">How To</a>
</h4>
<p class="summary">Covers the most common things plugins would do and how to implement it.</p>
</div>
</div>
<div class="row">
<div class="col-md-6 child">
<h4>
<i class="glyphicon glyphicon-list-alt"></i>
<a href="publishing/">Publishing</a>
</h4>
<p class="summary">Explains how publishing of plugins works.</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/plugins"; this.page.url = "https://www.getlektor.com/docs/plugins/"; };
(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/plugins/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-12-20 07:58:42 +01:00
<script type=text/javascript src="../../static/app.js?h=396519c0" 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>