smalljs$molجستجو⌘ Kمستنداتزمین بازیمقایسهاکوسیستمدربارهFA
ابزارهاGetting Startedمعرفیمدل ذهنیشروع به کاراز تایپ‌اسکریپت به view.treeساختار پروژهابزارهاEssentialsنصبنماهاوضعیت و واکنش‌گراییمسیریابیرندرتست‌نویسیاستقراررفع اشکالDataدریافت دادهطرح‌واره‌های دادهGiper BazaMoreویتریناز React، Vue و Svelteکتابِ آشپزیAdvancedپلاگین‌هافراداده‌های ماژولآفلایننماهای شبحAboutپرسش‌های پرتکرارتیمانتشارهاAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

ابزارها

$mol در هر ویرایشگری کار می‌کند، اما مجموعه‌ای کوچک از ابزارها کار با .view.tree و سبک‌های نوع‌دار را بسیار راحت‌تر می‌کند: یک اسکافولدر پروژه، یک زبان‌سرور، یکپارچه‌سازی‌های ویرایشگر برای Zed و VS Code، و یک مهارت که فریم‌ورک را به دستیارهای LLM می‌آموزد.

اسکافولد کردن یک پروژه

create-view-tree-lsp یک ماژول $mol آمادهٔ اجرا تولید می‌کند تا مجبور نباشید کد قالبی را با دست کنار هم بچینید:1npx create-view-tree-lsp bog/myappآن را از ریشهٔ کپی MAM خود اجرا کنید: مسیرهای ماژول از همان‌جا حساب می‌شوند و پروژه هم باید همان‌جا باشد. بیرون از ورک‌اسپیس، دستور هشدار می‌دهد تا در اولین بیلد غافلگیر نشوید.آرگومان همان مسیر ماژول است (namespace/name یا معادل آن bog_myapp). این دستور view.tree، view.ts، view.css.ts و index.html یک برنامهٔ کارآمد را می‌نویسد، به‌علاوهٔ GitHub Actions برای استقرار آن.هر چیزی که سازندهٔ پروژه بلد است اضافه کند، به‌طور پیش‌فرض هست. شما فقط چیزی را نام می‌برید که نمی‌خواهید:1npx create-view-tree-lsp bog/myapp --no-tauri --no-backend--no-baza — ذخیره‌گاه local-first به نام Giper Baza--no-docker — پیکربندی Docker همراه docker-compose.yml و کانفیگ nginx--no-tauri — پوستهٔ دسکتاپ Tauri--no-backend — بک‌اند REST به نام $mol_server با ذخیره‌سازی node:sqlite و یک نوع آیتم TypeScript مشترک--no-prerender، --no-seo — دیده‌شدن در موتورهای جست‌وجو، که در پایین زیر بخش یکپارچه‌سازی مداوم توضیح داده شده استپرچم ناشناخته اجرا را متوقف می‌کند تا یک غلط تایپی چیزی را بی‌سروصدا جا نگذارد.اسکافولدر یک پوشش نازک روی CLI موجود در زبان‌سرور است، بنابراین npx view-tree-lsp create bog/myapp همان کار را مستقیماً انجام می‌دهد.

ترجمه‌ها

ترجمه‌ها کنار ماژول خودشان می‌نشینند، در <module>/<name>.locale=<lang>.json. برای کد راحت است، برای مترجم نه: به‌جای یک فهرست از عبارت‌ها، سی فایل ریز تحویل می‌گیرد. $yuf_localizer همین شکاف را پر می‌کند. نشانی پروژه‌ها و کدهای زبان را به آن بدهید تا همهٔ کلیدها را در یک فهرستِ قابل‌جست‌وجو نشان دهد و آنچه هنوز مانده را علامت بزند: کلیدهایی که فقط انگلیسی دارند، کلیدهایی که تغییر داده‌اید ولی ثبت نکرده‌اید، و کلیدهای کهنه‌ای که پروژه دیگر ندارد. ترجمه‌ها تا زمان برون‌ریزی در مرورگر می‌مانند، پس میان دو نشست چیزی گم نمی‌شود.وقتی کار مترجم تمام شد، نتیجه را برون‌ریزی کنید و دوباره میان ماژول‌ها پخش کنید:1# از ریشهٔ MAM2npx view-tree-lsp locale bog/myapp/app/- --exclude=mol --updateآرگومان می‌تواند یک پوشه باشد یا یک فایل زبان. گزینه‌ها:هر کلید مسیر ماژول خودش را با خود دارد، بنابراین $my_page_greeting در my/page/page.locale=ru.json می‌نشیند، کنار همان منبعی که به آن تعلق دارد. اما یافتن آن ماژول ظریف‌تر از چیزی است که به نظر می‌رسد: _ هم پوشه‌ها را جدا می‌کند و هم واژه‌ها را، پس «طولانی‌ترین مسیرِ منطبق» پاسخ نادرستی است. در $my_page_lang_hint نام ویژگی با lang آغاز می‌شود و اگر واقعاً زیرماژولی به نام my/page/lang کنارش باشد، کلید را می‌بلعد. برای همین فرمان از هر ماژولِ نامزد می‌پرسد چه کلیدهایی را اعلام کرده است — MAM دقیقاً همان‌ها را در فایل زبانِ -view.tree آن ماژول می‌نویسد — و کلید را به صاحب واقعی‌اش می‌سپارد.

یکپارچه‌سازی مداوم

اسکافولدر GitHub Actions را در .github/workflows/ می‌نویسد، پس یک پروژهٔ جدید بدون تنظیمات اضافی مستقر و منتشر می‌شود.deploy.yml روی هر push اجرا می‌شود. برنامه را با hyoo-ru/mam_build می‌سازد، app/- را از main روی GitHub Pages منتشر می‌کند، و به هر شاخهٔ feature/* پوشهٔ پیش‌نمایش مخصوص خودش را می‌دهد — که هنگام حذف شاخه به‌طور خودکار برداشته می‌شود.

SEO

ویرایش این صفحه در GitHubآیا این مفید بود؟بلهخیرقبلیساختار پروژهبعدینصب
در این صفحهاسکافولد کردن یک پروژهترجمه‌هایکپارچه‌سازی مداومSEOدسکتاپ Tauriزبان‌سرورZedVS Codeمهارتِ LLMپیوندها
Type to search the documentation.