-
Notifications
You must be signed in to change notification settings - Fork 9
Lección 10: Editando el archivo manifest.json correctamente
Ya casi terminamos con estas series de lecciones. Nos hemos propuesto analizar cada elemento que compone un JWPUB y ya sabemos a un grado razonable cómo funciona.
Al descomprimir estos archivos, vimos qué es y cómo funcionan algunas de las tablas de nuestra base de datos del archivo *.db
con ayuda del DB Browser. También aprendimos cómo enlazar nuestro documento a los archivos de imágenes *.jpg
con su código HTML correspondiente. Sin embargo todavía hay un archivo dentro del JWPUB que he decidido dejar al final y que será el cierre de esta serie de lecciones: El archivo manifest.json
Los archivos en formato JSON, son utilizados por aplicaciones, y páginas web para guardar estructuras de datos simples que sean legibles en un formato de texto normal. En el caso de JW Library, los archivos manifest.json, podríamos decir de forma sencilla que son la carta de presentación del archivo JWPUB que se instalará. Pues contienen datos informativos, entre ellos, el tipo de publicación que contiene, el título, categoría, tamaño, firmas, etc.
A continuación te mostraré el archivo manifest.json de nuestro libro “Jesus—The Way, the Truth, the Life” (Jesús: el camino, la verdad y la vida.) Descarga el archivo jy_E.jwpub
y descomprímelo. Abre el archivo manifest.json de la publicación con ayuda del programa Sublime Text.
Veamos las diferentes cadenas de texto coloreadas de acuerdo a los valores o atributos que contengan, facilitando así su edición.
Te mostraré a grandes rasgos para que se usa cada campo y conjunto de bloques, (aunque en JSON se les llama claves a estos objetos, pero para no confundirnos simplificaremos) a fin de que puedas comprender y aplicarlo a tus archivos una vez termines tu proyecto.
"name": "jy_E.jwpub"
Nombre de la empaquetación final en el formato JWPUB. Por supuesto consiste en el símbolo de la publicación y el código de idioma. Más la extensión JWPUB.
"hash": "925a0fb987fba9a80fa86345944340d1c092622be7dd584b7afb88ab14bb176c"
Firma única o hash de cada publicación empaquetada (Archivo contents) con el algoritmo SHA-256. Para conseguir esta firma solo necesitas un software que pueda calcular el hash o firma del archivo contents. Puedes hacer lo siguiente:
Cuando hayas terminado tu proyecto, selecciona todos los archivos, a excepción del archivo manifest.json para comprimir las imágenes jpg
y el archivo *.db
en formato ZIP. Puedes usar 7-Zip, WinRAR u otro software similar. Personalmente, uso el que viene incluido con Windows.
El archivo resultante debes renombrarlo como “contents” sin extensión: Vamos a usar la aplicación HxD, un editor hexadecimal para calcular el hash del archivo contents
. Puedes abrir la aplicación y arrastrar el archivo contents
sobre ésta o de la forma tradicional desde el menú de esta herramienta. A continuación ve al menú Análisis y selecciona la opción Sumas de verificación… Al abrirse el cuadro “Generar sumas de verificación”, selecciona el algoritmo SHA-256.
El programa tardará un momento dependiendo de la longitud del archivo y te arrojará una firma única o hash que no será igual al de ninguna otra publicación. Selecciónala y dale copiar. Pega esa firma en el archivo manifest, del campo “hash”. Hemos conseguido un hash o firma formado por letras y números, tal y como lo establece este algoritmo. Pero esas letras debemos convertirlas a minúsculas.
Y listo, ahora sí tendremos un hash válido para nuestra publicación. A continuación verás algunos parámetros fáciles que puedes deducir por ti mismo. Pero aún así incluyen una breve explicación. Los valores que no tengan ninguna explicación, puedes optar por poner el mismo valor en tus archivos. Otros campos incluyen además una explicación más amplia por lo que te invito a analizarlos detenidamente.
"timestamp": "2017-02-23T16:36:56Z"
Fecha y hora de creación en la publicación en formato Año/Mes/Día
"version": 1,
"expandedSize": 48278439,
Tamaño del archivo desempaquetado (contents) en bytes.
Este campo se refiere al tamaño que ocupa la publicación una vez que se hayan descomprimido las imágenes y la base de datos. Para obtener este valor, puedes ver el tamaño del archivo (más bien carpeta contents) haciendo clic derecho sobre este y viendo las propiedades. Copiando el tamaño en bytes, asignarás un valor exacto del tamaño de tu publicación.
Estos valores pueden dejarse como están:
"contentFormat": "z-a",
"htmlValidated": false,
"mepsPlatformVersion": 2.100000,
"mepsBuildNumber": 7098,
Pasemos al siguiente bloque:
"publication": {
"fileName": "jy_E.db",
Nombre de la base de datos local.
"type": 1,
Estos serán los títulos completos y abreviados que aparecerán en el catálogo de publicaciones. Por favor respeta el siguiente formato una vez que hagas tu proyecto.
"title": "Jesus—The Way, the Truth, the Life",
"shortTitle": "Jesus—The Way",
"displayTitle": "Jesus—The Way (jy)",
"referenceTitle": "Jesus—The Way",
"undatedReferenceTitle": "Jesus—The Way",
Símbolo de la publicación sin código de idioma.
"symbol": "jy",
"uniqueEnglishSymbol": "jy",
"uniqueSymbol": "jy",
"undatedSymbol": "jy",
"englishSymbol": "jy",
"language": 0,
“0” Número de lenguaje correspondiente al idioma inglés.
"hash": "36ff59b6a914874aeb5f4e7d27e48655735db107",
Firma única o hash de la base de datos local *.db
en el algoritmo SHA-1.
Este valor se obtiene de la misma manera que el hash del archivo contents. (Revisa el procedimiento) Pero en su lugar abrirás el archivo de la base de datos (*.db con HxD y seleccionarás el algoritmo SHA-1)
"minPlatformVersion": 1,
"schemaVersion": 8,
Versión del esquema de la base de datos local.
"year": 2015,
Año en que se editó la publicación en el lenguaje local.
"issueId": 0,
"issueNumber": 0,
Número de publicación basado en la fecha de documentos mensuales o quincenales como las revistas, ministerios y Guía de Actividades. Puedes darte una idea de su formato abriendo el archivo manifest.json de alguna de estas publicaciones y replicandolas en
tus proyectos.
"variation": "",
Se modifica este valor en caso de publicaciones que hayan sido editadas para una región específica. Como Nuestro Ministerio del Reino que variaba por Sucursal. Al momento no he visto una publicación oficial usando este campo.
"publicationType": "Book",
Tipo de publicación en este caso “Libro”, puedes consultar las categorías en un articulo publico en esta wiki.
"rootSymbol": "jy",
Símbolo de la publicación base sin el código de idioma.
"rootYear": 2015,
Año en el que se editó por primera vez esta publicación, casi siempre en inglés.
"rootLanguage": 0,
Número de Idioma en la que fue editada originalmente la publicación, o idioma base. Casi siempre “0” (Inglés)
A continuación el siguiente bloque corresponde a las imágenes de presentación de la publicación. (Portadas y miniaturas por ejemplo)
"signature": "220b2bd1a7a8471b75733c39b056ad62d3666ec8:1200:1543",
Firma única en algoritmo SHA-1 más las dimensiones de la imagen.
Obtén la firma de la misma manera que con el archivo contents y el *.db
, usando el HxD y seleccionando el algoritmo SHA-1. Después a la firma resultante agrega los valores de altura y anchura de la imagen. En el caso de las imágenes tipo T (tile) puedes obtener la firma de la
imagen más grande 600×600 y repetir la firma en el resto de las imágenes del mismo tipo. Solo no olvides agregar los valores de tamaño.
"fileName": "1102014600_E_cvr.jpg",
– Nombre del archivo en formato JPG
"type": "c",
Tipo “c” (cover), le indica a la aplicación que se trata de la Portada de la publicación en la primera página. Tipo “t” (Tile) indica que es la imagen que aparecerá en las miniaturas del catálogo y las referencias.
Verás que hay otros tipos como “lsr” y “pnr” pero estas imágenes son opcionales. Ya que no son visibles al usuario. Así que no es necesario agregar imágenes de este tipo. Si más adelante JW Library se actualiza y hace uso de estos archivos podremos ampliar este tema en un futuro.
"attribute": "r",
Archivo “only-read” (solo lectura)
"width": 1200,
Anchura de la imagen en píxeles.
"height": 1543
Altura de la imagen en píxeles
Fin del bloque o ficha de la imagen. Ahora viene la parte final del archivo.
"categories": [
"bk"
],
Aquí se coloca el valor de la categoría de forma abreviada. “bk” por “book” Para ver otras categorías de las publicaciones, consulta el articulo publicado en esta wiki. El resto de los valores permanece en blanco.
Este bloque final llamado “issuesProperties” (como dije antes en JSON a este objeto con llaves o corchetes se les llama “claves”) se le agregan valores solo cuando se trata de una publicación periódica. Revisa una Guía de Actividades o revista como referencia para saber cómo debes llenar este campo.
Se cuidadoso y revisa que cada llave o corchete, así como las comas estén en su lugar, ya que una mala edición en este archivo simplemente no permitirá la instalación de tu JWPUB. Por lo que te recomiendo que siempre tengas abierta en otra pestaña un archivo manifest.json de una publicación oficial y compares mientras editas tu propio archivo.
Ya que hayas terminado de editar el archivo manifest.json no olvides guardar los cambios. Solo queda, finalizar el archivo. Recuerda que debes comprimir todos los archivos, a excepción del archivo JSON. en formato ZIP y renombrarlo a contents
. Luego comprime o empaqueta nuevamente tanto el archivo contents
como el archivo manifest en un nuevo archivo ZIP. Que renombrarás al nombre de tu publicación o proyecto con la extensión JWPUB.
¡Y listo! Ya tendrás un JWPUB hecho por ti, listo para ser instalado. ¡Enhorabuena! 👏👏👏
Esta wiki y el documento Reviw README contienen mucha información, tómese su tiempo y lea atentamente estas instrucciones.
Si tiene algún problema, puede comenzar por Getting started.
Proporcionamos cambios detallados para cada versión de Reviw.
Si tiene alguna pregunta sobre el uso de Reviw o desea compartir información con la Comunidad de Reviwers, por favor diríjase a Discussions
Es fundamental comprender el funcionamiento de un JWPUB antes de intentar crear el tuyo propio.
- Lección 1: Conociendo la estructura de un JWPUB
- Lección 2: Un vistazo a la base de datos
- Lección 3: Explicando la tabla
Document
- Lección 4: Editando un documento HTML
- Lección 5: Atributos HTML en JW Library
- Lección 6: Enlaces bíblicos
- Lección 7: Enlaces Internos y Externos en JW Library
- Lección 8:
FootNotes
Las notas a pié de página - Lección 9: Despliegue de imágenes en JW Library (política de imágenes)
- Lección 10: Editando el archivo manifest.json correctamente
- Instalar Reviw
- Manual de estilo
- Cómo seleccionar el título (convenciones y restricciones técnicas)
- Cómo empezarlo
- Cómo redactarlo
- No lo firmes (política de derechos de autor y páginas de autopromoción)
- Aloja tu JWPUB en GitHub
- Cómo solicitar los BLOB de los HTML
- Cómo incluir los BLOB en la base de datos
- Optimización y revisión final antes de su publicación
- Publicación y difusión en la comunidad
- Seguimiento y mantenimiento: actualizaciones y mejoras
- Anexo 1: Tabla
Publication
- Anexo 2: Número de índice de idioma en la tabla
MepsLanguage
- Anexo 3: Categorías de las publicaciones y atributos
- Anexo 4: Tabla
PublicationViewItem
- Anexo 5: Clasificación de publicaciones