5.2.3 • Published 6 years ago

editron-core v5.2.3

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

Very customizable, extendable, fast and hackable json-editor (like jdorn/json-editor), to build your data-input-interface based on a json-schema

Editron Core

This is the core of the editron editor. It may be used to build a custom application (instead of using the default editron application).

This is the base for building a complete editron json-editor. Its Controller may be used to setup one or many input-forms, based on nested editors for each input-data. The core and the main app are still under development and the api has not yet settled. Still, it is flawlessly used in production for a CMS at the Süddeutsche Digitale Medien GmbH.

Features

  • Full json-schema draft04 support
  • Basic editors supporting objects, arrays, checkboxes, oneOf-selection, textarea, input and selections
  • Additional editors currently available
    • editron-wysiwyg-editor
    • editron-script-editor
    • editron-overview-navigation
  • inline-validation
  • undo/redo
  • display only a specific data pointer or switch them, using json-pointer-syntax
  • collaborative editing using editron-sync-service
  • optional styles, supporting custom styling
  • customizable translations and error-messages
  • add custom editors (aka widgets)
    • basically independent of any frameworks (mithriljs is used internally)
    • access to all methods
    • very flexible editors (requiring some knowledge of implementation details)
    • build-helpers and integration tests
    • independent builds, which enables simple plug&edit through an include-script

Installation

npm i editron-core --save

Add the required fonts and rendering dependencies to your website

<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mithril/1.1.3/mithril.min.js"></script>

And add the editron-core modules and their export (paths depend on your build-setup):

<link rel="stylesheet" href="../node_modules/editron-core/dist/editron-core.css">
<script type="text/javascript" src="../node_modules/editron-core/dist/editron-modules.js"></script>
<script type="text/javascript" src="../node_modules/editron-core/dist/editron-core.js"></script>

Usage

editron-core.js exposes a global object editronCore to the window object, which may be accessed to retrieve the main Controller, which is the basis of an editron-editor:

    // and create a new editor instance (referencing a unique json-schema and data)
    const controller = new editronCore.Controller(myJsonSchema, myJsonData);
    // create the editor within the selected DOM-Element
    const main = controller.createEditor("#", document.querySelector("#editor"));

    // create another form for the data-point at { header: ... }
    const header = controller.createEditor("#/header", document.querySelector("#editor-header"));

    // receive a notification when the data has changed
    controller.data().observe("#", (event) => {
        console.log("data has changed to", controller.data().get());
    });

    // access services for further functionality
    const dataService = editor.data();
    const schemaService = editor.schema();
    const validationService = editor.validator();

for details on the services checkout json-schema-services

Build your own application using webpack

You may also build a custom application using webpack. Following the build steps of webpack.build.js should answer most questions.

const Controller = require("editron-core").Controller;

// follow usage explanation above
5.2.3

6 years ago

5.2.2

6 years ago

5.2.1

6 years ago

5.2.0

6 years ago

5.1.0

6 years ago

5.0.3

6 years ago

5.0.2

6 years ago

5.0.1

6 years ago

5.0.0

6 years ago

4.0.1

7 years ago

4.0.0

7 years ago

3.6.1

7 years ago

3.6.0

7 years ago

3.5.1

7 years ago

3.5.0

7 years ago

3.4.0

7 years ago

3.3.3

7 years ago

3.3.2

7 years ago

3.3.1

7 years ago

3.3.0

7 years ago

3.2.1

7 years ago

3.2.0

7 years ago

3.1.0

7 years ago

3.0.0

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.3

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.0

7 years ago