RSS σε 66 κοινωνικά δίκτυα: Facebook, Instagram, X, LinkedIn, Telegram και άλλα Blog Συνεργατικό Πρόγραμμα Επικοινωνία
Σύνδεση Ξεκινήστε δωρεάν
Updated: 2026-10-30
Lektor Atom Feed: Add It to Your Python CMS and Auto-Post

Short answer: Lektor is a Python static content management system, and it does not create a feed on its own. Add the atom plugin, write a small configuration file that names your blog folder and the feed address, give every post a title, a date and a body, and rebuild the site. Lektor then writes a valid Atom file next to your pages. Check that the links are absolute, publish the output, and give the address of the feed to an auto-poster so that every new post is shared on your social networks.

Lektor sits between a static site generator and a full CMS. Your content lives in plain text files, the build is done by Python, and there is a friendly admin interface that editors can open in a browser while the site is edited locally. That combination suits small teams that want a fast site without a database. It also means that a feed is a build artefact: it is created when you build, it changes only when you build again, and it is only as good as the data in your content files. This guide covers the plugin setup, the content model, the deployment and the checks that keep the feed reliable.

Add the Atom plugin

Lektor plugins are Python packages that you add to the project with its own command. Run it from the root of the project, next to the project file.

lektor plugins add lektor-atom

The command records the plugin in the project file, and the next build downloads and loads it. The plugin generates an Atom feed, which is a close relative of RSS: it carries the same information in a stricter format, with required identifiers and dates. Auto-posters and feed readers understand Atom, so there is no need to produce a second format unless a particular tool demands it. If you maintain another Python site generator as well, compare this approach with the Pelican feed guide και the Hexo feed guide.

Describe the feed in a config file

Plugin settings live in the configs folder of the project, in a file named after the plugin. One section describes one feed, so a site with a blog and a news area can have two.

# configs/atom.ini
[blog]
name = Example Journal
source_path = /blog
url_path = /feed.xml
items = 20

The name is shown by feed readers, the source path says which part of the content tree supplies the items, the URL path is the address of the file and the item count limits its size. The plugin also has options that tell it which fields of your content model hold the title, the body, the date and the author, and the names of those options depend on the version, so read the documentation of the version that you installed. Twenty items are plenty for an auto-poster, and a short file is fetched faster.

Give every post the fields a feed needs

A feed item needs a title, a permanent address, a date and a summary. In Lektor these come from the model of your posts and from the content file of each post.

# models/blog-post.ini
[model]
name = Blog Post
label = {{ this.title }}

[fields.title]
type = string

[fields.pub_date]
type = date

[fields.summary]
type = text

[fields.body]
type = markdown
# content/blog/spring-opening-hours/contents.lr
title: Spring opening hours
---
pub_date: 2026-10-30
---
summary: Our new opening hours start on Monday.
---
body:

The full text of the post starts here.

The model above is only an example, and your site may use other field names. What matters is that the date is a real date field and not free text, because the feed must sort the posts and write the date in a standard format. Without a time, two posts published on the same day have no clear order, so if you publish more than once a day, store the time as well.

Where each field comes from

Feed elementSource in LektorRule
Titletitle field of the postPlain text, no markup
Link and identifierURL of the post pageAbsolute, https, never changes
Datepub_date fieldA date field, not the build time
Summary or bodysummary or body fieldComplete sentences, no cut words
Feed addressurl_path in atom.iniStable, listed in the page head

The address of a post deserves the most attention. Lektor builds it from the folder name of the post, so renaming a folder changes the address, and an auto-poster that stores identifiers will treat the old and the new address as two different posts. Choose folder names carefully before publishing and keep them. The causes and cures of repeated posts are covered in why a feed auto-posts the same article twice.

Set the site address

Absolute links need to know the real address of the site. In Lektor the address is part of the project settings, in the project file, where the primary alternative can carry a URL. If you leave it out, the plugin has to guess, and the feed may contain relative links or the address of your local test server. Set the address to the public domain with the https scheme, rebuild and look at the first link in the file. This single setting causes more broken feeds than any other, because it works silently on your own computer and fails only for readers.

Build and read the file

Build the site into a folder and look at the file itself instead of assuming that it is right.

lektor build --output-path public
head -40 public/feed.xml
grep -c "<entry>" public/feed.xml
  • The first line is an XML declaration, followed by a feed element.
  • Every link begins with your real domain and uses https.
  • Each entry has a title, an identifier, an updated date and a link.
  • The newest post is the first entry, and the count matches the number you set.

Then paste the live address into the W3C Feed Validation Service and fix every error. A longer routine is in the feed validation guide, and a shorter one in debugging a feed with curl.

Summaries, images and encoding

Auto-posters build the best social posts from a feed that gives them a short summary and a picture. Write a real summary for every post instead of cutting the body automatically, because an automatic cut can end in the middle of a sentence and that is exactly what the auto-poster will copy. Lektor handles images as attachments of a page, so keep one good picture for each post, name the file clearly and make sure the page template uses it as the social image. Whether to put the full text or only a summary in the feed is discussed in full text or excerpt in an RSS feed.

Text is stored as UTF-8 in the content files, and the feed declares UTF-8 too, so the two agree. Problems appear when text is pasted from a word processor with control characters that XML does not allow, or when a file is saved in another encoding. Save every content file as UTF-8 and look at the feed after adding a post that contains accents, quotation marks or an emoji. See why special characters and emoji break feeds.

Dates, drafts and future posts

Because the feed is built, not served, time works differently from a database site. A post with a date in the future is included at the next build unless you exclude it, and an auto-poster will share it at once. Decide on one rule. You can add a field that marks a post as a draft and skip those posts in your templates, or you can build only on the day when the post should appear. Whichever you pick, test it with one draft post before the first real release. For the effect of old dates see the guide to feed order and backdated posts.

Make the feed discoverable

People and tools should not have to guess where the feed is. Add a link element to the head of your base template, with the relation set to alternate, the type set to the Atom media type and the absolute address of the feed. A person or a tool that only knows your home page can then find the feed on its own. The full explanation is in the guide to feed autodiscovery.

Deploy and test the live address

Lektor can publish the output with its own deploy command or you can copy the folder to any static host. After the first deployment, request the live file and compare it with the local one.

curl -I https://example.com/feed.xml
curl -s https://example.com/feed.xml | head -20

The first command should return a 200 status and a content type that names XML. A web server may deliver an unknown extension as plain text, and some readers then refuse the file, so check the header and fix it in the server configuration if needed. Also look at how long a cache in front of the site keeps the file, because a feed that lags behind your site delays every social post. The meaning of the status codes is described in the guide to feed status codes.

Common mistakes to avoid

  • No public address in the project. The links are relative or point to a local server.
  • Free-text dates. The feed cannot sort or format them.
  • Renamed folders. A new path means a new address and a repeated post.
  • Everything in one feed. Pages that are not news appear as new items.
  • Forgetting to rebuild. The feed changes only when the site is built and published.
  • Testing only locally. The live server and its cache decide what the world sees.

How PostRSS works with a Lektor feed

PostRSS has been publishing RSS and Atom feeds to social networks since 2014. Paste the address of your feed, connect your accounts and choose how each post is built from the title, the description or the page title. PostRSS checks the feed as often as every minute and shares each new entry, with its image and link, to the channels you choose among 66 supported networks, messengers, team chats and blogs, including LinkedIn, X, Bluesky, Mastodon and Telegram. Keyword filters, UTM parameters and posting windows let you tune each channel. See the PostRSS features page and the plan limits on the pricing page. More developer guides are under the Technical Guide tag.

Σχετική ανάγνωση

The bottom line

A Lektor feed is a short list of decisions: the atom plugin, a config file with the blog folder and the feed address, a post model with real dates and summaries, a public site address in the project and stable folder names. Build, read the file, validate it, deploy it and test the live address. After that, connect it to an auto-poster, and every post you publish reaches your readers and your social channels without anyone copying links by hand.

FAQ

Does Lektor create an RSS feed by default?

No. Lektor has no built-in feed, but the atom plugin generates an Atom feed from a folder of posts once you add a small configuration file.

Is Atom good enough for auto-posting?

Yes. Atom is a standard feed format, and auto-posters and readers understand it as well as RSS. Use the address of the file on your live domain.

Why are the links in my feed wrong?

The public address of the site is probably missing from the project settings. Set it to your real domain with https, rebuild and check the first link in the file.

Do I need to rebuild for the feed to update?

Yes. The feed is a static file created at build time, so it changes only when you build and publish the site again.

Can PostRSS read a feed produced by Lektor?

Yes. PostRSS reads any valid RSS or Atom address that is reachable without a login. Paste the address, connect your channels and new posts are shared as soon as they appear.

New guides, once a month

What changed in the networks, what broke, and how to fix it before it costs you reach.

We send a confirmation e-mail first. Unsubscribe any time.

Περισσότερα εργαλεία από την ομάδα μας

Από την Internet Solutions, την ομάδα πίσω από το PostRSS. Κάθε προϊόν σάς εξοικονομεί χρόνο με τον δικό του τρόπο.

Live chat με AI για ιστότοπους Talkmio Ο ιστότοπός σας απαντά στους επισκέπτες 24/7 με βάση το δικό σας περιεχόμενο, στη γλώσσα τους. Δωρεάν πρόγραμμα · χωρίς κάρτα Βοηθός AI Ask Mio Συνομιλία, κώδικας, σχεδιασμός, γραφή και έρευνα. Το Mio επιλέγει το καλύτερο μοντέλο για κάθε εργασία. Δωρεάν πρόγραμμα Αυτόματος πιλότος AI για blog και social AI Blog Autopilot Η AI γράφει άρθρα SEO 2.000–3.000 λέξεων και κοινοποιεί το καθένα σε 60 κοινωνικά δίκτυα. Τα 3 πρώτα άρθρα δωρεάν Έλεγχος υγείας ιστότοπου Έλεγχος AI ιστοτόπου SEO, ταχύτητα, SSL, ασφάλεια και ρυθμίσεις email σε μία αναφορά, με σειρά προτεραιότητας. Ο πρώτος έλεγχος δωρεάν Σε βάθος ανίχνευση SEO Έλεγχος SEO AI ιστοτόπου Πλήρης ανίχνευση SEO σε 7 τομείς, μαζί με την ορατότητα στην αναζήτηση AI, με διορθώσεις ταξινομημένες κατά αντίκτυπο. Ο πρώτος έλεγχος δωρεάν RSS και ροές προϊόντων Δημιουργός RSS Feed Δημιουργήστε RSS από οποιαδήποτε σελίδα, καθώς και ροές προϊόντων για Google και Meta που ενημερώνονται μόνες τους. Δωρεάν πρόγραμμα Ανάπτυξη ιστότοπων και SEO Internet Solutions Ιστότοποι, ηλεκτρονικά καταστήματα και εξατομικευμένα συστήματα, που σχεδιάζει, κατασκευάζει και υποστηρίζει η ομάδα μας. Από το 2011