Synchronized build
This commit is contained in:
parent
70f8234fbc
commit
4d0e964a1d
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Transcript</title><link href="https://www.getlektor.com/blog/" rel="alternate"></link><link href="https://www.getlektor.com/blog/feed.xml" rel="self"></link><id>urn:uuid:5bbc5195-cb84-35a2-830d-a7b199f60b13</id><updated>2020-08-20T00:00:00Z</updated><author><name></name></author><subtitle>Lektor's blog</subtitle><entry><title>Lektor 3.2 Released</title><link href="https://www.getlektor.com/blog/2020/8/lektor-32-released/" rel="alternate"></link><updated>2020-08-20T00:00:00Z</updated><author><name>Andreas Runfalk</name></author><id>urn:uuid:63bde824-43e5-3848-a5f4-eb664cd3336e</id><content type="html">
|
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Transcript</title><link href="https://www.getlektor.com/blog/" rel="alternate"></link><link href="https://www.getlektor.com/blog/feed.xml" rel="self"></link><id>urn:uuid:518bb905-3b5d-3e7f-a077-0fe42e244643</id><updated>2020-08-20T00:00:00Z</updated><author><name></name></author><subtitle>Lektor's blog</subtitle><entry><title>Lektor 3.2 Released</title><link href="https://www.getlektor.com/blog/2020/8/lektor-32-released/" rel="alternate"></link><updated>2020-08-20T00:00:00Z</updated><author><name>Andreas Runfalk</name></author><id>urn:uuid:bda34097-438e-31f2-89cb-ced8bbb15d42</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(coffee-ground-1171092-1599x1066.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(coffee-ground-1171092-1599x1066.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<li>Changed default slug creation to use <a href="https://github.com/un33k/python-slugify">python-slugify</a>. This should mean greater language support, but this may produce slightly different results than before for some users (thank you <a href="https://github.com/nixjdm">Joseph Nix</a> and <a href="https://github.com/xlotlu">Ionuț Ciocîrlan</a>)</li>
|
<li>Changed default slug creation to use <a href="https://github.com/un33k/python-slugify">python-slugify</a>. This should mean greater language support, but this may produce slightly different results than before for some users (thank you <a href="https://github.com/nixjdm">Joseph Nix</a> and <a href="https://github.com/xlotlu">Ionuț Ciocîrlan</a>)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Plugin Play</title><link href="https://www.getlektor.com/blog/2018/5/plugin-play/" rel="alternate"></link><updated>2018-05-15T00:00:00Z</updated><author><name>Joseph Nix</name></author><id>urn:uuid:2fd54836-a434-3fcf-9ea2-172841724e99</id><content type="html">
|
</div></content></entry><entry><title>Plugin Play</title><link href="https://www.getlektor.com/blog/2018/5/plugin-play/" rel="alternate"></link><updated>2018-05-15T00:00:00Z</updated><author><name>Joseph Nix</name></author><id>urn:uuid:8d30b004-241d-316f-ac13-f8b883a9c127</id><content type="html">
|
||||||
<div class="page-banner page-banner-300" style="background-image: url(spices.jpg)"></div>
|
<div class="page-banner page-banner-300" style="background-image: url(spices.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<p>I think this is especially useful for plugin development when the tag is an event that the plugin hooks. This allows you to quickly find the source code of plugins that depend on the same Lektor plugin events, so that you can see many quick examples to help you write your own plugin. For instance, you can find all of the plugins that hook the <code>before-build-all</code> event by looking at it's tag page <a href="/plugins/tag/before-build-all/">here</a>. Tag pages for events also have links back to the plugin documentation pages, including the page for that specific event.</p>
|
<p>I think this is especially useful for plugin development when the tag is an event that the plugin hooks. This allows you to quickly find the source code of plugins that depend on the same Lektor plugin events, so that you can see many quick examples to help you write your own plugin. For instance, you can find all of the plugins that hook the <code>before-build-all</code> event by looking at it's tag page <a href="/plugins/tag/before-build-all/">here</a>. Tag pages for events also have links back to the plugin documentation pages, including the page for that specific event.</p>
|
||||||
<p>Now go check out some <a href="/plugins">plugins</a>!</p>
|
<p>Now go check out some <a href="/plugins">plugins</a>!</p>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Lektor 3.1 Released</title><link href="https://www.getlektor.com/blog/2018/1/lektor-31-released/" rel="alternate"></link><updated>2018-01-29T00:00:00Z</updated><author><name>Joseph Nix</name></author><id>urn:uuid:9fdb673f-5a8c-3eab-90df-cd6d57657cbc</id><content type="html">
|
</div></content></entry><entry><title>Lektor 3.1 Released</title><link href="https://www.getlektor.com/blog/2018/1/lektor-31-released/" rel="alternate"></link><updated>2018-01-29T00:00:00Z</updated><author><name>Joseph Nix</name></author><id>urn:uuid:69465c44-ef86-3fd7-8939-ba9870ae5d0e</id><content type="html">
|
||||||
<div class="page-banner page-banner-500-tall" style="background-image: url(pancakes-2020863.jpg)"></div>
|
<div class="page-banner page-banner-500-tall" style="background-image: url(pancakes-2020863.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
<h2 id="want-to-contribute">Want to Contribute?</h2><p>Open Source Software lives and dies by the communities that use them, love them, and support them. If you're a developer looking to get your feet wet in OSS, we'd love to review your pull request. &lt;3</p>
|
<h2 id="want-to-contribute">Want to Contribute?</h2><p>Open Source Software lives and dies by the communities that use them, love them, and support them. If you're a developer looking to get your feet wet in OSS, we'd love to review your pull request. &lt;3</p>
|
||||||
<p>A larger task, if you're someone with React (and Python) knowledge, is our admin interface. It has served us pretty well so far, but it also has <a href="https://github.com/lektor/lektor/issues/458">some issues</a>. It could use some TLC.</p>
|
<p>A larger task, if you're someone with React (and Python) knowledge, is our admin interface. It has served us pretty well so far, but it also has <a href="https://github.com/lektor/lektor/issues/458">some issues</a>. It could use some TLC.</p>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Lektor 2.0 Released</title><link href="https://www.getlektor.com/blog/2016/4/lektor-2-released/" rel="alternate"></link><updated>2016-04-11T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:a460c855-a897-3465-a8a7-212394a23eb8</id><content type="html">
|
</div></content></entry><entry><title>Lektor 2.0 Released</title><link href="https://www.getlektor.com/blog/2016/4/lektor-2-released/" rel="alternate"></link><updated>2016-04-11T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:3f52ad2e-4cac-3199-a947-33ea8e54c28e</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -142,7 +142,7 @@ If you had a previous version of Lektor the install process should auto
|
||||||
upgrade. If you use the OS X desktop build, just drag the new application over
|
upgrade. If you use the OS X desktop build, just drag the new application over
|
||||||
the already existing one.</p>
|
the already existing one.</p>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Lektor at Rails Girls Summer of Code 2016</title><link href="https://www.getlektor.com/blog/2016/3/lektor-at-rails-girls-summer-of-code/" rel="alternate"></link><updated>2016-03-17T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:f1aec1d5-2464-3f3b-ac3a-181dac9fda2f</id><content type="html">
|
</div></content></entry><entry><title>Lektor at Rails Girls Summer of Code 2016</title><link href="https://www.getlektor.com/blog/2016/3/lektor-at-rails-girls-summer-of-code/" rel="alternate"></link><updated>2016-03-17T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:66064267-4071-3a00-9ca3-afbb0ce6d809</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -168,7 +168,7 @@ Twitter at <a href="https://twitter.com/getlektor">@getlektor</a> or
|
||||||
<a href="https://gitter.im/lektor/lektor"
|
<a href="https://gitter.im/lektor/lektor"
|
||||||
class="js-gitter-toggle-chat-button">Gitter</a>.</p>
|
class="js-gitter-toggle-chat-button">Gitter</a>.</p>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Road to Lektor 2.0</title><link href="https://www.getlektor.com/blog/2016/3/road-to-lektor-2/" rel="alternate"></link><updated>2016-03-10T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:657883df-54db-392e-8eb8-64572e8febcb</id><content type="html">
|
</div></content></entry><entry><title>Road to Lektor 2.0</title><link href="https://www.getlektor.com/blog/2016/3/road-to-lektor-2/" rel="alternate"></link><updated>2016-03-10T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:743bf9a7-c69a-3dd8-b929-efe3459717a8</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(header.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(header.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -213,7 +213,7 @@ now build custom build programs that build things that do not exist in the
|
||||||
source tree. For instance you can build feeds, blog archives etc.</li>
|
source tree. For instance you can build feeds, blog archives etc.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div></content></entry><entry><title>Lektor Loves Travis-CI and GitHub Pages</title><link href="https://www.getlektor.com/blog/2015/12/travis-and-ghpages/" rel="alternate"></link><updated>2015-12-23T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:29328c66-b90f-3afc-9a37-6cbbbf7de829</id><content type="html">
|
</div></content></entry><entry><title>Lektor Loves Travis-CI and GitHub Pages</title><link href="https://www.getlektor.com/blog/2015/12/travis-and-ghpages/" rel="alternate"></link><updated>2015-12-23T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:39db4502-8f95-316b-b168-c46e804f08bd</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(header.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(header.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
@ -230,7 +230,7 @@ a screencast that goes with it:</p>
|
||||||
<iframe width="100%" height=410 frameborder="0" allowfullscreen="allowfullscreen"
|
<iframe width="100%" height=410 frameborder="0" allowfullscreen="allowfullscreen"
|
||||||
src="https://www.youtube.com/embed/3pj_EyZIL5A?autoplay=0&fs=1">
|
src="https://www.youtube.com/embed/3pj_EyZIL5A?autoplay=0&fs=1">
|
||||||
</iframe>
|
</iframe>
|
||||||
</div></content></entry><entry><title>Hello Lektor!</title><link href="https://www.getlektor.com/blog/2015/12/hello-lektor/" rel="alternate"></link><updated>2015-12-21T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:16dbb267-fb7c-3988-aae1-07106bd5bfb7</id><content type="html">
|
</div></content></entry><entry><title>Hello Lektor!</title><link href="https://www.getlektor.com/blog/2015/12/hello-lektor/" rel="alternate"></link><updated>2015-12-21T00:00:00Z</updated><author><name>Armin Ronacher</name></author><id>urn:uuid:a546fbfc-f76c-370c-8cde-6e378c9b0683</id><content type="html">
|
||||||
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
<div class="page-banner page-banner-500" style="background-image: url(banner.jpg)"></div>
|
||||||
|
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
|
|
|
@ -125,6 +125,8 @@
|
||||||
|
|
||||||
<li><a href="#configuration">Configuration</a></li>
|
<li><a href="#configuration">Configuration</a></li>
|
||||||
|
|
||||||
|
<li><a href="#cache-directory">Cache directory</a></li>
|
||||||
|
|
||||||
<li><a href="#cname-support">CNAME Support</a></li>
|
<li><a href="#cname-support">CNAME Support</a></li>
|
||||||
|
|
||||||
<li><a href="#ssl/tls-support">SSL/TLS Support</a></li>
|
<li><a href="#ssl/tls-support">SSL/TLS Support</a></li>
|
||||||
|
@ -183,6 +185,34 @@ will be served up. In case you want to use a different branch than <code>master
|
||||||
just name the branch differently and adjust the <code>only</code> entry.</p>
|
just name the branch differently and adjust the <code>only</code> entry.</p>
|
||||||
<p>Whenever you commit to the repository now, GitLab will automatically start
|
<p>Whenever you commit to the repository now, GitLab will automatically start
|
||||||
a job on the public infrastructure and deploy your website.</p>
|
a job on the public infrastructure and deploy your website.</p>
|
||||||
|
<h2 id="cache-directory">Cache directory</h2><p>You can enable caching to reuse build results between compilation.
|
||||||
|
To do so, you have to:</p>
|
||||||
|
<ul>
|
||||||
|
<li>set the cache directory using the environment variable <code>XDG_CACHE_HOME</code>;</li>
|
||||||
|
<li>configure Gitlab to cache this directory.</li>
|
||||||
|
</ul>
|
||||||
|
<p>See the example below.</p>
|
||||||
|
<div class="highlight"><pre><span></span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">python:latest</span><span class="w"></span>
|
||||||
|
|
||||||
|
<span class="nt">default</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">cache</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">paths</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">.cache/lektor</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">.cache/pip</span><span class="w"></span>
|
||||||
|
|
||||||
|
<span class="nt">variables</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">XDG_CACHE_HOME</span><span class="p">:</span><span class="w"> </span><span class="s">"$CI_PROJECT_DIR/.cache"</span><span class="w"></span>
|
||||||
|
|
||||||
|
<span class="nt">pages</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">script</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pip install lektor</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lektor build --output-path public</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">artifacts</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">paths</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">public</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">only</span><span class="p">:</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span><span class="w"></span>
|
||||||
|
</pre></div>
|
||||||
<h2 id="cname-support">CNAME Support</h2><p>If you want to use a <a href="https://en.wikipedia.org/wiki/CNAME" class="ext">CNAME</a> with
|
<h2 id="cname-support">CNAME Support</h2><p>If you want to use a <a href="https://en.wikipedia.org/wiki/CNAME" class="ext">CNAME</a> with
|
||||||
GitLab pages you can configure it in the GitLab settings:</p>
|
GitLab pages you can configure it in the GitLab settings:</p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -239,6 +239,9 @@ caching. Adjust your <code>.travis.yml</code> file to look like this:</p>
|
||||||
<span class="w"> </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">script</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">provider</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">script</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">script</span><span class="p">:</span><span class="w"> </span><span class="s">"lektor</span><span class="nv"> </span><span class="s">deploy</span><span class="nv"> </span><span class="s">ghpages"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">script</span><span class="p">:</span><span class="w"> </span><span class="s">"lektor</span><span class="nv"> </span><span class="s">deploy</span><span class="nv"> </span><span class="s">ghpages"</span><span class="w"></span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
<p>Note that it is also possible to set the cache directory of Lektor using the
|
||||||
|
environment variable <code>XDG_CACHE_HOME</code>, and cache this directory instead,
|
||||||
|
as done with <a href="../glpages/">Gitlab pages</a>.</p>
|
||||||
<h2 id="restricting-branches">Restricting Branches</h2><p>If you plan on having different branches and contributors you should disable
|
<h2 id="restricting-branches">Restricting Branches</h2><p>If you plan on having different branches and contributors you should disable
|
||||||
the deployment to the master branch only. You can do this with the following
|
the deployment to the master branch only. You can do this with the following
|
||||||
config:</p>
|
config:</p>
|
||||||
|
|
|
@ -104,9 +104,11 @@
|
||||||
<h4>This Page</h4>
|
<h4>This Page</h4>
|
||||||
<ul class="toc">
|
<ul class="toc">
|
||||||
|
|
||||||
<li><a href="#desktop-application">Desktop Application</a></li>
|
<li><a href="#requirements">Requirements</a></li>
|
||||||
|
|
||||||
<li><a href="#command-line-application">Command Line Application</a></li>
|
<li><a href="#install-pipx">Install pipx</a><ul>
|
||||||
|
<li><a href="#finally-install-lektor">Finally Install Lektor</a></li>
|
||||||
|
</ul></li>
|
||||||
|
|
||||||
<li><a href="#pip">pip</a></li>
|
<li><a href="#pip">pip</a></li>
|
||||||
|
|
||||||
|
@ -130,65 +132,77 @@
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Lektor comes in two flavors: as a command line executable and as a
|
<p>Lektor is a command line utility, and requires some terminal or command line work
|
||||||
desktop application. The desktop version also contains the command
|
to install. If you can read and follow instructions, you will most likely have no
|
||||||
line executable, but it also bundles together all dependencies of Lektor
|
issues.</p>
|
||||||
in an easy to use package which heavily simplifies installation.</p>
|
<h2 id="requirements">Requirements</h2><p>Although <code>lektor</code> would work without Imagemagick or FFmpeg, you would be missing on
|
||||||
<h2 id="desktop-application">Desktop Application</h2><div class="admonition admonition-info"><p>Info: Support for the Mac Desktop Application is paused as of version 3.1. See <a href="/blog/2018/1/lektor-31-released/#support-for-mac-installer-paused">note</a>.</p></div><p>Currently the desktop application is only available for OS X and can be
|
significant parts of its capabilities. Therefore, you need to make sure you have the
|
||||||
<a href="../../downloads/">downloaded from the Lektor website</a>. It comes as a downloadable
|
following software installed on your computer:</p>
|
||||||
disk image that you can mount which contains one application by the name of
|
|
||||||
<code>Lektor.app</code>. Just drag it into your <code>Applications</code> folder and you are good to
|
|
||||||
go.</p>
|
|
||||||
<p>If you also want access to the command line tools just launch <code>Lektor.app</code>
|
|
||||||
and then click in the menu bar on <em>Lektor ➤ Install Shell Command</em>.</p>
|
|
||||||
<h2 id="command-line-application">Command Line Application</h2><p>If you do not want to install the desktop app then you can just install the command
|
|
||||||
line executable. This runs on most operating systems (OSX, Linux and Windows) but
|
|
||||||
the installation is a bit more involved.</p>
|
|
||||||
<p>You need to make sure you have the following software installed on your computer:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Python 3 is recommended (but 2.7 is also supported)
|
<li>Python 3.6+ is required. If you got an older version, look at
|
||||||
On Ubuntu <code>python3-dev</code>, <code>libssl-dev</code> and <code>libffi-dev</code> are also required
|
{Python 3 Installation & Setup Guide}(<a href="https://realpython.com/installing-python/">https://realpython.com/installing-python/</a>).<ul>
|
||||||
<code>sudo apt-get install python3-dev libssl-dev libffi-dev</code></li>
|
<li>On Ubuntu you basically don't need anything new.</li>
|
||||||
<li>ImageMagick (<code>brew install imagemagick</code> can get you this on OS X and <code>sudo apt-get install imagemagick</code>
|
<li>On macOS you're done as well.</li>
|
||||||
on Ubuntu the <code>imagemagick</code> package needs to be installed.
|
<li>On Windows, make sure that Python is in your <code>PATH</code>.</li>
|
||||||
On Windows do <code>choco install imagemagick</code>, which requires <a href="https://chocolatey.org/" class="ext">chocolatey</a>,
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>ImageMagick. <ul>
|
||||||
|
<li>On macOS <code>brew install imagemagick</code> can get you this.</li>
|
||||||
|
<li>On Ubuntu <code>sudo apt install imagemagick</code> will solve it.</li>
|
||||||
|
<li>On Windows do <code>choco install imagemagick</code>, which requires <a href="https://chocolatey.org/" class="ext">chocolatey</a>,
|
||||||
or <a href="http://www.imagemagick.org" class="ext">download from here</a>).</li>
|
or <a href="http://www.imagemagick.org" class="ext">download from here</a>).</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Once you have those installed and have made sure that they are on your <code>PATH</code>, you can
|
</li>
|
||||||
get Lektor installed with our installation script:</p>
|
<li>FFmpeg (mostly for video thumbnailing).<ul>
|
||||||
<pre><code># curl -sf https://www.getlektor.com/installer.py | python3
|
<li>On Ubuntu you get it through <code>sudo apt install ffmpeg.</code></li>
|
||||||
|
<li>On macOS <code>brew install ffmpeg</code> will do the trick.</li>
|
||||||
|
<li>On Windows you'll have to put a little <a href="https://www.wikihow.com/Install-FFmpeg-on-Windows">work</a> in.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="install-pipx">Install pipx</h2><p>Once you have those installed and have made sure that they are on your <code>PATH</code>, you can
|
||||||
|
get Lektor installed with <code>pipx</code>. Selcet the <code>pipx</code> install method of your preference:</p>
|
||||||
|
<p><strong>On Ubuntu through <code>apt</code>.</strong></p>
|
||||||
|
<pre><code>apt update
|
||||||
|
sudo apt install python3-venv pipx
|
||||||
|
pipx ensurepath
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>This will attempt to install lektor in your user's <code>HOME</code>. If you want a system-wide installation, try this instead:</p>
|
<p><strong>On Ubuntu through <code>pip</code>.</strong></p>
|
||||||
<pre><code>$ curl -sf https://www.getlektor.com/installer.py | sudo python3
|
<pre><code>sudo apt install python3-pip python3-venv
|
||||||
|
python3 -m pip install --user pipx
|
||||||
|
python3 -m pipx ensurepath
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>If you would like to install Lektor without being prompted, set LEKTOR_SILENT before running the prior command.</p>
|
<p><strong>On macOS</strong></p>
|
||||||
<p>For Windows, make sure that Python is in your <code>PATH</code> and run in <code>Powershell</code>:</p>
|
<pre><code>brew install pipx
|
||||||
<pre><code>PS C:\> (new-object net.webclient).DownloadString('https://www.getlektor.com/installer.py') | python
|
pipx ensurepath
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>or you can use the <code>command prompt</code> instead:</p>
|
<p><strong>On Windows</strong></p>
|
||||||
<pre><code>C:\> @powershell -NoProfile -Command "(new-object net.webclient).DownloadString('https://www.getlektor.com/installer.py') | python"
|
<pre><code>python -m pip install --user pipx
|
||||||
|
python -m pipx ensurepath
|
||||||
|
</code></pre>
|
||||||
|
<p>For more information on <code>pipx</code> installation go to <a href="https://pypa.github.io/pipx/installation/">pypa.github.io/pipx/installation/</a></p>
|
||||||
|
<h3 id="finally-install-lektor">Finally Install Lektor</h3><p>Once installed, close terminal (or <code>Powershell</code> or <code>command prompt</code>) for those
|
||||||
|
changes to take effect. Then proceed to reopen and install Lektor with pipx:</p>
|
||||||
|
<pre><code>pipx install lektor
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<h2 id="pip">pip</h2><p>Alternatively you can manually install the command line version with
|
<h2 id="pip">pip</h2><p>Alternatively you can manually install the command line version with
|
||||||
<code>virtualenv</code> if you know how that works. Note that this method is <em>heavily
|
<code>pip</code> after creating a virtual environment, if you know how that works. <code>pipx</code> technically does this for you,
|
||||||
discouraged</em> for anything other than advanced use cases such as build servers.</p>
|
then if you need something particular and you know this will make it easier,
|
||||||
<pre><code>$ virtualenv venv
|
go for it.</p>
|
||||||
$ . venv/bin/activate
|
<pre><code>virtualenv venv
|
||||||
$ pip install Lektor
|
. venv/bin/activate
|
||||||
|
pip install Lektor
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<div class="admonition admonition-warning"><p>When we say this installation type is discouraged we mean it. The reason
|
<h2 id="development-version">Development Version</h2><p>If you want to install the development version of Lektor you can do so. It's
|
||||||
is that it encourages uses of Lektor which are entirely unsupported by us.
|
|
||||||
Lektor actively manages virtualenvs for plugin installations in very specific
|
|
||||||
ways and this might or might not work in your setup. We support pip
|
|
||||||
installations for deployment environments and local development only.</p></div><h2 id="development-version">Development Version</h2><p>If you want to install the development version of Lektor you can do so. It's
|
|
||||||
the same as with installing the command line application but instead of
|
the same as with installing the command line application but instead of
|
||||||
using PyPI you install directly from git and you need to have <code>npm</code> installed
|
using PyPI you install directly from git and you need to have <code>npm</code> installed
|
||||||
to build the admin UI:</p>
|
to build the admin UI:</p>
|
||||||
<pre><code>$ git clone https://github.com/lektor/lektor
|
<pre><code>git clone https://github.com/lektor/lektor
|
||||||
$ cd lektor
|
cd lektor
|
||||||
$ make build-js
|
make build-js
|
||||||
$ virtualenv venv
|
virtualenv venv
|
||||||
$ . venv/bin/activate
|
. venv/bin/activate
|
||||||
$ pip install --editable .
|
pip install --editable .
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -72,24 +72,31 @@
|
||||||
<div class="text-block text-block-default">
|
<div class="text-block text-block-default">
|
||||||
<p>Lektor is an <a href="../license/">Open Source Project</a> and freely available to
|
<p>Lektor is an <a href="../license/">Open Source Project</a> and freely available to
|
||||||
download. It's currently still under heavy development and not all platforms
|
download. It's currently still under heavy development and not all platforms
|
||||||
are equally well supported.</p>
|
are equally well supported, although closer to it.</p>
|
||||||
<h2 id="command-line-interface">Command Line Interface</h2><p>If you are on Linux or Mac you can install the command line version of
|
<h2 id="command-line-interface">Command Line Interface</h2><p>You can install the command line version of
|
||||||
Lektor by copy/pasting a command into your terminal.</p>
|
Lektor by copy/pasting a command into your terminal.</p>
|
||||||
<div class="admonition admonition-tip"><p>Scared about copy/pasting this into a terminal? We will not do anything
|
<div class="admonition admonition-tip"><p>Scared about copy/pasting this into a terminal? We now use standard tools
|
||||||
before asking you for confirmation and you can download <a href="https://www.getlektor.com/installer.py">the script</a>
|
to install lektor. <code>pipx</code> is the recommended method to install standalone
|
||||||
upfront to see what it's doing.</p></div><h3 id="mac/linux">Mac/Linux</h3><p>This will install Lektor in your <code>HOME</code>. Running it with <code>sudo</code> will result in
|
command line interface python packages as recommended by <a href="https://packaging.python.org/guides/installing-stand-alone-command-line-tools/">PyPA</a>.</p></div><h3 id="first-install-pipx">First Install PipX</h3><p>Let's first install <code>pipx</code>.</p>
|
||||||
a system installation instead.</p>
|
<p><strong>Ubuntu</strong></p>
|
||||||
<pre><code>curl -sf https://www.getlektor.com/installer.py | python3
|
<pre><code>sudo apt install python3-pip python3-venv
|
||||||
|
python3 -m pip install --user pipx
|
||||||
|
python3 -m pipx ensurepath
|
||||||
|
</code></pre>
|
||||||
|
<p><strong>macOS</strong></p>
|
||||||
|
<pre><code>bew install pipx
|
||||||
|
pipx ensurepath
|
||||||
|
</code></pre>
|
||||||
|
<p><strong>Windows</strong></p>
|
||||||
|
<pre><code>python -m pip install --user pipx
|
||||||
|
python -m pipx ensurepath
|
||||||
|
</code></pre>
|
||||||
|
<p>For more information on <code>pipx</code> installation go to <a href="https://pypa.github.io/pipx/installation/">pypa.github.io/pipx/installation/</a></p>
|
||||||
|
<h3 id="let-s-install-lektor-now">Let's install Lektor now</h3><p>Close and reopen terminal (<code>Powershell</code> or <code>cmd</code> on Windows), then install <code>lektor</code>:</p>
|
||||||
|
<pre><code>pipx install lektor
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>You might need additional dependencies for this installation. For more
|
<p>You might need additional dependencies for this installation. For more
|
||||||
information see <a href="../docs/installation/">Installation</a>.</p>
|
information see <a href="../docs/installation/">Installation</a>.</p>
|
||||||
<h3 id="windows">Windows</h3><p>If you are on Windows copy/paste this command into <code>Powershell</code>:</p>
|
|
||||||
<pre><code>(new-object net.webclient).DownloadString('https://www.getlektor.com/installer.py') | python
|
|
||||||
</code></pre>
|
|
||||||
<p>or alternatively use this in <code>command prompt</code>:</p>
|
|
||||||
<pre><code>@powershell -NoProfile -Command "(new-object net.webclient).DownloadString('https://www.getlektor.com/installer.py') | python"
|
|
||||||
</code></pre>
|
|
||||||
<h2 id="desktop-application">Desktop Application</h2><p>Lektor supported an installable version of Lektor on OSX. The current build process for these installers is <a href="https://github.com/lektor/lektor/issues/420">old and in need of refactoring</a>. Temporarily until this is resolved, as of version 3.1, this installer is no longer supported.</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -67,9 +67,6 @@
|
||||||
><i class="glyphicon glyphicon-download-alt"></i> Download</a></div>
|
><i class="glyphicon glyphicon-download-alt"></i> Download</a></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="install-row hide-for-windows">
|
|
||||||
<pre>curl -sf https://www.getlektor.com/installer.py | sudo python3</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -154,7 +151,7 @@ speak multiple languages and allow you to easily create localized websites.</li>
|
||||||
<div class="slideshow-wrapper">
|
<div class="slideshow-wrapper">
|
||||||
<div class="slideshow">
|
<div class="slideshow">
|
||||||
<div class="slideshow-inner">
|
<div class="slideshow-inner">
|
||||||
<div class="carousel slide" data-ride="carousel" data-interval="8500" id="carousel-729db5a0abf24b1b8d370a981ea85561">
|
<div class="carousel slide" data-ride="carousel" data-interval="8500" id="carousel-e27eb33956034bdb98471ba6f44f5003">
|
||||||
|
|
||||||
<div class="carousel-inner" role="listbox">
|
<div class="carousel-inner" role="listbox">
|
||||||
|
|
||||||
|
@ -213,11 +210,11 @@ be completely customized.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a class="left carousel-control" href="#carousel-729db5a0abf24b1b8d370a981ea85561" role="button" data-slide="prev">
|
<a class="left carousel-control" href="#carousel-e27eb33956034bdb98471ba6f44f5003" role="button" data-slide="prev">
|
||||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||||
<span class="sr-only">Previous</span>
|
<span class="sr-only">Previous</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="right carousel-control" href="#carousel-729db5a0abf24b1b8d370a981ea85561" role="button" data-slide="next">
|
<a class="right carousel-control" href="#carousel-e27eb33956034bdb98471ba6f44f5003" role="button" data-slide="next">
|
||||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||||
<span class="sr-only">Next</span>
|
<span class="sr-only">Next</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
393
installer.py
393
installer.py
|
@ -1,393 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import math
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
from subprocess import call
|
|
||||||
|
|
||||||
try:
|
|
||||||
from shutil import which
|
|
||||||
except ImportError:
|
|
||||||
from distutils.spawn import find_executable as which
|
|
||||||
|
|
||||||
try:
|
|
||||||
from urllib.request import urlretrieve
|
|
||||||
except ImportError:
|
|
||||||
from urllib import urlretrieve
|
|
||||||
|
|
||||||
IS_WIN = sys.platform == "win32"
|
|
||||||
|
|
||||||
if IS_WIN:
|
|
||||||
try:
|
|
||||||
import winreg
|
|
||||||
except ImportError:
|
|
||||||
import _winreg as winreg
|
|
||||||
from ctypes import windll, wintypes
|
|
||||||
|
|
||||||
|
|
||||||
VIRTUALENV_URL = "https://bootstrap.pypa.io/virtualenv.pyz"
|
|
||||||
|
|
||||||
# this difference is for backwards-compatibility with the previous installer
|
|
||||||
APP_NAME = "lektor" if not IS_WIN else "lektor-cli"
|
|
||||||
|
|
||||||
# where to search for a writable bin directory on *nix.
|
|
||||||
# this order makes sure we try a system install first.
|
|
||||||
POSIX_BIN_DIRS = [
|
|
||||||
"/usr/local/bin", "/opt/local/bin",
|
|
||||||
"{home}/.bin", "{home}/.local/bin",
|
|
||||||
]
|
|
||||||
|
|
||||||
SILENT = (
|
|
||||||
os.environ.get("LEKTOR_SILENT", "").lower()
|
|
||||||
not in ("", "0", "off", "false")
|
|
||||||
)
|
|
||||||
|
|
||||||
if not os.isatty(sys.stdin.fileno()):
|
|
||||||
# the script is being piped, we need to reset stdin
|
|
||||||
sys.stdin = open("CON:" if IS_WIN else "/dev/tty")
|
|
||||||
|
|
||||||
if sys.version_info.major == 2:
|
|
||||||
input = raw_input
|
|
||||||
|
|
||||||
|
|
||||||
def get_confirmation():
|
|
||||||
if SILENT:
|
|
||||||
return
|
|
||||||
|
|
||||||
while True:
|
|
||||||
user_input = input("Continue? [Yn] ").lower().strip()
|
|
||||||
|
|
||||||
if user_input in ("", "y"):
|
|
||||||
print()
|
|
||||||
return
|
|
||||||
|
|
||||||
if user_input == "n":
|
|
||||||
print()
|
|
||||||
print("Aborted!")
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
|
|
||||||
def fail(message):
|
|
||||||
print("Error: %s" % message, file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
def multiprint(*lines, **kwargs):
|
|
||||||
for line in lines:
|
|
||||||
print(line, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
def rm_recursive(*paths):
|
|
||||||
def _error(path):
|
|
||||||
multiprint(
|
|
||||||
"Problem deleting {}".format(path),
|
|
||||||
"Please try and delete {} manually".format(path),
|
|
||||||
"Aborted!",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
def _rm(path):
|
|
||||||
if os.path.isdir(path):
|
|
||||||
shutil.rmtree(path)
|
|
||||||
else:
|
|
||||||
os.remove(path)
|
|
||||||
|
|
||||||
for path in paths:
|
|
||||||
if not os.path.lexists(path):
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
_rm(path)
|
|
||||||
except:
|
|
||||||
_error(path)
|
|
||||||
|
|
||||||
|
|
||||||
class Progress(object):
|
|
||||||
"A context manager to be used as a urlretrieve reporthook."
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.started = False
|
|
||||||
|
|
||||||
def progress(self, count, bsize, total):
|
|
||||||
size = count * bsize
|
|
||||||
|
|
||||||
if size > total:
|
|
||||||
progress = 100
|
|
||||||
else:
|
|
||||||
progress = math.floor(100 * size / total)
|
|
||||||
|
|
||||||
out = sys.stdout
|
|
||||||
if self.started:
|
|
||||||
out.write("\b" * 4)
|
|
||||||
|
|
||||||
out.write("{:3d}%".format(progress))
|
|
||||||
out.flush()
|
|
||||||
|
|
||||||
self.started = True
|
|
||||||
|
|
||||||
def finish(self):
|
|
||||||
sys.stdout.write("\n")
|
|
||||||
|
|
||||||
def __enter__(self):
|
|
||||||
return self.progress
|
|
||||||
|
|
||||||
def __exit__(self, exc_type, exc_value, traceback):
|
|
||||||
self.finish()
|
|
||||||
|
|
||||||
|
|
||||||
class FetchTemp(object):
|
|
||||||
"""
|
|
||||||
Fetches the given URL into a temporary file.
|
|
||||||
To be used as a context manager.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, url):
|
|
||||||
self.url = url
|
|
||||||
|
|
||||||
fname = os.path.basename(url)
|
|
||||||
root, ext = os.path.splitext(fname)
|
|
||||||
self.filename = tempfile.mktemp(prefix=root + "-", suffix=ext)
|
|
||||||
|
|
||||||
def fetch(self):
|
|
||||||
with self.Progress() as hook:
|
|
||||||
urlretrieve(self.url, self.filename, reporthook=hook)
|
|
||||||
|
|
||||||
def cleanup(self):
|
|
||||||
os.remove(self.filename)
|
|
||||||
|
|
||||||
def __enter__(self):
|
|
||||||
self.fetch()
|
|
||||||
|
|
||||||
return self.filename
|
|
||||||
|
|
||||||
def __exit__(self, exc_type, exc_value, traceback):
|
|
||||||
self.cleanup()
|
|
||||||
|
|
||||||
|
|
||||||
def create_virtualenv(target_dir):
|
|
||||||
"""
|
|
||||||
Tries to create a virtualenv by using the built-in `venv` module,
|
|
||||||
or using the `virtualenv` executable if present, or falling back
|
|
||||||
to downloading the official zipapp.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def use_venv():
|
|
||||||
try:
|
|
||||||
import venv
|
|
||||||
except ImportError:
|
|
||||||
return
|
|
||||||
|
|
||||||
# on Debian and Ubuntu systems Python is missing `ensurepip`,
|
|
||||||
# prompting the user to install `python3-venv` instead.
|
|
||||||
#
|
|
||||||
# we could handle this, but we'll just let the command fail
|
|
||||||
# and have the users install the package themselves.
|
|
||||||
|
|
||||||
return call([sys.executable, "-m", "venv", target_dir])
|
|
||||||
|
|
||||||
def use_virtualenv():
|
|
||||||
venv_exec = which("virtualenv")
|
|
||||||
if not venv_exec:
|
|
||||||
return
|
|
||||||
|
|
||||||
return call([venv_exec, "-p", sys.executable, target_dir])
|
|
||||||
|
|
||||||
def use_zipapp():
|
|
||||||
print("Downloading virtualenv: ", end="")
|
|
||||||
with FetchTemp(VIRTUALENV_URL) as zipapp:
|
|
||||||
return call([sys.executable, zipapp, target_dir])
|
|
||||||
|
|
||||||
print("Installing virtual environment...")
|
|
||||||
for func in use_venv, use_virtualenv, use_zipapp:
|
|
||||||
retval = func()
|
|
||||||
if retval is None:
|
|
||||||
# command did not run
|
|
||||||
continue
|
|
||||||
if retval == 0:
|
|
||||||
# command successful
|
|
||||||
return
|
|
||||||
# else...
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
def get_pip(lib_dir):
|
|
||||||
return (
|
|
||||||
os.path.join(lib_dir, "Scripts", "pip.exe") if IS_WIN
|
|
||||||
else os.path.join(lib_dir, "bin", "pip")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def install_lektor(lib_dir):
|
|
||||||
create_virtualenv(lib_dir)
|
|
||||||
|
|
||||||
pip = get_pip(lib_dir)
|
|
||||||
|
|
||||||
args = [pip, "install"]
|
|
||||||
if IS_WIN:
|
|
||||||
# avoid fail due to PEP 517 on windows
|
|
||||||
args.append("--prefer-binary")
|
|
||||||
args.extend(["--upgrade", "Lektor"])
|
|
||||||
|
|
||||||
return call(args)
|
|
||||||
|
|
||||||
|
|
||||||
def posix_find_bin_dir():
|
|
||||||
home = os.environ["HOME"]
|
|
||||||
preferred = [d.format(home=home) for d in POSIX_BIN_DIRS]
|
|
||||||
|
|
||||||
# look for writable directories in the user's $PATH
|
|
||||||
# (that are not sbin)
|
|
||||||
dirs = [
|
|
||||||
item
|
|
||||||
for item in os.environ["PATH"].split(":")
|
|
||||||
if not item.endswith("/sbin") and os.access(item, os.W_OK)
|
|
||||||
]
|
|
||||||
|
|
||||||
if not dirs:
|
|
||||||
fail(
|
|
||||||
"None of the items in $PATH are writable. Run with "
|
|
||||||
"sudo or add a $PATH item that you have access to."
|
|
||||||
)
|
|
||||||
|
|
||||||
# ... and prioritize them according to our preferences
|
|
||||||
def _sorter(path):
|
|
||||||
try:
|
|
||||||
return preferred.index(path)
|
|
||||||
except ValueError:
|
|
||||||
return float("inf")
|
|
||||||
|
|
||||||
dirs.sort(key=_sorter)
|
|
||||||
return dirs[0]
|
|
||||||
|
|
||||||
|
|
||||||
def posix_find_lib_dir(bin_dir):
|
|
||||||
# the chosen lib_dir depends on the bin_dir found:
|
|
||||||
home = os.environ["HOME"]
|
|
||||||
|
|
||||||
if bin_dir.startswith(home):
|
|
||||||
# this is a local install
|
|
||||||
return os.path.join(home, ".local", "lib", APP_NAME)
|
|
||||||
|
|
||||||
# else, it's a system install
|
|
||||||
parent = os.path.dirname(bin_dir)
|
|
||||||
return os.path.join(parent, "lib", APP_NAME)
|
|
||||||
|
|
||||||
|
|
||||||
def windows_create_link(lib_dir, target_dir):
|
|
||||||
exe = os.path.join(lib_dir, "Scripts", "lektor.exe")
|
|
||||||
link = os.path.join(target_dir, "lektor.cmd")
|
|
||||||
|
|
||||||
with open(link, "w") as link_file:
|
|
||||||
link_file.write("@echo off\n")
|
|
||||||
link_file.write('"{}" %*'.format(exe))
|
|
||||||
|
|
||||||
|
|
||||||
def windows_add_to_path(location):
|
|
||||||
HWND_BROADCAST = 0xFFFF
|
|
||||||
WM_SETTINGCHANGE = 0x1A
|
|
||||||
|
|
||||||
key = winreg.OpenKey(
|
|
||||||
winreg.HKEY_CURRENT_USER, "Environment", 0, winreg.KEY_ALL_ACCESS
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
value, _ = winreg.QueryValueEx(key, "Path")
|
|
||||||
except WindowsError:
|
|
||||||
value = ""
|
|
||||||
|
|
||||||
paths = [path for path in value.split(";") if path != ""]
|
|
||||||
|
|
||||||
if location not in paths:
|
|
||||||
paths.append(location)
|
|
||||||
value = ";".join(paths)
|
|
||||||
winreg.SetValueEx(
|
|
||||||
key, "Path", 0, winreg.REG_EXPAND_SZ, value
|
|
||||||
)
|
|
||||||
|
|
||||||
SendMessage = windll.user32.SendMessageW
|
|
||||||
SendMessage.argtypes = (
|
|
||||||
wintypes.HWND, wintypes.UINT, wintypes.WPARAM, wintypes.LPVOID
|
|
||||||
)
|
|
||||||
SendMessage.restype = wintypes.LPARAM
|
|
||||||
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment")
|
|
||||||
|
|
||||||
# also add the path to the environment,
|
|
||||||
# so it's available in the current console
|
|
||||||
os.environ['Path'] += ";%s" % location
|
|
||||||
|
|
||||||
key.Close()
|
|
||||||
|
|
||||||
|
|
||||||
def posix_install():
|
|
||||||
bin_dir = posix_find_bin_dir()
|
|
||||||
lib_dir = posix_find_lib_dir(bin_dir)
|
|
||||||
symlink_path = os.path.join(bin_dir, APP_NAME)
|
|
||||||
|
|
||||||
multiprint(
|
|
||||||
"Installing at:",
|
|
||||||
" bin: %s" % bin_dir,
|
|
||||||
" app: %s" % lib_dir,
|
|
||||||
"",
|
|
||||||
)
|
|
||||||
|
|
||||||
if os.path.exists(lib_dir) or os.path.lexists(symlink_path):
|
|
||||||
multiprint(
|
|
||||||
"An existing installation was detected. This will be removed!",
|
|
||||||
"",
|
|
||||||
)
|
|
||||||
|
|
||||||
get_confirmation()
|
|
||||||
rm_recursive(lib_dir, symlink_path)
|
|
||||||
install_lektor(lib_dir)
|
|
||||||
|
|
||||||
os.symlink(os.path.join(lib_dir, "bin", "lektor"), symlink_path)
|
|
||||||
|
|
||||||
|
|
||||||
def windows_install():
|
|
||||||
install_dir = os.path.join(os.environ["LocalAppData"], APP_NAME)
|
|
||||||
lib_dir = os.path.join(install_dir, "lib")
|
|
||||||
|
|
||||||
multiprint(
|
|
||||||
"Installing at:",
|
|
||||||
" %s" % install_dir,
|
|
||||||
"",
|
|
||||||
)
|
|
||||||
|
|
||||||
if os.path.exists(install_dir):
|
|
||||||
multiprint(
|
|
||||||
"An existing installation was detected. This will be removed!",
|
|
||||||
"",
|
|
||||||
)
|
|
||||||
|
|
||||||
get_confirmation()
|
|
||||||
rm_recursive(install_dir)
|
|
||||||
install_lektor(lib_dir)
|
|
||||||
|
|
||||||
windows_create_link(lib_dir, install_dir)
|
|
||||||
windows_add_to_path(install_dir)
|
|
||||||
|
|
||||||
|
|
||||||
def install():
|
|
||||||
multiprint(
|
|
||||||
"",
|
|
||||||
"Welcome to Lektor",
|
|
||||||
"This script will install Lektor on your computer.",
|
|
||||||
"",
|
|
||||||
)
|
|
||||||
|
|
||||||
if IS_WIN:
|
|
||||||
windows_install()
|
|
||||||
else:
|
|
||||||
posix_install()
|
|
||||||
|
|
||||||
multiprint(
|
|
||||||
"",
|
|
||||||
"All done!",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
install()
|
|
|
@ -89,7 +89,7 @@
|
||||||
</h3></li>
|
</h3></li>
|
||||||
|
|
||||||
<li><h3>
|
<li><h3>
|
||||||
<a href="templates/">Templates</a>
|
<a href="content/">Content</a>
|
||||||
</h3></li>
|
</h3></li>
|
||||||
|
|
||||||
<li><h3>
|
<li><h3>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
</h3></li>
|
</h3></li>
|
||||||
|
|
||||||
<li><h3>
|
<li><h3>
|
||||||
<a href="content/">Content</a>
|
<a href="templates/">Templates</a>
|
||||||
</h3></li>
|
</h3></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -589,8 +589,7 @@
|
||||||
<p>
|
<p>
|
||||||
Plugins are also tagged with keywords and topics.
|
Plugins are also tagged with keywords and topics.
|
||||||
Their tags are listed on their page and are navigable.
|
Their tags are listed on their page and are navigable.
|
||||||
You can view a list of all of the tags
|
You can view a list of all of the tags <a href="/plugins/tags" class="ref">here</a>.
|
||||||
<a href="tags/" class="ref">here</a>.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/virtual-paths/">virtual paths</a>
|
<a href="../tag/virtual-paths/">virtual paths</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -125,9 +125,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -125,9 +125,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -116,9 +116,7 @@
|
||||||
<a href="../tag/process-template-context/">process-template-context</a>
|
<a href="../tag/process-template-context/">process-template-context</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -131,9 +131,7 @@
|
||||||
<a href="../tag/server-stop/">server-stop</a>
|
<a href="../tag/server-stop/">server-stop</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/minify/">minify</a>
|
<a href="../tag/minify/">minify</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -137,9 +137,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/webp/">webp</a>
|
<a href="../tag/webp/">webp</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/templates/">templates</a>
|
<a href="../tag/templates/">templates</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -107,9 +107,7 @@
|
||||||
<a href="../tag/make/">make</a>
|
<a href="../tag/make/">make</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/official/">official</a>
|
<a href="../tag/official/">official</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -134,9 +134,7 @@
|
||||||
<a href="../tag/table-of-contents/">table of contents</a>
|
<a href="../tag/table-of-contents/">table of contents</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/syntax-highlighting/">syntax highlighting</a>
|
<a href="../tag/syntax-highlighting/">syntax highlighting</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/nofollow-links/">nofollow links</a>
|
<a href="../tag/nofollow-links/">nofollow links</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -143,9 +143,7 @@
|
||||||
<a href="../tag/Yarn/">Yarn</a>
|
<a href="../tag/Yarn/">Yarn</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -116,9 +116,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -113,9 +113,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -125,9 +125,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/server-stop/">server-stop</a>
|
<a href="../tag/server-stop/">server-stop</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -131,9 +131,7 @@
|
||||||
<a href="../tag/server-stop/">server-stop</a>
|
<a href="../tag/server-stop/">server-stop</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -125,9 +125,7 @@
|
||||||
<a href="../tag/shortcodes/">shortcodes</a>
|
<a href="../tag/shortcodes/">shortcodes</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/slugify/">slugify</a>
|
<a href="../tag/slugify/">slugify</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/setup-env/">setup-env</a>
|
<a href="../tag/setup-env/">setup-env</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -119,9 +119,7 @@
|
||||||
<a href="../tag/Surge/">Surge</a>
|
<a href="../tag/Surge/">Surge</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/virtual-paths/">virtual paths</a>
|
<a href="../tag/virtual-paths/">virtual paths</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/website/">website</a>
|
<a href="../tag/website/">website</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -116,9 +116,7 @@
|
||||||
<a href="../tag/thumbnails/">thumbnails</a>
|
<a href="../tag/thumbnails/">thumbnails</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -128,9 +128,7 @@
|
||||||
<a href="../tag/WebDAV/">WebDAV</a>
|
<a href="../tag/WebDAV/">WebDAV</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -125,9 +125,7 @@
|
||||||
<a href="../tag/webpack/">webpack</a>
|
<a href="../tag/webpack/">webpack</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -137,9 +137,7 @@
|
||||||
<a href="../tag/Yarn/">Yarn</a>
|
<a href="../tag/Yarn/">Yarn</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -122,9 +122,7 @@
|
||||||
<a href="../tag/Yandex-Metrica/">Yandex Metrica</a>
|
<a href="../tag/Yandex-Metrica/">Yandex Metrica</a>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>View <a href="/plugins/tags" class="ref">all tags</a>.</p>
|
||||||
View <a href="../tags/" class="ref">all tags</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-9 doc-styling">
|
<div class="col-sm-9 doc-styling">
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -139,9 +139,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -166,9 +166,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -157,9 +157,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -186,9 +186,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -117,9 +117,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -126,9 +126,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -121,9 +121,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -117,9 +117,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -127,9 +127,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -127,9 +127,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -103,9 +103,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -177,9 +177,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>View a list of all Lektor plugin tags
|
<p>View a list of all Lektor plugin tags <a href="/plugins/tags" class="ref">here</a>.</p>
|
||||||
<a href="../../tags/" class="ref">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue