Typically the destination is on the left and the src is on the right.
}
if s.Transformer == nil {
- s.Transformer = &transform.AbsURL{BaseURL: s.Config.BaseUrl}
+ s.Transformer = transform.NewChain(
+ &transform.AbsURL{BaseURL: s.Config.BaseUrl},
+ &transform.NavActive{Section: "tbd"},
+ )
}
final := new(bytes.Buffer)
- s.Transformer.Apply(content, final)
+ s.Transformer.Apply(final, content)
return s.Target.Publish(path, final)
}
BaseURL string
}
-func (t *AbsURL) Apply(r io.Reader, w io.Writer) (err error) {
+func (t *AbsURL) Apply(w io.Writer, r io.Reader) (err error) {
var tr *htmltran.Transformer
if tr, err = htmltran.NewFromReader(r); err != nil {
return &chain{transformers: trs}
}
-func (c *chain) Apply(r io.Reader, w io.Writer) (err error) {
+func (c *chain) Apply(w io.Writer, r io.Reader) (err error) {
in := r
for _, tr := range c.transformers {
out := new(bytes.Buffer)
- err = tr.Apply(in, out)
+ err = tr.Apply(out, in)
if err != nil {
return
}
AttrName string
}
-func (n *NavActive) Apply(r io.Reader, w io.Writer) (err error) {
+func (n *NavActive) Apply(w io.Writer, r io.Reader) (err error) {
var tr *htmltran.Transformer
if n.Section == "" {
out = new(bytes.Buffer)
)
- if err := tr.Apply(strings.NewReader(HTML_WITH_NAV), out); err != nil {
+ if err := tr.Apply(out, strings.NewReader(HTML_WITH_NAV)); err != nil {
t.Errorf("Unexpected error in NavActive.Apply: %s", err)
}
func TestSetNav(t *testing.T) {
tr := &NavActive{Section: "section_2"}
out := new(bytes.Buffer)
- if err := tr.Apply(strings.NewReader(HTML_WITH_NAV), out); err != nil {
+ if err := tr.Apply(out, strings.NewReader(HTML_WITH_NAV)); err != nil {
t.Errorf("Unexpected error in Apply() for NavActive: %s", err)
}
)
type Transformer interface {
- Apply(io.Reader, io.Writer) error
+ Apply(io.Writer, io.Reader) error
}
func apply(t *testing.T, tr Transformer, tests []test) {
for _, test := range tests {
out := new(bytes.Buffer)
- err := tr.Apply(strings.NewReader(test.content), out)
+ err := tr.Apply(out, strings.NewReader(test.content))
if err != nil {
t.Errorf("Unexpected error: %s", err)
}