Add embedded gists & JSON gist data/metadata (#179)

This commit is contained in:
Thomas Miceli
2023-12-21 20:00:04 +01:00
parent 845e28dd59
commit 0753c5cb54
32 changed files with 872 additions and 60 deletions

View File

@ -8,15 +8,16 @@ import (
"github.com/alecthomas/chroma/v2/formatters/html"
"github.com/alecthomas/chroma/v2/lexers"
"github.com/alecthomas/chroma/v2/styles"
"github.com/rs/zerolog/log"
"github.com/thomiceli/opengist/internal/db"
"github.com/thomiceli/opengist/internal/git"
)
type RenderedFile struct {
*git.File
Type string
Lines []string
HTML string
Type string `json:"type"`
Lines []string `json:"-"`
HTML string `json:"-"`
}
type RenderedGist struct {
@ -66,6 +67,19 @@ func HighlightFile(file *git.File) (RenderedFile, error) {
return rendered, err
}
func HighlightFiles(files []*git.File) ([]RenderedFile, error) {
renderedFiles := make([]RenderedFile, 0, len(files))
for _, file := range files {
rendered, err := HighlightFile(file)
if err != nil {
log.Warn().Err(err).Msg("Error rendering gist preview for " + file.Filename)
}
renderedFiles = append(renderedFiles, rendered)
}
return renderedFiles, nil
}
func HighlightGistPreview(gist *db.Gist) (RenderedGist, error) {
rendered := RenderedGist{
Gist: gist,