PageTop
An opinionated web framework to build modular Server-Side Rendering web solutions.
[![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg?style=for-the-badge)](#-license)
[![API Docs](https://img.shields.io/docsrs/pagetop?label=API%20Docs&style=for-the-badge&logo=Docs.rs)](https://docs.rs/pagetop)
[![Crates.io](https://img.shields.io/crates/v/pagetop.svg?style=for-the-badge&logo=ipfs)](https://crates.io/crates/pagetop)
[![Downloads](https://img.shields.io/crates/d/pagetop.svg?style=for-the-badge&logo=transmission)](https://crates.io/crates/pagetop)
## Overview
The PageTop core API provides a comprehensive toolkit for extending its functionalities to specific
requirements and application scenarios through actions, components, packages, and themes:
* **Actions** serve as a mechanism to customize PageTop's internal behavior by intercepting its
execution flow.
* **Components** encapsulate HTML, CSS, and JavaScript into functional, configurable, and
well-defined units.
* **Packages** extend or customize existing functionality by interacting with PageTop APIs or
third-party package APIs.
* **Themes** enable developers to alter the appearance of pages and components without affecting
their functionality.
# ⚡️ Quick start
```rust
use pagetop::prelude::*;
struct HelloWorld;
impl PackageTrait for HelloWorld {
fn configure_service(&self, scfg: &mut service::web::ServiceConfig) {
scfg.route("/", service::web::get().to(hello_world));
}
}
async fn hello_world(request: HttpRequest) -> ResultPage