europa-core

6.0.0 • Public • Published

Europa Core

Europa Core is the core engine for Europa's HTML to Markdown conversion.

Build Status License Release

Install

Install using your preferred package manager. For example;

$ npm install --save europa-core

You will most likely never need to depend on europa-core directly. Instead, you will probably want to install a module that supports your desired environment. For example:

API

As this is the core of Europa, it contains all the HTML to Markdown conversion logic and, since it's designed to use the DOM as the model, all implementations need to do is provide an Environment. Although, it's typically recommended that they also ensure that europa-preset-default is also registered.

A typical implementation module of Europa Core will look something like the following:

import { Dom, Environment, EuropaCore, EuropaOptions } from 'europa-core';
import defaultPresetProvider from 'europa-preset-default';

class ExampleEnvironment implements Environment<any, any> {
  getDefaultBaseUri(): string { /* ... */ }

  getDefaultEndOfLineCharacter(): string { /* ... */ }

  getDom(): Dom<any, any, any> { /* ... */ }

  resolveUrl(baseUri: string, url: string): string { /* ... */ }
}

const _environment = Symbol();

class Europa extends EuropaCore<any, any> {
  private static readonly [_environment] = new ExampleEnvironment();

  constructor(options?: EuropaOptions) {
    super({ environment: Europa[_environment], options });
  }
}

Europa.registerPreset(defaultPresetProvider);

export default Europa;

This allows Europa Core to control the primary API and keep it consistent across all environments. With the above in place, you are free to import Europa and use it as you would anywhere else. The bulk of the complexity typically lies within implementing the Dom.

You will find the primary API documentation on one of the official Europa Core implementation packages (e.g. europa, europa-worker, node-europa). All Europa Core implementations should also reference this to help developers find the information easily. However, they are encouraged to provide environment-specific examples.

Bugs

If you have any problems with Europa Core or would like to see changes currently in development you can do so here.

Contributors

If you want to contribute, you're a legend! Information on how you can do so can be found in CONTRIBUTING.md. We want your suggestions and pull requests!

A list of Europa contributors can be found in AUTHORS.md.

License

Copyright © 2022 neocotic

See LICENSE.md for more information on our MIT license.

Package Sidebar

Install

npm i europa-core

Weekly Downloads

84

Version

6.0.0

License

MIT

Unpacked Size

231 kB

Total Files

101

Last publish

Collaborators

  • neocotic