@@ 31,7 31,6 @@ void generateAtomFeed(
string pagesDir,
string outputPath,
) {
- import cdrozak.website.util: toRfc822;
import cdrozak.website.page: Category, makeHtmlUrl;
// Make sure the destination exists
@@ 49,7 48,7 @@ void generateAtomFeed(
item.guid = item.link;
item.pubDate = page.publishDate;
- auto contentPath = pagesDir.buildPath(page.baseName) ~ ".md";
+ auto contentPath = pagesDir.buildPath(page.baseName).setExtension(".md");
if (contentPath.exists) {
item.description = website.processMarkdown(contentPath.readText);
}
@@ 57,7 56,7 @@ void generateAtomFeed(
return item;
});
- auto buildDate = Clock.currTime();
+ auto buildDate = Clock.currTime(UTC());
auto output = elemX!"rss"(
[
@@ 69,7 68,7 @@ void generateAtomFeed(
elemX!"link"(website.url),
elemX!"description"(feed.description),
elemX!"generator"(feed.generator),
- elemX!"lastBuildDate"(buildDate.toRfc822),
+ elemX!"lastBuildDate"(buildDate.toISOExtString),
elemX!"atom:link/"(
[
"href": feed.selfLink,
@@ 82,7 81,7 @@ void generateAtomFeed(
elemX!"title"(item.title),
elemX!"link"(item.link),
elemX!"guid"(item.link),
- elemX!"pubDate"(item.pubDate.toRfc822),
+ elemX!"pubDate"(item.pubDate.toISOExtString),
elemX!"description"(item.description),
))
.array,
@@ 13,32 13,6 @@ Element elems(Element[] elements...) {
return newElement;
}
-string toRfc822(Date date) {
- auto time = SysTime(date);
- return toRfc822(time);
-}
-
-string toRfc822(SysTime time) {
- import std.math: abs;
-
- auto utcOffset = time.utcOffset;
- auto offset = utcOffset.split!("hours", "minutes");
- auto offsetSign = utcOffset.isNegative ? '-' : '+';
-
- return "%s, %02d %s %d %02d:%02d:%02d %s%02d%02d".format(
- time.dayOfWeek.dayOfWeekToString[0..3],
- time.day,
- time.month.monthToString[0..3],
- time.year,
- time.hour,
- time.minute,
- time.second,
- offsetSign,
- offset.hours.abs,
- offset.minutes.abs,
- );
-}
-
string dayOfWeekToString(DayOfWeek dayOfWeek) {
return dayOfWeek.predSwitch!"a == b"(
DayOfWeek.mon, "Monday",