Rspress 2.0 کا اجرا: تجربے اور AI کے لئے ایک نئی اپ گریڈ
Rspress 2.0 کا اجرا: تجربے اور AI کے لئے ایک نئی اپ گریڈ
ہم Rspress 2.0 کے باقاعدہ اجرا کا اعلان کرتے ہوئے خوش ہیں!
Rspress Rsbuild پر مبنی ایک سٹیٹک سائٹ جنریٹر ہے، جو خاص طور پر ڈویلپرز کے لئے دستاویزات کی سائٹ کے ٹول کے طور پر بنایا گیا ہے۔ 2023 میں باقاعدہ اجرا کے بعد، Rspress 1.x نے 144 ورژنز کی مجموعی ترقی کی ہے، جس میں 125 شراکت دار نے پروجیکٹ کی ترقی میں حصہ لیا ہے۔ زیادہ سے زیادہ ڈویلپرز Rspress کا انتخاب کر رہے ہیں، اس کی مؤثر کمپائلنگ کی کارکردگی، معیاری روٹنگ اور کمپوننٹ لائبریری کی پیش نظارہ جیسی خصوصیات کی مدد سے خوبصورت اور قابل اعتماد دستاویزات کی سائٹیں بناتے ہیں۔
کمیونٹی کی آراء اور تجاویز کی بنیاد پر، Rspress 2.0 نے تھیم کی خوبصورتی، AI-native، دستاویزات کی ترقی کا تجربہ، Rslib کے ساتھ استعمال وغیرہ کے شعبوں میں مزید ترقی کی ہے۔
کیوں Rspress 2.0
Rspress 1.x نے دستاویزات کی سائٹ کے فریم ورک کی کمپائلنگ کی کارکردگی کے مسائل کو حل کر لیا ہے، لیکن اب بھی کچھ مسائل موجود ہیں جو ایک دستاویزات کی ترقی کے ٹول کے بنیادی تجربے کو متاثر کرتے ہیں۔ 2.0 ورژن صرف کمپائلنگ کی کارکردگی کی تلاش تک محدود نہیں ہے، بلکہ دستاویزات کی سائٹ کے تجربے کے دیگر پہلوؤں پر بھی توجہ مرکوز کرتا ہے:
- تھیم اسٹائل: ایک زیادہ خوبصورت ڈیفالٹ تھیم کا سیٹ، اور مختلف حسب ضرورت تھیم کے طریقے فراہم کرتا ہے، جس نے 1.x میں تھیم کی تخصیص کے لئے مستحکم API کی کمی کے مسئلے کو حل کیا ہے۔
- AI-native: دستاویزات نہ صرف انسانی قارئین کے لئے ہیں، بلکہ ایجنٹ کے ذریعہ بھی بہتر طور پر سمجھنے اور استعمال کرنے کی ضرورت ہے۔ Rspress اب llms.txt کی پیداوار اور SSG سے ماخوذ SSG-MD کی خصوصیت کو اندرونی طور پر شامل کرتا ہے، جو ایجنٹ کے پڑھنے کے لئے اعلی معیار کا Markdown مواد پیدا کرتا ہے۔
- ضرورت کے مطابق کمپائلنگ، فوری آغاز: ڈیفالٹ کے طور پر lazyCompilation کو فعال کیا گیا ہے، جو کہ لنک ہوور کے دوران وسائل کے preload کی خصوصیت کے ساتھ مل کر، صرف مخصوص روٹنگ تک رسائی پر درکار فائلوں کی تعمیر کرتا ہے، یہ یقینی بناتا ہے کہ پروجیکٹ کا سائز کتنا بھی ہو، dev بھی فوری آغاز کر سکتا ہے۔
- Shiki کوڈ ہائی لائٹنگ: ڈیفالٹ کے طور پر Shiki کو شامل کیا گیا ہے، جو تعمیر کے دوران نحو کی ہائی لائٹنگ مکمل کرتا ہے، تھیم کی تبدیلی، transformer کی توسیع کی حمایت کرتا ہے، جیسے @rspress/plugin-twoslash، جو کوڈ بلاک کی نمائش کے اثرات کو مزید بڑھاتا ہے۔
- دستاویزات کی ترقی کا تجربہ: nav.json، meta.json وغیرہ کی HMR کو بہتر بناتا ہے اور IDE میں کوڈ کی تجاویز کے لئے json schema کو شامل کرتا ہے؛ ڈیفالٹ کے طور پر مردہ لنک چیک کی خصوصیت کو فعال کرتا ہے؛ نئے فائل کوڈ بلاک کی نحو کو شامل کرتا ہے، جو بیرونی فائلوں کے حوالہ کی حمایت کرتا ہے؛ @rspress/plugin-preview اور @rspress/plugin-playground کو ایک ساتھ استعمال کرنے کی حمایت کرتا ہے وغیرہ۔
- Rslib انضمام: اب آپ create-rslib کا استعمال کرتے ہوئے کمپوننٹ لائبریری پروجیکٹ بناتے وقت Rspress کو دستاویزات کے ٹول کے طور پر منتخب کر سکتے ہیں، جلدی سے کمپوننٹ کی دستاویزات کی سائٹ بنا سکتے ہیں۔
2.0 نئی خصوصیات
مکمل تھیم
2.0 کا ڈیفالٹ تھیم ایک نظامی اپ گریڈ کا سامنا کر رہا ہے، جسے ٹیم کے ڈیزائنر @Zovn Wei نے مکمل طور پر ڈیزائن کیا ہے، بصری اثرات اور پڑھنے کے تجربے میں بڑی حد تک بہتری آئی ہے، اور ہر کمپوننٹ کو علیحدہ طور پر تبدیل کیا جا سکتا ہے، جس میں بہت زیادہ حسب ضرورت کی صلاحیت ہے۔
تھیم کی تخصیص
حسب ضرورت کی سطح کے لحاظ سے کم سے زیادہ، چار قسم کی حسب ضرورت تھیم کے طریقے ہیں: CSS متغیرات، BEM کلاس نام، ESM دوبارہ برآمدی اوور رائٹ، کمپوننٹ ایجیکٹ۔- CSS متغیرات: نئے تھیم نے مزید CSS متغیرات کو ظاہر کیا ہے، جو تھیم کے رنگ، کوڈ بلاک، ہوم پیج وغیرہ کے طرز کو اوور رائڈ کرتے ہیں۔ آپ CSS متغیرات کے صفحے پر انٹرایکٹو طور پر تمام CSS متغیرات کا پیش نظارہ اور ایڈجسٹمنٹ کر سکتے ہیں، اور جب آپ کو مطمئن کنفیگریشن مل جائے تو اسے براہ راست اپنے پروجیکٹ میں استعمال کے لیے کاپی کر سکتے ہیں۔
- BEM کلاس نام: بلٹ ان کمپوننٹس اب BEM نامی معیاری ناموں کا استعمال کرتے ہیں۔ یہ ایک بہت ہی پرانی اسکول کا انتخاب ہے، لیکن یہ ہماری سوچ سمجھ کر کیا گیا فیصلہ بھی ہے۔ صارفین CSS سلیکٹر کے ذریعے طرز کو درست طور پر ایڈجسٹ کر سکتے ہیں، HTML کا ڈھانچہ زیادہ واضح ہے۔
- ESM دوبارہ برآمدی اوور رائڈ: اگر CSS میں تبدیلیاں حسب ضرورت کی ضروریات کو پورا نہیں کرتی ہیں، تو آپ JS کے ذریعے مزید گہرائی سے اپنی مرضی کے مطابق بنا سکتے ہیں۔ theme/index.tsx میں ESM دوبارہ برآمدی کا استعمال کرتے ہوئے، آپ کسی بھی Rspress کے بلٹ ان کمپوننٹ کو اوور رائڈ کر سکتے ہیں۔
- کمپوننٹ ایجیکٹ: آپ نئے rspress eject [component] کمانڈ کا استعمال کر سکتے ہیں، یہ کمانڈ مخصوص کمپوننٹ کے سورس کوڈ کو theme/components/ ڈائریکٹری میں کاپی کر دے گی، آپ ان کوڈز میں آزادانہ طور پر ترمیم کر سکتے ہیں، یہاں تک کہ انہیں AI کے حوالے بھی کر سکتے ہیں، تاکہ گہرائی سے اپنی مرضی کے مطابق بنایا جا سکے۔
نیویگیشن بار، سائیڈ بار ٹیگ
Rspress 2.0 نے ٹیگ کمپوننٹ کو نافذ کیا ہے، اب آپ frontmatter میں ٹیگ کی خصوصیت کا استعمال کرتے ہوئے سائیڈ بار یا نیویگیشن بار میں UI نشان لگا سکتے ہیں۔
بلٹ ان کثیر لسانی حمایت
1.x ورژن میں، Rspress نے صرف انگریزی متن کو بلٹ ان کیا تھا، اگر آپ دوسرے زبانوں جیسے zh کا استعمال کرتے ہیں تو آپ کو تمام متون کی ترتیب دینا ہوگی، جو کہ کافی پیچیدہ ہے۔ اب 2.0 تھیم میں zh، en، ja، ko، ru وغیرہ کی کئی زبانوں کے ترجمے کا متن بلٹ ان ہے، نظام زبان کی ترتیب کے مطابق خودکار طور پر "Tree Shaking" کرے گا، صرف آپ کے استعمال کردہ متن اور زبان کو پیک کرے گا۔
llms.txt حمایت
Rspress اب llms.txt کی پیداوار کی صلاحیت کو core میں ضم کر چکا ہے، اور ایک نئی SSG-MD (Static Site Generation to Markdown، سٹیٹک سائٹ مارک ڈاؤن پیدا کرنا) صلاحیت کو نافذ کیا ہے۔
React پر مبنی متحرک رینڈرنگ کے فرنٹ اینڈ فریم ورک میں، اکثر سٹیٹک معلومات کو نکالنے میں مشکلات پیش آتی ہیں، Rspress کو بھی اسی چیلنج کا سامنا ہے۔ Rspress صارفین کو MDX ٹکڑوں، React کمپوننٹس، Hooks اور TSX روٹس جیسے متحرک خصوصیات کے ذریعے دستاویز کی اظہاریت کو بڑھانے کی اجازت دیتا ہے۔ لیکن جب ان متحرک مواد کو مارک ڈاؤن متن میں تبدیل کیا جاتا ہے تو درج ذیل مسائل کا سامنا کرنا پڑتا ہے:
- MDX کو براہ راست AI کو دینا بہت زیادہ کوڈ کی نحو کی شورش شامل کرے گا، اور React کمپوننٹ کے مواد کو کھو دے گا
- HTML کو مارک ڈاؤن میں تبدیل کرنا اکثر اچھا نتیجہ نہیں دیتا، معلومات کے معیار کی ضمانت دینا مشکل ہے
اس مسئلے کو حل کرنے کے لیے، Rspress 2.0 نے SSG-MD خصوصیت متعارف کرائی ہے۔ یہ ایک نیا فنکشن ہے، یہ سٹیٹک سائٹ جنریشن (SSG) کی طرح ہے، لیکن فرق یہ ہے کہ یہ آپ کے صفحات کو HTML فائل کے بجائے مارک ڈاؤن فائل کے طور پر رینڈر کرتا ہے، اور llms.txt اور llms-full.txt سے متعلق فائلیں پیدا کرتا ہے۔

Shiki کمپائلر میں کوڈ بلاک ہائی لائٹنگRspress 2.0 ڈیفالٹ طور پر Shiki کو کوڈ ہائی لائٹنگ کے لیے استعمال کرتا ہے۔ 1.x کے prism کے رن ٹائم ہائی لائٹنگ کے طریقے کے مقابلے میں، Shiki کمپائل کے وقت ہائی لائٹنگ کا عمل مکمل کرتا ہے۔
- مختلف تھیم اسٹائلز کی حمایت کرتا ہے، جیسے کہ CSS متغیرات کے صفحے پر مختلف Shiki تھیمز کو انٹرایکٹو طور پر تبدیل اور پیش نظارہ کیا جا سکتا ہے۔
- ساتھ ہی Shiki اپنی مرضی کے transformer کے استعمال کی اجازت دیتا ہے تاکہ تحریر کو مزید بہتر بنایا جا سکے، جیسے کہ twoslash وغیرہ۔
- ضرورت کے مطابق پروگرامنگ زبانوں کو شامل کریں، رن ٹائم کے اضافی بوجھ اور پیکج کے حجم میں اضافہ کیے بغیر۔
- TextMate کی نحو کی بنیاد پر VS Code کے ساتھ درست نحو ہائی لائٹنگ کو نافذ کرتا ہے۔
### تعمیر کی کارکردگی میں اضافہ
Rspress 2.0 کی بنیاد Rsbuild اور Rspack 2.0 کے پریویو ورژن پر ہے، اور ساتھ ہی ضرورت کے مطابق کمپائلنگ اور مستقل کیشنگ کو ڈیفالٹ طور پر فعال کیا گیا ہے۔
#### ضرورت کے مطابق کمپائلنگ
ڈیفالٹ طور پر dev.lazyCompilation کو فعال کیا گیا ہے، صرف جب آپ کسی صفحے تک رسائی حاصل کرتے ہیں تو وہ صفحہ کمپائل ہوگا، جس سے ترقیاتی آغاز کی رفتار میں نمایاں اضافہ ہوتا ہے، یہاں تک کہ ملی سیکنڈ کی سرد آغاز کو بھی حاصل کیا جا سکتا ہے۔ Rspress نے روٹنگ کی preload حکمت عملی کو بھی نافذ کیا ہے، جب آپ لنک پر ماؤس رکھتے ہیں تو ہدف روٹ صفحہ کو پہلے سے لوڈ کیا جائے گا، lazyCompilation کے ساتھ مل کر بغیر نقصان کے ترقیاتی تجربے کو حاصل کیا جا سکتا ہے۔

#### مستقل کیشنگ
2.0 نے مستقل کیشنگ کو بھی ڈیفالٹ طور پر فعال کیا ہے، گرم آغاز میں پچھلی کمپائل کے نتائج کو دوبارہ استعمال کرتے ہوئے، تعمیر کی رفتار میں 30%-60% کا اضافہ کیا ہے۔ اس کا مطلب یہ ہے کہ rspress dev یا rspress build کے پہلے چلانے کے بعد، بعد کے آغاز کی رفتار نمایاں طور پر بڑھ جائے گی۔
### دستاویزات کی ترقی کا تجربہ
#### ڈیفالٹ طور پر مردہ لنک کی جانچ کو فعال کریں
Rspress 2.0 نے مردہ لنک کی جانچ کی خصوصیت کو ڈیفالٹ طور پر فعال کیا ہے۔ تعمیر کے عمل کے دوران، یہ خود بخود دستاویز میں غیر فعال لنکس کی جانچ کرے گا، تاکہ آپ بروقت ان کی شناخت اور مرمت کر سکیں۔

#### فائل کوڈ بلاک
آپ file="./path/to/file" خصوصیت کا استعمال کرکے بیرونی فائل کو کوڈ بلاک کے مواد کے طور پر حوالہ دے سکتے ہیں، مثال کے کوڈ کو علیحدہ فائل میں رکھ کر برقرار رکھ سکتے ہیں۔
#### پیش نظارہ کے لیے زیادہ لچکدار meta استعمال
@rspress/plugin-preview اب meta خصوصیت کی بنیاد پر استعمال ہوتا ہے، زیادہ لچکدار ہے، اور فائل کوڈ بلاک کے ساتھ بھی کام کر سکتا ہے۔

### Rslib & Rspress
جب آپ create-rslib کے ذریعے پروجیکٹ بناتے ہیں، تو آپ اب Rspress ٹول کا انتخاب کر سکتے ہیں۔ یہ آپ کو کمپوننٹ لائبریری کی ترقی کے ساتھ ساتھ معاون دستاویزی سائٹ کو تیزی سے قائم کرنے کی اجازت دیتا ہے، جو کمپوننٹس کے استعمال کی وضاحت لکھنے، API حوالہ دکھانے، یا کمپوننٹس کے اثرات کا حقیقی وقت میں پیش نظارہ کرنے کے لیے ہے۔
### مزید Rspress سرکاری پلگ ان
Rspress 2.0 میں کئی نئے سرکاری پلگ ان شامل کیے گئے ہیں:
- @rspress/plugin-algolia: Rspress کی اندرونی تلاش کو Algolia DocSearch سے تبدیل کرنے کی حمایت کرتا ہے
- @rspress/plugin-twoslash: TypeScript کوڈ بلاک میں قسم کی تجاویز شامل کرتا ہے
- @rspress/plugin-llms: ایسے پروجیکٹس کے لیے llms.txt پیدا کرنے کی صلاحیت فراہم کرتا ہے جو SSG اور SSG-MD کی حمایت نہیں کرتے
- @rspress/plugin-sitemap: SEO کو بہتر بنانے کے لیے خودکار طور پر Sitemap فائل تیار کرتا ہے
## اہم تبدیلیاں
### Rspress 1.x سے منتقلی
اگر آپ 1.x پروجیکٹ کے صارف ہیں، تو ہم نے ایک تفصیلی منتقلی دستاویز تیار کی ہے، جو آپ کو 1.x سے 2.0 میں اپ گریڈ کرنے میں مدد کرے گی۔ آپ صفحے میں "Markdown کاپی کریں" کی خصوصیت کا براہ راست استعمال کر سکتے ہیں، اور اسے اپنے عام کوڈنگ ایجنٹ (جیسے Claude Code وغیرہ) میں داخل کر کے منتقلی مکمل کر سکتے ہیں۔### Node.js اور اوپر کی انحصار ورژن کی ضروریات
Rspress 2.0 کو Node.js ورژن 20+ اور React ورژن 18+ کی ضرورت ہے۔
اگلا قدم
Rspress 2.0 کا اجرا صرف ایک نئے آغاز کی نشانی ہے۔ اس اجرا کے بعد، Rspress مسلسل ترقی کرے گا:
- ایکو سسٹم کے انضمام کو آگے بڑھانا: Rslib، Rstest کے ساتھ مزید گہرائی میں انضمام، فرنٹ اینڈ پروجیکٹس اور کمپوننٹ لائبریری پروجیکٹس کے لیے ایک جامع ترقیاتی تجربہ فراہم کرنا۔
- AI اور دستاویزات کے مزید گہرے انضمام کی تلاش: جیسے کہ ذہین سوال و جواب، خودکار خلاصے وغیرہ؛ SSG-MD کو بہتر بنانا تاکہ یہ مستحکم اور زیادہ استعمال میں آسان ہو۔
npm create rspress@latest

