Coder Social home page Coder Social logo

imba-guide's Introduction

โ›” [DEPRECATED] Please use https://github.com/imba/imba.io

Imba guide

This is a quick guide to the Imba language and web development platform.

Imba is a general purpose programming language that compiles to JavaScript and is optimized for writing performant front end web applications.

Requirements

System packages:

  • Python (for documentation generator)
  • NodeJS (for the playground)

Install the dependencies for the Sphinx documentation generator:

  • Go into the repository directory
  • Run pip install -r requirements.txt

Install the dependencies for the playground:

  • Go into the repository directory
  • Run npm install

Quick start

To build the documentation, go to the project directory and run npm run build:docs.

The compiled documentation should be present in site/index.html. Open that file in your browser.

You can also read the source Markdown files directly.

Using the playground

The playground is a simple Imba module that is set up to compile using Webpack. The idea is to open the compiled code and the source side-by-side and compare the source to the output.

To start the automatic compilation, run npm run watch. The compiled JavaScript will appear in dist/client.js.

To start the development web server, run: npm run start.

NOTE: The development server will not compile your playground code into dist/client.js, so if you wish to keep track of the compiler output, you should run both watch and start scripts

Directory structure

  • docs/ - documentation source (index.md is the starting point)
  • build/ - generated HTML for the documentation (appears after running npm run build:docs)
  • code/ - playground code
  • dist/ - compiled JavaScript for the playground

Contributing

If you wish to contribute to this project, you may find it helpful to know that the project uses MkDocs. The npm run watch:docs command will spin up a local server on port 8000 that will update as you edit.

Publishing the docs on GitHub Pages

The documentation is published to GitHub Pages with npm run gh-publish.

imba-guide's People

Contributors

aalemayhu avatar

Stargazers

 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

imba-guide's Issues

Bonus sections

Bonus sections should be about the language itself, not concrete development tasks.

Finish Level 2

  • Modules
  • Classes
  • Tags
  • Async
  • Global (hmmmm...)
  • List comprehensions

Level 3?

Level 3 should be about architectural patterns for different Imba apps and cookbook-style articles in general. Some of this is already targeted for the 'bonus' section, but maybe just move them into level 3 instead.

Add ability to execute examples

Add a button to execute the example snippets and see the results. Perhaps even make the examples editable on the spot? Maybe a shortcut to load the example into Scrimba?

Document kebab case

This should go into Level 1, probably right after comments. Just need to figure out what else should go into the same section.

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.