A web-based IDE for Logic Programming.
Find a live demo at www.mat.unical.it/calimeri/projects/loide
The main goal of the LoIDE project is the release of a modular and extensible web-IDE for Logic Programming using modern technologies and languages.
A further goal of the project is to provide a web-service with a common set of APIs for different logic-based languages.
Further information can be found in the Wiki
- Syntax highlighting
- Output highlighting
- Layout and appearance customization
- Keyboard shortcuts
- Multiple file support
- Execution and Solvers options definition
- Import and Export files
These instructions will get you a copy of the project up and running on your local machine.
It only requires Node.js®
You can find the latest version of LoIDE here.
Otherwise you can clone this repository.
Remember that you can always see all the releases of LoIDE here.
Install dependencies:
npm install
Now you can run LoIDE in development or in production mode.
In this mode, LoIDE will be optimized for production.
Start the server:
npm start
Use LoIDE in a browser at:
http://localhost:3000
If you wish to run LoIDE over HTTPS, you must provide paths to certificate files in the app-config.json
file.
Then, you can start LoIDE in a browser at:
http://localhost:3001
Run LoIDE in development mode only for development and testing purposes.
Start the server:
npm run start:dev
The browser will be opened automatically LoIDE in at:
http://localhost:7000
You need a LoIDE Server API and a server executor in order to run the solvers.
If you like it, you can use our LoIDE Server API and EmbASPServerExecutor.
- Ace - The "base" of our editor
- Bootstrap - The front-end web framework used
- Clipboard.js - Used to create text boxes with copyable text
- Font Awesome Icons 4.7 - Icon set used
- jQuery and its UI Layout plugin - Used to improve the UI
- jQuery contextMenu 2 - Used for to create the context menus
- Mousetrap - Used to implement keyboard shortcuts outside the editor
- Socket.io - Used for executor server connection
- Browsersync - Used to enable the live reload on the browser
- Gulp - Used to automate and enhance the workflow with its plugins:
- gulp-nodemon - Used to monitor for any changes in the source files and automatically restart the server
- gulp-babel - Used to used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript
- gulp-clean - Used to remove files and folders
- gulp-uglify-es - Used to minify JS files
- gulp-html-minifier-terser - Used to minify HTML files
- gulp-autoprefixer - Used to add CSS prefix
- gulp-csso - Used to minify CSS files
- gulp-inject-string - Used to inject snippets in build
We use Semantic Versioning for versioning. For the versions available, see the releases on this repository.
- Stefano Germano (Founder/Maintainer)
- Eliana Palermiti
- Rocco Palermiti
- Alexander Karaulshchikov
- Giorgio Andronico
- Francesco Calimeri (Scientific Supervisor)
From the Department of Mathematics and Computer Science of the University of Calabria
This project is licensed under the MIT License