**Importar y transformar documentos**
Existen esencialmente dos maneras de importar documentos en Grafoscopio: - Desde la interfaz gráfica de usuario. - A partir de código. Las veremos a continuación
# Importar documentos desde la interfaz gráfica
Importemos un documento de manera grafica:
![ Secuencia para abrir una base de conocimiento. ](https://i.imgur.com/MEBiUGe.png)
![ Secuencia de importación de documentos. ](https://i.imgur.com/t88rzQW.png)
![ Proceso de importación terminado. ](https://i.imgur.com/i2IY9C4.png)
# Importar documentos desde el código
Definimos en enlace a documento:
Ahora importamos el documento a nuestra base de datos local:
![ Resultado de la importación de la página. ](https://i.imgur.com/0v9JtQ0.png)
Con esto hemos importado un único documento y, si lo miramos en la bases de conocimiento, ahora estará presente allí.
![ Base de conocimiento con el documento recien importado. ](https://i.imgur.com/X6fT3Br.png)
El proceso de importar los documentos uno a uno a partir de sus enlaces se tornará engorroso cuando los documentos crezcan. Afortunadamente, hay otras formas de hacerlo: * A partir de un patrón secuencial que sigan los enlaces. * A partir de un índice de documentos. Detallaremos cada uno a continuación.
## A partir de un patrón secuencial
Para varios de nuestros documentos hemos desarrollado una convención _ad-hoc_ que consiste en agregrar secuencias de letras y/o números para indicar secuencias de contenido. Así la primera edición de la semana 11 está indicado por `semana11A`, las segunda sería `semana11B` y así sucesivamente. El primer día de la primera edición en el LabCI de la semana11 sería `semana11A1`, el segundo día sería `semana11A2` y así sucesivamente.
Dejemos una parte para lo que no cambia en la dirección
Agreguemos a esa dirección común, el índice de los días que corresponden a los de los eventos que queremos recuperar.
Ahora agremos a la dicción común el índica de cada día
![ Direcciones para cada día de acuerdo a un patrón. ](https://i.imgur.com/qRG0MyP.png)
{{overfill-container}}
!!! info Enfaticemos lo que ha ocurrido acá, pues es algo que usaremos a lo largo de nuestro trabajo con narrativas de datos en Pharo/GT. Cuando enviamos un mensaje a una colección (`collect`, `select`, `reject`, `detect`), habitualmente producimos nuevas colecciones: ![](https://docutopia.sustrato.red/uploads/d89d31e7-ba8b-4c4a-a6ca-312a45e9508d.png) [Editable de la imagen](https://www.tldraw.com/r/RVCLwHVvL_1G2hHsr6zNQ?d=v0.0.1366.639.page) Para este caso concreto, hemos tomado una colección ( `daysIndexes`) y le hemos aplicado el mensaje `colect:` seguido por un bloque con instrucciones sobre qué hacer con cada elemento de la colección. Dichas instrucciones producirán una colección nueva que almacenamos en `daysAdresses` para este ejemplo.
A partir de la collección `daysAddresses` produzcamos una nueva colección de documentos importados:
Una vez la importación halla terminado, la base de datos debería lucir algo así:
![ ](https://docutopia.sustrato.red/uploads/6147c5fa-3783-4abe-9184-427e5b886caa.png)
Encontremos en esta base de documentos, todos los documentos importados desde Lepiter:
![ Días de la semana 11 importados uno a uno. ](https://i.imgur.com/7CzVwbe.png)
## A partir de un índice de enlaces
Lo más habitual es que los enlaces no sigan un patrón. En ese caso, lo habitual es usar un documento que indexe los demás
# Exportar documentos desde Lepiter al repositorio
Empecemos por definir el folder donde está el repositorio:
Si quisieramos exportar y copiar la página donde estamos ubicados en este momento, este código lo haría:
![ Página exportada y movida a la ubicación de destino. ](https://i.imgur.com/ajXbinE.png)
{{overfill-container}}
!!! tip Lo anterior exporta una única página, la actual desde Lepiter hacia una subcarpeta en el repositorio personal. Dado que el código `documentsDatabase pages` nos da todas las páginas de la base documental actual. Extrapolar lo aprendido para que exporte todas las páginas a una subcarpeta dentro del repositorio.
!!! tip **Exportar cada una de las páginas en una colección** tomar las páginas de`importedDocs` y exportarlas a la subcarpeta `wiki/2024` en el repositorio.
![ Listado de páginas exportadas. ](https://i.imgur.com/7mdIfQX.png)
!!! info Para la siguiente sesión del martes, crear y publicar en el repositorio propio, una narrativa de datos modificada a partir de la narrativa que descargaba las memorias de clase en Markdown, de modo tal que ahora: 1. importe las memorias de clase a la base de documentos de Lepiter de cada cual. 2. Seleccione de todas las páginas en la base de documentos de Lepiter, las páginas que hemos creado.
# Depuración de errores
Hemos importado una colección de documentos pero no sabemos cuál corresponde al trabajo propio y cuál a las sesiones de clase.
Una manera de intentar encontrar cuál es cuál es a partir de los metadatos del HedgeDoc.
Si exploramos el documento entrando a la solapa `Raw` y luego mirando los metadatos, veremos algo de este estilo:
![ Metadatos de un documento exportado desde HedgeDoc. ](https://i.imgur.com/aIjhfGq.png)
!!! warning Ignorar la narrativa de acá en adelante. Esta parte se está rehaciendo.
Si queremos importar el cada día en la base de datos debemos hacer:
Nos interesa importar ese documento al disco duro. Miremos cuales son las páginas que tiene nuestra base de datos:
![ Base de datos local con su páginas. ](https://docutopia.sustrato.red/uploads/ff8af2ce-1582-4b21-b4cf-89250bb17c62.png)
Seleccionemos las páginas que hemos creado, es decir, las que no terminan en `Page`.
![ Páginas en la base de datos local. ](https://i.imgur.com/EbeCxCk.png)
De esas páginas, seleccionemos las creadas por nosotras:
![ Páginas creadas o importadas duante el semestre. ](https://i.imgur.com/VmtVxXF.png)