implement RSS feeds
This commit is contained in:
parent
1e3a1f3527
commit
55b6a0df96
16 changed files with 682 additions and 50 deletions
|
|
@ -7,6 +7,10 @@ use crate::{state::FileId, vfs::VPathBuf};
|
|||
/// Top-level `%%` root attributes.
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Deserialize, Serialize)]
|
||||
pub struct RootAttributes {
|
||||
/// Permanent ID of this page.
|
||||
#[serde(default)]
|
||||
pub id: String,
|
||||
|
||||
/// Template to use for generating the page.
|
||||
/// Defaults to `_tree.hbs`.
|
||||
#[serde(default)]
|
||||
|
|
@ -36,8 +40,10 @@ pub struct RootAttributes {
|
|||
#[serde(default)]
|
||||
pub styles: Vec<String>,
|
||||
|
||||
/// When specified, branches coming from this root will be added to a _feed_ with the given name.
|
||||
/// Feeds can be read by Handlebars templates to generate content based on them.
|
||||
/// When specified, this page will have a corresponding Atom feed under `rss/{feed}.xml`.
|
||||
///
|
||||
/// In feeds, top-level branches are expected to have a single heading containing the post title.
|
||||
/// Their children are turned into the post description
|
||||
#[serde(default)]
|
||||
pub feed: Option<String>,
|
||||
}
|
||||
|
|
@ -97,6 +103,11 @@ pub struct Attributes {
|
|||
/// List of extra `data` attributes to add to the block.
|
||||
#[serde(default)]
|
||||
pub data: HashMap<String, String>,
|
||||
|
||||
/// In feeds, specifies the list of tags to attach to an entry.
|
||||
/// This only has an effect on top-level branches.
|
||||
#[serde(default)]
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
/// Controls for block content presentation.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue