CREAR / CLI
CLI de P2LRN
La CLI ofrece los mismos flujos técnicos del Toolkit desde terminal. Empieza por el recorrido habitual y consulta después los comandos especializados sólo cuando los necesites.
1. Requisito previo
La CLI se instala con @p2lrn/toolkit. Si no lo has hecho aún, completa primero la instalación con NPM.
npm install @p2lrn/toolkit@0.5.0-alpha.11Puedes usar los binarios directos —por ejemplo p2lrn-create— o el dispatcher p2lrn create.
2. Recorrido normal para crear un curso
Estos comandos muestran el orden habitual: crear workspace, añadir estructura, añadir contenido, construir y validar.
p2lrn-create init ./workspace --title "Curso de seguridad" --language es
p2lrn-create add-unit ./workspace \
--key unidad-1 \
--title "Fundamentos"
p2lrn-create add-file ./workspace ./material/intro.html \
--key intro \
--title "Introducción" \
--parent unidad-1
p2lrn-create build ./workspace ./curso.p2lrn --strict-profiles
p2lrn-validate ./curso.p2lrn --profile-payloads3. Comandos de creación
init <dir> --title TCrea un workspace nuevo. Admite idioma, descripción y --force.
open <package> <project_dir>Abre un paquete existente como workspace editable.
upgrade <project>Actualiza la versión interna de un workspace existente.
add-unitAñade una unidad y permite indicar su padre, idioma y rol.
add-fileAñade un archivo local y permite fijar tipo MIME, perfil, rol y tipo de actividad.
add-web-contentAñade un directorio web con su entrypoint.
add-urlAñade un recurso externo mediante URL.
add-questionnaireAñade un cuestionario. --renderer y --renderer-version seleccionan una presentación preferida.
add-component / add-compositeAñaden contenido nativo estructurado y grupos compuestos.
showMuestra un resumen del workspace.
build <project> <output>Construye el paquete final; --strict-profiles exige perfiles completos.
4. Validar, inspeccionar y leer un paquete
Usa estos comandos después del build para comprobar el paquete, revisar su estructura o abrirlo con Reader sin modificarlo.
p2lrn-validate ./curso.p2lrn --profile-payloads
p2lrn-inspect ./curso.p2lrn --summary --tree
p2lrn-reader ./curso.p2lrn --summaryComprueba estructura, integridad y, con --profile-payloads, los datos específicos de perfiles.
Muestra resumen, árbol, plan de lectura, transformación o importación según las opciones elegidas.
Abre el Reader interactivo o devuelve resumen, árbol y planes sin modificar el paquete.
5. Leer un documento
Utiliza el lector documental cuando necesitas extraer estructura antes de decidir qué contenido convertir en curso.
p2lrn-document-reader ./material/apuntes.docx --prettyExtrae estructura de DOCX, PPTX, ODT, EPUB y formatos de texto. PDF requiere pdfjs-dist. El resultado es material para una decisión de autoría; no se convierte automáticamente en un curso completo.
6. Convertir, reempaquetar y extraer
p2lrn-convert <source> <output.p2lrn>Convierte una fuente compatible y puede generar un informe. p2lrn-wrap-external es un alias del mismo conversor para integraciones que expresan explícitamente el empaquetado externo.
p2lrn-repack <source> <output>Reempaqueta sin alterar el contenido lógico; puede generar un nuevo package ID o canonicalizar identificadores.
p2lrn-extract-source <package> <output.zip>Extrae una fuente preservada y verifica su SHA-256 antes de escribirla.
7. Multipart
Utiliza Multipart cuando un recurso grande debe publicarse en partes verificadas en lugar de viajar completo dentro del archivo principal.
p2lrn-multipart ./curso.p2lrn ./curso-multipart.p2lrn \
--part-size 26214400Transforma una representación embebida en descriptor y partes externas. Si no indicas --representation, selecciona la representación que supera el límite. Consulta Multipart para el flujo completo.
8. Cambios incrementales (Delta)
Delta transporta la diferencia entre dos paquetes compatibles. Crea el delta sobre una base conocida y aplícalo siempre sobre esa misma base.
p2lrn-delta create ./base.p2lrn ./nuevo.p2lrn ./cambio.p2lrn-delta
p2lrn-delta apply ./base.p2lrn ./cambio.p2lrn-delta ./resultado.p2lrn
p2lrn-delta inspect ./cambio.p2lrn-deltacreate genera la diferencia, apply la aplica sobre la base correcta e inspect muestra su contenido.
9. Firma y confianza (Trust)
Trust firma y verifica paquetes con Ed25519. La firma no reemplaza las comprobaciones de integridad del contenido.
p2lrn-trust keygen ./private.pem ./public.pem
p2lrn-trust sign ./curso.p2lrn ./private.pem --output ./curso.sig
p2lrn-trust verify ./curso.p2lrn ./curso.sig --trust-key ./public.pem --require-trustedTrust gestiona firmas Ed25519 separadas. Integridad del paquete y confianza en una firma son comprobaciones diferentes.
10. Comando principal, salida y códigos de retorno
El comando p2lrn también actúa como dispatcher de las herramientas principales. Los códigos de retorno permiten integrarlas en scripts y procesos automáticos.
p2lrn <validate|reader|document-reader|inspect|create|convert|repack|multipart|extract-source|delta|trust> ...
p2lrn --helpexit 0Operación correcta o ayuda solicitada.
exit 1Error de entrada, validación o ejecución.
exit 2El comando principal p2lrn se ejecutó sin un subcomando válido.
Las operaciones estructuradas usan JSON salvo el Reader interactivo y algunas vistas textuales de inspección.