
Get Started
Korok is a library for creating a system displayed by config configurable pages and components. Korok could make the pages and components be configured and arranged with the data which is provided by server or other storage units.
Background story: 配置化页面渲染系统设计和实践 (Chinese)
PS: The name Korok is inspired by the game The Legend of Zelda.
Why using Korok?
Korok is original built for a Businese Analytics project (like Metabase). The pages in this kind of project are always created by some math guys without any JavaScript skills. So we have to make the system easy to read and easy to edit.
So korok is created to make the front-end system like a LEGO project. We can build some common components for other guys to use and build the pages.
// Configure // Hello-card+-------------------+| || || Hello $ || || |+-------------------+ // Render+---------------------------+-------------------+| | || | || Hello Foo! | Hello Bar! || | || | |+---------------------------+-------------------+
Installation
You can install Korok by NPM or Yarn.
# NPM $ npm install korok-core# Yarn $ yarn add korok-core
Example
Simple React DEMO.
// Register Regular PropKorok // Define a card named `hello-card`Component { superprops thiskorok = 'hello-card' } { const span = thiskorok || 1 const target = thiskorok return <div className="hello-card" style= width: span * 150 + 'px' > Hello target! </div> } Korok // Page config loaded from serverconst cardsConfig = "key": "hello-card" "props": "span": 2 "target": "Foo" "key": "hello-card" "props": "span": 1 "target": "Bar" // Rendering pageComponent { const cards = cardsConfig return cards } const rootElement = document
Live DEMO
License
Copyright (c) 2019 Will Wen Gunn(willwengunn@gmail.com) All rights reserved.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.