Para dejarlo muy claro, Dockit no es como el futuro solo del ajuste de API de Node.js. También es algo que estamos lanzando a la comunidad como una especie de DocuSource que permite a la comunidad también generar su propia documentación de API. Y voy a hablar un poco más sobre eso en las siguientes diapositivas. Como mencioné, creamos una especificación que puedes leer desde este código QR. Fue elaborada a mano por Aviv Keller, uno de nuestros colaboradores. Y eso es, como mencioné, un superconjunto de common mark y tiene prácticamente todo lo que creemos que la especificación debe tener para crear una documentación de API impresionante, ya sea como, sabes, algo que el usuario está leyendo al final o simplemente como el markdown fuente. Llamo a todos los que están viendo esta charla, si están interesados en esto, creo que es una especificación bastante genial para leer.
Así que cómo lo construimos. Como mencioné, todas las herramientas que usamos, Regaxis, prácticamente para identificar la estructura del documento. Ahora mismo estamos usando AST, impulsado por el Ecosistema Unificado para prácticamente leer markdown, JS doc, TS doc, y poder analizar todos los diferentes elementos y jeroglíficos y encabezados y cualquier texto que esté dentro del markdown para generar AST que podrá separar qué es un encabezado, qué es una definición de tipo, qué son slugs, qué es como una etiqueta de inestabilidad. Como si esta clase específica está duplicada o estable o en desarrollo, también desde los metadatos YAML, referencias cruzadas, como poder mover información de MDN, etc. Es un motor muy genial que tomó mucho tiempo y mucho esfuerzo hacer porque queremos asegurarnos de que se mantenga eficiente y pueda entender prácticamente tan abstracto como sea posible ese árbol de sintaxis y seguir la especificación que hemos hecho. El código está muy bien documentado y nuevamente, siempre te animo a que mires el código fuente de Dockit si estás interesado.
La forma en que también funciona es con un sistema generador, piensa en el sistema de plugins, los generadores son lo que generan, toman una entrada y generan una salida, y dentro del pipeline, por ejemplo, para que puedas ver cuáles son ahora mismo las páginas HTML, tienes al menos cinco pasos desde el proceso inicial de ASU, recopilando los metadatos, solo para mí en JSX, luego pasando a través de un React y React con los componentes para luego el HTML final que también es 100% del lado del servidor. Por ejemplo, en esta pestaña tenías cinco generadores diferentes. El sistema generador te permite prácticamente engancharte a la fuente y prácticamente crear cualquier cosa a partir de ella, generar cualquier cosa a partir de ella. El lado técnico genial detrás de esto es la forma en que está diseñado es que los diferentes generadores, aunque son secuenciales, imagina que web es el resultado que viste en las líneas anteriores de la página rediseñada y ASC es la fuente y la forma en que están diseñados es que prácticamente trabajan en un proceso de fragmentación de rendimiento que mientras la primera parte anterior del pipeline tenga algo ya listo, lo enviará al siguiente generador, lo que te permite trabajar en un sistema basado en paralelo y también fragmentar la información. Esto es muy crítico porque cuanto más grande sea tu documentación de API, más páginas de markdown tengas, más fuente tengas, más grande será tu AST y más querrás beneficiarte del multihilo, la fragmentación y todas las increíbles características de paralelismo de Node.js. Así que Dockit irónicamente utiliza las mejores características que tienes en Node.js para crear documentación de API de Node. Y como mencioné, esto no es solo para Node, la especificación está abierta y ahora mismo ya estamos usando Dockit como primeros adoptantes dentro de Webpack para generar la próxima generación de documentación de API de Webpack. Tenemos un proyecto dentro de Google Surmerge Code que tiene como objetivo también tener estudiantes trabajando en él y mejorando Dockit y también lo estamos usando en diferentes repositorios dentro de Node, no solo más con la documentación de API, sino también con los materiales de aprendizaje que tenemos en node.js.org slash learn. Y lo genial es que Dockit se está usando ahora mismo dentro de node.js.org slash API.
Comments