Skip to main content

MukuroL is a lightweight markup language, designed exclusively for wireframe creation using simple code.

Project description

MukuroL

MukuroL is a lightweight markup language, designed exclusively for wireframe creation using simple code. Its name carries a subtle play on "ML" (Markup Language), reflecting its minimalistic yet functional approach to structuring UI layouts.

Overview

MukuroL is a lightweight markup language designed to create wireframes using simple code. Its name reflects a playful nod to "ML" (Markup Language), embodying a minimalist yet functional approach to structuring UI layouts.

Commands

MukuroL supports the following commands:

mkl init

Initializes a new MukuroL project. Creates src and dist directories and an empty mkl.config.yml file.

Example:

python mkl.py init /path/to/project

mkl generate

Generates HTML from .mkl files. You can specify a particular file or process all files in the src directory.

Example:

  • To process a single file:
python mkl.py generate -i src/sample.mkl -o dist/sample.html
  • To process all files in the src directory:
python mkl.py generate

mkl watch

Monitors .mkl files in the src directory and automatically regenerates HTML when changes are detected.

Example:

python mkl.py watch

Example Syntax

MukuroL uses indentation to represent nested structures. The first word on each line indicates the block type, followed by attributes in the key:value format.

page title:Sample Page
    grid size:full tile:10x10
        box label:Header gpos:1-10/1 text:Header. App logo or title.
        box label:Sidebar gpos:1-3/2-10 text:Sidebar. Contains menus.
            Dashboard
            Search
            Management
            Profile
        box label:Body gpos:3-10/2-10 scroll:y
            grid tile:2x1
                box label:Form gpos:1/1 text:This is where the input form goes
                    textfield id:text label:Text: text:Enter text here cols:50
                    select id:select label:Select text:Choose something
                    textarea id:area label:Textarea: text:You can enter long text here. cols:40 rows:5
                    flex direction:row
                        radio id:radio1 label:Radio Button 1
                        radio id:radio2 label:Radio Button 2
                    flex direction:row
                        checkbox id:checkbox1 label:Checkbox 1
                        checkbox id:checkbox2 label:Checkbox 2
                    button label:Submit!
                box label:Preview gpos:2/1 text:Preview of input results
                    This is where the rendered screen is displayed.
        box label:Footer gpos:1-10/10 text:Footer.

Language Reference

page

Represents a single screen and must be the root element.

  • title: Specifies the page title.

box

A rectangular box rendered on the screen. Except for form components, wireframes are described by placing boxes.

  • id: Assigns a unique ID to the box's HTML element.
  • class: Specifies the CSS class applied to the box.
  • style: Specifies inline styles applied to the box.
  • label: Label text displayed inside the box.
  • text: Text displayed inside the box.
  • size:{NxN}: Specifies the width and height of the box in NxN format.
  • gpos:{N-N}: Specifies the position of the box within a grid in N-N format.
  • scroll:[x|y|both]: Specifies scroll behavior (x for horizontal, y for vertical, both for both directions).

textfield

A text field form component.

  • id: Assigns a unique ID to the text field's HTML element.
  • class: Specifies the CSS class applied to the text field.
  • style: Specifies inline styles applied to the text field.
  • label: Label text associated with the text field.
  • text: Placeholder text displayed in the text field.
  • cols: Specifies the width of the text field.

textarea

A textarea form component.

  • id: Assigns a unique ID to the textarea's HTML element.
  • class: Specifies the CSS class applied to the textarea.
  • style: Specifies inline styles applied to the textarea.
  • label: Label text associated with the textarea.
  • text: Placeholder text displayed in the textarea.
  • cols: Specifies the number of columns in the textarea.
  • rows: Specifies the number of rows in the textarea.

select

A select box form component.

  • id: Assigns a unique ID to the select box's HTML element.
  • class: Specifies the CSS class applied to the select box.
  • style: Specifies inline styles applied to the select box.
  • label: Label text associated with the select box.
  • text: Initial option text displayed in the select box.

radio

A radio button form component.

  • id: Assigns a unique ID to the radio button's HTML element.
  • class: Specifies the CSS class applied to the radio button.
  • style: Specifies inline styles applied to the radio button.
  • label: Label text associated with the radio button.

checkbox

A checkbox form component.

  • id: Assigns a unique ID to the checkbox's HTML element.
  • class: Specifies the CSS class applied to the checkbox.
  • style: Specifies inline styles applied to the checkbox.
  • label: Label text associated with the checkbox.

button

A button form component.

  • id: Assigns a unique ID to the button's HTML element.
  • class: Specifies the CSS class applied to the button.
  • style: Specifies inline styles applied to the button.
  • label: Label text displayed on the button.

grid

A block for grid layouts. The internal area of this block is divided into specified-sized cells, and child boxes use the gpos helper to specify their display position and size.

  • id: Assigns a unique ID to the grid's HTML element.
  • class: Specifies the CSS class applied to the grid.
  • style: Specifies inline styles applied to the grid.
  • label: Label text displayed inside the grid.
  • text: Text displayed inside the grid.
  • size:[full | NxN]: Specifies the overall size of the grid (full for full width and height, or NxN format).
  • tile:{NxN}: Specifies the arrangement of tiles within the grid in NxN format.

flex

Represents a flexbox block. Child boxes are laid out according to the flex attributes specified.

  • id: Assigns a unique ID to the flexbox's HTML element.
  • class: Specifies the CSS class applied to the flexbox.
  • style: Specifies inline styles applied to the flexbox.
  • label: Label text displayed inside the flexbox.
  • text: Text displayed inside the flexbox.
  • size:[full | NxN]: Specifies the width and height of the flexbox (full or NxN format).
  • direction:[row | column]: Specifies the direction of the flexbox (row for horizontal, column for vertical).
  • wrap:[wrap|nowrap]: Specifies whether the flexbox wraps (wrap or nowrap).
  • align:[start | center | end]: Specifies vertical alignment of items within the flexbox (start, center, end).
  • justify:[start | center | end]: Specifies horizontal alignment of items within the flexbox (start, center, end).

Ask DeepWiki

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mukurol-0.1.5.tar.gz (12.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mukurol-0.1.5-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

MukuroL-0.1.5-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file mukurol-0.1.5.tar.gz.

File metadata

  • Download URL: mukurol-0.1.5.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for mukurol-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b03384f49010807356c6eecac0e9984713220b458c4f1378b78ebcf0135f186c
MD5 e327ff012c7c1432f13a5908e510230c
BLAKE2b-256 d2c72b0d0eb2384515cdcb61994868c20297f2ec8aed87d241f560518f53f170

See more details on using hashes here.

File details

Details for the file mukurol-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: mukurol-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for mukurol-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0ab4746151acb4893c0e344711d6febde9f1b2cd1a6d4d8c914fba2d89e650a2
MD5 7e1ca92272b423a3d33a21def862ec62
BLAKE2b-256 50842bd852997a3a98188456cdc5e3e12f7bdb1adf0d642f40cc6c6235095cc0

See more details on using hashes here.

File details

Details for the file MukuroL-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: MukuroL-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for MukuroL-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 50173182f159b2f726a92b7b37abc2a93c5a8a521f4f257482639bce1962fafa
MD5 740660af9ae93ae58f1c75db5180dd4d
BLAKE2b-256 9b7e433ad91139f76406df186d9ca503dd15a11c41b59aed32e357f343e283fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page