
Lewp adalah kerangka kerja rendering situs web sisi server yang memungkinkan Anda menggunakan kekuatan algoritmik penuh karat untuk pembuatan situs web HTML5 yang valid secara teknis.
Pendekatannya berbeda dari sebagian besar kerangka kerja populer yang saat ini tersedia dengan tidak menggunakan templat, JSX atau sintaks khusus lainnya yang memadukan bahasa. Ini mencegah kode Anda menjadi berantakan berakhir di spageti yang tidak dapat diubah.
Dengan pendekatan identifikasi yang unik dari halaman, komponen dan sumber daya, Lewp mempercepat pengembangan situs web Anda berikutnya dan membuatnya lebih mudah untuk dipertahankan bahkan ketika Anda tidak menyentuh kode sumber Anda untuk jangka waktu yang lebih lama.
Berkat implementasi hierarki file Lewp, menyusun sumber daya Anda tidak pernah semudah ini. Mereka bahkan dikompilasi ke dalam biner terakhir, jadi Anda tidak perlu khawatir tentang sumber daya yang hilang saat penempatan lagi. Komponen Anda CSS dan JavaScript secara otomatis terisolasi dan diintegrasikan ke dalam halaman web Anda, jadi tidak ada lagi merobek rambut seseorang tentang optimalisasi tag <script> dan <link> Anda. Anda akan menemukan lebih banyak penyederhanaan dan optimisasi untuk pembuatan situs web Anda saat menjelajahi LEWP.
Hasilkan situs web HTML5 Anda secara teknis dioptimalkan dan selalu valid tanpa kehilangan kenyamanan dan fleksibilitas algoritmik.
Peti ini sedang berkembang. Perubahan pemecahan API dapat terjadi kapan saja sampai v1.0.0. Peringatan kompiler saat ini digunakan sebagai pengingat pengembangan dan akan dihapus sesegera mungkin.
Ini adalah implementasi karat yang disesuaikan dari versi PHP LEWP.
Jika Anda memiliki pertanyaan, ingin berkontribusi atau memiliki jenis permintaan lain, Anda diundang untuk membuat masalah.
Sederhana pembuatan halaman web tanpa mencampur bahasa pemrograman atau memasukkan logika ke dalam HTML Anda (seperti dilakukan dalam templat)
Membuat situs web modularisasi dengan komponen/modul yang benar -benar terisolasi dan dapat digunakan kembali , misalnya. secara otomatis namespaced css dan javascript
Memberikan implementasi default hierarki folder untuk manajemen sumber daya yang mudah dan kemungkinan untuk berbagi antara berbagai proyek
Mendapatkan yang terbaik dari kedua dunia, rendering sisi server dan logika aplikasi sisi klien
Minimalisasi waktu pemuatan halaman (misalnya FCP dan TTI)
Tidak ada kode boilerplate html
Menerapkan praktik terbaik SEO yang sudah dalam pengaturan pengembangan sebanyak mungkin
❗ Lewp bukan server web. Ini adalah perpustakaan yang mendukung Anda dalam menyusun algoritma Anda yang membawa mereka sejalan dengan pandangan Anda, tanpa membiarkan kode Anda berantakan! Ini sangat terintegrasi dengan kerangka kerja seperti Rocket, Actix-Web atau Axum.
Untuk lebih banyak contoh dengan komentar, lihat contoh repositori.
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 dan ComponentModelKecuali dinyatakan secara eksplisit, setiap kontribusi yang secara sengaja diserahkan untuk dimasukkan dalam proyek ini, sebagaimana didefinisikan dalam lisensi APACHE-2.0, harus dilisensikan ganda seperti di bawah ini, tanpa syarat atau ketentuan tambahan.
Harap lihat kontribusi.md untuk pedoman dan konvensi.
Berlisensi di bawah salah satu dari
di pilihan Anda.