sync: import texts as Markdown
This commit is contained in:
parent
be7a159815
commit
c33390fa80
@ -35,7 +35,7 @@ Tous les textes doivent utiliser l'encodage UTF8.
|
|||||||
+ `label = "Intitulé de la réponse"` : (facultatif, par défaut identique à `value`) ;
|
+ `label = "Intitulé de la réponse"` : (facultatif, par défaut identique à `value`) ;
|
||||||
- `[[hint]]` : paramètres pour un indice :
|
- `[[hint]]` : paramètres pour un indice :
|
||||||
* `filename = "toto.txt"` : (mutuellement exclusif avec `content`) nom du fichier tel qu'il apparaît dans le dossier `hints` ;
|
* `filename = "toto.txt"` : (mutuellement exclusif avec `content`) nom du fichier tel qu'il apparaît dans le dossier `hints` ;
|
||||||
* `content = "Contenu de l'indice"` : (mutuellement exclusif avec `filename`) contenu de l'indice affiché ;
|
* `content = "Contenu de l'indice"` : (mutuellement exclusif avec `filename`) contenu de l'indice affiché, en markdown ;
|
||||||
* `cost = 10` : (facultatif, par défaut 1/4 des gains du challenge) coût de l'indice ;
|
* `cost = 10` : (facultatif, par défaut 1/4 des gains du challenge) coût de l'indice ;
|
||||||
* `title = "Foo Bar"` : (facultatif, par défaut "Astuce $id") titre de l'astuce dans l'interface ;
|
* `title = "Foo Bar"` : (facultatif, par défaut "Astuce $id") titre de l'astuce dans l'interface ;
|
||||||
+ `links.txt` : webographie publiée avec les solutions
|
+ `links.txt` : webographie publiée avec les solutions
|
||||||
@ -214,5 +214,5 @@ Exemple `DIGESTS.txt` {#exemple-digeststxt}
|
|||||||
---
|
---
|
||||||
title: Format des répertoires pour la synchronisation
|
title: Format des répertoires pour la synchronisation
|
||||||
author: FIC team 2019
|
author: FIC team 2019
|
||||||
date: "Dernière mise à jour du document : 12 mai 2018"
|
date: "Dernière mise à jour du document : 17 août 2018"
|
||||||
---
|
---
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
|
|
||||||
"srs.epita.fr/fic-server/libfic"
|
"srs.epita.fr/fic-server/libfic"
|
||||||
|
|
||||||
|
"gopkg.in/russross/blackfriday.v2"
|
||||||
_ "golang.org/x/crypto/blake2b"
|
_ "golang.org/x/crypto/blake2b"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,12 +70,11 @@ func SyncExerciceHints(i Importer, exercice fic.Exercice) (errs []string) {
|
|||||||
hint.Content = s
|
hint.Content = s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if hint.Content == "" {
|
||||||
|
|
||||||
// At this point, filename should have been replaced by Content if filled, so let's ensure that
|
|
||||||
if hint.Content == "" {
|
|
||||||
errs = append(errs, fmt.Sprintf("%q: challenge.txt: hint %s (%d): content and filename can't be empty at the same time", path.Base(exercice.Path), hint.Title, n+1))
|
errs = append(errs, fmt.Sprintf("%q: challenge.txt: hint %s (%d): content and filename can't be empty at the same time", path.Base(exercice.Path), hint.Title, n+1))
|
||||||
continue
|
continue
|
||||||
|
} else {
|
||||||
|
hint.Content = string(blackfriday.Run([]byte(hint.Content)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Import hint
|
// Import hint
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"srs.epita.fr/fic-server/libfic"
|
"srs.epita.fr/fic-server/libfic"
|
||||||
|
"gopkg.in/russross/blackfriday.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// getExercices returns all exercice directories existing in a given theme, considering the given Importer.
|
// getExercices returns all exercice directories existing in a given theme, considering the given Importer.
|
||||||
@ -83,6 +84,10 @@ func SyncExercices(i Importer, theme fic.Theme) []string {
|
|||||||
videoURI = ""
|
videoURI = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Markdown pre-formating
|
||||||
|
statement = string(blackfriday.Run([]byte(statement)))
|
||||||
|
overview = string(blackfriday.Run([]byte(overview)))
|
||||||
|
|
||||||
if e, err := theme.GetExerciceByTitle(ename); err != nil {
|
if e, err := theme.GetExerciceByTitle(ename); err != nil {
|
||||||
if ex, err := theme.AddExercice(ename, fic.ToURLid(ename), path.Join(theme.Path, edir), statement, overview, nil, gain, videoURI); err != nil {
|
if ex, err := theme.AddExercice(ename, fic.ToURLid(ename), path.Join(theme.Path, edir), statement, overview, nil, gain, videoURI); err != nil {
|
||||||
errs = append(errs, fmt.Sprintf("%q: error on exercice add: %s", edir, err))
|
errs = append(errs, fmt.Sprintf("%q: error on exercice add: %s", edir, err))
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
|
|
||||||
"srs.epita.fr/fic-server/libfic"
|
"srs.epita.fr/fic-server/libfic"
|
||||||
"github.com/julienschmidt/httprouter"
|
"github.com/julienschmidt/httprouter"
|
||||||
|
"gopkg.in/russross/blackfriday.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// getThemes returns all theme directories in the base directory.
|
// getThemes returns all theme directories in the base directory.
|
||||||
@ -67,8 +68,12 @@ func SyncThemes(i Importer) []string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Format authors
|
||||||
authors_str := strings.Join(authors, ", ")
|
authors_str := strings.Join(authors, ", ")
|
||||||
|
|
||||||
|
// Format overview (markdown)
|
||||||
|
intro = string(blackfriday.Run([]byte(intro)))
|
||||||
|
|
||||||
if theme.Name != tname || theme.Authors != authors_str || theme.Intro != intro {
|
if theme.Name != tname || theme.Authors != authors_str || theme.Intro != intro {
|
||||||
theme.Name = tname
|
theme.Name = tname
|
||||||
theme.Authors = authors_str
|
theme.Authors = authors_str
|
||||||
|
Loading…
Reference in New Issue
Block a user