2024-03-29 20:08:34 -04:00
// GiftCheatSheet.tsx
2024-04-07 13:35:39 -04:00
import React , { useState } from 'react' ;
2024-03-29 20:08:34 -04:00
import './giftCheatSheet.css' ;
const GiftCheatSheet : React.FC = ( ) = > {
2024-04-07 13:35:39 -04:00
const [ copySuccess , setCopySuccess ] = useState ( false ) ;
const copyToClipboard = ( text : string ) = > {
navigator . clipboard . writeText ( text )
. then ( ( ) = > {
setCopySuccess ( true ) ; // Afficher le message de succès
2024-04-07 17:41:11 -04:00
console . log ( copySuccess ) ;
2024-04-07 13:35:39 -04:00
// Masquer le message de succès après quelques secondes
setTimeout ( ( ) = > {
setCopySuccess ( false ) ;
} , 3000 ) ; // 3 secondes
} )
. catch ( ( error ) = > {
console . error ( 'Erreur lors de la copie dans le presse-papiers : ' , error ) ;
} ) ;
} ;
2025-02-09 19:57:40 -05:00
const QuestionVraiFaux = ` Le soleil se lève à l'ouest.
< details >
< summary > Indice < / summary >
< p > La réponse est faux ! < / p >
< / details >
{ FALSE }
` ;
const QuestionChoixMul = ` <details>
< summary > Indice < / summary >
< p > La capitale du Canada est située au sud de l ' Ontario . < / p >
< / details >
Quelle ville est la capitale du Canada ? {
~ Toronto
~ Montréal
= Ottawa # Bonne réponse !
} ` ;
const QuestionChoixMulMany = ` <details>
< summary > Indice < / summary >
< p > Les villes du Canada sont toutes situées dans des provinces du pays . < / p >
< / details >
Quelles villes trouve - t - on au Canada ? {
~ % 33.3 % Montréal
~ % 33.3 % Ottawa
~ % 33.3 % Vancouver
~ % - 100 % New York
~ % - 100 % Paris
# # # # La bonne réponse est Montréal , Ottawa et Vancouver
} ` ;
const QuestionCourte = ` <details>
< summary > Indice < / summary >
< p > Une clé ou une clef permet d ' ouvrir une porte . < / p >
< / details >
Avec quoi ouvre - t - on une porte ? {
= clé
= clef
}
` ;
const QuestionNum = ` // Question de plage mathématique.
< details >
< summary > Indice < / summary >
< p > Le nombre doit ê tre compris entre 1 et 5 . < / p >
< / details >
Quel est un nombre de 1 à 5 ? {
# 3 :2
}
// Plage mathématique spécifiée avec des points de fin d'intervalle.
< details >
< summary > Indice < / summary >
< p > Tout nombre entre 1 et 5 est correct . < / p >
< / details >
Quel est un nombre de 1 à 5 ? {
# 1 . . 5
}
// Réponses numériques multiples avec crédit partiel et commentaires.
< details >
< summary > Indice < / summary >
< p > Il est né au 19 ᵉ siècle . < / p >
< / details >
Quand est né Ulysses S . Grant ? {
# = 1822 :0 # Correct ! Crédit complet .
= % 50 % 1822 :2 # Il est né en 1822 . Demi - crédit pour ê tre proche .
}
` ;
2024-03-29 20:08:34 -04:00
return (
< div className = "gift-cheat-sheet" >
2025-01-11 02:22:14 -05:00
< h2 className = "subtitle" > Informations pratiques sur l & apos ; é diteur < / h2 >
2024-03-29 20:08:34 -04:00
< span >
2025-01-11 02:22:14 -05:00
L & apos ; é diteur utilise le format GIFT ( General Import Format Template ) créé pour la
2024-09-17 18:56:13 -04:00
plateforme Moodle afin de générer les mini - tests . Ci - dessous vous pouvez retrouver la
syntaxe pour chaque type de question & nbsp ; :
2024-03-29 20:08:34 -04:00
< / span >
< div className = "question-type" >
< h4 > 1 . Questions Vrai / Faux < / h4 >
< pre >
< code className = "selectable-text" >
2024-04-07 13:35:39 -04:00
{ QuestionVraiFaux }
2024-03-29 20:08:34 -04:00
< / code >
2024-04-07 13:35:39 -04:00
2024-03-29 20:08:34 -04:00
< / pre >
2024-04-07 13:35:39 -04:00
< button onClick = { ( ) = > copyToClipboard ( QuestionVraiFaux ) } > Copier < / button >
2024-03-29 20:08:34 -04:00
< / div >
< div className = "question-type" >
< h4 > 2 . Questions à choix multiple < / h4 >
< pre >
< code className = "question-code-block selectable-text" >
{
2024-04-07 13:35:39 -04:00
QuestionChoixMul
2024-03-29 20:08:34 -04:00
}
< / code >
< / pre >
2024-04-07 13:35:39 -04:00
< button onClick = { ( ) = > copyToClipboard ( QuestionChoixMul ) } > Copier < / button >
2024-03-29 20:08:34 -04:00
< / div >
< div className = "question-type" >
< h4 > 3 . Questions à choix multiple avec plusieurs réponses < / h4 >
< pre >
< code className = "question-code-block selectable-text" >
{
2024-04-07 13:35:39 -04:00
QuestionChoixMulMany
2024-03-29 20:08:34 -04:00
}
< / code >
< / pre >
2024-04-07 13:35:39 -04:00
< button onClick = { ( ) = > copyToClipboard ( QuestionChoixMulMany ) } > Copier < / button >
2024-03-29 20:08:34 -04:00
< / div >
< div className = "question-type" >
2024-09-17 18:56:13 -04:00
< h4 > 4 . Questions à réponse courte < / h4 >
2024-03-29 20:08:34 -04:00
< pre >
< code className = "question-code-block selectable-text" >
2024-04-07 13:35:39 -04:00
{ QuestionCourte }
2024-03-29 20:08:34 -04:00
< / code >
< / pre >
2024-04-07 13:35:39 -04:00
< button onClick = { ( ) = > copyToClipboard ( QuestionCourte ) } > Copier < / button >
2024-03-29 20:08:34 -04:00
< / div >
< div className = "question-type" >
2024-09-17 18:56:13 -04:00
< h4 > 5 . Question numérique < / h4 >
2024-03-29 20:08:34 -04:00
< pre >
< code className = "question-code-block selectable-text" >
{
2024-04-07 13:35:39 -04:00
QuestionNum
2024-03-29 20:08:34 -04:00
}
2025-02-09 19:57:40 -05:00
< / code >
2024-03-29 20:08:34 -04:00
< / pre >
2024-04-07 13:35:39 -04:00
< button onClick = { ( ) = > copyToClipboard ( QuestionNum ) } > Copier < / button >
2024-03-29 20:08:34 -04:00
< / div >
< div className = "question-type" >
< h4 > 6 . Paramètres optionnels < / h4 >
< pre >
< code className = "question-code-block selectable-text" >
{ '::Titre:: ' }
< span className = "code-comment selectable-text" >
{ ' // Ajoute un titre à une question' }
< / span >
< br / >
{ '# Feedback ' }
< span className = "code-comment selectable-text" >
{ ' // Feedback pour UNE réponse' }
< / span >
< br / >
{ '// Commentaire ' }
< span className = "code-comment selectable-text" >
{ ' // Commentaire non apparent' }
< / span >
< br / >
{ '#### Feedback général ' }
< span className = "code-comment selectable-text" >
{ ' // Feedback général pour une question' }
< / span >
< br / >
{ '%50% ' }
< span className = "code-comment selectable-text" >
{ " // Poids d'une réponse (peut être négatif)" }
< / span >
< / code >
< / pre >
< / div >
< div className = "question-type" >
2025-01-26 16:42:21 -05:00
< h4 > 7 . Caractères spéciaux < / h4 >
2024-03-29 20:08:34 -04:00
< p >
Si vous souhaitez utiliser certains caractères spéciaux dans vos é noncés ,
2025-01-11 02:22:14 -05:00
réponses ou feedback , vous devez « é chapper » ces derniers en ajoutant un \
2024-03-29 20:08:34 -04:00
devant :
< / p >
< pre >
< code className = "question-code-block selectable-text" >
{ '\\~ \n\\= \n\\# \n\\{ \n\\} \n\\:' }
< / code >
< / pre >
< / div >
< div className = "question-type" >
2024-04-16 12:14:20 -04:00
< h4 > 8 . LaTeX et Markdown < / h4 >
2024-03-29 20:08:34 -04:00
< p >
2024-09-17 18:56:13 -04:00
Les formats LaTeX et Markdown sont supportés dans cette application . Vous devez cependant penser
2025-01-11 02:22:14 -05:00
à « é chapper » les caractères spéciaux mentionnés plus haut .
2024-03-29 20:08:34 -04:00
< / p >
2025-01-11 02:22:14 -05:00
< p > Exemple d & apos ; é quation : < / p >
2024-03-29 20:08:34 -04:00
< pre >
2024-04-16 12:14:20 -04:00
< code className = "question-code-block selectable-text" > { '$$x\\= \\frac\\{y^2\\}\\{4\\}$$' } < / code >
< code className = "question-code-block selectable-text" > { '\n$x\\= \\frac\\{y^2\\}\\{4\\}$' } < / code >
< / pre >
< p > Exemple de texte Markdown : < / p >
< pre >
< code className = "question-code-block selectable-text" > { '[markdown]Grâce à la balise markdown, Il est possible d\'insérer du texte *italique*, **gras**, du `code` et bien plus.' } < / code >
2024-03-29 20:08:34 -04:00
< / pre >
< / div >
2025-01-14 16:21:32 -05:00
< div className = "question-type" id = "images-section" >
2024-09-17 18:56:13 -04:00
< h4 > 9 . Images < / h4 >
2025-01-26 16:42:21 -05:00
< p > Il est possible d & apos ; insérer une image dans une question , une réponse ( choix multiple ) et dans une rétroaction . D & apos ; abord , < strong > le format de l & apos ; é lément doit ê tre [ markdown ] < / strong > . Ensuite utilisez la syntaxe suivante & nbsp ; : < / p >
2024-03-29 20:08:34 -04:00
< pre >
< code className = "question-code-block" >
2024-09-17 18:56:13 -04:00
{ '' }
2024-03-29 20:08:34 -04:00
< / code >
< / pre >
2025-01-11 02:22:14 -05:00
< p > Exemple d & apos ; une question Vrai / Faux avec l & apos ; image d & apos ; un chat : < / p >
2024-09-17 18:56:13 -04:00
< pre >
< code className = "question-code-block" >
{ '[markdown]Ceci est un chat: \n\n{T}' }
< / code >
< / pre >
2025-01-26 16:42:21 -05:00
< p > Exemple d & apos ; une question à choix multiple avec l & apos ; image d & apos ; un chat dans une rétroaction & nbsp ; : < / p >
< pre >
< code className = "question-code-block" >
{ ` [markdown]Qui a initié le développement d'ÉvalueTonSavoir {=ÉTS#OUI! 
~ EPFL # Non . . . } ` }
< / code >
< / pre >
2025-01-11 02:22:14 -05:00
< p > Note & nbsp ; : les images é tant spécifiées avec la syntaxe Markdown dans GIFT , on doit é chapper les caractères spéciales ( : ) dans l & apos ; URL de l & apos ; image . < / p >
2024-03-29 20:08:34 -04:00
< p style = { { color : 'red' } } >
2025-01-11 02:22:14 -05:00
Attention : l & apos ; ancienne fonctionnalité avec les balises < code > { '<img>' } < / code > n & apos ; est plus
2024-09-17 18:56:13 -04:00
supportée .
2024-03-29 20:08:34 -04:00
< / p >
2025-02-09 19:57:40 -05:00
< / div >
2024-03-29 20:08:34 -04:00
< div className = "question-type" >
< h4 > 10 . Informations supplémentaires < / h4 >
< p >
2025-01-11 02:22:14 -05:00
GIFT supporte d & apos ; autres formats de questions que nous ne gérons pas sur cette
2024-03-29 20:08:34 -04:00
application .
< / p >
< p > Vous pouvez retrouver la Documentation de GIFT ( en anglais ) : < / p >
< a href = "https://ethan-ou.github.io/vscode-gift-docs/docs/questions" >
Documentation de GIFT
< / a >
< / div >
< / div >
) ;
2025-02-09 19:57:40 -05:00
} ;
2024-04-07 13:39:00 -04:00
2024-03-29 20:08:34 -04:00
export default GiftCheatSheet ;