NamPNQ / node-libzim

Binding to libzim, read/write ZIM files in Javascript

Home Page:https://www.npmjs.com/package/@openzim/libzim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-libzim

This is the Node.js binding to the libzim. Read and write ZIM files easily in Javascript.

npm Build Status codecov CodeFactor License: GPL v3

Dependencies

This package relies on node-addon-api / n-api.

On GNU/Linux & macOS, the package will download a libzim binary. On other OSes you will need to install libzim separately (see here).

Usage

npm i openzim/libzim

Writing a Zim file

// write.js
const { ZimArticle, ZimCreator } = require("@openzim/libzim");

(async () => {

    console.info('Starting');
    const creator = new ZimCreator({ fileName: 'test.zim' }, { welcome: 'index.html' });

    for (let i = 100; i > 0; i--) {
        const a = new ZimArticle({ url: `file${i}`, data: `Content ${i}` });
        await creator.addArticle(a);
    }

    const welcome = new ZimArticle({ url: `index.html`, data: `<h1>Welcome!</h1>` });
    await creator.addArticle(welcome);

    await creator.finalise();

    console.log('Done Writing');

})();

Reading a Zim file

// read.js

const { ZimArticle, ZimReader } = require("@openzim/libzim");

(async () => {

    const zimFile = new ZimReader(path.join(__dirname, '../test.zim'));

    const suggestResults = await zimFile.suggest('laborum');
    console.info(`Suggest Results:`, suggestResults);

    const searchResults = await zimFile.search('rem');
    console.info(`Search Results:`, searchResults);

    const readArticleContent = await zimFile.getArticleByUrl('A/laborum');
    console.info(`Article by url (laborum):`, readArticleContent);

    await zimFile.destroy();

})();

License

GPLv3 or later, see LICENSE for more details.

About

Binding to libzim, read/write ZIM files in Javascript

https://www.npmjs.com/package/@openzim/libzim

License:GNU General Public License v3.0


Languages

Language:C++ 82.1%Language:TypeScript 12.1%Language:JavaScript 3.0%Language:Python 1.7%Language:Shell 1.1%