whyml

WhyML - Modular YAML Manifest Ecosystem

 ██╗    ██╗██╗  ██╗██╗   ██╗███╗   ███╗██╗     
 ██║    ██║██║  ██║╚██╗ ██╔╝████╗ ████║██║     
 ██║ █╗ ██║███████║ ╚████╔╝ ██╔████╔██║██║     
 ██║███╗██║██╔══██║  ╚██╔╝  ██║╚██╔╝██║██║     
 ╚███╔███╔╝██║  ██║   ██║   ██║ ╚═╝ ██║███████╗
  ╚══╝╚══╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝     ╚═╝╚══════╝

🏗️ Transform websites into maintainable YAML manifests and generate multi-format applications

Python License Tests Coverage Modular

🚀 Quick Start

# Install WhyML ecosystem
pip install whyml whyml-cli whyml-core whyml-converters whyml-scrapers

# Scrape a website to YAML manifest
whyml scrape https://example.com -o data/manifest.yaml

# Convert to multiple formats
whyml convert data/manifest.yaml --format html -o output.html
whyml convert data/manifest.yaml --format react -o Component.tsx
whyml convert data/manifest.yaml --format vue -o Component.vue

📖 Complete Installation Guide →

📚 Documentation

🏁 Getting Started

📋 Core Documentation

🏗️ Modular Architecture

WhyML is built as a modular ecosystem of specialized packages:

📦 Core Packages

**📖 View Modular Package Documentation → whyml-converters → whyml-scrapers → whyml-cli →**

🎯 Key Features

⚡ Example YAML Manifest

metadata:
  title: "Landing Page"
  description: "Modern landing page component"
  version: "1.0.0"

template_vars:
  hero_text: "Welcome to Our Product"
  cta_text: "Get Started"

styles:
  hero:
    background: "linear-gradient(135deg, #007bff, #0056b3)"
    padding: "80px 0"
    text-align: "center"
    color: "white"

structure:
  main:
    class: "hero-section"
    children:
      div:
        class: "container"
        children:
          - h1:
              text: ""
              class: "display-4"
          - button:
              text: ""
              class: "btn btn-success btn-lg"
**📁 View More Examples → Data Samples →**

🚀 Development

Testing

Each package includes comprehensive testing with Makefiles:

# Test specific packages
cd whyml-core && make test
cd whyml-converters && make test-coverage
cd whyml-scrapers && make test-watch
cd whyml-cli && make test-integration

# Test all packages
make test

Building & Publishing

# Build specific packages
cd whyml-converters && make build
cd whyml-core && make publish-test

# Clean all packages
find . -name "Makefile" -execdir make clean \;

🧪 Testing & Development

Current Status

Package Development

# Individual package development
cd whyml-core && make test-coverage
cd whyml-converters && make test-html test-react test-vue test-php
cd whyml-scrapers && make test-scraper test-analyzer
cd whyml-cli && make test-integration

# Cross-package integration testing
make test

📖 Complete Testing Guide →

📄 Contributing & License

Development Setup

git clone https://github.com/dynapsys/whyml.git
cd whyml
python -m venv venv
source venv/bin/activate
pip install -e .

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.



**⭐ Star this repo if WhyML helps you build better applications!** Made with ❤️ by [Tom Sapletta](https://softreck.dev)