83 lines
4.0 KiB
Markdown
83 lines
4.0 KiB
Markdown
---
|
|
name: add-feed-post
|
|
description: Add a new Feed post (short announcement / social-style update) to the Data Controller marketing site. Use when the user wants to publish a Feed post, add a /feed/ entry, or create a short announcement that also goes out via RSS.
|
|
---
|
|
|
|
# Add a Feed post
|
|
|
|
The **Feed** section (`/feed/`) is for short announcements and social-media style updates - things that don't warrant a full `content/blog/` article but are still worth publishing and syndicating via RSS. Feed posts work exactly like blog posts (one markdown file per post, in its own directory) but live under `content/feed/` and publish under `/feed/`.
|
|
|
|
Both Blog and Feed share a single combined RSS feed at `/rss.xml` (via `gatsby-plugin-feed` in `gatsby-config.js`), so a new Feed post appears in RSS automatically on the next build - no extra config.
|
|
|
|
## Steps
|
|
|
|
### 1. Create the post directory
|
|
|
|
Create a folder under `content/feed/`, named after the post slug (this becomes the URL):
|
|
|
|
```
|
|
content/feed/my-new-announcement/index.md
|
|
```
|
|
|
|
Pick a short, hyphenated, lowercase slug.
|
|
|
|
### 2. Write the front matter + content
|
|
|
|
```md
|
|
---
|
|
title: 'My New Announcement'
|
|
description: A one or two sentence summary used for SEO and RSS.
|
|
date: '2024-06-01 09:00:00'
|
|
author: 'Your Name'
|
|
authorLink: https://www.linkedin.com/in/yourprofile/
|
|
tags:
|
|
- Announcements
|
|
---
|
|
|
|
Your announcement content goes here, written in regular Markdown.
|
|
```
|
|
|
|
Front matter fields:
|
|
|
|
| Field | Required | Notes |
|
|
| ------------- | -------- | --------------------------------------------------------------------- |
|
|
| `title` | Yes | Used on the page, in the sidebar and in the RSS item. |
|
|
| `description` | Yes | Short summary for SEO meta tags and the RSS item description. |
|
|
| `date` | Yes | Format `'YYYY-MM-DD HH:MM:SS'`. Controls sort order and the archive. |
|
|
| `author` | Yes | Displayed under the post title. |
|
|
| `authorLink` | No | If set, the author name links out (e.g. to a LinkedIn profile). |
|
|
| `tags` | Yes | One or more tags. Drives the sidebar category list and RSS category. |
|
|
| `previewImg` | No | Relative path to an image in the same folder (e.g. `'./cover.png'`). Feed posts usually omit this since they're short-form. |
|
|
|
|
Use regular dashes (`-`) in content, not em-dashes.
|
|
|
|
### 3. Add images (optional)
|
|
|
|
If you set `previewImg` or reference images in the body, place the image files in the same post directory and reference them with a relative path.
|
|
|
|
### 4. Build / preview
|
|
|
|
```shell
|
|
npm run develop
|
|
```
|
|
|
|
The post will be available at `/my-new-announcement/` and will appear on the `/feed/` listing page, in the site search index, and in `/rss.xml` alongside blog posts.
|
|
|
|
## How Feed differs from Blog
|
|
|
|
| Aspect | Blog | Feed |
|
|
| ----------------- | ----------------------------- | --------------------------------- |
|
|
| Content directory | `content/blog/` | `content/feed/` |
|
|
| Listing page | `/blog/` | `/feed/` |
|
|
| Year archive | `/{year}/` | `/feed/{year}/` |
|
|
| Category page | `/category/{tag}/` | `/feed/category/{tag}/` |
|
|
| Template | `src/templates/blog-post.tsx`, `src/templates/blog-list.tsx` | `src/templates/feed-post.tsx`, `src/templates/feed-list.tsx` |
|
|
| RSS | Included in `/rss.xml` | Included in `/rss.xml` |
|
|
|
|
Feed archive/category routes are prefixed with `/feed/` to avoid colliding with the equivalent Blog routes, since both are rendered by the shared `src/templates/sidebar.tsx` component (via its `basePath` prop).
|
|
|
|
## Notes
|
|
|
|
- To add a **blog** post instead, follow the same steps but use `content/blog/` and the `/blog/` routes.
|
|
- The canonical human-readable version of this guide is `docs/adding-feed-posts.md`.
|