pages: some fixups
This commit is contained in:
parent
68aa9c0e13
commit
295811411e
7 changed files with 64 additions and 39 deletions
|
|
@ -2,26 +2,33 @@ package hugo
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"gopkg.in/yaml.v3"
|
||||
"lmika.dev/lmika/hugo-cms/models"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
type Provider struct {
|
||||
stagingDir string
|
||||
previewDir string
|
||||
scratchDir string
|
||||
stagingDir string
|
||||
previewDir string
|
||||
previewBaseURL *url.URL
|
||||
scratchDir string
|
||||
}
|
||||
|
||||
func New(stagingDir, previewDir, scratchDir string) (*Provider, error) {
|
||||
func New(stagingDir, previewBaseURL, previewDir, scratchDir string) (*Provider, error) {
|
||||
baseURL, err := url.Parse(previewBaseURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &Provider{
|
||||
stagingDir: stagingDir,
|
||||
previewDir: previewDir,
|
||||
scratchDir: scratchDir,
|
||||
stagingDir: stagingDir,
|
||||
previewBaseURL: baseURL,
|
||||
previewDir: previewDir,
|
||||
scratchDir: scratchDir,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
@ -51,8 +58,12 @@ func (p *Provider) NewSite(ctx context.Context, site models.Site) error {
|
|||
}
|
||||
|
||||
func (p *Provider) PreviewSite(ctx context.Context, site models.Site) (outDir string, err error) {
|
||||
previewURL, err := p.previewBaseURL.Parse("preview/" + site.Name)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
previewTarget := models.PublishTarget{
|
||||
URL: fmt.Sprintf("http://localhost:3000/preview/%s", site.Name),
|
||||
URL: previewURL.String(),
|
||||
}
|
||||
|
||||
return p.publishSiteAt(ctx, p.previewDir, site, previewTarget, "hugoPreview.yaml")
|
||||
|
|
@ -80,6 +91,7 @@ func (p *Provider) publishSiteAt(ctx context.Context, dir string, site models.Si
|
|||
cmd := exec.CommandContext(ctx, "hugo",
|
||||
"--source", baseSiteDir,
|
||||
"--destination", outDir,
|
||||
"--quiet",
|
||||
"--config", filepath.Join(baseSiteDir, configFile),
|
||||
"--baseURL", target.URL)
|
||||
cmd.Stderr = os.Stderr
|
||||
|
|
@ -91,12 +103,11 @@ func (p *Provider) publishSiteAt(ctx context.Context, dir string, site models.Si
|
|||
return outDir, nil
|
||||
}
|
||||
|
||||
func (p *Provider) ReconfigureSite(ctx context.Context, configBase string, site models.Site) error {
|
||||
func (p *Provider) ReconfigureSite(ctx context.Context, isPreviewConfig bool, configBase string, site models.Site) error {
|
||||
hugoCfg := hugoConfig{
|
||||
Title: site.Title,
|
||||
LanguageCode: "en",
|
||||
Theme: site.Theme,
|
||||
CanonifyURLs: configBase == "hugoPreview",
|
||||
Markup: hugoConfigMarkup{
|
||||
Goldmark: hugoGoldmarkConfig{
|
||||
Renderer: hugoGoldmarkRendererConfig{
|
||||
|
|
@ -106,6 +117,10 @@ func (p *Provider) ReconfigureSite(ctx context.Context, configBase string, site
|
|||
},
|
||||
}
|
||||
|
||||
if isPreviewConfig {
|
||||
hugoCfg.CanonifyURLs = true
|
||||
}
|
||||
|
||||
ymlBytes, err := yaml.Marshal(hugoCfg)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue