paint-brush
Ein Bibliographie-Generator aus Browser-Lesezeichen: So funktioniert esvon@bobnoxious
1,302 Lesungen
1,302 Lesungen

Ein Bibliographie-Generator aus Browser-Lesezeichen: So funktioniert es

von Bob Wright5m2023/11/27
Read on Terminal Reader

Zu lang; Lesen

Ein einfacher Bibliografiegenerator verwendet eine Browser-Lesezeichendatei als Quellinhalt. Die Datenbank selbst ist eigentlich eine JSON-Objektdatei, die wir möglicherweise lokal speichern und verwenden. Dadurch erhalte ich zum Beispiel die gleichen Lesezeichen für Chrome, Edge und Firefox, ohne dass der Browser meine Lesezeichendaten speichert. Wir bearbeiten den Lesezeichenordner, um die einzigen Lesezeichen zu extrahieren, die wir verwenden möchten.
featured image - Ein Bibliographie-Generator aus Browser-Lesezeichen: So funktioniert es
Bob Wright HackerNoon profile picture
0-item

Ein einfacher Bibliografiegenerator, der eine JSON-Browser-Lesezeichendatei als Quellinhalt verwendet.

Voraussetzungen und Code

Die erste Voraussetzung für den Betrieb des Bibliographiegenerators ist eine Quelle seiner Inhaltsdaten, die aus einem JSON-Objekt besteht, das von einer Browser-Lesezeichen-Manager-Anwendung namens xbrowserSync erstellt wurde. Diese Anwendung ist ein browserunabhängiger Lesezeichen-Manager in zwei Teilen.


Ein Teil ist eine Browsererweiterung und der andere Teil ist eine Server-API, die die Lesezeichendaten als MongoDB- Datendatei verwaltet. Alles, was wir über die Server-API wissen müssen, ist ihre URL. Die Browsererweiterung ist in Online-App-Stores wie Google Play für den Chrome-Browser erhältlich.


Die Grundidee besteht darin, dass die xbrowserSync- Anwendung Ihre Lesezeichendaten in einer verschlüsselten Datenbank speichert, die auf dem API-Server gespeichert ist. Die Datenbank selbst ist eigentlich eine JSON-Objektdatei, die wir möglicherweise lokal speichern und verwenden und die von jedem Browser verwendet werden kann, in dem unsere Anwendungserweiterung entsprechend installiert ist.


Dadurch erhalte ich beispielsweise die gleichen Lesezeichen für Chrome, Edge und Firefox, ohne dass der Browser meine Lesezeichendaten speichert. Die APP und die API-Quelle für xbrowserSync befinden sich jeweils in einem GitHub-Repository.


Die zweite Voraussetzung für den Bibliographiegenerator ist sein Programmcode, der unter node.js in einem Befehlsfenster auf meinem Windows 10- Computer ausgeführt wird. Im Folgenden finden Sie dieses einfache Knotenprogramm mit dem Namen 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) // ------------------


Die Lesezeichendatei im JSON-Format

Im xbrowserSync- Browsererweiterungsmenü können wir wählen, ob wir eine Sicherungskopie der Daten unserer Lesezeichen speichern möchten. Das Backup wird als JSON-Datei gespeichert. In unserem Beispiel hier befinden sich alle Lesezeichen in einem Lesezeichenordner mit dem Namen „MuskArticle“.


Wir bearbeiten die Lesezeichen-JSON, um nur den Lesezeichenordner zu extrahieren, den wir in unserer Bibliographie verwenden möchten. Diese JSON-Datei wird hier unten angezeigt.

 { "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 } ] }


Die Bibliographiedatei

Wenn wir die obige JSON-Datei an unser Node.js- Handlerprogramm senden, wird die folgende Bibliografieliste im HTML-Format generiert.


Abschluss

Wir haben also gesehen, wie wir xbrowserSync als Lesezeichen-Manager nutzen können, um Bibliografien aus unseren Lesezeichendaten zu erstellen. Vielen Dank fürs Lesen und hoffe, dass diese Informationen für Sie nützlich sind. Kommentare, Anregungen und Kritik sind wie immer willkommen.