🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

fleetvue

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fleetvue

A Vue.js-like templating engine using Jinja2 for Python

pipPyPI
Version
0.1.2
Maintainers
1

FleetVue

A powerful Vue.js-like templating engine for Python using Jinja2. FleetVue brings the familiar Vue.js syntax to Python while leveraging the robust features of Jinja2.

Features

  • Vue.js-like template syntax with p- directives
  • Full Jinja2 template engine capabilities
  • Support for async rendering
  • Sandboxed environment for security
  • BeautifulSoup4 for HTML parsing
  • Template caching for better performance
  • Custom filters support

Installation

pip install fleetvue

Quick Start

from fleetvue import render_template

template = """
<div p-if="show">
    <p p-text="message"></p>
</div>
<ul>
    <li p-for="item in items" p-key="item.id">{{ item.name }}</li>
</ul>
"""

data = {
    'show': True,
    'message': 'Hello, World!',
    'items': [{'id': 1, 'name': 'Item 1'}, {'id': 2, 'name': 'Item 2'}]
}

output = render_template(template, data)
print(output)

Available Directives

  • p-if: Conditional rendering
  • p-else-if: Alternative condition
  • p-else: Fallback content
  • p-for: List rendering
  • p-key: Unique key for list items
  • p-bind: Dynamic attribute binding
  • p-text: Text content binding
  • p-html: HTML content binding
  • p-show: Conditional display
  • p-on: Event handling
  • p-model: Two-way data binding
  • p-pre: Skip compilation
  • p-once: Render once
  • p-cloak: Hide until compiled

Advanced Usage

Custom Engine Configuration

from fleetvue import VueJinjaEngine

# Create a custom engine instance
engine = VueJinjaEngine(
    sandboxed=True,  # Use sandboxed environment for security
    enable_async=True  # Enable async support
)

# Add custom filters
engine.env.filters['uppercase'] = lambda x: str(x).upper()

# Use the engine
template = '<h1 p-text="title | uppercase"></h1>'
data = {'title': 'Hello World'}
output = engine.render_template(template, data)

Async Rendering

import asyncio
from fleetvue import VueJinjaEngine

async def main():
    engine = VueJinjaEngine(enable_async=True)
    template = '<div p-text="message"></div>'
    data = {'message': 'Hello World'}
    output = await engine.render_template_async(template, data)
    print(output)

asyncio.run(main())

Sandboxed Environment

from fleetvue import VueJinjaEngine

engine = VueJinjaEngine(sandboxed=True)
output = engine.render_template(template, data)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Vishnu Prasad - GitHub

Acknowledgments

Keywords

vue

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts