Path: blob/dev/pkg/reporting/exporters/markdown/util/markdown_utils.go
2072 views
package util12import (3"bytes"4"fmt"5"strings"67"github.com/projectdiscovery/utils/errkit"8)910func CreateLink(title string, url string) string {11return fmt.Sprintf("[%s](%s)", title, url)12}1314func MakeBold(text string) string {15return "**" + text + "**"16}1718func CreateTable(headers []string, rows [][]string) (string, error) {19builder := &bytes.Buffer{}20headerSize := len(headers)21if headers == nil || headerSize == 0 {22return "", errkit.New("No headers provided")23}2425builder.WriteString(CreateTableHeader(headers...))2627for _, row := range rows {28rowSize := len(row)29if rowSize == headerSize {30builder.WriteString(CreateTableRow(row...))31} else if rowSize < headerSize {32extendedRows := make([]string, headerSize)33copy(extendedRows, row)34builder.WriteString(CreateTableRow(extendedRows...))35} else {36return "", errkit.New("Too many columns for the given headers")37}38}3940return builder.String(), nil41}4243func CreateTableHeader(headers ...string) string {44headerSize := len(headers)45if headers == nil || headerSize == 0 {46return ""47}4849return CreateTableRow(headers...) +50"|" + strings.Repeat(" --- |", headerSize) + "\n"51}5253func CreateTableRow(elements ...string) string {54return fmt.Sprintf("| %s |\n", strings.Join(elements, " | "))55}5657func CreateHeading3(text string) string {58return "### " + text + "\n"59}6061func CreateHorizontalLine() string {62// for regular markdown 3 dashes are enough, but for Jira the minimum is 463return "----\n"64}656667