当前位置: 首页>>代码示例>>Golang>>正文


Golang html.Render函数代码示例

本文整理汇总了Golang中code/google/com/p/go/net/html.Render函数的典型用法代码示例。如果您正苦于以下问题:Golang Render函数的具体用法?Golang Render怎么用?Golang Render使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了Render函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: finalizeEntity

// Archive / upload final entity HTML
func finalizeEntity(entity *Entity, doc *html.Node, entDir string) {
	log.Println("Entity tmp directory: ", entDir)

	var finalHTML bytes.Buffer
	bl := html.Render(&finalHTML, doc)
	if bl != nil {
		log.Println(bl)
	}

	err := StoreHTML(finalHTML, entDir)
	if err != nil {
		log.Println("Error in StoreHTML: ", err)
	}

	zipName, err := ArchiveFinalFiles(entDir)
	if err != nil {
		log.Println("Error archiving files: ", err)
	}

	err = Update(entity, bson.M{"uuid": entity.UUID}, bson.M{"$set": bson.M{"status": UploadingStatus}})
	if err != nil {
		log.Println("Error updating entity: ", err)
	}

	awsLink, err := UploadEntity(zipName, entity)
	if err != nil {
		log.Println("Error uploading final files: ", err)
	}

	err = Update(entity, bson.M{"uuid": entity.UUID}, bson.M{"$set": bson.M{"aws_link": awsLink, "status": CompleteStatus}})
	if err != nil {
		log.Println("Error updating entity: ", err)
	}
}
开发者ID:yeah-right,项目名称:webhog,代码行数:35,代码来源:parse.go

示例2: FetchFullDescription

func FetchFullDescription(link string) string {
	res, err := http.Get(link)
	if err != nil {
		log.Fatal(err)
	}
	body, err := ioutil.ReadAll(res.Body)
	res.Body.Close()
	if err != nil {
		log.Fatal(err)
	}
	doc, err := html.Parse(strings.NewReader(string(body)))
	content := ""
	var f func(*html.Node)
	f = func(n *html.Node) {
		if n.Type == html.ElementNode && n.Data == "section" {
			for _, a := range n.Attr {
				if a.Key == "class" && a.Val == "entry-content cf" {
					var buf bytes.Buffer
					html.Render(&buf, n)
					content = buf.String()
					break
				}
			}
		}
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			f(c)
		}
	}
	f(doc)
	return content
}
开发者ID:john-griffin,项目名称:bcool,代码行数:31,代码来源:bcool.go

示例3: fixHtml

// FixHtml parses bytes as HTML and returns well-formed HTML if the parse
// was successful, or escaped HTML, if not.
func fixHtml(linkUrl string, wild []byte) (well []byte) {
	n, err := html.Parse(bytes.NewReader(wild))
	if err != nil {
		return []byte(html.EscapeString(string(wild)))
	}

	fixImgs(linkUrl, n)

	defer func() {
		if err := recover(); err == bytes.ErrTooLarge {
			well = []byte(html.EscapeString(string(wild)))
		} else if err != nil {
			panic(err)
		}
	}()
	buf := bytes.NewBuffer(make([]byte, 0, len(wild)*2))
	if err := html.Render(buf, n); err != nil {
		return []byte(html.EscapeString(string(wild)))
	}

	well = buf.Bytes()
	openBody := []byte("<body>")
	i := bytes.Index(well, openBody)
	if i < 0 {
		return []byte(html.EscapeString(string(wild)))
	}
	well = well[i+len(openBody):]

	closeBody := []byte("</body>")
	i = bytes.Index(well, closeBody)
	if i < 0 {
		return []byte(html.EscapeString(string(wild)))
	}
	return well[:i]
}
开发者ID:eaburns,项目名称:feedme,代码行数:37,代码来源:webfeed.go

示例4: StrFromNodes

// StrFromNodes returns the string of the rendered html.Nodes.
func StrFromNodes(nodes []*html.Node) string {
	buf := bytes.NewBuffer([]byte{})
	for _, h := range nodes {
		html.Render(buf, h)
	}
	return buf.String()
}
开发者ID:kleopatra999,项目名称:piccolo,代码行数:8,代码来源:main.go

示例5: String

func (n *node) String() string {
	var buf bytes.Buffer
	if err := html.Render(&buf, n.node); err != nil {
		panic(err)
	}
	return buf.String()
}
开发者ID:rainycape,项目名称:macaco,代码行数:7,代码来源:html.go

示例6: DomTree2HTML

func DomTree2HTML(DOMTree []*html.Node) {
	HTML5 := bytes.NewBuffer([]byte{})
	for _, node := range DOMTree {
		html.Render(HTML5, node)
	}
	fmt.Printf("Node: %s", HTML5)
}
开发者ID:tav,项目名称:oldproto,代码行数:7,代码来源:ui.go

示例7: Redact

func Redact(r io.Reader) (string, error) {
	doc, err := html.Parse(r)
	if err != nil {
		return "", err
	}
	var f func(*html.Node)
	f = func(n *html.Node) {
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			if c.Type == html.ElementNode {
				switch c.Data {
				case "style", "script", "head", "meta":
					n.RemoveChild(c)
					return
				case "img":
					for i, attr := range c.Attr {
						if attr.Key == "src" {
							c.Attr[i].Key = "data-redacted-src"
						}
					}
				}
			} else if c.Type == html.CommentNode {
				n.RemoveChild(c)
				return
			}
			f(c)
		}
	}
	f(doc)
	buf := bytes.NewBufferString("")
	err = html.Render(buf, doc)
	return buf.String(), err
}
开发者ID:samlecuyer,项目名称:redactomat,代码行数:32,代码来源:redact.go

示例8: renderHtml

func renderHtml(tree *html.Node, t *testing.T) string {
	var wr bytes.Buffer
	if err := html.Render(&wr, tree); err != nil {
		t.Errorf("html rendering error: %s", err.Error())
	}
	return wr.String()

}
开发者ID:rygorous,项目名称:wp2block,代码行数:8,代码来源:shortcode_test.go

示例9: Print

func (p Xpath) Print(w io.Writer, n *html.Node) error {
	node, err := p.Parse(n)
	if err != nil {
		return err
	}
	html.Render(w, node)
	return nil
}
开发者ID:bashtian,项目名称:htmlparser,代码行数:8,代码来源:xpath.go

示例10: html_write_file

func html_write_file(article *html.Node, dir string) (string, error) {
	f, err := ioutil.TempFile(dir, "html.")
	if err != nil {
		return "", err
	}
	defer f.Close()
	err = html.Render(f, article)
	return f.Name(), err
}
开发者ID:heartszhang,项目名称:famous,代码行数:9,代码来源:feedentry_doc.go

示例11: renderHTML

func renderHTML(options Options, file HTMLFile) string {
	handle := must(os.Open(file.File.LocalPath)).(*os.File)
	defer handle.Close()

	doc := must(html.Parse(handle)).(*html.Node)

	var f func(*html.Node)
	f = func(n *html.Node) {
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			f(c)
		}

		if n.Type == html.ElementNode {
			switch n.Data {
			case "script":
				for i, a := range n.Attr {
					if a.Key == "src" {
						for _, dep := range file.Deps {
							if dep.InstPath == a.Val {
								n.Attr[i].Val = formatHref(dep.File.UploadedPath)
								break
							}
						}
					}
				}
			case "link":
				stylesheet := false
				for _, a := range n.Attr {
					if a.Key == "rel" {
						stylesheet = a.Val == "stylesheet"
						break
					}
				}
				if !stylesheet {
					return
				}

				for i, a := range n.Attr {
					if a.Key == "href" {
						for _, dep := range file.Deps {
							if dep.InstPath == a.Val {
								n.Attr[i].Val = formatHref(dep.File.UploadedPath)
								break
							}
						}
					}
				}
			}
		}
	}
	f(doc)

	buf := bytes.NewBuffer([]byte{})
	panicIf(html.Render(buf, doc))

	return buf.String()
}
开发者ID:gdb,项目名称:Stout,代码行数:57,代码来源:deploy.go

示例12: RenderNodes

func RenderNodes(w io.Writer, ns []*html.Node) error {
	for _, n := range ns {
		err := html.Render(w, n)
		if err != nil {
			return err
		}
	}
	return nil
}
开发者ID:jShi-git,项目名称:goquery_sample,代码行数:9,代码来源:h5.go

示例13: WriteHtmlFile2

// write html.Node to tmp file
// return tmp_filename, utf-8 encoded
func WriteHtmlFile2(doc *html.Node) (string, error) {
	of, err := ioutil.TempFile(tmp_dir, prefix)
	if err != nil {
		return "", err
	}
	defer of.Close()

	html.Render(of, doc)
	return of.Name(), nil
}
开发者ID:heartszhang,项目名称:gextract,代码行数:12,代码来源:downloader.go

示例14: write_file

func write_file(doc *html.Node, temp string) (string, error) {
	of, err := ioutil.TempFile(temp, "html.")
	if err != nil {
		return "", err
	}
	defer of.Close()

	html.Render(of, doc)
	return of.Name(), nil
}
开发者ID:heartszhang,项目名称:famous,代码行数:10,代码来源:extract.go

示例15: writeXpaths

func writeXpaths(w io.Writer, doc *html.Node, xpath []string) error {
	for _, p := range xpath {
		c, err := NewXpath(p).Parse(doc)
		if err != nil {
			return err
		}
		html.Render(w, c)
	}
	return nil
}
开发者ID:bashtian,项目名称:htmlparser,代码行数:10,代码来源:parser.go


注:本文中的code/google/com/p/go/net/html.Render函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。