Example #1
0
func ParseItem(r io.Reader) {
	t, _ := transform.NewFromReader(r)
	t.Apply(transform.Replace(), "script")
	t.Apply(transform.Replace(), "footer")
	t.Apply(transform.Replace(), "meta")
	t.Apply(transform.Replace(), "ul")
	t.Apply(transform.Replace(), "li")
	t.Apply(transform.Replace(), "link")
	t.Apply(transform.Replace(), "div.day")
	t.Apply(transform.Replace(), "div.advent-calendar-breadcrumb")
	t.Apply(transform.Replace(), "a.post-user-icon")
	fmt.Println(t.String())
}
Example #2
0
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
	}

	if err = t.absUrlify(tr, elattr{"a", "href"}, elattr{"script", "src"}); err != nil {
		return
	}

	return tr.Render(w)
}
Example #3
0
func ParseItem(r io.Reader) {
	// transformのインスタンスを作る
	t, _ := transform.NewFromReader(r)
	// Applyメソッドで自分のDOMに反映する。
	// Applyメソッド内では、TransformFuncを受け付けるようになっており、
	// Replaceの他にもDOMを追加するAppendChildrenやPrependChildrenなどもある。
	// ページを加工するならこっちのが便利。
	// ちなみに以下の処理で不要なページを削っている
	t.Apply(transform.Replace(), "script")
	t.Apply(transform.Replace(), "footer")
	t.Apply(transform.Replace(), "meta")
	t.Apply(transform.Replace(), "ul")
	t.Apply(transform.Replace(), "li")
	t.Apply(transform.Replace(), "link")
	t.Apply(transform.Replace(), "div.day")
	t.Apply(transform.Replace(), "div.advent-calendar-breadcrumb")
	t.Apply(transform.Replace(), "a.post-user-icon")
	fmt.Println(t.String())
}
Example #4
0
func (n *NavActive) Apply(w io.Writer, r io.Reader) (err error) {
	var tr *htmltran.Transformer

	if n.Section == "" {
		_, err = io.Copy(w, r)
		return
	}

	if tr, err = htmltran.NewFromReader(r); err != nil {
		return
	}

	if n.AttrName == "" {
		n.AttrName = "hugo-nav"
	}

	err = tr.Apply(htmltran.ModifyAttrib("class", "active"), fmt.Sprintf("li[%s=%s]", n.AttrName, n.Section))
	if err != nil {
		return
	}

	return tr.Render(w)
}