Giter Site home page Giter Site logo

agronkabashi / templateengine Goto Github PK

View Code? Open in Web Editor NEW
44.0 10.0 34.0 2.75 MB

Design and build web applications with components using only your web browser

License: MIT License

JavaScript 67.51% CSS 17.39% HTML 15.09%
angular javascript template-engine webcomponents grunt editor web-editor iife

templateengine's Introduction

TemplateEngine

TemplateEngine is a web component templating framework that helps you build web applications using only your browser! Include it in your projects to replace your editing tool or create something more awesome based on it.

Demo: http://agronkabashi.github.io/TemplateEngine/

Sizes

This includes markup and default components.

Size (KB) Gzipped (KB)
TemplateEngine 25.2 8.4
TemplateEditor 58.1 14.6

Dependencies

  • jQuery (TemplateEditor)
  • jQuery UI (TemplateEditor)
  • Custom lodash build
  • AngularJS

How to Get Started

Download and install NodeJS

$ npm install -g grunt-cli                                      // Install Grunt globally
$ git clone https://github.com/AgronKabashi/TemplateEngine.git  // Clone the project and enter directory
$ cd TemplateEngine
$ npm install                                                   // Install dependencies
$ grunt                                                         // Run the default task

Build targets

grunt build             // Pre-cleaning and compilation of js, sass and templates
grunt release-build     // Same as build + minification and obfuscation
grunt default           // Runs build target and hosts a webserver with live reload
grunt release           // Runs build target and hosts a webserver
grunt eslint            // Runs linting
grunt test              // Run unit/e2e tests

Creating your own components

Check the Wiki for details about how to create your own components.

templateengine's People

Contributors

agronkabashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

templateengine's Issues

Customize a resolution with device-specific rules

Make it possible to add device-specific rules for a resolution. For instance, a resolution of 640px will be shown on devices with max-width: 640px by default. By allowing the user to attach special rules to a resolution such as pixel-ratio and device-width, he/she can target specific devices.

Look into creating an Angular 2 version

Look into Angular 2 and determine wether it is feasible to port this project.

  • How will plugins be loaded? It seems that directives need to have an explicit include.
  • Performance? Start using unidirectional flow?
  • Make use of Rxjs since it's a required library?

Optimize TemplateEngine & TemplateEditor

  • Reduce markup generated
  • Reduce # of requests. This means moving away from requirejs for loading internals. TemplateEngine&Editor modules should however still be requirable from other applications.
  • Decrease code complexity by refactoring certains parts into using 3rd party libraries such as lodash
  • jQuery UI is starting to become a burden. Consider replacing with something else or simply implement the necessary features (only draggable/resizable needed currently)
  • Convert TemplateEditor into a standalone module so it can be used from other modules
  • Decrease overall watch count
  • Re-design property pane in TemplateEditor
  • Conform to more common Javascript code formatting
  • Add linting to build step
  • Process html templates and generate templateCache calls during build to reduce requests

Branch: optimize-templateengine-#26

Create Gmail components

Create Gmail components for building an email application.

  • Google API
  • Gmail Label List - Lists folders (system & user)
  • Gmail Message List - Lists messages in a specific folder
  • Gmail Message - Shows email content
  • Gmail Authorize - For authorizing the application to access Gmail API
  • Add a template preset for quickly testing functionality

Introduce resolution slider for height

Just like there's one for width, introduce one for height. The height resolutions should only apply for the current resolution. By doing this we can generate media queries that target components for a specific width * height resolution.

Might want to implement #4 for heights as well.

Add version control

Allow users to create different versions of a template and choose which one that should be published.

  • Introduce a new field for storing the template's internal id. Fetching by the template's public id should return the published version.
  • Fetching a template by the internal id should require authentication.

Show a helper with the necessary info when dragging/resizing

When dragging/resizing a control the action might seem a bit unresponsive due to realtime updates to templatecontrolproperties. Instead, show a ghost-helper with the necessary info and trigger OnTemplateControlUpdate only when the action has completed.

Improve UX design in property pane.

It appears too cluttered due to the vast amount of css properties.
Ideas:

  • alternating colors for panels
  • no inputs - less visible
  • specific colors for panels/groups
  • collapsible panels/groups
  • labels inside input fields - move up when containing data
  • search on top for filtering properties
  • add panels/groups dynamically, i.e if you are interested in setting a background color then include the background panel

Other examples:
image

Quick-copy properties

Users must be able to copy properties quickly from one control to another.
Things to think about:

  • "Shelve" in memory so they can be injected
  • Store single properties, whole section or all properties?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.