#html #compile #language #syntax #emoji #generate-html #text-content

bin+lib emo-lan

A language that compiles emoji-based syntax into HTML

3 releases

new 0.1.2 Dec 19, 2024
0.1.1 Dec 17, 2024
0.1.0 Oct 26, 2024

#5 in #text-content

Download history 101/week @ 2024-10-24 19/week @ 2024-10-31 4/week @ 2024-11-07 1/week @ 2024-11-14 2/week @ 2024-12-05 57/week @ 2024-12-12

59 downloads per month

MIT license

8KB
141 lines

emo-lan

A programming language that uses emoji pictograms to generate HTML. Write your content using emojis, and emo-lan will compile it into clean HTML.

Features

  • 📄 Document declaration using emojis
  • 🔤 Text content support
  • 🖼️ Image embedding
  • Command-line interface
  • WebAssembly support

Syntax

Emoji Description HTML Output
📄 Document start (required) <!DOCTYPE html>
🔤text🔤 Text content <p>text</p>
🖼️alt Image with alt text <img src="url" alt="alt" />

Example

📄🔤Hello World🔤🖼️[Cute cat photo](https://example.com/cat.jpg)

Generates:

<!DOCTYPE html>
<html>
<body>
<p>Hello World</p>
<img src="https://example.com/cat.jpg" alt="Cute cat photo" />
</body>
</html>

Installation

Prerequisites

  • Rust toolchain (1.56 or later)
  • Cargo package manager

Building from Source

  1. Clone the repository:
git clone https://github.com/ryokatsuse/emo-lan
cd emo-lan
  1. Build the project:
cargo build
  1. Run tests:
cargo test

Usage

Online Playground

Try emo-lan directly in your browser using our online playground.

Command Line Interface

Create a file with .el extension and write your emo-lan code:

emo-lan input.el

The compiled HTML will be saved as output.html.

WebAssembly Integration

The library also supports WebAssembly for web browser usage.

Project Structure

  • cli/: Command-line interface implementation
  • lexer/: Tokenization and lexical analysis
  • parser/: Syntax parsing and HTML generation
  • common/: Shared types and utilities
  • src/: Core library and WebAssembly bindings

License

MIT

Author

infixer (ryokatsu0719@gmail.com)

Dependencies

~2.7–4.5MB
~80K SLoC