mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
39 lines
961 B
Swift
39 lines
961 B
Swift
//
|
|
// RSSFeedPlugin.swift
|
|
// SiteGenerator
|
|
//
|
|
// Created by Sami Samhuri on 2019-12-10.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
final class RSSFeedPlugin: Plugin {
|
|
let postRepo: PostRepo
|
|
let rssFeedWriter: RSSFeedWriter
|
|
|
|
init(
|
|
postRepo: PostRepo = PostRepo(),
|
|
rssFeedWriter: RSSFeedWriter = RSSFeedWriter()
|
|
) {
|
|
self.postRepo = postRepo
|
|
self.rssFeedWriter = rssFeedWriter
|
|
}
|
|
|
|
// MARK: - Plugin methods
|
|
|
|
func setUp(site: Site, sourceURL: URL) throws {
|
|
guard postRepo.postDataExists(at: sourceURL) else {
|
|
return
|
|
}
|
|
|
|
try postRepo.readPosts(sourceURL: sourceURL, makePath: rssFeedWriter.urlPathForPost)
|
|
}
|
|
|
|
func render(site: Site, targetURL: URL, templateRenderer: TemplateRenderer) throws {
|
|
guard !postRepo.isEmpty else {
|
|
return
|
|
}
|
|
|
|
try rssFeedWriter.writeFeed(postRepo.postsForFeed, site: site, to: targetURL, with: templateRenderer)
|
|
}
|
|
}
|