fix(seo): پیوند صریح ZIP تصاویر روی صفحهٔ پروژه و فهرست پروژه‌ها

دستیار AI گفت «تصاویر سایت را نتوانستم دریافت کنم» — آرشیو ZIP وجود داشت و از
چهار کشور ۲۰۰ می‌داد، اما هیچ پیوندی به آن در صفحات نبود: llms.txt فقط الگو
داده بود و مدل‌ها الگو را جای‌گذاری نمی‌کنند. اکنون:
- صفحهٔ هر پروژه: <a href=.../images.zip>دانلود همهٔ تصاویر (ZIP)</a>
- فهرست /projects: هر ردیف پیوند «تصاویر (ZIP)» همان پروژه را دارد (۶۵ پیوند)
تا خزنده‌ها با دنبال‌کردن پیوند واقعی به آرشیو برسند.
This commit is contained in:
aramesh-site deploy
2026-10-09 23:55:36 +00:00
parent ef5da904e3
commit 51e7e46584
+12 -1
View File
@@ -850,6 +850,10 @@ def _site_content_html(db: Session, page_key: str, lang: str) -> str:
line += f" — {esc(bits)}" line += f" — {esc(bits)}"
if tail: if tail:
line += f" [{esc(tail)}]" line += f" [{esc(tail)}]"
# پیوند صریح به آرشیو تصاویر همان پروژه
zip_url = _absolute(f"/projects/{urllib.parse.quote(p.slug)}/images.zip")
zip_label = "images (ZIP)" if lang == "en" else "تصاویر (ZIP)"
line += f' — <a href="{esc(zip_url)}">{esc(zip_label)}</a>'
items += f"<li>{line}</li>" items += f"<li>{line}</li>"
parts.append(f"<h2>{'Our Projects' if lang == 'en' else 'پروژه‌های ما'}</h2><ul>{items}</ul>") parts.append(f"<h2>{'Our Projects' if lang == 'en' else 'پروژه‌های ما'}</h2><ul>{items}</ul>")
@@ -1150,7 +1154,14 @@ def _project_content_html(project: models.Project, lang: str, brand: str) -> str
+ f'" /> {esc(title)}</li>' + f'" /> {esc(title)}</li>'
for p in images[:12] for p in images[:12]
) )
parts.append(f"<h2>{label}</h2><ul>{items}</ul>") # پیوند واقعی به آرشیو ZIP — دستیارهای AI الگو نمی‌سازند؛ باید لینک صریح ببینند
zip_url = _absolute(f"/projects/{urllib.parse.quote(project.slug)}/images.zip")
archive_label = "Download all images (ZIP)" if lang == "en" else "دانلود همهٔ تصاویر (ZIP)"
parts.append(
f"<h2>{label}</h2>"
f'<p><a href="{esc(zip_url)}">{esc(archive_label)}</a></p>'
f"<ul>{items}</ul>"
)
return "".join(parts) return "".join(parts)