Skip to content

Jegstudio/gutenverse-core

Repository files navigation

Gutenverse Core Documentation

Table of contents


Important Notes

Environments

Please use this version of node and npm in case higher versions are not compatible.

  • node : v14.20.1
  • npm : 6.14.17

Frameworks

Any hooks before init and using init will not be triggered inside the framework. This is because the framework is initialized using the init hook it self.


Get Started

Project Setting

jsconfig.json

{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "gutenverse-core/*": ["./gutenverse-core/src/*"],
        }
    },
}

.eslintrc.json

{
    "env": {
        "browser": true,
        "node": true,
        "es6": true
    },
    "rules": {
        "react/react-in-jsx-scope": "off",
    }
}

Building JS & CSS files

Open the gutenverse-core root folder in terminal and do npm install and then either npm start for development or npm run build for production.

Include framework files

Symlink or include folder framework in gutenverse-core to the plugin folder, then add below codes inside your plugin php file.

defined( 'GUTENVERSE_FRAMEWORK_URL' ) || define( 'GUTENVERSE_FRAMEWORK_URL', plugins_url( GUTENVERSE ) . '/lib/framework' );

Hooks References

Hook Type Usage
gutenverse_after_init_framework action Executed after frameworks have been initialized
gutenverse_check_update action Executed after meta option has been initialized
gutenverse_include_block action Enqueue scripts (js/css) inside the editor
gutenverse_include_dashboard action Enqueue scripts (js/css) inside the dashboard
gutenverse_include_frontend action Enqueue scripts (js/css) inside the frontend
gutenverse_setting_toolbar action Admin toolbar settings
gutenverse_column_style action Add additional column styles
gutenverse_section_style action Add additional section styles
gutenverse_block_config filter Add additional config for GutenverseConfig object inside the editor
gutenverse_dashboard_config filter Add additional config for GutenverseDashboard object inside the dashboard

Packages

Animation

import example :

import * from 'gutenverse-core/animation';

package inside window object : gutenverseCore.animation


Assets

import example :

import * from 'gutenverse-core/assets';

package inside window object : gutenverseCore.assets


Backend

import example :

import * from 'gutenverse-core/backend';

package inside window object : gutenverseCore.backend


Blocks

import example :

import * from 'gutenverse-core/blocks';

package inside window object : gutenverseCore.blocks


Components

import example :

import * from 'gutenverse-core/components';

package inside window object : gutenverseCore.components


Config

import example :

import * from 'gutenverse-core/config';

package inside window object : gutenverseCore.config


Controls

import example :

import * from 'gutenverse-core/controls';

package inside window object : gutenverseCore.controls


Dashboard

import example :

import * from 'gutenverse-core/dashboard';

package inside window object : gutenverseCore.dashboard


Data

import example :

import * from 'gutenverse-core/data';

package inside window object : gutenverseCore.data


Editor Helper

import example :

import * from 'gutenverse-core/editor-helper';

package inside window object : gutenverseCore.editorHelper


Externals

import example :

import * from 'gutenverse-core/externals';

package inside window object : gutenverseCore.externals


Frontend

import example :

import * from 'gutenverse-core/frontend';

package inside window object : gutenverseCore.frontend


Helper

import example :

import * from 'gutenverse-core/helper';

package inside window object : gutenverseCore.helper


Higher Order Components

import example :

import * from 'gutenverse-core/hoc';

package inside window object : gutenverseCore.hoc


Hooks

import example :

import * from 'gutenverse-core/hooks';

package inside window object : gutenverseCore.hooks


Icons

import example :

import * from 'gutenverse-core/icons';

package inside window object : gutenverseCore.icons


Requests

import example :

import * from 'gutenverse-core/requests';

package inside window object : gutenverseCore.requests


Router

import example :

import * from 'gutenverse-core/router';

package inside window object : gutenverseCore.router

Components :

  • Routing : Which is the root component that you will use to wrap your components. It will pass two props (location & updateLocation) to the children component.

  • Link : Which you will use to navigate/change the location variable. This component receive 5 variables:

    • location, data auto provided by the store, you don't need to change it.
    • updateLocation, data auto provided by the store, you don't need to change it.
    • to, an object contain two parameters (pathname & search)
    • className, a custom class name string
    • children, child components wrapped by Link

Variables :

  • location : contain two sub-variables (pathname & search)
  • updateLocation : function for updating the location variable, receive location variable.

Store

import example :

import * from 'gutenverse-core/store';

package inside window object : gutenverseCore.store

First you need to import the store you want to use in the root component, so it will initialize the store. After that, you can call the store by using select/dispatch. Below are the store name list:

gutenverse/blocklist

is used to handle block list data

example:

select('gutenverse/blocklist').getList()

gutenverse/global-style

is used to handle global variable data

example:

select('gutenverse/global-style').getVariable()

gutenverse/library

is used to handle library data

example:

select('gutenverse/library').getLibraryData()

gutenverse/router

this store already auto included when you use the Routing component, but if you need to modify it you can use this store name.

example:

select('gutenverse/router').getLocation()

Toolbars

import example :

import * from 'gutenverse-core/toolbars';

package inside window object : gutenverseCore.toolbars


Util

import example :

import * from 'gutenverse-core/util';

package inside window object : gutenverseCore.util

About

Core framework for Gutenverse plugins ecosystem

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors