Allow rendering static files to disk and dynamic to memory in server mode

Updates #9625
This commit is contained in:
SatowTakeshi
2021-04-18 16:13:00 +09:00
committed by Bjørn Erik Pedersen
parent b9a1be2f99
commit 7d8011ed63
8 changed files with 69 additions and 25 deletions

View File

@@ -33,9 +33,10 @@ func newPagesProcessor(h *HugoSites, sp *source.SourceSpec) *pagesProcessor {
procs := make(map[string]pagesCollectorProcessorProvider)
for _, s := range h.Sites {
procs[s.Lang()] = &sitePagesProcessor{
m: s.pageMap,
errorSender: s.h,
itemChan: make(chan interface{}, config.GetNumWorkerMultiplier()*2),
m: s.pageMap,
errorSender: s.h,
itemChan: make(chan interface{}, config.GetNumWorkerMultiplier()*2),
renderStaticToDisk: h.Cfg.GetBool("renderStaticToDisk"),
}
}
return &pagesProcessor{
@@ -118,6 +119,8 @@ type sitePagesProcessor struct {
ctx context.Context
itemChan chan interface{}
itemGroup *errgroup.Group
renderStaticToDisk bool
}
func (p *sitePagesProcessor) Process(item interface{}) error {
@@ -162,7 +165,12 @@ func (p *sitePagesProcessor) copyFile(fim hugofs.FileMetaInfo) error {
defer f.Close()
return s.publish(&s.PathSpec.ProcessingStats.Files, target, f)
fs := s.PublishFs
if p.renderStaticToDisk {
fs = s.PublishFsStatic
}
return s.publish(&s.PathSpec.ProcessingStats.Files, target, f, fs)
}
func (p *sitePagesProcessor) doProcess(item interface{}) error {