Initial upload
This commit is contained in:
58
README.md
Normal file
58
README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Mojolicious Template Formatter
|
||||
|
||||
This Python program formats Mojolicious template files to make their structure easily understandable by humans. It properly indents HTML tags, Mojolicious commands, helper commands, and Perl constructs.
|
||||
|
||||
## Features
|
||||
|
||||
- Proper indentation of HTML tags
|
||||
- Formatting of Mojolicious command lines (% lines)
|
||||
- Proper handling of Perl code blocks
|
||||
- Special handling for Mojolicious-specific syntax (form_for, content_for, etc.)
|
||||
- Ensures space after % when required
|
||||
- Customizable indentation size
|
||||
- Smart handling of non-indenting tags (br, hr, img, input, etc.)
|
||||
- Special handling for lines with multiple closing tags
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Basic usage
|
||||
./mojo_formatter_final.py input_file.mojo > output_file.mojo
|
||||
|
||||
# Read from stdin and write to stdout
|
||||
cat input_file.mojo | ./mojo_formatter_final.py > output_file.mojo
|
||||
|
||||
# Specify custom indentation size (default is 4 spaces)
|
||||
./mojo_formatter_final.py --indent 8 input_file.mojo > output_file.mojo
|
||||
|
||||
# Show help
|
||||
./mojo_formatter_final.py --help
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
The formatter can handle various Mojolicious template constructs, including:
|
||||
|
||||
- HTML tags
|
||||
- Mojolicious command lines (% lines)
|
||||
- Perl code blocks
|
||||
- Form blocks
|
||||
- Content blocks
|
||||
- Embedded Perl expressions
|
||||
- Special HTML elements like `<br>`, `<hr>`, `<img>`, etc.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.x
|
||||
- No external dependencies required
|
||||
|
||||
## How It Works
|
||||
|
||||
The formatter uses regular expressions to identify different elements in the Mojolicious template:
|
||||
|
||||
1. Mojolicious command lines (starting with %)
|
||||
2. HTML tags
|
||||
3. Perl code blocks
|
||||
4. Special Mojolicious constructs (form_for, content_for)
|
||||
|
||||
It then applies appropriate indentation based on the nesting level of these elements, with special handling for non-indenting tags and multiple closing tags.
|
Reference in New Issue
Block a user