Added site previewing

This will generate a local version of the Hugo site and serve it via the server
This commit is contained in:
Leon Mika 2025-02-17 21:41:36 +11:00
parent 3cf4294e87
commit 68aa9c0e13
9 changed files with 61 additions and 33 deletions

View file

@ -55,7 +55,7 @@ func (s *Service) DeletePage(site models.Site, page models.Page) models.Job {
if err != nil {
return err
}
themeMeta, ok := s.themes.Lookup(site.Theme)
if !ok {
return fmt.Errorf("theme %s not found in themes", site.Theme)
@ -130,10 +130,9 @@ func (s *Service) writePage(bi pageBuildInfo, page models.Page) error {
frontMatter := map[string]any{
"date": page.PublishDate.Format(time.RFC3339),
}
if page.Title != "" {
frontMatter["title"] = page.Title
} else if bi.themeMeta.PreferTitle {
frontMatter["title"] = page.PublishDate.Format(time.ANSIC)
}
return s.writeMarkdownFile(postFilename, frontMatter, page.Body)

View file

@ -156,7 +156,7 @@ func (s *Service) pageFilename(bi pageBuildInfo, page models.Page) string {
isLeafBundle := true
thisBundleInfo := bi.bundleInfo[bi.bundle.ID]
if thisBundleInfo.PageCount > 1 {
if thisBundleInfo.PageCount > 1 || bi.bundle.Name == models.RootBundleName {
isLeafBundle = false
isIndex = thisBundleInfo.IndexPageID == page.ID
} else {

View file

@ -10,13 +10,17 @@ func (s *Service) Publish(site models.Site) models.Job {
Do: func(ctx context.Context) error {
s.signalSiteBuildingStarted(ctx, site)
defer s.signalSiteBuildingFinished(ctx, site)
return s.publish(ctx, site)
},
}
}
func (s *Service) publish(ctx context.Context, site models.Site) error {
if _, err := s.hugo.PreviewSite(ctx, site); err != nil {
return err
}
targets, err := s.db.GetPublishTargets(ctx, site.ID)
if err != nil {
return err
@ -31,14 +35,7 @@ func (s *Service) publish(ctx context.Context, site models.Site) error {
}
func (s *Service) publishTarget(ctx context.Context, site models.Site, target models.PublishTarget) error {
outDir, cleanFn, err := s.hugo.PublishSite(ctx, site, target)
//defer func() {
// if cleanFn != nil {
// cleanFn()
// }
//}()
_ = cleanFn
outDir, err := s.hugo.PublishSite(ctx, site, target)
if err != nil {
return err
}

View file

@ -172,9 +172,14 @@ func (s *Service) createSite(ctx context.Context, site models.Site) error {
return err
}
if err := s.hugo.ReconfigureSite(ctx, site); err != nil {
if err := s.hugo.ReconfigureSite(ctx, "hugo", site); err != nil {
return err
}
if err := s.hugo.ReconfigureSite(ctx, "hugoPreview", site); err != nil {
return err
}
return nil
}