Markdown Reporting Index File
* implemented index.md creation on markdown export
* fixes on markdown generation
added also hyperlink to markdown created
* code optimization and refactoring
* index header refactor
@@ -11,6 +11,8 @@ import (
stringsutil "github.com/projectdiscovery/utils/strings"
)
+const indexFileName = "index.md"
+
type Exporter struct {
directory string
options *Options
@@ -33,6 +35,17 @@ func New(options *Options) (*Exporter, error) {
directory = dir
}
_ = os.MkdirAll(directory, 0755)
+
+ // index generation header
+ dataHeader := "" +
+ "|Hostname/IP|Finding|Severity|\n" +
+ "|-|-|-|\n"
+
+ err := os.WriteFile(filepath.Join(directory, indexFileName), []byte(dataHeader), 0644)
+ if err != nil {
+ return nil, err
+ }
+
return &Exporter{options: options, directory: directory}, nil
}
@@ -66,6 +79,18 @@ func (exporter *Exporter) Export(event *output.ResultEvent) error {
dataBuilder.WriteString(description)
data := dataBuilder.Bytes()
+ // index generation
+ file, err := os.OpenFile(filepath.Join(exporter.directory, indexFileName), os.O_APPEND|os.O_WRONLY, 0644)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ _, err = file.WriteString("|[" + event.Host + "](" + finalFilename + ")" + "|" + event.TemplateID + " " + event.MatcherName + "|" + event.Info.SeverityHolder.Severity.String() + "|\n")
+ if err != nil {
+ return err
+ }
+
return os.WriteFile(filepath.Join(exporter.directory, finalFilename), data, 0644)
}
