本文整理汇总了Golang中github.com/FooSoft/goldsmith.File.Path方法的典型用法代码示例。如果您正苦于以下问题:Golang File.Path方法的具体用法?Golang File.Path怎么用?Golang File.Path使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/FooSoft/goldsmith.File
的用法示例。
在下文中一共展示了File.Path方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Process
func (*minify) Process(ctx goldsmith.Context, f goldsmith.File) error {
var (
buff bytes.Buffer
err error
)
switch m := min.New(); filepath.Ext(f.Path()) {
case ".css":
err = css.Minify(m, &buff, f, nil)
case ".html", ".htm":
err = html.Minify(m, &buff, f, nil)
case ".js":
err = js.Minify(m, &buff, f, nil)
case ".json":
err = json.Minify(m, &buff, f, nil)
case ".svg":
err = svg.Minify(m, &buff, f, nil)
case ".xml":
err = xml.Minify(m, &buff, f, nil)
}
if err != nil {
return err
}
nf := goldsmith.NewFileFromData(f.Path(), buff.Bytes())
nf.CopyValues(f)
ctx.DispatchFile(nf)
return nil
}
示例2: Process
func (t *thumbnail) Process(ctx goldsmith.Context, f goldsmith.File) error {
defer ctx.DispatchFile(f)
thumbPath, create := t.thumbName(f.Path())
if !create {
return nil
}
var (
fn goldsmith.File
err error
)
if cached(ctx, f.Path(), thumbPath) {
thumbPathDst := filepath.Join(ctx.DstDir(), thumbPath)
fn, err = goldsmith.NewFileFromAsset(thumbPath, thumbPathDst)
if err != nil {
return err
}
} else {
var err error
fn, err = t.thumbnail(f, thumbPath)
if err != nil {
return err
}
}
ctx.DispatchFile(fn)
return nil
}
示例3: Process
func (*frontmatter) Process(ctx goldsmith.Context, f goldsmith.File) error {
meta, body, err := fm.Parse(f)
if err != nil {
return err
}
nf := goldsmith.NewFileFromData(f.Path(), body.Bytes())
nf.CopyValues(f)
for name, value := range meta {
nf.SetValue(name, value)
}
ctx.DispatchFile(nf)
return nil
}
示例4: Process
func (l *livejs) Process(ctx goldsmith.Context, f goldsmith.File) error {
doc, err := goquery.NewDocumentFromReader(f)
if err != nil {
return err
}
doc.Find("body").AppendHtml(l.js)
html, err := doc.Html()
if err != nil {
return err
}
nf := goldsmith.NewFileFromData(f.Path(), []byte(html))
ctx.DispatchFile(nf)
return nil
}
示例5: Process
func (idx *index) Process(ctx goldsmith.Context, f goldsmith.File) error {
idx.dirsMtx.Lock()
defer idx.dirsMtx.Unlock()
curr := f.Path()
leaf := true
for {
if handled, _ := idx.handled[curr]; handled {
break
}
idx.handled[curr] = true
dir := path.Dir(curr)
base := path.Base(curr)
summary, ok := idx.dirs[dir]
if !ok {
summary = new(dirSummary)
idx.dirs[dir] = summary
}
if leaf {
if base == idx.filename {
summary.index = f
} else {
ctx.DispatchFile(f)
}
}
entry := DirEntry{Name: base, Path: curr, IsDir: !leaf, File: f}
summary.entries = append(summary.entries, entry)
if dir == "." {
break
}
curr = dir
leaf = false
}
return nil
}
示例6: Process
func (m *markdown) Process(ctx goldsmith.Context, f goldsmith.File) error {
var buff bytes.Buffer
if _, err := buff.ReadFrom(f); err != nil {
return err
}
var data []byte
switch m.mdType {
case mdCommon:
data = blackfriday.MarkdownCommon(buff.Bytes())
case mdBasic:
data = blackfriday.MarkdownBasic(buff.Bytes())
}
name := strings.TrimSuffix(f.Path(), path.Ext(f.Path())) + ".html"
nf := goldsmith.NewFileFromData(name, data)
nf.CopyValues(f)
ctx.DispatchFile(nf)
return nil
}
示例7: Process
func (a *abs) Process(ctx goldsmith.Context, f goldsmith.File) error {
doc, err := goquery.NewDocumentFromReader(f)
if err != nil {
return err
}
for _, attr := range a.attrs {
path := fmt.Sprintf("*[%s]", attr)
doc.Find(path).Each(func(index int, sel *goquery.Selection) {
baseUrl, err := url.Parse(f.Path())
val, _ := sel.Attr(attr)
currUrl, err := url.Parse(val)
if err != nil || currUrl.IsAbs() {
return
}
currUrl = baseUrl.ResolveReference(currUrl)
if a.baseUrl != nil {
currUrl = a.baseUrl.ResolveReference(currUrl)
}
sel.SetAttr(attr, currUrl.String())
})
}
html, err := doc.Html()
if err != nil {
return err
}
nf := goldsmith.NewFileFromData(f.Path(), []byte(html))
nf.CopyValues(f)
ctx.DispatchFile(nf)
return nil
}