
Lewp est un framework de rendu de site Web côté serveur qui vous permet d'utiliser la puissance algorithmique complète de la rouille pour la création de sites Web HTML5 techniquement valides.
Son approche diffère de la plupart des cadres populaires actuellement disponibles en n'utilisant pas de modèles, JSX ou une autre syntaxe personnalisée qui mélange les langues. Cela empêche votre code de se désordonner en se terminant dans des spaghettis inaccessibles.
Par son approche d'identification unique des pages, des composants et des ressources, LeWP accélère le développement de votre prochain site Web et facilite le maintien de la maintenance même lorsque vous n'avez pas touché votre code source pendant une période plus longue.
Grâce à la mise en œuvre de la hiérarchie de fichiers de LeWP, la structuration de vos ressources n'a jamais été aussi simple. Ils sont même compilés dans le binaire final, vous n'avez donc plus à vous soucier de manquer des ressources sur le déploiement. Vos composants CSS et JavaScript sont automatiquement isolés et intégrés dans votre page Web, donc plus de déchirer les cheveux concernant l'optimisation de vos balises <script> et <link> . Vous trouverez plus de simplifications et d'optimisations pour la création de votre site Web lors de l'exploration de LEWP.
Générez votre site Web HTML5 techniquement optimisé et toujours valide sans perdre le confort et la flexibilité algorithmiques.
Cette caisse évolue actuellement. Les modifications de rupture de l'API peuvent se produire à tout moment jusqu'à V1.0.0. Les avertissements du compilateur sont actuellement utilisés comme rappels de développement et seront supprimés dès que possible.
Il s'agit de l'implémentation de rouille ajustée de la version PHP de LeWP.
Si vous avez des questions, souhaitez contribuer ou avoir un autre type de demande, vous êtes invité à créer un problème.
Simplier la création de pages Web sans mélanger les langages de programmation ni mettre la logique dans votre HTML (comme il se fait dans des modèles)
Création de sites Web modularisés avec des composants / modules vraiment isolés et réutilisables , par exemple. CSS et JavaScript à l'espionnage automatique
Fournir une implémentation par défaut d'une hiérarchie de dossiers pour une gestion facile des ressources et une possibilité de partager entre différents projets
Obtenir le meilleur des deux mondes, rendu côté serveur et logique d'application côté client
Minimisation des temps de chargement des pages (par exemple FCP et TTI)
Pas de code HTML Playplate
Appliquer autant que possible les meilleures pratiques SEO dans la configuration du développement
❗ Lewp n'est pas un serveur Web. Il s'agit d'une bibliothèque qui vous soutient dans la structuration de vos algorithmes qui les apportent parfaitement conformes à votre vue, sans laisser votre code se désordonner! Il s'intègre parfaitement à des frameworks comme Rocket, Actix-Web ou Axum.
Pour plus d'exemples avec des commentaires, jetez un œil aux exemples des référentiels.
use lewp :: {
component :: { Component , ComponentId , ComponentModel } ,
html :: {
api :: { h1 , text } ,
Node ,
} ,
page :: { Page , PageId , PageModel } ,
view :: PageView ,
} ;
struct HelloWorld {
data : String ,
}
impl HelloWorld {
pub fn new ( ) -> Self {
Self {
data : String :: from ( "Hello World!" ) ,
}
}
}
impl ComponentModel for HelloWorld {
type Message = ( ) ;
fn id ( & self ) -> ComponentId {
"hello-world" . into ( )
}
fn main ( & mut self ) { }
fn view ( & self ) -> Option < Node > {
Some ( h1 ( vec ! [ text ( & self . data ) ] ) )
}
}
struct HelloWorldPage ;
impl PageModel for HelloWorldPage {
fn id ( & self ) -> PageId {
"hello-world-page" . into ( )
}
fn main ( & self , view : & mut PageView ) {
let mut comp = Component :: from ( HelloWorld :: new ( ) ) ;
view . push ( & mut comp ) ;
}
}
fn main ( ) {
simple_logger :: init ( ) . unwrap ( ) ;
let page = Page :: from ( HelloWorldPage { } ) ;
let executed_page = page . main ( ) ;
println ! ( "{}" , executed_page . render ( ) ) ;
} <link>PageModel et ComponentModelSauf indication contraire, toute contribution intentionnellement soumise à l'inclusion dans ce projet, tel que défini dans la licence Apache-2.0, doit être autorisée à double licence comme ci-dessous, sans aucune termes ou conditions supplémentaires.
Veuillez consulter la contribution.md pour les directives et les conventions.
Sous licence sous l'un ou l'autre des
à votre option.