--- a/RelaxNG/publiquiz.rnc mer. févr. 01 18:19:33 2012 +0100
+++ b/RelaxNG/publiquiz.rnc sam. févr. 04 14:44:39 2012 +0100
@@ -56,9 +56,9 @@
quiz.content =
component.head?,
instructions,
- (engine | composite)?,
+ (engine | composite),
help?,
- commentary?
+ answer?
# =============================================================================
@@ -84,46 +84,49 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ engine ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
engine =
- choices
- | blanks
+ choices-radio
+ | choices-check
+ | blanks-fill
+ | blanks-select
| point
| matching
| sort
+ | production
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-choices = element choices {
- (attribute type {"radio"}, choices.attributes, choices.radio.content)
- | (attribute type {"check"}, choices.attributes, choices.check.content)
-}
+choices-radio = element choices-radio {
+ choices.attributes, choices-radio.content }
+choices-check = element choices-check {
+ choices.attributes, choices-check.content }
choices.attributes =
shuffle.attribute?
shuffle.attribute = attribute shuffle { xsd:boolean }
-choices.radio.content =
+choices-radio.content =
choices.right
& choices.wrong+
-choices.check.content =
+choices-check.content =
(choices.right | choices.wrong)+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blanks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-blanks = element blanks {
- (attribute type {"fill"}, blanks.fill.attributes, blanks.fill.content)
- | (attribute type {"select"}, blanks.select.attributes, blanks.select.content)
-}
+blanks-fill = element blanks-fill {
+ blanks-fill.attributes, blanks-fill.content }
+blanks-select = element blanks-select {
+ blanks-select.attributes, blanks-select.content }
-blanks.fill.attributes =
+blanks-fill.attributes =
strict.attribute?
-blanks.select.attributes =
+blanks-select.attributes =
multiple.attribute?
strict.attribute = attribute strict { xsd:boolean }
multiple.attribute = attribute multiple { xsd:boolean }
-blanks.fill.content =
+blanks-fill.content =
(blanks.block+ | blanks.section+)
-blanks.select.content =
+blanks-select.content =
blanks.wrongs?,
(blanks.block+ | blanks.section+)
@@ -159,6 +162,10 @@
sort.item,
sort.item+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+production = element production { empty }
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ composite ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~ composite
@@ -183,11 +190,11 @@
(section+ | block+)?,
link*
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ commentary ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ answer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-commentary = element commentary { commentary.content }
+answer = element answer { answer.content }
-commentary.content =
+answer.content =
(section+ | block+)?,
link*
@@ -396,7 +403,7 @@
blank.content =
text
- | (s+, help?, commentary?)
+ | (s+, help?, answer?)
# ~~~~~~ s
s = element s { s.content }
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/blanks-fill.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="blanks-fill" xml:lang="fr">
+ <head>
+ <title>Exercice à trous</title>
+ </head>
+
+ <instructions>
+ <p>Écrivez correctement les adjectifs de couleur.</p>
+ </instructions>
+
+ <blanks-fill>
+ <p>
+ Ses lèvres sont <blank><s>bleues</s><s>grises</s></blank>
+ (<mentioned>bleu ou gris</mentioned>) de froid.
+ </p>
+ <p>
+ Les serviettes <blank><s>orange</s>
+ <help><p>Nom ?</p></help>
+ <answer><p>Orange est un nom.</p></answer></blank>
+ (<mentioned>orange</mentioned>) sont propres.
+ </p>
+ <p>
+ Il y a des taches <blank>blanchâtres</blank>
+ (<mentioned>blanchâtre</mentioned>) sur votre veste.
+ </p>
+ </blanks-fill>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/blanks-fill_strict.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="blanks-fill_strict" xml:lang="fr">
+ <head>
+ <title>Exercice à trous strict</title>
+ </head>
+
+ <instructions>
+ <p>Écrivez correctement les adjectifs de couleur.</p>
+ </instructions>
+
+ <blanks-fill strict="true">
+ <section>
+ <p>La Mésopotamie est une région du <blank>Moyen
+ Orient</blank> située entre le <blank>Tigre</blank>
+ et l'<blank>Euphrate</blank>. Elle correspond à
+ l'<blank>Irak</blank> actuel. Il s'agit d'une zone
+ où l'irrigation n'est pas nécessaire pour l'agriculture.</p>
+ </section>
+ <section>
+ <p>Au <number type="roman" value="3">iii</number><sup>e</sup>
+ millénaire av. J.-C., on distingue le Nord, appelé
+ l'<blank>Assyrie</blank> de la région du Sud, la
+ <blank>Babylonie</blank>.</p>
+ </section>
+ </blanks-fill>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/blanks-select.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="blanks-select" xml:lang="fr">
+ <head>
+ <title>Exercice à trous avec suggestions</title>
+ </head>
+
+ <instructions>
+ <p>Complètez le texte.</p>
+ </instructions>
+
+ <blanks-select>
+ <wrongs>
+ <wrong>la bergère</wrong>
+ <wrong>« Au feu ! »</wrong>
+ </wrongs>
+ <p>
+ Un berger aime faire croire que le loup attaque <blank>son
+ troupeau</blank>. À chaque fois qu'il crie « Au loup ! », tous les gens
+ du village viennent en courant. Cela amuse beaucoup <blank>le
+ berger</blank>.
+ </p>
+ <p>
+ <blank>Un jour</blank>, le loup attaque son troupeau. Le berger crie
+ <blank>« Au loup ! »</blank> mais personne ne vient et le loup emporte
+ sa plus belle brebis.
+ </p>
+ </blanks-select>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/blanks-select_multiple.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="blanks-select_multiple" xml:lang="fr">
+ <head>
+ <title>Exercice à trous avec suggestions réutilisables</title>
+ </head>
+
+ <instructions>
+ <p>Sans utiliser votre calculatrice, ni poser les opérations, retrouvez
+ le résultat exact de chaque multiplication.</p>
+ </instructions>
+
+ <blanks-select multiple="true">
+ <wrongs>
+ <wrong>1 169,73</wrong>
+ <wrong>848,78</wrong>
+ </wrongs>
+ <list>
+ <item>369 x 31,7 = <blank>11 697,3</blank></item>
+ <item>738 x 1,15 = <blank>848,7</blank></item>
+ <item>317 x 36,9 = <blank>11 697,3</blank></item>
+ </list>
+ </blanks-select>
+ </quiz>
+</publiquiz>
--- a/Xml/Quiz/blanks_fill.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="blanks_fill" xml:lang="fr">
- <head>
- <title>Exercice à trous</title>
- </head>
-
- <instructions>
- <p>Écrivez correctement les adjectifs de couleur.</p>
- </instructions>
-
- <blanks type="fill">
- <p>
- Ses lèvres sont <blank><s>bleues</s><s>grises</s></blank>
- (<mentioned>bleu ou gris</mentioned>) de froid.
- </p>
- <p>
- Les serviettes <blank><s>orange</s>
- <help><p>Nom ?</p></help>
- <commentary><p>Orange est un nom.</p></commentary></blank>
- (<mentioned>orange</mentioned>) sont propres.
- </p>
- <p>
- Il y a des taches <blank>blanchâtres</blank>
- (<mentioned>blanchâtre</mentioned>) sur votre veste.
- </p>
- </blanks>
- </quiz>
-</publiquiz>
--- a/Xml/Quiz/blanks_fill_strict.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="blanks_fill_strict" xml:lang="fr">
- <head>
- <title>Exercice à trous strict</title>
- </head>
-
- <instructions>
- <p>Écrivez correctement les adjectifs de couleur.</p>
- </instructions>
-
- <blanks type="fill" strict="true">
- <section>
- <p>La Mésopotamie est une région du <blank>Moyen
- Orient</blank> située entre le <blank>Tigre</blank>
- et l'<blank>Euphrate</blank>. Elle correspond à
- l'<blank>Irak</blank> actuel. Il s'agit d'une zone
- où l'irrigation n'est pas nécessaire pour l'agriculture.</p>
- </section>
- <section>
- <p>Au <number type="roman" value="3">iii</number><sup>e</sup>
- millénaire av. J.-C., on distingue le Nord, appelé
- l'<blank>Assyrie</blank> de la région du Sud, la
- <blank>Babylonie</blank>.</p>
- </section>
- </blanks>
- </quiz>
-</publiquiz>
--- a/Xml/Quiz/blanks_select.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="blanks_select" xml:lang="fr">
- <head>
- <title>Exercice à trous avec suggestions</title>
- </head>
-
- <instructions>
- <p>Complètez le texte.</p>
- </instructions>
-
- <blanks type="select">
- <wrongs>
- <wrong>la bergère</wrong>
- <wrong>« Au feu ! »</wrong>
- </wrongs>
- <p>
- Un berger aime faire croire que le loup attaque <blank>son
- troupeau</blank>. À chaque fois qu'il crie « Au loup ! », tous les gens
- du village viennent en courant. Cela amuse beaucoup <blank>le
- berger</blank>.
- </p>
- <p>
- <blank>Un jour</blank>, le loup attaque son troupeau. Le berger crie
- <blank>« Au loup ! »</blank> mais personne ne vient et le loup emporte
- sa plus belle brebis.
- </p>
- </blanks>
- </quiz>
-</publiquiz>
--- a/Xml/Quiz/blanks_select_multiple.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="blanks_select_multiple" xml:lang="fr">
- <head>
- <title>Exercice à trous avec suggestions réutilisables</title>
- </head>
-
- <instructions>
- <p>Sans utiliser votre calculatrice, ni poser les opérations, retrouvez
- le résultat exact de chaque multiplication.</p>
- </instructions>
-
- <blanks type="select" multiple="true">
- <wrongs>
- <wrong>1 169,73</wrong>
- <wrong>848,78</wrong>
- </wrongs>
- <list>
- <item>369 x 31,7 = <blank>11 697,3</blank></item>
- <item>738 x 1,15 = <blank>848,7</blank></item>
- <item>317 x 36,9 = <blank>11 697,3</blank></item>
- </list>
- </blanks>
- </quiz>
-</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/choices-check.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="choices-check" xml:lang="fr">
+ <head>
+ <title>Exercice QCM cases à cocher</title>
+ </head>
+
+ <instructions>
+ <p>Mon chiffre des unités est le double de celui des dizaines, mon
+ chiffre des dixièmes est inférieur à celui des unités. Mon chiffre des
+ centièmes est supérieur à 7. Qui suis-je ? (deux solutions)</p>
+ </instructions>
+
+ <choices-check>
+ <wrong>724,36</wrong>
+ <right>324,18</right>
+ <right>812,19</right>
+ <wrong>963,49</wrong>
+ </choices-check>
+
+ <answer>
+ <p>Il faut procéder par élimination.</p>
+ <list>
+ <item>
+ Les quatre nombres vérifient la première condition (« mon chiffre des
+ unités est le double de celui des dizaines ») :
+ 7<highlight>24</highlight>,36 ; 3<highlight>24</highlight>,18 ;
+ 8<highlight>12</highlight>,19 et 9<highlight>63</highlight>,49.
+ </item>
+ <item>
+ Mais la deuxième condition (« mon chiffre des dixièmes est inférieur
+ à celui des unités ») t'amène à écarter le nombre
+ 96<highlight>3</highlight>,<highlight>4</highlight>9 et la dernière
+ condition (« mon chiffre des centièmes est supérieur à 7 »), le
+ nombre 724,3<highlight>6</highlight>.
+ </item>
+ </list>
+ </answer>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/choices-radio.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="choices_radio" xml:lang="fr">
+ <head>
+ <title>Exercice QCM radio</title>
+ </head>
+
+ <instructions>
+ <p>Quand on commande une « surprise » à Otorino le pizzaïolo, il choisit
+ au hasard trois des ingrédients :</p>
+ <list>
+ <item>olives ou anchois ;</item>
+ <item>poivrons ou artichaut ou champignons ;</item>
+ <item>jambon ou coppa.</item>
+ </list>
+ <p>Quelle est la probabilité d'obtenir une pizza contenant des anchois
+ et des poivrons ?</p>
+ </instructions>
+
+ <choices-radio>
+ <wrong>½</wrong>
+ <right>⅙</right>
+ <wrong>⅓</wrong>
+ </choices-radio>
+
+ <help>
+ <p>Pour trouver le nombre de cas possibles, le plus simple est de faire
+ un arbre.</p>
+ </help>
+
+ <answer>
+ <p>Pour trouver le nombre de cas possibles, le plus simple est de faire
+ un arbre.</p>
+ <p>Le nombre de cas favorables est 2.</p>
+ <p>On en déduit la probabilité cherchée : 2/12 = 1/6</p>
+ <link uri="proba01"/>
+ </answer>
+ </quiz>
+</publiquiz>
--- a/Xml/Quiz/choices_check.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="choices_check" xml:lang="fr">
- <head>
- <title>Exercice QCM cases à cocher</title>
- </head>
-
- <instructions>
- <p>Mon chiffre des unités est le double de celui des dizaines, mon
- chiffre des dixièmes est inférieur à celui des unités. Mon chiffre des
- centièmes est supérieur à 7. Qui suis-je ? (deux solutions)</p>
- </instructions>
-
- <choices type="check">
- <wrong>724,36</wrong>
- <right>324,18</right>
- <right>812,19</right>
- <wrong>963,49</wrong>
- </choices>
-
- <commentary>
- <p>Il faut procéder par élimination.</p>
- <list>
- <item>
- Les quatre nombres vérifient la première condition (« mon chiffre des
- unités est le double de celui des dizaines ») :
- 7<highlight>24</highlight>,36 ; 3<highlight>24</highlight>,18 ;
- 8<highlight>12</highlight>,19 et 9<highlight>63</highlight>,49.
- </item>
- <item>
- Mais la deuxième condition (« mon chiffre des dixièmes est inférieur
- à celui des unités ») t'amène à écarter le nombre
- 96<highlight>3</highlight>,<highlight>4</highlight>9 et la dernière
- condition (« mon chiffre des centièmes est supérieur à 7 »), le
- nombre 724,3<highlight>6</highlight>.
- </item>
- </list>
- </commentary>
- </quiz>
-</publiquiz>
--- a/Xml/Quiz/choices_radio.xml mer. févr. 01 18:19:33 2012 +0100
+++ /dev/null jeu. janv. 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
- <quiz xml:id="choices_radio" xml:lang="fr">
- <head>
- <title>Exercice QCM radio</title>
- </head>
-
- <instructions>
- <p>Quand on commande une « surprise » à Otorino le pizzaïolo, il choisit
- au hasard trois des ingrédients :</p>
- <list>
- <item>olives ou anchois ;</item>
- <item>poivrons ou artichaut ou champignons ;</item>
- <item>jambon ou coppa.</item>
- </list>
- <p>Quelle est la probabilité d'obtenir une pizza contenant des anchois
- et des poivrons ?</p>
- </instructions>
-
- <choices type="radio">
- <wrong>½</wrong>
- <right>⅙</right>
- <wrong>⅓</wrong>
- </choices>
-
- <help>
- <p>Pour trouver le nombre de cas possibles, le plus simple est de faire
- un arbre.</p>
- </help>
-
- <commentary>
- <p>Pour trouver le nombre de cas possibles, le plus simple est de faire
- un arbre.</p>
- <p>Le nombre de cas favorables est 2.</p>
- <p>On en déduit la probabilité cherchée : 2/12 = 1/6</p>
- <link uri="proba01"/>
- </commentary>
- </quiz>
-</publiquiz>
--- a/Xml/Quiz/composite.xml mer. févr. 01 18:19:33 2012 +0100
+++ b/Xml/Quiz/composite.xml sam. févr. 04 14:44:39 2012 +0100
@@ -16,11 +16,11 @@
<instructions>
<p>abeille</p>
</instructions>
- <choices type="radio">
+ <choices-radio>
<wrong>gastéropode</wrong>
<right>insecte</right>
<wrong>mollusque</wrong>
- </choices>
+ </choices-radio>
</subquiz>
<!-- ================================================================ -->
@@ -28,21 +28,21 @@
<instructions>
<p>aigle</p>
</instructions>
- <choices type="check">
+ <choices-check>
<right>oiseau</right>
<wrong>passereau</wrong>
<wrong>charognard</wrong>
<right>rapace</right>
- </choices>
+ </choices-check>
</subquiz>
<!-- ================================================================ -->
<subquiz>
- <blanks type="fill">
+ <blanks-fill>
<p>L'abeille est un <blank>insecte</blank> qui vit dans une
<blank>ruche</blank>.</p>
<p>Elle fabrique du <blank>miel</blank>.</p>
- </blanks>
+ </blanks-fill>
</subquiz>
<!-- ================================================================ -->
@@ -50,13 +50,13 @@
<instructions>
<p>albatros</p>
</instructions>
- <blanks type="select">
+ <blanks-select>
<wrongs>
<wrong>reptile</wrong>
<wrong>oiseaux</wrong>
</wrongs>
<p>Catégorie : <blank>mammifère</blank></p>
- </blanks>
+ </blanks-select>
</subquiz>
<!-- ================================================================ -->
--- a/Xml/Quiz/matching.xml mer. févr. 01 18:19:33 2012 +0100
+++ b/Xml/Quiz/matching.xml sam. févr. 04 14:44:39 2012 +0100
@@ -20,7 +20,7 @@
<p>On a gardé contact.</p>
</match>
<match>
- <p>On se chipote souvent.</p>
+ <p>On se chamaille souvent.</p>
<p>On ne se dispute jamais.</p>
</match>
<match>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xml/Quiz/production.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="production" xml:lang="fr">
+ <head>
+ <title>Exercice de production</title>
+ </head>
+
+ <instructions>
+ <p>
+ Notre connaissance du réel se limite-t-elle au savoir scientifique ?
+ </p>
+ </instructions>
+
+ <production/>
+
+ <answer>
+ <p>« Le grand livre de la nature est écrit en langage mathématique »
+ avait coutume de dire <name>Galilée</name>. Cela signifie-t-il pour
+ autant que notre connaissance du réel se limite au savoir
+ scientifique ? Si nous acceptons cette restriction, nous acceptons
+ aussi que seuls les scientifiques aient accès à la connaissance du
+ réel. Est-ce le cas ? N'avons-nous pas, en tant qu'être humain, hors de
+ toute science, accès à une certaine connaissance du monde qui nous
+ entoure, une connaissance qui pourrait ne pas être forcément un
+ savoir ?</p>
+ <p>Ce premier enjeu du sujet est redoublé par un autre, plus
+ essentiel, celui de la définition du réel. À quelle sorte de réel le
+ savoir scientifique nous donne-t-il accès ? Est-ce là le seul réel
+ dont nous pouvons avoir connaissance ?</p>
+ </answer>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Css/publiquiz.css sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,464 @@
+@charset "UTF-8";
+
+/* $Id$ */
+
+@import url(publidoc.css);
+
+
+publiquiz {
+ display: block;
+ font-family: sans-serif;
+ padding: 0;
+}
+
+
+/* Component level ========================================================= */
+
+quiz:before {
+ display: block;
+ color: #7f7f7f;
+ background-color: #ddddcc;
+ border: 1px solid #aeaea0;
+ font-weight: bold;
+ padding: .5em 5px .5em 5px;
+ content: collapser() " " insert-before-button() insert-after-button()
+ " " add-attribute-button() " Quiz";
+}
+
+quiz[xml|id]:before {
+ content: collapser() " " insert-before-button() insert-after-button() " Quiz"
+ " – ID = " text-field(attribute, "xml:id", columns, 15, color, black);
+}
+
+quiz {
+ display: block;
+ border: 1px solid #aeaea0;
+ margin-bottom: .5em;
+ padding: 5px;
+ collapsible: yes;
+}
+quiz:last-child {
+ margin-bottom: 0;
+}
+
+quiz > head {
+ background-color: #ffffee;
+ padding: .3em .5em .3em .5em;
+ border-radius: 0.5em;
+}
+
+
+/* Top level =============================================================== */
+
+publiquiz > *:before {
+ display: block;
+ color: #bbbbbb;
+ background: #993333 url('top.png') repeat-x top left;
+ font-weight: bold;
+ padding: 1.2em 5px 1em 5px;
+}
+publiquiz > document:before {
+ content: add-attribute-button() " Document"
+ " – ID = " text-field(attribute, "xml:id", columns, 15, color, white);
+}
+publiquiz > document[xml|id][xml|lang]:before {
+ content: "Document"
+ " – ID = " text-field(attribute, "xml:id", columns, 15, color, white)
+ " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
+ values, "en\A fr\A fr-FR\A es", color, white);
+}
+publiquiz > quiz[xml|id]:before {
+ content: add-attribute-button() " Quiz"
+ " – ID = " text-field(attribute, "xml:id", columns, 15, color, white);
+}
+publiquiz > quiz[xml|id][xml|lang]:before {
+ content: "Quiz"
+ " – ID = " text-field(attribute, "xml:id", columns, 15, color, white)
+ " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
+ values, "en\A fr\A fr-FR\A es", color, white);
+}
+
+publiquiz > * {
+ display: block;
+ margin: 5px;
+ padding: 0;
+ border: 0;
+}
+
+publiquiz > * > head {
+ background-color: #ffffee;
+ padding: .3em .5em .3em .5em;
+ border-radius: 0.5em;
+}
+
+publiquiz > * > head > title {
+ font-size: 140%;
+}
+
+
+/* Section level =========================================================== */
+
+quiz > *:before, quiz > composite > *:before {
+ display: block;
+ color: #7f7f7f;
+ text-align: left;
+ font-style: normal;
+ font-size: 75%;
+ padding-bottom: 3px;
+}
+
+quiz > *, quiz > composite > * {
+ display: block;
+}
+
+quiz > *:after, quiz > composite > *:after {
+ color: #7f7f7f;
+ content: insert-after-button();
+}
+
+quiz > head:after {
+ display: none;
+}
+
+/* instructions ~~~~~~~~~~~~~~~~~~~~~ */
+
+instructions:before {
+ background-color: #e8f0f7;
+ content: insert-before-button() " Consigne";
+}
+
+instructions {
+ display: block;
+ background-color: #e8f0f7;
+}
+
+instructions section:before, instructions section, instructions section:after {
+ margin-left: 1em;
+}
+
+/* choices ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+choices-radio:before {
+ content: insert-before-button()
+ command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
+ " QCM – radio";
+}
+choices-radio[shuffle]:before {
+ content: insert-before-button()
+ " QCM – radio"
+ " – shuffle = " label(attribute, shuffle, color, black)
+ set-attribute-button(attribute, shuffle, unset-attribute, yes);
+}
+
+choices-check:before {
+ content: insert-before-button()
+ command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
+ " QCM – check";
+}
+choices-check[shuffle]:before {
+ content: insert-before-button()
+ " QCM – check"
+ " – shuffle = " label(attribute, shuffle, color, black)
+ set-attribute-button(attribute, shuffle, unset-attribute, yes);
+}
+
+/* blanks ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+blanks-fill:before {
+ content: insert-before-button()
+ command-button(command, "putAttribute", parameter, "strict true", icon, icon(plus-box))
+ " Exercice à trous – saisie libre";
+}
+blanks-fill[strict]:before {
+ content: insert-before-button()
+ " Exercice à trous – saisie libre"
+ " – strict = " label(attribute, strict, color, black)
+ set-attribute-button(attribute, strict, unset-attribute, yes);
+}
+
+blanks-select:before {
+ content: insert-before-button()
+ command-button(command, "putAttribute", parameter, "multiple true", icon, icon(plus-box))
+ " Exercice à trous – liste fermée";
+}
+blanks-select[multiple]:before {
+ content: insert-before-button()
+ " Exercice à trous – liste fermée"
+ " – multiple = " label(attribute, multiple, color, black)
+ set-attribute-button(attribute, multiple, unset-attribute, yes);
+}
+
+/* point ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+point:before {
+ content: insert-before-button() " "
+ command-button(command, "putAttribute", parameter, "type radio", icon, icon(plus-box))
+ " Pointage";
+}
+point[type]:before {
+ content: insert-before-button()
+ " Pointage – type = " label(attribute, type, color, black)
+ set-attribute-button(attribute, type, unset-attribute, yes);
+}
+
+/* matching ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+matching:before {
+ content: insert-before-button() " Appariement";
+}
+
+/* sort ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+sort:before {
+ content: insert-before-button()
+ command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
+ " Tri";
+}
+sort[shuffle]:before {
+ content: insert-before-button()
+ " Tri – shuffle = " label(attribute, shuffle, color, black)
+ set-attribute-button(attribute, shuffle, unset-attribute, yes);
+}
+
+/* production ~~~~~~~~~~~~~~~~~~~~~~ */
+
+production:before {
+ content: insert-before-button() " Production";
+}
+
+/* composite ~~~~~~~~~~~~~~~~~~~~~~~ */
+
+composite:before {
+ content: insert-before-button() " Composite";
+}
+
+subquiz {
+ display: block;
+ border-style: none;
+ margin: 0 0 .6em 1em;
+ padding: 0;
+}
+
+subquiz > *, subquiz > *:before {
+ display: block;
+}
+
+subquiz > head {
+ background-color: #ffffee;
+ padding: .3em .5em .3em .5em;
+ border-radius: 0.5em;
+}
+
+subquiz > instructions:before {
+ content: "Consigne";
+}
+
+/* help ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+help:before {
+ margin-top: .5em;
+ background-color: #ffffdd;
+ content: insert-before-button() insert-button() " Aide 2";
+}
+
+help, help > *:before, help > * {
+ background-color: #ffffdd;
+}
+
+/* answer ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+answer:before {
+ margin-top: .5em;
+ background-color: #eaffe9;
+ content: insert-before-button() insert-button() " Réponse";
+}
+
+answer, answer > *:before, answer > * {
+ background-color: #eaffe9;
+}
+
+answer:after {
+ display: none;
+}
+
+
+/* Block level ============================================================= */
+
+/* choices.right, choices.wrong ~~~~ */
+
+choices-radio right:before, choices-radio wrong:before,
+choices-check right:before, choices-check wrong:before {
+ display: marker;
+ content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
+ insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
+}
+
+choices-radio right, choices-radio wrong,
+choices-check right, choices-check wrong {
+ display: block;
+ margin-left: 24px;
+ font-size: 115%;
+ font-family: serif;
+}
+
+choices-radio > right:before {
+ color: #7f7f7f;
+ content: insert-before-button(icon, icon(left-half-disc))
+ insert-after-button(icon, icon(right-half-disc))
+ " " icon(radio-on) " ";
+
+}
+choices-radio > wrong:before {
+ color: #7f7f7f;
+ content: insert-before-button( icon, icon(left-half-disc))
+ insert-after-button(icon, icon(right-half-disc))
+ " " icon(radio-off) " ";
+
+}
+choices-check > right:before {
+ color: #7f7f7f;
+ content: insert-before-button(icon, icon(left-half-disc))
+ insert-after-button(icon, icon(right-half-disc))
+ command-button(command, "convert", parameter, "wrong", icon, icon(convert))
+ " " icon(check-on) " ";
+}
+choices-check > wrong:before {
+ color: #7f7f7f;
+ content: insert-before-button(icon, icon(left-half-disc))
+ insert-after-button(icon, icon(right-half-disc))
+ command-button(command, "convert", parameter, "right", icon, icon(convert))
+ " " icon(check-off) " ";
+}
+
+choices-radio > right, choices-radio > wrong {
+ margin-left: 52px;
+}
+choices-check > right, choices-check > wrong {
+ margin-left: 56px;
+}
+
+/* blanks.wrongs ~~~~~~~~~~~~~~~~~~~ */
+
+blanks-select > wrongs:before {
+ color: #7f7f7f;
+ content: "Intrus : ";
+}
+
+blanks-select > wrongs {
+ display: block;
+ margin: .5em 0 .5em 0;
+}
+
+wrongs > wrong {
+ display: inline;
+ background-color: #c7e0f8;
+}
+
+wrongs > wrong:after {
+ color: #7f7f7f;
+ content: " – ";
+ background-color: transparent;
+}
+wrongs > wrong:after:last-child {
+ content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
+}
+
+/* match ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+match:before {
+ display: marker;
+ color: #7f7f7f;
+ content: insert-same-before-button(icon, icon(left-half-disc))
+ insert-same-after-button(icon, icon(right-half-disc));
+}
+
+match {
+ display: block;
+ margin-left: 24px;
+}
+
+match > section:before, match > p:before {
+ display: none;
+}
+
+match section, match p {
+ display: inline;
+}
+
+match > section:first-child:after, match > p:first-child:after {
+ color: #7f7f7f;
+ content: " —> ";
+}
+match > section:last-child:after, match > p:last-child:after {
+ display: none;
+}
+
+/* sort > comparison ~~~~~~~~~~~~~~~ */
+
+comparison:before {
+ color: #7f7f7f;
+ content: "Logique de comparaison : "
+}
+
+comparison {
+ display: block;
+ margin: .2em 0 .5em 0;
+}
+
+/* sort > item ~~~~~~~~~~~~~~~~~~~~~ */
+
+sort > item:before {
+ color: #7f7f7f;
+ content: insert-before-button(icon, icon(left-half-disc))
+ text-field(attribute, "shuffle", columns, 1, font-size, 75%, color, black)
+ " ";
+}
+
+sort > item {
+ display: inline;
+}
+
+sort > item:after {
+ color: #7f7f7f;
+ content: insert-same-after-button(icon, icon(right-half-disc))
+ " " xpath("../comparison") " ";
+}
+sort > item:last-child:after {
+ content: insert-same-after-button(icon, icon(right-half-disc)) "\A";
+}
+
+
+/* Inline level ============================================================ */
+
+/* blank ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+blank {
+ background-color: #c0ffc0;
+}
+
+s:after {
+ color: #7f7f7f;
+ background-color: transparent;
+ content: insert-same-after-button(icon, icon(right-half-disc));
+}
+
+/* point.right & point.wrong ~~~~~~~ */
+
+point right:before, point wrong:before {
+ background: transparent;
+ color: #7f7f7f;
+}
+point right:before {
+ content: command-button(command, "convert", parameter, "wrong", icon, icon(convert));
+}
+point wrong:before {
+ content: command-button(command, "convert", parameter, "right", icon, icon(convert));
+}
+
+point right {
+ background-color: #c0ffc0;
+}
+
+point wrong {
+ background-color: #c7e0f8;
+}
\ No newline at end of file
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_blanks-fill.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <blanks-fill>
+ <p></p>
+ </blanks-fill>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_blanks-select.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <blanks-select>
+ <p></p>
+ </blanks-select>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_choices-check.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <choices-check>
+ <right></right>
+ <wrong></wrong>
+ </choices-check>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_choices-radio.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <choices-radio>
+ <right></right>
+ <wrong></wrong>
+ </choices-radio>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_composite.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <composite>
+ <subquiz>
+ <instructions>
+ <p></p>
+ </instructions>
+ <choices-radio>
+ <right></right>
+ <wrong></wrong>
+ </choices-radio>
+ </subquiz>
+
+ <subquiz>
+ <instructions>
+ <p></p>
+ </instructions>
+ <choices-radio>
+ <right></right>
+ <wrong></wrong>
+ </choices-radio>
+ </subquiz>
+ </composite>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_matching.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <matching>
+ <match>
+ <p></p>
+ <p></p>
+ </match>
+ <match>
+ <p></p>
+ <p></p>
+ </match>
+ </matching>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_point.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <point>
+ <p></p>
+ </point>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_production.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <production/>
+
+ <answer>
+ <p></p>
+ </answer>
+ </quiz>
+</publiquiz>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/Templates/publiquiz_sort.xml sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz xml:id="???">
+ <head>
+ <title></title>
+ </head>
+
+ <instructions>
+ <p></p>
+ </instructions>
+
+ <sort>
+ <comparison></comparison>
+ <item></item>
+ <item></item>
+ </sort>
+ </quiz>
+</publiquiz>
--- a/Xxe/publidoc.xxe mer. févr. 01 18:19:33 2012 +0100
+++ b/Xxe/publidoc.xxe sam. févr. 04 14:44:39 2012 +0100
@@ -5,7 +5,7 @@
xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
<detect>
- <rootElementLocalName>publidoc</rootElementLocalName>x
+ <rootElementLocalName>publidoc</rootElementLocalName>
</detect>
<relaxng compactSyntax="true" encoding="UTF-8"
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/publiquiz.xxe sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<configuration name="Publiquiz"
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
+
+ <detect>
+ <rootElementLocalName>publiquiz</rootElementLocalName>
+ </detect>
+
+ <relaxng compactSyntax="true" encoding="UTF-8"
+ location="../RelaxNG/publiquiz.rnc"/>
+
+ <css location="Css/publiquiz.css" name="Publiquiz"/>
+
+ <!-- ================================================================== -->
+ <template location="Templates/publiquiz_choices-radio.xml"
+ name="Exercice QCM – radio"/>
+ <template location="Templates/publiquiz_choices-check.xml"
+ name="Exercice QCM – check"/>
+ <template location="Templates/publiquiz_blanks-fill.xml"
+ name="Exercice à trous – saisie libre"/>
+ <template location="Templates/publiquiz_blanks-select.xml"
+ name="Exercice à trous – liste fermée"/>
+ <template location="Templates/publiquiz_point.xml"
+ name="Exercice de pointage"/>
+ <template location="Templates/publiquiz_matching.xml"
+ name="Exercice d'appariement"/>
+ <template location="Templates/publiquiz_sort.xml"
+ name="Exercice de tri"/>
+ <template location="Templates/publiquiz_production.xml"
+ name="Exercice de production"/>
+ <template location="Templates/publiquiz_composite.xml"
+ name="Exercices composites"/>
+
+ <!-- ================================================================== -->
+ <menu label="_Publiquiz">
+ <menu label="Tableaux">
+ <item label="Ligne – Insérer avant"
+ icon="xxe-config:common/icons/insertRowBefore.png"
+ command="tableEdit" parameter="insertRowBefore"/>
+ <item label="Ligne – Insérer après"
+ icon="xxe-config:common/icons/insertRowAfter.png"
+ command="tableEdit" parameter="insertRowAfter"/>
+ <item label="Ligne – Supprimer"
+ icon="xxe-config:common/icons/deleteRow.png"
+ command="tableEdit" parameter="deleteRow"/>
+ <separator />
+ <item label="Colonne – Insérer avant"
+ icon="xxe-config:common/icons/insertColumnBefore.png"
+ command="tableEdit" parameter="insertColumnBefore"/>
+ <item label="Colonne – Insérer après"
+ icon="xxe-config:common/icons/insertColumnAfter.png"
+ command="tableEdit" parameter="insertColumnAfter"/>
+ <item label="Colonne – Supprimer"
+ icon="xxe-config:common/icons/deleteColumn.png"
+ command="tableEdit" parameter="deleteColumn"/>
+ </menu>
+ </menu>
+
+ <command name="tableEdit">
+ <class>com.xmlmind.xmleditext.docbook.table.CALSTableEdit</class>
+ </command>
+
+ <validateHook name="cols_checker">
+ <class>com.xmlmind.xmleditext.docbook.table.ValidateHookImpl</class>
+ </validateHook>
+</configuration>
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Xxe/publiquiz.xxe_addon sam. févr. 04 14:44:39 2012 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<a:addon xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:a="http://www.xmlmind.com/xmleditor/schema/addon">
+ <a:category>
+ <a:configuration />
+ </a:category>
+
+ <a:name>Publiquiz configuration</a:name>
+
+ <a:version>1.0</a:version>
+
+ <a:author><a href="http://www.prismallia.fr">Prismallia</a></a:author>
+
+ <a:xxeVersion>5.1.0+</a:xxeVersion>
+
+</a:addon>