mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
Move in memory target into target module.
This commit is contained in:
parent
80009b427f
commit
ff8b52758d
3 changed files with 35 additions and 29 deletions
|
@ -4,6 +4,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/spf13/hugo/source"
|
"github.com/spf13/hugo/source"
|
||||||
|
"github.com/spf13/hugo/target"
|
||||||
"html/template"
|
"html/template"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -194,7 +195,7 @@ func TestTargetPath(t *testing.T) {
|
||||||
|
|
||||||
func TestSkipRender(t *testing.T) {
|
func TestSkipRender(t *testing.T) {
|
||||||
files := make(map[string][]byte)
|
files := make(map[string][]byte)
|
||||||
target := &InMemoryTarget{files: files}
|
target := &target.InMemoryTarget{Files: files}
|
||||||
sources := []source.ByteSource{
|
sources := []source.ByteSource{
|
||||||
{"sect/doc1.html", []byte("---\nmarkup: markdown\n---\n# title\nsome *content*"), "sect"},
|
{"sect/doc1.html", []byte("---\nmarkup: markdown\n---\n# title\nsome *content*"), "sect"},
|
||||||
{"sect/doc2.html", []byte("<!doctype html><html><body>more content</body></html>"), "sect"},
|
{"sect/doc2.html", []byte("<!doctype html><html><body>more content</body></html>"), "sect"},
|
||||||
|
@ -240,9 +241,9 @@ func TestSkipRender(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
content, ok := target.files[test.doc]
|
content, ok := target.Files[test.doc]
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatalf("Did not find %s in target. %v", test.doc, target.files)
|
t.Fatalf("Did not find %s in target. %v", test.doc, target.Files)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !bytes.Equal(content, []byte(test.expected)) {
|
if !bytes.Equal(content, []byte(test.expected)) {
|
||||||
|
@ -253,7 +254,7 @@ func TestSkipRender(t *testing.T) {
|
||||||
|
|
||||||
func TestAbsUrlify(t *testing.T) {
|
func TestAbsUrlify(t *testing.T) {
|
||||||
files := make(map[string][]byte)
|
files := make(map[string][]byte)
|
||||||
target := &InMemoryTarget{files: files}
|
target := &target.InMemoryTarget{Files: files}
|
||||||
sources := []source.ByteSource{
|
sources := []source.ByteSource{
|
||||||
{"sect/doc1.html", []byte("<!doctype html><html><head></head><body><a href=\"#frag1\">link</a></body></html>"), "sect"},
|
{"sect/doc1.html", []byte("<!doctype html><html><head></head><body><a href=\"#frag1\">link</a></body></html>"), "sect"},
|
||||||
{"content/blue/doc2.html", []byte("---\nf: t\n---\n<!doctype html><html><body>more content</body></html>"), "blue"},
|
{"content/blue/doc2.html", []byte("---\nf: t\n---\n<!doctype html><html><body>more content</body></html>"), "blue"},
|
||||||
|
@ -287,7 +288,7 @@ func TestAbsUrlify(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
content, ok := target.files[test.file]
|
content, ok := target.Files[test.file]
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatalf("Unable to locate rendered content: %s", test.file)
|
t.Fatalf("Unable to locate rendered content: %s", test.file)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
package hugolib
|
package hugolib
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"github.com/spf13/hugo/source"
|
"github.com/spf13/hugo/source"
|
||||||
"github.com/spf13/hugo/target"
|
"github.com/spf13/hugo/target"
|
||||||
"html/template"
|
"html/template"
|
||||||
"io"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -33,24 +31,6 @@ func mustReturn(ret *Page, err error) *Page {
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
type InMemoryTarget struct {
|
|
||||||
files map[string][]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *InMemoryTarget) Publish(label string, reader io.Reader) (err error) {
|
|
||||||
if t.files == nil {
|
|
||||||
t.files = make(map[string][]byte)
|
|
||||||
}
|
|
||||||
bytes := new(bytes.Buffer)
|
|
||||||
bytes.ReadFrom(reader)
|
|
||||||
t.files[label] = bytes.Bytes()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *InMemoryTarget) Translate(label string) (dest string, err error) {
|
|
||||||
return label, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type InMemoryAliasTarget struct {
|
type InMemoryAliasTarget struct {
|
||||||
target.HTMLRedirectAlias
|
target.HTMLRedirectAlias
|
||||||
files map[string][]byte
|
files map[string][]byte
|
||||||
|
@ -69,7 +49,7 @@ var urlFakeSource = []source.ByteSource{
|
||||||
|
|
||||||
func TestPageCount(t *testing.T) {
|
func TestPageCount(t *testing.T) {
|
||||||
files := make(map[string][]byte)
|
files := make(map[string][]byte)
|
||||||
target := &InMemoryTarget{files: files}
|
target := &target.InMemoryTarget{Files: files}
|
||||||
alias := &InMemoryAliasTarget{files: files}
|
alias := &InMemoryAliasTarget{files: files}
|
||||||
s := &Site{
|
s := &Site{
|
||||||
Target: target,
|
Target: target,
|
||||||
|
@ -96,9 +76,9 @@ func TestPageCount(t *testing.T) {
|
||||||
t.Errorf("Unable to render site lists: %s", err)
|
t.Errorf("Unable to render site lists: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
blueIndex := target.files["blue"]
|
blueIndex := target.Files["blue"]
|
||||||
if blueIndex == nil {
|
if blueIndex == nil {
|
||||||
t.Errorf("No indexed rendered. %v", target.files)
|
t.Errorf("No indexed rendered. %v", target.Files)
|
||||||
}
|
}
|
||||||
|
|
||||||
expected := "<html><head></head><body>..</body></html>"
|
expected := "<html><head></head><body>..</body></html>"
|
||||||
|
@ -112,7 +92,7 @@ func TestPageCount(t *testing.T) {
|
||||||
"sd3/index.html",
|
"sd3/index.html",
|
||||||
"sd4.html",
|
"sd4.html",
|
||||||
} {
|
} {
|
||||||
if _, ok := target.files[s]; !ok {
|
if _, ok := target.Files[s]; !ok {
|
||||||
t.Errorf("No alias rendered: %s", s)
|
t.Errorf("No alias rendered: %s", s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
25
target/memory.go
Normal file
25
target/memory.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package target
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"bytes"
|
||||||
|
)
|
||||||
|
|
||||||
|
type InMemoryTarget struct {
|
||||||
|
Files map[string][]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *InMemoryTarget) Publish(label string, reader io.Reader) (err error) {
|
||||||
|
if t.Files == nil {
|
||||||
|
t.Files = make(map[string][]byte)
|
||||||
|
}
|
||||||
|
bytes := new(bytes.Buffer)
|
||||||
|
bytes.ReadFrom(reader)
|
||||||
|
t.Files[label] = bytes.Bytes()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *InMemoryTarget) Translate(label string) (dest string, err error) {
|
||||||
|
return label, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue