aramesh-site deploy
23e0c97822
fix(blog): قاعدهٔ display:inline محدود به p مستقیم li — نقلقول داخل فهرست دیگر پاراگرافهایش را یکی نمیکند
2026-10-06 12:04:46 +00:00
aramesh-site deploy
f05cd8b820
fix(blog): پاراگراف خالی داخل نقلقول خط خالی رندر نکند
2026-10-06 11:29:16 +00:00
aramesh-site deploy
d16db803ba
fix(blog): پاراگرافهای داخل نقلقول فاصله بگیرند — متن/شخص/نقش یک بلاک یکسره دیده میشد
2026-10-06 11:09:29 +00:00
aramesh-site deploy
1b491357ab
feat(blog): جدول — ستونها قابل تغییر اندازه/افزودن و حذف؛ لینک کپشن تصویر؛ هدینگهای نسخه انگلیسی بزرگتر
2026-10-06 10:57:01 +00:00
aramesh-site deploy
61a2e95278
feat(blog): جداسازی دوزبانهٔ اسلاگ/کلیدواژه/نویسنده/تگها/متا + میگریشن ۰۰۰۲، رفع «دقیقه مطالعه دقیقه»، فونت مقاله ۱۵/۱۷px، جدول تیپتپ در ادیتور، مسیر /en/blog با slug_en
2026-10-06 10:11:55 +00:00
aramesh-site deploy
4e2ecaa69e
fix(en): حرف Q در فونت پینار به شکل O ترسیم شده — روی نسخه انگلیسی همهٔ عناصر font-pinar به فونت لاتین میروند
2026-10-01 17:06:01 +00:00
aramesh-site deploy
e1bf404455
fix(typography): فهرستهای مقاله هم مثل پاراگراف justify شوند + متن پروژه justify
...
قبلاً li از قاعدهٔ justify مستثنا بود و راست/چپچین میشد؛ حالا فقط تیترها
تراز میمانند. متن پروژه در صفحهٔ جزئیات هم justify شد.
2026-09-28 11:15:22 +00:00
aramesh-site deploy
18e226ad47
fix(toc): حذف نوار اسکرول فهرست مطالب و پهنکردن ستون آن
...
- ستون فهرست در دسکتاپ از ۱۷rem به ۲۱rem پهنتر شد تا تیترهای بلند جا شوند
- نوار اسکرول بومی مرورگر (با فلش) مخفی شد؛ اسکرول با چرخ ماوس/لمس سر جایش است
2026-09-28 11:06:51 +00:00
aramesh-site deploy
98c7977a19
fix(frontend): کپشن وسطچین، نام تصویر در Alt، و تورفتگی واضح H3 در فهرست
...
- کپشن: قاعدهٔ وسطچینِ .article-body figcaption با قاعدههای [data-dir=...] برای
راست/چپچین بازنویسی میشد و عملاً وسطچین نمیشد؛ figcaption از آن فهرستها
برداشته شد. متن کپشن در ویرایشگر هم وسطچین شد تا با خروجی سایت یکی باشد.
- نام تصویر: نامی که پیش از بارگذاری نوشته میشود، حالا همان Alt تصویر میشود
(پیشتر نام فایل مبنا بود و باید دستی در جعبهٔ زیر تصویر اصلاح میشد).
- فهرست مطالب: H3 با ps-4 فقط ۴ پیکسل بیشتر از H2 تورفتگی داشت (عملاً نامرئی)؛
حالا ps-6 با فونت یک پله کوچکتر.
2026-09-28 07:49:08 +00:00
MMD
0628344dcf
Merge remote-tracking branch 'origin/feature/ui-updates-v1' into new-one
2026-09-26 23:04:15 +03:30
fatemeh sane
853ad67db5
feat(ui): update UI v1
2026-09-25 22:49:30 +03:30
MMD
ce0735d775
feat(stack): full overhaul — hardening, ops tooling, monitoring, analytics, chatbot
...
Security: deep /api/health (DB+MinIO probes, 503 on failure) + /api/live;
rate-limited public forms with honeypots; real client IP behind Traefik
(--proxy-headers); TipTap URL sanitization on write (nh3); non-root
containers + slim .dockerignore; prod MinIO console bound to 127.0.0.1;
HSTS/nosniff on TLS routers; JWT 8h; no default credentials in code.
Reliability: Alembic migrations (create_all baseline); graceful shutdown
(exec uvicorn); hardened backups (checksums, sanity check, freshness gauge,
optional rclone off-site) + restore.sh + hourly db-backup sidecar (ops
profile); stack.sh ops tooling (deploy/logs/health/backup/restore/monitoring);
.gitattributes LF for shell scripts.
Orchestration: json-file log rotation, pinned images, per-service memory
limits, edge/internal networks, Traefik ping/accesslog/metrics + flood
limiter, conditional minio-setup, pgvector db image, one-shot db-init
(umami + aramesh_chatbot databases).
Chatbot: unified from site-chatbot branch (RAG + pgvector, SSE, ChatWidget).
Monitoring: Prometheus/Alertmanager/Loki/Promtail/Grafana + cAdvisor,
node/postgres/blackbox exporters, provisioned dashboards and 10 alert
rules; alerts delivered to Bale (tapi.bale.ai — Telegram-compatible).
Analytics: Umami on shared Postgres, build-time tracker injection, custom
events (contact/newsletter/phone/chat/lang) via frontend/src/analytics.ts.
Hygiene: CSV export for contact messages and subscribers; upload image
optimization (Pillow); CI script + GitHub-compatible workflow; audit.sh;
gen-env.sh for strong credentials.
2026-09-19 00:24:57 +03:30
MMD
805f4594d4
Merge remote-tracking branch 'origin/dashboard/blog-changes'
...
# Conflicts:
# frontend/src/App.tsx
# frontend/src/admin/ArticleWritePage.tsx
# frontend/src/admin/EntityDrawer.tsx
# frontend/src/pages/ArticleDetail.tsx
2026-09-17 12:31:04 +03:30
fatemeh sane
7a0defc3d4
fix(admin): resolve Tiptap editor bugs, dynamic RTL/LTR layout, sticky TOC, and equalize Bidi typography
2026-09-17 10:10:50 +03:30
MMD
fe6957bf83
Merge remote-tracking branch 'origin/dashboard/blog-changes'
...
# Conflicts:
# frontend/src/admin/ArticleWritePage.tsx
# frontend/src/admin/EntityDrawer.tsx
# frontend/src/admin/entities.ts
# frontend/src/components/ArticleCard.tsx
# frontend/src/index.css
2026-09-15 14:41:46 +03:30
fatemeh sane
049291c109
feat(admin): enhance editor UI (links, image captions) & fix categories
...
Added animated auto-opening link modal, custom image node with isolated caption deletion, fixed single-select category data binding, improved featured image layout, and updated README.
2026-09-15 11:33:04 +03:30
MMD
53673d0f9b
Merge branch 'bilingual-en'
...
# Conflicts:
# frontend/src/admin/ArticleWritePage.tsx
# frontend/src/admin/EntityDrawer.tsx
# frontend/src/admin/entities.ts
# frontend/src/components/ArticleCard.tsx
# frontend/src/index.css
# frontend/src/pages/ArticleDetail.tsx
2026-09-13 18:45:06 +03:30
fatemeh sane
bb6c586d99
Update blog editor features
2026-09-13 10:39:25 +03:30
MMD
6b49d035c2
فرانتاند: نسخه انگلیسی با مسیر /en/ — مسیریابی دوزبانه، دیکشنری رابط، بومیسازی داده، تغییر زبان در هدر، ویرایش انگلیسی در پنل و پشتیبانی LTR
2026-09-12 23:37:55 +03:30
MMD
f2e5a9e58b
فونت: آوردن فونت اصلی Pinar (۵ وزن) بهجای جانشین Vazirmatn
...
فایلهای اصلی Pinar از شاخه feature/frontend-updates گرفته شد (fatemeh sane آنها را
سلفهاست کرده بود) — همان فونتی که پیشتر CDN از کار افتادهاش را سرو میکرد:
- ۵ وزن (Light 300، Regular 400، Bold 700، ExtraBold 800، Black 900) در
frontend/public/fonts/pinar بهصورت woff2 + ttf
- index.css: Pinar فونت اصلی و Vazirmatn جایگزین پشتیبان
- tailwind: کلاس pinar دوباره Pinar را اول میگذارد
2026-09-12 10:25:49 +03:30
MMD
4b9cc13163
فونت: سلفهاست Vazirmatn — بدون دانلود هر بار از CDN
...
- فونت قبلی (Pinar) از fontcdn.ir دانلود میشد که از کار افتاده و گوگلفونت هم در ایران مسدود است؛ در نتیجه هر بار فونت دانلود میشد و در نهایت Tahoma نمایش داده میشد
- فایلهای woff2 (Light/Regular/Bold) یک بار در public/fonts ذخیره شده و از همان سرور سرو میشوند — مرورگر کش میکند و هیچ وابستگی خارجی ندارد
- کلاس font-pinar برای سازگاری با کامپوننتها نگه داشته شد
2026-09-08 13:27:40 +03:30
MMD
cfe5512ec7
فرانتاند: ویرایشگر WYSIWYG وبلاگ (TipTap) با آپلود تصویر در متن
...
- ArticleEditor: ویرایشگر TipTap v3 راستبهچسب با نوار ابزار فارسی —
بولد/ایتالیک/زیرخط/خطخورده، تیتر H2/H3، لیست نقطهای/شمارهای،
نقلقول، لینک (مسدودسازی javascript: با isAllowedUri)، واگرد/ازنو
- درج تصویر داخل متن: دکمه آپلود، چسباندن یا کشیدن فایل — ذخیره در
MinIO از طریق /api/admin/upload و درج URL نسبی /media/...
- ذخیره خودکار: debounce ۸۰۰ms + flush هنگام بستن کشو
- کشوی مقاله عریضتر (max-w-3xl)؛ فیلد body مقالات بهجای لیست متنی،
ویرایشگر WYSIWYG رندر میکند
- رندر صفحه مقاله: تبدیل سند به HTML با @tiptap/static-renderer
(فقط تگهای شناختهشده — بدون ریسک XSS) + استایلهای .article-body
(تیتر با خط مسی، لیست، نقلقول، تصویر) + پشتیبانی از ردیفهای قدیمی
- وابستگیهای جدید: @tiptap/react، @tiptap/pm، @tiptap/starter-kit،
@tiptap/extension-image، @tiptap/extension-link، @tiptap/static-renderer
2026-09-06 23:33:08 +03:30
Behrad
ad75f7a7bd
پروژه کامل: فرانت متصل به API + داکرایز
...
- اتصال کامل فرانت به API: همه محتوای سایت (پروژهها، مقالات، خدمات، برند و...) از بکاند خوانده میشود (SiteProvider + useSite)
- فرم تماس و خبرنامه متصل به بکاند و تستشده در مرورگر
- ساختار مونوریپو: frontend/ + backend/
- Dockerfile برای هر دو بخش + docker-compose (PostgreSQL + FastAPI + nginx)
- nginx با پروکسی /api — بدون نیاز به CORS در حالت داکر
- README کامل فارسی
2026-08-29 13:26:58 +03:30