correction yaml creation - extraction yaml + html preparation

This commit is contained in:
github_username_here
2026-03-23 19:05:01 +01:00
parent 874ba49512
commit f7e63ce1e1
156 changed files with 8565 additions and 8512 deletions

View File

@@ -0,0 +1,63 @@
package renderer
import (
"log"
"project.hechon.fr/internal/config"
"project.hechon.fr/internal/models"
"gopkg.in/yaml.v3"
"os"
"path"
"strconv"
"fmt"
)
func ExtractChapter(cfg *config.Cfg, chapterNum int) (error){
fileName := path.Join(cfg.YamlPath, cfg.Book.Name + strconv.Itoa(chapterNum) + ".yaml")
file, err := os.Open(fileName)
if err != nil {
log.Printf("cant open %v: %v", fileName, err)
return err
}
var yamlData models.Yaml
if err = yaml.NewDecoder(file).Decode(&yamlData) ; err != nil{
return err
}
log.Printf("%v", yamlData)
if len(yamlData.PoeticLines) == 0 || len(yamlData.PoeticLines[0].Cola) == 0 {
return fmt.Errorf("no data in %v", fileName)
}
var psalm models.Psalm
currentStrophe := models.Strophe{
Who: yamlData.PoeticLines[0].Who,
To: yamlData.PoeticLines[0].To,
Of: yamlData.PoeticLines[0].Of,
}
for _, poeticLine := range yamlData.PoeticLines{
log.Printf("first line: %v - %v - %v", poeticLine.Who, poeticLine.To, poeticLine.Of)
if poeticLine.Who == currentStrophe.Who &&
poeticLine.To == currentStrophe.To &&
poeticLine.Of == currentStrophe.Of {
currentStrophe.Colas = append(currentStrophe.Colas, poeticLine.Cola)
}else{
psalm.Strophes = append(psalm.Strophes, currentStrophe)
currentStrophe.Who = poeticLine.Who
currentStrophe.Of = poeticLine.Of
currentStrophe.To = poeticLine.To
}
}
psalm.Strophes = append(psalm.Strophes, currentStrophe)
log.Printf("%v", psalm)
return nil
}