npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

editron-core

v5.2.3

Published

Editron - json-editor core functionality

Downloads

14

Readme

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