paint-brush
Un generador de bibliografía a partir de marcadores del navegador: cómo funcionapor@bobnoxious
1,293 lecturas
1,293 lecturas

Un generador de bibliografía a partir de marcadores del navegador: cómo funciona

por Bob Wright5m2023/11/27
Read on Terminal Reader

Demasiado Largo; Para Leer

Un generador de bibliografía simple utiliza un archivo de marcadores del navegador como contenido fuente. La base de datos en sí es en realidad un archivo objeto JSON que podemos guardar y usar localmente. Esto me da el mismo conjunto de marcadores en Chrome, Edge y Firefox, por ejemplo, sin que el navegador guarde los datos de mis marcadores. Editamos la carpeta de marcadores para extraer los únicos marcadores que queremos usar.
featured image - Un generador de bibliografía a partir de marcadores del navegador: cómo funciona
Bob Wright HackerNoon profile picture
0-item

Un generador de bibliografía simple que utiliza un archivo JSON Browser Bookmarks como contenido fuente.

Requisitos previos y código

El primer requisito para el funcionamiento del generador de bibliografía es una fuente de datos de contenido que consiste en un objeto JSON creado por una aplicación de administrador de marcadores del navegador llamada xbrowserSync . Esta aplicación es un administrador de marcadores independiente del navegador que consta de dos partes.


Una parte es una extensión del navegador y la otra es una API del servidor que administra los datos de los marcadores como un archivo de datos MongoDB . Todo lo que necesitamos saber sobre la API del servidor es su URL. La extensión del navegador se puede encontrar en “tiendas” de aplicaciones en línea como Google Play para el navegador Chrome.


La idea básica es que la aplicación xbrowserSync almacene los datos de sus marcadores en una base de datos cifrada que se almacena en el servidor API. La base de datos en sí es en realidad un archivo objeto JSON que podemos guardar y usar localmente, y que puede ser usado por cualquier navegador que tenga nuestra extensión de aplicación correctamente instalada.


Esto me da el mismo conjunto de marcadores en Chrome, Edge y Firefox, por ejemplo, sin que el navegador guarde los datos de mis marcadores. La aplicación y la fuente API para xbrowserSync se encuentran cada una en un repositorio de GitHub.


El segundo requisito para el generador de bibliografía es su código de programa que se ejecuta en node.js en una ventana de comandos en mi máquina con Windows 10 . A continuación se muestra este programa de nodo simple llamado handler.js .

 #!/usr/bin/env node // --------------------------------- // Simple bibliography file handler Node Server API // --------------------------------- const fs = require('fs') const path = require('path') //const dn = require('./dirname'); var filePath = './bibliotest.json'; //the biblio bookmark file var biblio = ''; var str = ''; var searchValue = 'url:'; // -------------- // read and parse biblio JSON file // ---------------- const jsonReader = () => { return new Promise(resolve => { str = fs.readFile(filePath, (err, fd) => { object = JSON.parse(fd); str = object.children; // strip outer layer biblio = str; // count biblio array elements count = biblio.length; resolve (str); //return str; }) }) } // async function performAsyncFunctions(){ // list of promises to execute sequentially const firstRequest = await jsonReader(); //console.log('\nAll tasks complete.'); console.log('==== function complete ====\n') console.log('count = ', count) var html = '<html><lang = en><head></head><body>'; for (let i = 0; i < count; i++) { html = html + '<h3><i>id'+[i]+':</i>&nbsp;<a href='+biblio[i].url+'>'+biblio[i].title+'</a></h3><p>'+biblio[i].description+'</p>\n'; } html = html + '</body></html>'; console.info(html); const content = html try { const data = fs.writeFileSync('./bibliotest.html', content) //file written successfully } catch (err) { console.error(err) }} // --------------- performAsyncFunctions(); // console.log('biblio = ', object) // ------------------


El archivo de marcador en formato JSON

Desde el menú de extensión del navegador xbrowserSync , podemos optar por guardar una copia de seguridad de los datos de nuestros marcadores. La copia de seguridad se guarda como un archivo JSON. Para nuestro ejemplo aquí, todos los marcadores están en una carpeta de marcadores llamada "MuskArticle".


Editamos el JSON de marcadores para extraer solo la carpeta de marcadores que queremos usar en nuestra bibliografía. Este archivo JSON se muestra a continuación.

 { "title": "__MuskArticle", "children": [ { "title": "Musk's X caught throttling outbound links to websites he doesn't like", "url": "https://www.msn.com/en-us/news/technology/musk-sx-caught-throttling-outbound-links-to-websites-he-doesn-t-like/ar-AA1fmbYw?ocid=windirect&cvid=3ff1100b6fba4172b3b0b8b9c6bbc7e0&ei=185", "description": "Elon Musk claims that he bought Twitter, now called X, to preserve free speech. He claimed that everyone's voice should be heard. This is a great thing for free speech and must surely be a coincidence, right? Elon Musk's X was this week caught throttling outbound links to several sites, coincidentally ones that the billionaire has complained about or feuded with in the past.… Links directing users of the website formerly…", "id": 6643 }, { "title": "Mark Cuban takes another jab at Elon Musk's business practices", "url": "https://www.msn.com/en-us/money/companies/mark-cuban-takes-another-jab-at-elon-musk-s-business-practices/ar-AA1fmrNQ?ocid=windirect&cvid=528ef4be846842fa87342b96d92d0dfa&ei=35", "description": "These two billionaires are not best buds.", "id": 6664 }, { "title": "Twitter now makes you PAY to access one of its most popular features", "url": "https://www.msn.com/en-us/money/technology/twitter-now-makes-you-pay-to-access-one-of-its-most-popular-features/ar-AA1flk5Y?ocid=windirect&cvid=ee4ba03e4c414849a910c7f25dbfd759&ei=27", "description": "X (formerly Twitter) has started diverting users to a paid-subscription sign-up page when they try to access TweetDeck.", "id": 6665 }, { "title": "NYU Professor Locked Out of Twitter After Reportedly Declining to Meet With Elon Musk", "url": "https://www.msn.com/en-us/news/technology/nyu-professor-locked-out-of-twitter-after-reportedly-declining-to-meet-with-elon-musk/ar-AA1fmedB?ocid=windirect&cvid=a7973a74a0d24f2287ea421bbd70f5ea&ei=42", "description": "New York University professor and Kara Swisher's podcasting buddy Scott Galloway voiced his outrage at being banned from posting on Twitter in a Threads post on Tuesday. Galloway claims he's been locked out of Twitter (aka X) two days after allegedly declining an invitation to meet with the chief…", "id": 6666 }, { "title": "A federal judge wondered if Elon Musk was trying to 'cozy up' to Trump by trying to inform him about a search warrant into his social media account", "url": "https://www.msn.com/en-us/news/politics/a-federal-judge-wondered-if-elon-musk-was-trying-to-cozy-up-to-trump-by-trying-to-inform-him-about-a-search-warrant-into-his-social-media-account/ar-AA1flSZV?ocid=windirect&cvid=ee4ba03e4c414849a910c7f25dbfd759&ei=51", "description": "In January, federal prosecutors obtained a search warrant to obtain information from Trump's personal Twitter account.", "id": 6667 } ] }


El archivo de bibliografía

Si enviamos el archivo JSON anterior a nuestro programa controlador node.js , generará la siguiente lista de bibliografía en formato HTML.


Conclusión

Entonces, hemos visto cómo podemos aprovechar el uso de xbrowserSync como administrador de marcadores para generar bibliografías a partir de los datos de nuestros marcadores. Gracias por leer y espero que esta información te sea útil. Como siempre, comentarios, sugerencias y críticas son bienvenidos.