mirror of
				https://github.com/kata-containers/kata-containers.git
				synced 2025-11-04 03:29:55 +00:00 
			
		
		
		
	Same rationale as for runtime. With tests, the blackfriday replacement was actually meaningful, so I refactored some imports. Signed-off-by: Aurélien Bombo <abombo@microsoft.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
//
 | 
						|
// Copyright (c) 2019 Intel Corporation
 | 
						|
//
 | 
						|
// SPDX-License-Identifier: Apache-2.0
 | 
						|
//
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"strings"
 | 
						|
 | 
						|
	bf "github.com/russross/blackfriday/v2"
 | 
						|
)
 | 
						|
 | 
						|
// forceCreateHeadings extracts "missed" headings from the specified node,
 | 
						|
// returning a slice of the newly headings created (which need to be added by the
 | 
						|
// caller).
 | 
						|
//
 | 
						|
// Alas, Black Friday isn't 100% reliable...
 | 
						|
func (d *Doc) forceCreateHeadings(node *bf.Node) ([]Heading, error) {
 | 
						|
	if err := checkNode(node, bf.Text); err != nil {
 | 
						|
		return []Heading{}, err
 | 
						|
	}
 | 
						|
 | 
						|
	chunk := string(node.Literal)
 | 
						|
 | 
						|
	if chunk == "" {
 | 
						|
		// No text in this node
 | 
						|
		return []Heading{}, nil
 | 
						|
	}
 | 
						|
 | 
						|
	lines := strings.Split(chunk, "\n")
 | 
						|
	if len(lines) <= 1 {
 | 
						|
		// No headings lurking in this text node
 | 
						|
		return []Heading{}, nil
 | 
						|
	}
 | 
						|
 | 
						|
	var headings []Heading
 | 
						|
 | 
						|
	for _, line := range lines {
 | 
						|
		if !strings.HasPrefix(line, anchorPrefix) {
 | 
						|
			continue
 | 
						|
		}
 | 
						|
 | 
						|
		fields := strings.Split(line, anchorPrefix)
 | 
						|
		name := strings.Join(fields, "")
 | 
						|
		name = strings.TrimSpace(name)
 | 
						|
 | 
						|
		count := strings.Count(line, anchorPrefix)
 | 
						|
 | 
						|
		heading := Heading{
 | 
						|
			Name:  name,
 | 
						|
			Level: count,
 | 
						|
		}
 | 
						|
 | 
						|
		id, err := createHeadingID(heading.Name)
 | 
						|
		if err != nil {
 | 
						|
			return []Heading{}, err
 | 
						|
		}
 | 
						|
 | 
						|
		heading.LinkName = id
 | 
						|
 | 
						|
		headings = append(headings, heading)
 | 
						|
 | 
						|
		extraHeadings++
 | 
						|
	}
 | 
						|
 | 
						|
	return headings, nil
 | 
						|
}
 |