diff --git a/postsDb.go b/postsDb.go index 13cd555..0e9c192 100644 --- a/postsDb.go +++ b/postsDb.go @@ -37,6 +37,16 @@ func (a *goBlog) checkPost(p *post) (err error) { // Check status if p.Status == "" { p.Status = statusPublished + if p.Published != "" { + // If published time is in the future, set status to scheduled + publishedTime, err := dateparse.ParseLocal(p.Published) + if err != nil { + return err + } + if publishedTime.After(time.Now()) { + p.Status = statusScheduled + } + } } // Cleanup params for key, value := range p.Parameters { diff --git a/postsFuncs.go b/postsFuncs.go index 7b4433d..5d5fee8 100644 --- a/postsFuncs.go +++ b/postsFuncs.go @@ -155,15 +155,20 @@ func (a *goBlog) postToMfItem(p *post) *microformatItem { switch p.Status { case statusDraft: mfStatus = "draft" - case statusPublished, statusScheduled: + case statusPublished, statusScheduled, statusUnlisted, statusPrivate: mfStatus = "published" + case statusPublishedDeleted, statusDraftDeleted, statusPrivateDeleted, statusUnlistedDeleted, statusScheduledDeleted: + mfStatus = "deleted" + } + switch p.Status { + case statusDraft, statusScheduled, statusPublished: mfVisibility = "public" case statusUnlisted: - mfStatus = "published" mfVisibility = "unlisted" case statusPrivate: - mfStatus = "published" mfVisibility = "private" + case statusPublishedDeleted, statusDraftDeleted, statusPrivateDeleted, statusUnlistedDeleted, statusScheduledDeleted: + mfVisibility = "deleted" } return µformatItem{ Type: []string{"h-entry"},