Skip to content

Commit 9650b04

Browse files
committed
Migra al tema book
1 parent 555d548 commit 9650b04

File tree

15 files changed

+428
-426
lines changed

15 files changed

+428
-426
lines changed

.github/workflows/docs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Configurar Python
1515
uses: actions/setup-python@v5
1616
with:
17-
python-version: '3.12'
17+
python-version: '3.x'
1818

1919
- name: Instalación de dependencias.
2020
run: |

requirements.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
sphinx==5.3
2-
sphinx-design
3-
cloud_sptheme
1+
sphinx
2+
sphinx-book-theme
3+
sphinx-copybutton
4+
sphinx-togglebutton
45
sphinx-multitoc-numbering

source/01.intro/02a.serial.rst

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ herramientas anterior, facilitamos un :download:`documento JSON
9696
<files/casilleros.json>` que enumera los profesores de un centro educativo con
9797
los casilleros que tienen asignados:
9898

99-
.. dropdown:: JSON sobre casilleros
100-
101-
.. literalinclude:: files/casilleros.json
102-
:language: json
99+
.. literalinclude:: files/casilleros.json
100+
:language: json
101+
:caption: JSON sobre casilleros
102+
:class: toggle
103103

104104
Las ideas que inspiran este documento son las siguientes\ [#]_:
105105

@@ -332,12 +332,11 @@ Un ejemplo sencillo de este tipo de documentos es:
332332
o, si queremos uno más amplio, equivalente al :ref:`ejemplo introductorio
333333
para JSON <json-ejemplo-inicial>`:
334334

335-
.. _yaml-ejemplo-inicial:
336-
337-
.. dropdown:: YAML de casilleros
338-
339-
.. literalinclude:: files/casilleros.yaml
340-
:language: yaml
335+
.. literalinclude:: files/casilleros.yaml
336+
:language: yaml
337+
:caption: YAML de casilleros
338+
:name: yaml-ejemplo-inicial
339+
:class: toggle
341340

342341
Como en el caso de |JSON| nos resultará enormemente útil validadores:
343342

@@ -919,15 +918,15 @@ Ejercicios resueltos
919918
en la que se mide. Por ejemplo, en alguna receta se necesitarán 200 gramos de
920919
tomate, pero en otra bastará con indicar dos piezas.
921920

922-
.. dropdown:: Solución propuesta JSON
923-
924-
.. literalinclude:: files/ejyaml1.recetas.json
925-
:language: json
926-
927-
.. dropdown:: Solución propuesta YAML
921+
.. literalinclude:: files/ejyaml1.recetas.json
922+
:language: json
923+
:class: toggle
924+
:caption: Solución propuesta JSON
928925

929-
.. literalinclude:: files/ejyaml1.recetas.yaml
930-
:language: yaml
926+
.. literalinclude:: files/ejyaml1.recetas.yaml
927+
:language: yaml
928+
:class: toggle
929+
:caption: Solución propuesta YAML
931930

932931
#. Tomando como referencia el documento anterior, escriba otro que enumere la
933932
red de restaurantes de una cadena, de cada uno de los cuales se refiera:
@@ -938,15 +937,15 @@ Ejercicios resueltos
938937
ofrecen al público (tapa, media ración o ración). Por supuesto, varios
939938
restaurantes pueden ofrecer la misma receta.
940939

941-
.. dropdown:: Solución propuesta JSON
942-
943-
.. literalinclude:: files/ejyaml2.cadena.json
944-
:language: json
945-
946-
.. dropdown:: Solución propuesta YAML
940+
.. literalinclude:: files/ejyaml2.cadena.json
941+
:language: json
942+
:class: toggle
943+
:caption: Solución propuesta JSON
947944

948-
.. literalinclude:: files/ejyaml2.cadena.yaml
949-
:language: yaml
945+
.. literalinclude:: files/ejyaml2.cadena.yaml
946+
:language: yaml
947+
:class: toggle
948+
:caption: Solución propuesta YAML
950949

951950
.. rubric:: Enlaces de interés
952951

source/01.intro/02b.marcas.rst

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -272,10 +272,10 @@ Ejemplo introductorio
272272
Echemos un vistazo a :download:`este XML <files/casilleros.xml>` que permite
273273
gestionar los casilleros de los profesores de un centro de enseñanza:
274274

275-
.. dropdown:: Casilleros de profesores
276-
277-
.. literalinclude:: files/casilleros.xml
278-
:language: xml
275+
.. literalinclude:: files/casilleros.xml
276+
:caption: Ejemplo de casilleros
277+
:class: toggle
278+
:language: xml
279279

280280
.. caution:: El documento no es un texto marcado, sino una sucesión de datos, por
281281
lo que estamos utilizando este |XML| para *marcado descriptivo orientado al
@@ -767,18 +767,18 @@ Ejercicios resueltos
767767
#. Escribir la versión |XML| del :ref:`primer ejercicio YAML resuelto
768768
<yaml-resueltos>`.
769769

770-
.. dropdown:: Solución propuesta
771-
772-
.. literalinclude:: files/ejxml1.recetas.xml
773-
:language: xml
770+
.. literalinclude:: files/ejxml1.recetas.xml
771+
:caption: Solución propuesta
772+
:class: toggle
773+
:language: xml
774774

775775
#. Escribir la versión |XML| del :ref:`segundo ejercicio resuelto
776776
<yaml-resueltos>`.
777777

778-
.. dropdown:: Solución propuesta
779-
780-
.. literalinclude:: files/ejxml2.cadena.xml
781-
:language: xml
778+
.. literalinclude:: files/ejxml2.cadena.xml
779+
:caption: Solución propuesta
780+
:class: toggle
781+
:language: xml
782782

783783
.. rubric:: Notas al pie
784784

source/02.validacion/01.dtdxml.rst

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -114,24 +114,25 @@ ello tomemos el :ref:`documento XML usado como ejemplo introductorio
114114
<xml-ejemplo>`, aunque con una ligera variación\ [#]_ (descárguelo de :download:`aquí
115115
<files/casilleros_v2.xml>`):
116116

117-
.. dropdown:: XML de casilleros
118-
119-
.. literalinclude:: files/casilleros_v2.xml
120-
:language: xml
117+
.. literalinclude:: files/casilleros_v2.xml
118+
:caption: XML de casilleros
119+
:class: toggle
120+
:language: xml
121121

122122
La definición de su gramática hecha en |DTD| es :download:`la siguiente
123123
<files/casilleros_v2.dtd>`:
124124

125-
.. dropdown:: DTD de casilleros
125+
.. literalinclude:: files/casilleros_v2.dtd
126+
:caption: DTD de casilleros
127+
:class: toggle
126128

127-
.. literalinclude:: files/casilleros_v2.dtd
128129

129130
Este |DTD|, a su vez, llama a otro que contiene exclusivamente :download:`las
130131
entidades que definen los departamentos <files/departamentos.ent>`\ [#]_:
131132

132-
.. dropdown:: DTD de definición de entidades
133-
134-
.. literalinclude:: files/departamentos.ent
133+
.. literalinclude:: files/departamentos.ent
134+
:caption: DTD de definición de entidades
135+
:class: toggle
135136

136137
.. _xml-valid:
137138

@@ -513,17 +514,17 @@ entremezclan los elementos de los espacios de nombres, lo más fácil es escribi
513514
siempre el |XML| de la última forma que se propuso, o sea, cambiando el espacio
514515
de nombres predeterminado y definir :file:`casilleros.dtd` así:
515516

516-
.. dropdown:: DTD de casilleros
517-
518-
.. literalinclude:: files/casilleros_ns.dtd
519-
:emphasize-lines: 2, 22, 25-28
517+
.. literalinclude:: files/casilleros_ns.dtd
518+
:caption: DTD de casilleros
519+
:class: toggle
520+
:emphasize-lines: 2, 22, 25-28
520521

521522
y :file:`direccion.dtd` de este otro modo:
522523

523-
.. dropdown:: DTD de direccion
524-
525-
.. literalinclude:: files/direccion_ns.dtd
526-
:emphasize-lines: 2
524+
.. literalinclude:: files/direccion_ns.dtd
525+
:caption: DTD de direccion
526+
:class: toggle
527+
:emphasize-lines: 2
527528

528529
En cualquier caso, cuando hay espacios de nombres, lo más juicioso es evitar |DTD|.
529530

@@ -535,17 +536,17 @@ Ejercicios resueltos
535536
#. Tomando el |XML| sobre recetas, :ref:`ya resuelto en la unidad anterior
536537
<xml-resueltos>`, escriba un |DTD| para validarlo.
537538

538-
.. dropdown:: DTD para el XML propuesto
539-
540-
.. literalinclude:: files/ejxml1.recetas.dtd
539+
.. literalinclude:: files/ejxml1.recetas.dtd
540+
:caption: DTD para el XML propuesto
541+
:class: toggle
541542

542543
#. Tomando el |XML| sobre una cadena de restaurantes :ref:`ya resuelto en el
543544
epígrafe anterior <xml-resueltos>`, escriba un |DTD| para validarlo. Procure
544545
reaprovechar el |DTD| del ejercicio anterior.
545546

546-
.. dropdown:: DTD para el XML propuesto
547-
548-
.. literalinclude:: files/ejxml2.cadena.dtd
547+
.. literalinclude:: files/ejxml2.cadena.dtd
548+
:caption: DTD para el XML propuesto
549+
:class: toggle
549550

550551
Conclusiones
551552
************
@@ -598,10 +599,9 @@ y escriba para ellas la gramática |DTD|.
598599
:file:`casilleros.dtd` o incluso haberlas incluido como adición a la propia
599600
declaración del documento en el |XML|:
600601
601-
.. dropdown:: XML de casilleros con entidades empotradas
602-
603-
.. literalinclude:: files/casilleros_v1.xml
604-
:language: xml
602+
.. literalinclude:: files/casilleros_v1.xml
603+
:caption: XML de casilleros con entidades empotradas
604+
:language: xml
605605
606606
.. [#] También soporta :ref:`Relax-NG Compact <rnc>` y :ref:`XML Schemas <xsd>`.
607607

source/02.validacion/02.yaml.rst

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ Ejemplo
3939
-------
4040
Tomemos la versión |JSON| del :ref:`ejemplo introductorio <json-ejemplo-inicial>`:
4141

42-
.. dropdown:: Casilleros
43-
44-
.. literalinclude:: /01.intro/files/casilleros.json
45-
:language: json
42+
.. literalinclude:: /01.intro/files/casilleros.json
43+
:class: toggle
44+
:caption: Casilleros
45+
:language: json
4646

4747
Este |JSON| se ajusta al siguiente esquema:
4848

49-
.. dropdown:: Gramática de Casilleros con JSON Schema
50-
51-
.. literalinclude:: files/casilleros.schema.json
52-
:language: json
49+
.. literalinclude:: files/casilleros.schema.json
50+
:caption: Gramática de Casilleros con JSON Schema
51+
:class: toggle
52+
:language: json
5353

5454
Como puede verse, el documento es en sí un documento |JSON| y tiene un modo algo
5555
particular (y nada intuitivo) de expresar una ocurrencia de nodos, que se habría
@@ -890,42 +890,42 @@ definidos en otra parte del archivo. Con este fin existe la propiedad
890890
``$defs``
891891
Contiene subesquemas con nombre a los que puede hacerse referencia:
892892

893-
.. dropdown:: Esquema con referencia interna
894-
895-
.. code-block:: json
896-
897-
{
898-
"$schema": "https://json-schema.org/draft/2020-12/schema",
899-
"$id": "gente.schema.json",
900-
901-
"type": "array",
902-
"title": "Ejemplo de referencia",
903-
"description": "Un porrón de personas dentro de una secuencia",
904-
"items": { "$ref": "#/$defs/persona" },
905-
"uniqueItems": true,
893+
.. code-block:: json
894+
:caption: Esquema con referencia interna
895+
:class: toggle
906896
907-
"$defs": {
908-
"persona": {
909-
"type": "object",
910-
"properties": {
911-
"nombre": {
912-
"type": "string",
913-
"description": "Nombre completo de la persona"
914-
},
915-
"edad": {
916-
"type": "integer",
917-
"minimum": 0
918-
},
919-
"casado": {
920-
"type": "boolean",
921-
"default": false
922-
}
897+
{
898+
"$schema": "https://json-schema.org/draft/2020-12/schema",
899+
"$id": "gente.schema.json",
900+
901+
"type": "array",
902+
"title": "Ejemplo de referencia",
903+
"description": "Un porrón de personas dentro de una secuencia",
904+
"items": { "$ref": "#/$defs/persona" },
905+
"uniqueItems": true,
906+
907+
"$defs": {
908+
"persona": {
909+
"type": "object",
910+
"properties": {
911+
"nombre": {
912+
"type": "string",
913+
"description": "Nombre completo de la persona"
923914
},
924-
"additionalProperties": false,
925-
"required": ["nombre"]
926-
}
915+
"edad": {
916+
"type": "integer",
917+
"minimum": 0
918+
},
919+
"casado": {
920+
"type": "boolean",
921+
"default": false
922+
}
923+
},
924+
"additionalProperties": false,
925+
"required": ["nombre"]
927926
}
928927
}
928+
}
929929
930930
.. _json-schema-condicional:
931931

@@ -1085,18 +1085,18 @@ Ejercicios resueltos
10851085
Tomando las versiones |JSON| (o |YAML|) de :ref:`los dos ejercicios ya resueltos
10861086
<yaml-resueltos>`, podemos para el primero definir así su gramática:
10871087

1088-
.. dropdown:: recetas.schema.json
1089-
1090-
.. literalinclude:: files/recetas.schema.json
1091-
:language: json
1088+
.. literalinclude:: files/recetas.schema.json
1089+
:class: toggle
1090+
:caption: recetas.schema.json
1091+
:language: json
10921092

10931093
El segundo podemos definirlo con otra gramática que :ref:`referencie la primera
10941094
<json-schema-ref>`:
10951095

1096-
.. dropdown:: restaurantes.schema.json
1097-
1098-
.. literalinclude:: files/restaurantes.schema.json
1099-
:language: json
1096+
.. literalinclude:: files/restaurantes.schema.json
1097+
:class: toggle
1098+
:caption: restaurantes.schema.json
1099+
:language: json
11001100

11011101
Ejercicios propuestos
11021102
=====================

source/02.validacion/index.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ saber que el documento de ejemplo que ha escrito se ajusta a la gramática
2323
Por ejemplo, la solución |XML| del :ref:`primer ejercicio resuelto
2424
<xml-resueltos>` era esta:
2525

26-
.. dropdown:: Primer ejercicio resuelto
27-
28-
.. literalinclude:: /01.intro/files/ejxml1.recetas.xml
29-
:language: xml
26+
.. literalinclude:: /01.intro/files/ejxml1.recetas.xml
27+
:caption: Primer ejercicio resuelto
28+
:class: toggle
29+
:language: xml
3030

3131
Esto implica mucho: que la etiqueta del nodo raíz es :code:`<recetas>` y que
3232
no tiene ninguna propiedad, pero sí varios nodos :code:`<receta>` dentro, etc.

0 commit comments

Comments
 (0)