RSS ไปยังโซเชียลเน็ตเวิร์ก 66 แห่ง: Facebook, Instagram, X, LinkedIn, Telegram และอื่นๆ บล็อก พันธมิตร (Affiliate) ติดต่อเรา
เข้าสู่ระบบ เริ่มต้นใช้งานฟรี
Updated: 2026-10-06
Pelican RSS and Atom Feeds: Configure Them and Auto-Post

Short answer: Pelican generates Atom and RSS feeds through settings, not plugins. Set SITEURL to your public https address, keep RELATIVE_URLS = False for production, and define feed paths such as FEED_ALL_RSS = "feeds/all.rss.xml" และ FEED_ALL_ATOM = "feeds/all.atom.xml". Build with publishconf.py, which is where the quickstart enables feeds, and the feeds appear in the output folder. Point an RSS auto-poster at one of them and every new article is shared automatically.

Pelican is a Python static site generator used for personal blogs, developer journals, conference sites and project news. It turns Markdown or reStructuredText into plain HTML files, which makes sites fast, cheap to host and easy to keep in Git. Pelican’s feed support is built in and flexible: site-wide feeds, per-category and per-tag feeds, author feeds and translation feeds are all one setting away. The flexibility is also why Pelican feeds are often misconfigured. This guide explains the settings that matter, the traps that produce missing feeds or broken links, and how to use the result for automatic social sharing.

Why the feed is missing in a new Pelican project

The most common question about Pelican feeds is “why is there no feed?”. The answer is in the two configuration files that pelican-quickstart creates:

  • pelicanconf.py is meant for development. It sets the feed settings to None, because feeds are rarely useful while you preview the site locally, and it usually allows relative URLs.
  • publishconf.py imports pelicanconf.py and overrides settings for production. This is where the quickstart enables feeds, sets RELATIVE_URLS = False and expects a real SITEURL.

If you build the live site with pelican content หรือ make html, Pelican uses the development settings and generates no feeds. Build production with make publish, or explicitly with pelican content -s publishconf.py. In CI pipelines for GitHub Pages, Netlify or Cloudflare Pages, check the build command for exactly this.

The feed settings that matter

A practical production configuration in publishconf.py looks like this:

from pelicanconf import *

SITEURL = "https://blog.example.com"
RELATIVE_URLS = False

FEED_ALL_ATOM = "feeds/all.atom.xml"
FEED_ALL_RSS = "feeds/all.rss.xml"
CATEGORY_FEED_ATOM = "feeds/{slug}.atom.xml"
CATEGORY_FEED_RSS = "feeds/{slug}.rss.xml"
TAG_FEED_RSS = "feeds/tag-{slug}.rss.xml"

FEED_MAX_ITEMS = 20
RSS_FEED_SUMMARY_ONLY = True

What each line does:

  • SITEURL is the base for every absolute link in the feeds. Without it, links cannot be absolute.
  • RELATIVE_URLS = False ensures pages and feeds use full URLs. Relative links in feeds break readers and auto-posters.
  • FEED_ALL_ATOM และ FEED_ALL_RSS create site-wide feeds of all articles, including translations.
  • CATEGORY_FEED_* และ TAG_FEED_* create one feed per category or tag, with {slug} replaced by its name.
  • FEED_MAX_ITEMS limits the number of items, which keeps the feed small.
  • RSS_FEED_SUMMARY_ONLY decides whether RSS items contain the summary or the full article.

Pelican also offers FEED_ATOM และ FEED_RSS for feeds of the main language only, AUTHOR_FEED_* for author feeds and TRANSLATION_FEED_* for per-language feeds. All feed settings are documented in the Pelican settings reference.

Atom or RSS: which to give to tools

Pelican’s quickstart enables Atom by default. Atom is a well-defined format and every serious reader supports it. RSS 2.0 is the format that the widest range of tools understands, including many social posting services and older integrations. Since Pelican can generate both at no cost, it is sensible to enable both and give tools the RSS feed unless they prefer Atom.

Whichever you pick, choose once and keep the address. Changing the feed URL later means updating every reader, every integration and every auto-poster that uses it. If you want more background on formats, see whether the feed format matters for auto-posting.

Get SITEURL and FEED_DOMAIN right

Feed links are built from FEED_DOMAIN, which defaults to SITEURL. Typical mistakes:

  • SITEURL left empty, as in the development file, so feeds contain relative links;
  • SITEURL with http while the site is served over https, so every shared link goes through a redirect or a warning;
  • a trailing slash on SITEURL, which produces double slashes in links;
  • a project site on GitHub Pages without the subfolder, for example https://user.github.io instead of https://user.github.io/project.

After building, open output/feeds/all.rss.xml and check the first item’s link. It should open the article in a browser exactly as visitors see it. Problems with relative links are explained in relative URLs in RSS feeds.

Dates, time zones and future articles

Pelican reads each article’s date from its metadata, for example Date: 2026-10-10 13:30. Three settings decide how dates appear in the feed:

  • TIMEZONE must be set, for example "Europe/London". Without it, Pelican warns and dates may be interpreted in the build machine’s zone, which on CI servers is usually UTC.
  • DEFAULT_DATE can take dates from file modification times when metadata is missing. That is risky in CI, where checkouts reset file times; prefer explicit dates in metadata.
  • WITH_FUTURE_DATES controls whether articles dated in the future are published. Set it to False if you write articles in advance, and rebuild regularly, for example with a scheduled CI job, so each article appears when its date arrives.

Articles with Status: draft are written to the drafts folder and are not included in feeds. The feed writer formats dates correctly for each format; problems usually come from wrong source dates. For common errors, see RSS date format errors.

Summaries and what social posts show

With RSS_FEED_SUMMARY_ONLY = True, RSS items carry the article summary. Pelican takes it from the Summary metadata if present, or otherwise generates one from the beginning of the article, cut after SUMMARY_MAX_LENGTH words. A written summary is better: it becomes the text of many social posts, and an automatic one may start with an image caption or a code block.

Title: Speeding up our test suite by 40 percent
Date: 2026-10-10 13:30
Category: Engineering
Tags: python, testing
Summary: How we cut test time by running slow tests in parallel and caching fixtures.

Full-content feeds are convenient for readers, while summaries keep social posts short and bring visitors to your site. More on the trade-off is in full-text vs excerpt RSS feeds.

Images in Pelican feeds

Pelican’s built-in feeds focus on text. Social networks still need an image, and most auto-posters find one in two places: the feed item itself, or the article page’s Open Graph tags. For a static site, the page tags are usually the easiest route:

  • use a theme that outputs og:image, or add it to your theme’s base template;
  • define a cover image in each article’s metadata, for example Image: images/test-suite.jpg, and let the template turn it into an absolute og:image URL;
  • use images at least 1200 pixels wide.

Plugins from the Pelican plugins collection can add images or extra elements to feeds if you need them in the XML itself. If networks show the wrong picture, read why auto-posted links show the wrong image.

Category and tag feeds for routing

Pelican’s per-category and per-tag feeds are one of its best features for automation. A personal blog might send the Engineering category to LinkedIn and Mastodon, the Travel category to Pinterest and Facebook, and the Releases tag to a Discord server. No filtering logic is needed in the posting tool; each feed already contains exactly the right articles.

Keep category and tag names consistent. Python และ python become the same slug, but Py และ Python do not, and you end up with feeds that are half empty. Decide on a short list of categories and stick to it. For routing ideas, see category filtering for auto-posting.

Keep URLs stable

Feed readers and auto-posters remember items by their ID, which in Pelican feeds is based on the article URL. The URL comes from ARTICLE_URL และ ARTICLE_SAVE_AS. If you change those patterns, for example from {date:%Y}/{slug}.html to {slug}/, every article gets a new URL and a new ID, and tools may treat your whole archive as new.

Choose a URL pattern early and keep it. If you must change it, create redirects for the old URLs and be aware that subscribers may see old articles again. The same applies when moving to a new domain. More detail is in why a feed auto-posts the same article twice.

Advertise the feed

Most Pelican themes add autodiscovery links to the page head automatically when feed settings are enabled. Check a page’s source for a <link rel="alternate"> element with your feed address. If it is missing, add it to the theme’s base template:

<link rel="alternate" type="application/rss+xml"
      title="{{ SITENAME }}" href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}">

A visible “RSS” link in the footer or sidebar also helps human subscribers. See การค้นหา RSS feed อัตโนมัติ (autodiscovery) for details.

Common Pelican feed problems

SymptomCauseFix
No feeds in the outputBuilt with pelicanconf.pyBuild with make publish หรือ -s publishconf.py
Relative links in the feedEmpty SITEURL หรือ RELATIVE_URLS = TrueSet the public URL and disable relative URLs
Links missing the subfolderSITEURL without the project pathInclude the full path
Dates off by hoursNo TIMEZONE or file-based datesSet the time zone and explicit dates
Future article published earlyWITH_FUTURE_DATES left onSet it to False and rebuild on schedule
Archive resharedChanged ARTICLE_URL patternKeep URLs stable; add redirects

Validate and automate

After deploying, open the feed, check that the newest article is first and that links work, and run it through the W3C Feed Validation Service. Then connect it to an auto-poster. Because a static site only changes when you build it, remember that a new article reaches social networks only after the deploy finishes and the tool’s next check.

  • deploy first, then expect sharing within the tool’s check interval;
  • write descriptive titles and summaries, since they become post text;
  • use category feeds to send each topic to the right accounts;
  • add UTM parameters in the posting tool rather than in Pelican.

How PostRSS works with a Pelican blog

PostRSS has been publishing RSS and Atom feeds to social networks since 2014. Paste the address of your Pelican feed, or several category feeds, connect your accounts and choose the post format. PostRSS checks the feeds as often as every minute and shares each new article, with its image and link, to the networks you choose among 66 supported networks, messengers, team chats and blogs, including Mastodon, Bluesky, LinkedIn, Telegram, Discord and DEV. Keyword filters, UTM parameters and hashtags from categories are available too. See the PostRSS features page and the plan limits on the pricing page. More developer guides are under the Technical Guide tag.

Related reading

The bottom line

Pelican has excellent built-in feeds, but they appear only with production settings. Set SITEURL, disable relative URLs, enable the Atom and RSS feeds you need, and build with publishconf.py. Set a time zone, write summaries, keep article URLs stable and use category feeds for routing. Then every article you publish can reach your social channels automatically.

FAQ

Why does my Pelican site have no RSS feed?

The quickstart’s pelicanconf.py disables feeds for local development. Feeds are enabled in publishconf.py, so build production with make publish or with the publishconf.py settings file.

Where is the Pelican feed located?

It is wherever the feed settings say, commonly feeds/all.atom.xml and, if enabled, feeds/all.rss.xml under your site URL. Category and tag feeds follow the patterns you define.

Should I use Atom or RSS with Pelican?

Pelican can generate both at once. Atom is enabled by default, and RSS 2.0 is supported by the widest range of tools, so enabling both and giving tools the RSS feed is a safe choice.

How do I stop future articles from appearing in the feed?

Set WITH_FUTURE_DATES to False and rebuild the site regularly, for example with a scheduled CI job. Each article then appears in the feed only once its date has passed.

Can a Pelican blog auto-post to social media?

Yes. Once the feed is live, an RSS auto-poster such as PostRSS can watch it, or individual category feeds, and share every new article with the networks you connect.

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 แต่ละผลิตภัณฑ์ช่วยประหยัดเวลาของคุณในแบบที่ต่างกัน

แชทสด AI สำหรับเว็บไซต์ Talkmio เว็บไซต์ของคุณตอบผู้เข้าชมได้ตลอด 24 ชั่วโมงจากเนื้อหาของคุณเอง ในภาษาของพวกเขา แพ็กเกจฟรี · ไม่ต้องใช้บัตร ผู้ช่วย AI Ask Mio แชท เขียนโค้ด ออกแบบ เขียนงาน และค้นคว้า Mio เลือกโมเดลที่ดีที่สุดให้กับแต่ละงาน แพ็กเกจฟรี ระบบอัตโนมัติ AI สำหรับบล็อกและโซเชียล AI Blog Autopilot AI เขียนบทความ SEO ยาว 2,000–3,000 คำ และแชร์แต่ละบทความไปยังโซเชียลเน็ตเวิร์กกว่า 58 แห่ง 3 บทความแรกฟรี ตรวจสุขภาพเว็บไซต์ Site AI Audit SEO ความเร็ว SSL ความปลอดภัย และการตั้งค่าอีเมลในรายงานเดียว เรียงตามสิ่งที่ควรแก้ก่อน ตรวจครั้งแรกฟรี ตรวจ SEO เชิงลึก Site SEO AI Audit ตรวจ SEO ทั้งเว็บใน 7 ด้าน รวมถึงการมองเห็นในการค้นหาด้วย AI พร้อมรายการแก้ไขเรียงตามผลกระทบ ตรวจครั้งแรกฟรี ฟีด RSS และฟีดสินค้า RSS Feed Creator สร้าง RSS จากหน้าเว็บใดก็ได้ พร้อมฟีดสินค้าสำหรับ Google และ Meta ที่อัปเดตเอง แพ็กเกจฟรี พัฒนาเว็บไซต์และ SEO Internet Solutions เว็บไซต์ ร้านค้าออนไลน์ และระบบเฉพาะทาง ออกแบบ สร้าง และดูแลโดยทีมของเรา ตั้งแต่ปี 2011
PostRSS - ระบบอัตโนมัติ RSS Feed และเครื่องมือโพสต์อัตโนมัติ
ภาพรวมความเป็นส่วนตัว

เว็บไซต์นี้ใช้คุกกี้เพื่อให้เราสามารถมอบประสบการณ์การใช้งานที่ดีที่สุดแก่คุณ ข้อมูลคุกกี้จะถูกเก็บไว้ในเบราว์เซอร์ของคุณและทำหน้าที่ต่างๆ เช่น การจดจำคุณเมื่อคุณกลับมาที่เว็บไซต์ของเรา และช่วยให้ทีมงานของเราเข้าใจว่าส่วนใดของเว็บไซต์ที่คุณสนใจและมีประโยชน์มากที่สุด