
LEWP هو إطار عرض موقع Server Side Server الذي يمكّنك من استخدام القوة الكاملة للحامضة لصدأ لإنشاء مواقع HTML5 الصالحة تقنيًا.
يختلف نهجه عن معظم الأطر الشهيرة المتوفرة حاليًا من خلال عدم استخدام القوالب أو JSX أو بناء الجملة المخصصة الأخرى التي تمزج اللغات. هذا يمنع الكود الخاص بك من الحصول على فوضوي ينتهي في السباغيتي غير القابلة للحماية.
من خلال نهج التعريف الفريد للصفحات والمكونات والموارد ، يسرع القفل من تطوير موقع الويب الخاص بك التالي ويجعل من السهل الحفاظ عليه حتى عندما لا تلمس رمز المصدر الخاص بك لفترة أطول من الوقت.
بفضل تطبيق التسلسل الهرمي لملف Lewp ، لم يكن هيكلة مواردك أسهل. حتى يتم تجميعهم في الثنائي النهائي ، لذلك لا داعي للقلق بشأن فقدان الموارد عند النشر بعد الآن. يتم عزل مكونات CSS و JavaScript تلقائيًا ودمجها في صفحة الويب الخاصة بك ، لذلك لا يوجد المزيد من تمزيق شعر المرء حول تحسين علامات <script> و <link> . ستجد المزيد من التبسيط والتحسينات لإنشاء موقع الويب الخاص بك أثناء استكشاف السميد.
قم بإنشاء موقع HTML5 الخاص بك محسّنًا تقنيًا ودائمًا دون فقدان الراحة والمرونة الخوارزمية.
هذا الصندوق يتطور حاليا. يمكن أن تحدث تغييرات كسر API في أي وقت حتى V1.0.0. يتم استخدام تحذيرات البرمجيات حاليًا كتذكير بالتطوير وسيتم إزالتها في أقرب وقت ممكن.
هذا هو تطبيق الصدأ المعدل لإصدار PHP من LEWP.
إذا كانت لديك أسئلة ، أو تريد المساهمة أو لديك أي نوع آخر من الطلبات ، فإن دعوتك لإنشاء مشكلة.
تبسيط إنشاء صفحات الويب دون خلط لغات البرمجة أو وضع المنطق في HTML الخاص بك (كما هو الحال في القوالب)
إنشاء مواقع مواقع معيارية مع مكونات/وحدات معزولة وقابلة لإعادة الاستخدام حقًا ، على سبيل المثال. أسماء الأسماء تلقائيا CSS و JavaScript
توفير تنفيذ افتراضي للتسلسل الهرمي للمجلد لسهولة إدارة الموارد وإمكانية المشاركة بين المشاريع المختلفة
الحصول على أفضل ما في العالمين ، وتقديم جانب الخادم ومنطق التطبيق جانب العميل
تقليل أوقات تحميل الصفحة (على سبيل المثال FCP و TTI)
لا رمز HTML Boilerplate
تطبيق أفضل الممارسات SEO الموجودة بالفعل في إعداد التنمية قدر الإمكان
❗ Lewp ليس خادم الويب. إنها مكتبة تدعمك في هيكلة الخوارزميات التي تجلبها تمامًا بما يتماشى مع وجهة نظرك ، دون السماح لتصبح رمزك فوضويًا! يتكامل تمامًا مع الأطر مثل الصواريخ أو Actix-Web أو Axum.
لمزيد من الأمثلة مع التعليقات ، إلقاء نظرة على أمثلة المستودعات.
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 و ComponentModelما لم ينص بشكل صريح ، يجب أن تكون أي مساهمة يتم تقديمها عمداً لإدراجها في هذا المشروع ، على النحو المحدد في ترخيص Apache-2.0 ، مرخصًا مزدوجًا على النحو التالي ، دون أي شروط أو شروط إضافية.
يرجى إلقاء نظرة على المساهمة. md للمبادئ التوجيهية والاتفاقيات.
مرخصة تحت أي من
في خيارك.