sync: Handle overview.md and statement.md

This commit is contained in:
nemunaire 2022-05-19 16:39:24 +02:00
parent 630c065825
commit 70bad90756
1 changed files with 22 additions and 9 deletions

View File

@ -119,30 +119,43 @@ func BuildExercice(i Importer, theme *fic.Theme, epath string, dmap *map[int64]*
e.Title = fixnbsp(e.Title)
// Texts to format using Markdown
e.Overview, err = getFileContent(i, path.Join(epath, "overview.txt"))
if i.exists(path.Join(epath, "overview.txt")) {
e.Overview, err = getFileContent(i, path.Join(epath, "overview.txt"))
} else if i.exists(path.Join(epath, "overview.md")) {
e.Overview, err = getFileContent(i, path.Join(epath, "overview.md"))
} else {
err = fmt.Errorf("Unable to find overview.txt nor overview.md")
}
if err != nil {
errs = append(errs, fmt.Sprintf("%q: overview.txt: %s", edir, err))
} else {
e.Overview = fixnbsp(e.Overview)
if e.Overview, err = ProcessMarkdown(i, e.Overview, epath); err != nil {
errs = append(errs, fmt.Sprintf("%q: overview.txt: an error occurs during markdown formating: %s", edir, err))
}
var buf bytes.Buffer
err := goldmark.Convert([]byte(strings.Split(e.Overview, "\n")[0]), &buf)
if err != nil {
errs = append(errs, fmt.Sprintf("%q: overview.txt: an error occurs during markdown formating of the headline: %s", edir, err))
errs = append(errs, fmt.Sprintf("%q: overview.md: an error occurs during markdown formating of the headline: %s", edir, err))
} else {
e.Headline = string(buf.Bytes())
}
if e.Overview, err = ProcessMarkdown(i, e.Overview, epath); err != nil {
errs = append(errs, fmt.Sprintf("%q: overview.md: an error occurs during markdown formating: %s", edir, err))
}
}
e.Statement, err = getFileContent(i, path.Join(epath, "statement.txt"))
if i.exists(path.Join(epath, "statement.txt")) {
e.Statement, err = getFileContent(i, path.Join(epath, "statement.txt"))
} else if i.exists(path.Join(epath, "statement.md")) {
e.Statement, err = getFileContent(i, path.Join(epath, "statement.md"))
} else {
err = fmt.Errorf("Unable to find statement.txt nor statement.md")
}
if err != nil {
errs = append(errs, fmt.Sprintf("%q: statement.txt: %s", edir, err))
errs = append(errs, fmt.Sprintf("%q: statement.md: %s", edir, err))
} else {
if e.Statement, err = ProcessMarkdown(i, fixnbsp(e.Statement), epath); err != nil {
errs = append(errs, fmt.Sprintf("%q: statement.txt: an error occurs during markdown formating: %s", edir, err))
errs = append(errs, fmt.Sprintf("%q: statement.md: an error occurs during markdown formating: %s", edir, err))
}
}
@ -237,7 +250,7 @@ func BuildExercice(i Importer, theme *fic.Theme, epath string, dmap *map[int64]*
errs = append(errs, fmt.Sprintf("%q: resolution.md: The file is empty!", edir))
} else if e.Resolution, err = getFileContent(i, writeup); err != nil {
errs = append(errs, fmt.Sprintf("%q: resolution.md: %s", edir, err.Error()))
} else if e.Resolution, err = ProcessMarkdown(i, e.Overview, epath); err != nil {
} else if e.Resolution, err = ProcessMarkdown(i, e.Resolution, epath); err != nil {
errs = append(errs, fmt.Sprintf("%q: resolution.md: error during markdown processing: %s", edir, err.Error()))
} else {
resolutionFound = true