Esempio n. 1
0
func concatNodes(a, b types.Node) bool {
	switch {
	case a.Type() == types.NodeText && b.Type() == types.NodeText:
		return concatText(a, b)
	case a.Type() == types.NodeCode && b.Type() == types.NodeCode:
		return concatCode(a, b)
	case a.Type() == types.NodeCode && b.Type() == types.NodeText:
		t := b.(*types.TextNode)
		if strings.TrimSpace(t.Value) == "" {
			return true
		}
	case a.Type() == types.NodeURL && b.Type() == types.NodeURL:
		return concatURL(a, b)
	case types.IsItemsList(a.Type()) && types.IsItemsList(b.Type()):
		return concatItemsList(a, b)
	}
	return false
}
Esempio n. 2
0
// blockSquashable returns true if a node of type t can be squash in a block.
func blockSquashable(n types.Node) bool {
	if n.Block() == nil {
		return false
	}
	return types.IsInline(n.Type())
}