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.1.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

mukurol-0.1.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mukurol-0.1.1.tar.gz
  • Upload date:
  • Size: 12.3 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.1.tar.gz
Algorithm Hash digest
SHA256 3ef8eea5f1a9aeac787bb80037b35b1b29e5baaf1bde42185bf596c1a1fef701
MD5 02fec1ef8658db239d66fc24c0bf72dd
BLAKE2b-256 e8ff3564547a9251aa98baada9278d8a1c29e2e0e347db687426d6785dae0fe2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mukurol-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a9583f3b0b7621d9f70741745a6326cc900d73a725b40d2832d385bde7d0f16
MD5 5800cae2a40e1c283f8a3df307727bd9
BLAKE2b-256 626f610cdfce42726c66311dad4408f723df2dbdeb56db5151ea0cc26c1c1b13

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