seo
API
seo
packageAPI reference for the seo
package.
Imports
(6)
S
struct
plugin
cmd/rfw/plugins/seo/seo.go:12-12
type plugin struct
Methods
PreBuild
Method
Parameters
raw
json.RawMessage
Returns
error
func (*plugin) PreBuild(raw json.RawMessage) error
{
var b strings.Builder
b.WriteString("// Code generated by seo plugin. DO NOT EDIT.\n")
b.WriteString("package main\n\n")
b.WriteString("import \"github.com/rfwlab/rfw/v2/plugins/seo\"\n\n")
b.WriteString("func init() {\n")
b.WriteString("\t_ = seo.New().Build([]byte(" + strconv.Quote(string(raw)) + "))\n")
b.WriteString("}\n")
p.file = "rfw_seo.go"
return os.WriteFile(p.file, []byte(b.String()), 0o644)
}
PostBuild
Method
Parameters
Returns
error
func (*plugin) PostBuild(json.RawMessage) error
{
if p.file != "" {
_ = os.Remove(p.file)
p.file = ""
}
return nil
}
ShouldRebuild
Method
Parameters
string
Returns
bool
func (*plugin) ShouldRebuild(string) bool
{ return false }
Fields
| Name | Type | Description |
|---|---|---|
| file | string |
F
function
init
cmd/rfw/plugins/seo/seo.go:14-14
func init()
{ plugins.Register(&plugin{}) }
F
function
TestPreAndPostBuild
TestPreAndPostBuild verifies the stub file is created and cleaned up.
Parameters
t
cmd/rfw/plugins/seo/seo_test.go:10-25
func TestPreAndPostBuild(t *testing.T)
{
p := &plugin{}
raw := json.RawMessage(`{"title":"x"}`)
if err := p.PreBuild(raw); err != nil {
t.Fatalf("PreBuild: %v", err)
}
if _, err := os.Stat("rfw_seo.go"); err != nil {
t.Fatalf("stub not created: %v", err)
}
if err := p.PostBuild(nil); err != nil {
t.Fatalf("PostBuild: %v", err)
}
if _, err := os.Stat("rfw_seo.go"); !os.IsNotExist(err) {
t.Fatalf("stub not removed")
}
}