lektor-website/docs/what/index.html

272 lines
10 KiB
HTML

<!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">
<link rel="stylesheet" href="../../static/styles.css?h=7041cc50">
<link rel="stylesheet" href="../../static/pygments.css">
<link rel="shortcut icon" href="../../static/favicon.png?h=fa09bedd">
<title>What is Lektor | 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 class="active"><a href="./">What is Lektor</a>
<ul></ul>
<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/">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="#lektor-is-static">Lektor is Static</a></li>
<li><a href="#lektor-is-a-cms">Lektor is a CMS</a></li>
<li><a href="#lektor-is-a-framework">Lektor is a Framework</a></li>
<li><a href="#collaborate-and-synchronize">Collaborate and Synchronize</a></li>
</ul>
</div>
</div>
<div class="col-sm-9 doc-styling">
<h1>What is Lektor</h1>
<ul class=page-meta>
</ul>
<p>When it comes to creating websites, there is a ludicrous number of tools available.
They range from full-blown content management solutions like Drupal to
desktop solutions like Google Web Designer to Cloud Hosted Website solutions
like WIX to more programmer focused approaches like Jekyll which generate
websites out of templates and markdown files.</p>
<p><em>Lektor is different from any of these.</em></p>
<h2 id="lektor-is-static">Lektor is Static</h2><p>Lektor learned from the huge range of static file generators like Jekyll,
Pelican, Hugo, Middleman and many more about the value of generating a
completely static website. This means that unlike WordPress or similar
solutions it does not run on a server, but your local computer (or a build
server), and generates static HTML that can be uploaded to any web server or
content distribution platform like S3 with CloudFront.</p>
<p>Why go static? Because the vast, vast majority of websites will be read many
more times than they will be updated. This is crucial because dynamic content
does not come for free. It needs server resources and because program code is
running there it needs to be kept up to date for to ensure there are no security
problems that are left unpatched. Also when a website gets a sudden spike of
traffic a static website will stay up for longer on the same server than a
dynamic one that needs to execute code.</p>
<p>Sure, there are some things you cannot do on a static website, but those are not
things you would use Lektor for. For small dynamic sections, JavaScript
paired up with other services is a good solution.</p>
<p><img src="static.png" alt="" class="screenshot"></p>
<h2 id="lektor-is-a-cms">Lektor is a CMS</h2><p>Lektor takes from content management systems like WordPress and provides a
flexible browser-based admin interface from which you can edit your website's
contents. Unlike traditional CMS solutions, however, it runs entirely on your
own computer.</p>
<p>This means you can give a Lektor website to people that have no understanding
of programming and they can still modify the content and update the website.</p>
<p><img src="admin.png" alt="" class="screenshot"></p>
<h2 id="lektor-is-a-framework">Lektor is a Framework</h2><p>Lastly, Lektor learns from experience in writing web frameworks. Lektor
is much more than a website generator because it is based on a very flexible
internal flat file database which can be used to model any website content.
Unlike static blog generators which are based on some markdown content and
“front matter” metadata Lektor's content is 100% configurable.</p>
<p>If you have ever used a web framework like Django or Ruby on Rails you might
feel right at home in how you can model and query your data.</p>
<p><img src="templates.png" alt="" class="screenshot"></p>
<h2 id="collaborate-and-synchronize">Collaborate and Synchronize</h2><p>Lektor acknowledges that there are web developers and content editors and that
their interests and preferences are very different. This is reflected heavily
in the design of Lektor and if you make your first Lektor project you can see
why. A web developer would go in and setup the theme and structure of a
Lektor project and content creators can then fill in the content of the site.</p>
<p>The collaboration can be based on version control systems like git or just
basic solutions like Dropbox. It's intentionally built so that collaboration
can work via the most basic systems like Dropbox or just network shares.</p>
<p>When you go live, you can synchronize up your changes into a remote server
just as easily.</p>
<p><img src="git.png" alt="" class="screenshot"></p>
<div class="comment-box">
<h2>Comments</h2>
<div id="disqus_thread"></div>
<script>
var disqus_config = function() { this.page.identifier = "/docs/what"; this.page.url = "https://www.getlektor.com/docs/what/"; };
(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/what/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>
<script type=text/javascript src="../../static/app.js?h=d85eb4b1" charset="utf-8"></script>
<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>