36 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Esolang Park
 | |
| 
 | |
| Esolang Park is an **online interpreter and debugger** catered for **esoteric programming languages**. Think Repl.it, but a more simplified version for esoteric languages, with a visual debugger catered to each language, that runs on your own device.
 | |
| 
 | |
| The goal of Esolang Park is to be a platform for esolang enthusiasts to test and debug their code more easily, as well as for other people to discover and play around with esoteric languages without leaving the browser.
 | |
| 
 | |
| For every esolang, Esolang Park provides the following features:
 | |
| 
 | |
| - Powerful Monaco code editor
 | |
| - Syntax highlighting
 | |
| - Live syntax checking in the editor
 | |
| - Set breakpoints in your code
 | |
| - Pause and step through code execution at any time
 | |
| - Adjust the speed of execution
 | |
| - View the runtime's internal state during execution
 | |
| 
 | |
| Code for the core app is **completely decoupled** from the esolang runtime - adding the runtime for a new esoteric language is just writing code that implements a standard API. This allows developers to create a development environment for an esolang without worrying about the common details of text editor, error handling, debugging and input-output.
 | |
| 
 | |
| ## Building the app
 | |
| 
 | |
| Esolang Park is a [Next.js](https://nextjs.org) application built with TypeScript. To run Esolang Park locally, you need to have a modern version of [Node.js](https://nodejs.org) installed. This project uses [Yarn](https://yarnpkg.com/) as its package manager, so you need that too.
 | |
| 
 | |
| Once you've cloned the repository locally, run the following commands and then navigate to http://localhost:3000 on your browser:
 | |
| 
 | |
| ```sh
 | |
| yarn # Install project dependencies
 | |
| yarn build:worker # Build the esolang worker scripts
 | |
| yarn dev # Run the development server
 | |
| ```
 | |
| 
 | |
| If you're interested in modifying the source code of the language providers, run `yarn dev:worker` in a separate terminal window. This starts the webpack watcher on language provider source code.
 | |
| 
 | |
| ## Adding new esolangs
 | |
| 
 | |
| If you want to add new esolangs to the project, create an issue. Or you can also implement it yourself, if you're comfortable with TypeScript and a bit of React. The wiki contains a guide to implementing a language provider for Esolang Park.
 | 
