forked from retoor/devplacepy
feat: add canonical redirect, og_image, next_page_url, and sitemap caching across content routers
Implement canonical_redirect helper in content.py to enforce slug-based 301 redirects for gist, news, post, and project detail pages. Add first_image_url helper to extract primary image from item or attachments for Open Graph meta tags. Inject next_page_url into feed, gists, news, and projects list page SEO contexts for pagination link rel. Extend seo.py with SITEMAP_URL_LIMIT, SITEMAP_TTL constants and _sitemap cache variable for future sitemap generation optimization. Update profile page to raise 404 via not_found instead of 302 redirect, and include og_image from avatar_url.
This commit is contained in:
@@ -207,8 +207,42 @@ class NewsService(BaseService):
|
||||
content = strip_html(article.get("content", "") or "")[:1500]
|
||||
|
||||
prompt = (
|
||||
"Rate this article's relevance to software developers on a scale of 1-10. "
|
||||
"Return only a single integer between 1 and 10, nothing else.\n\n"
|
||||
"You are an expert content strategist and editor for DevPlace, a "
|
||||
"server-rendered social network for software developers. Decide how "
|
||||
"strongly a given article should be published, expressed as a single "
|
||||
"grade.\n\n"
|
||||
"Site context:\n"
|
||||
"- Audience: software developers, hobbyists and professionals, "
|
||||
"interested in software development, AI agents, open-source tools, "
|
||||
"systems programming, and self-hosting.\n"
|
||||
"- Mission: deliver deep technical insight, critical analysis, and "
|
||||
"practical value; build authority and reader trust; avoid low-effort, "
|
||||
"rehashed, or clickbait content.\n"
|
||||
"- Tone: technical, practical, nuanced, skeptical of hype; no "
|
||||
"sensationalism or unverified claims.\n\n"
|
||||
"Evaluate the article against these weighted criteria and weigh them "
|
||||
"internally:\n"
|
||||
"1. Relevance & alignment to the developer niche and audience needs "
|
||||
"(20%).\n"
|
||||
"2. Quality & accuracy: depth, originality, factual correctness, "
|
||||
"sourcing, technical correctness, clear writing (25%).\n"
|
||||
"3. Engagement & readability: strong title/intro/flow, useful "
|
||||
"examples, appropriate length (15%).\n"
|
||||
"4. Originality & uniqueness: new perspective, data, or analysis; not "
|
||||
"duplicated generic web content (15%).\n"
|
||||
"5. SEO & discoverability: keyword opportunity without stuffing, "
|
||||
"shareable (10%).\n"
|
||||
"6. Ethics, legality & risk: no misinformation, plagiarism, or "
|
||||
"brand-safety issues; controversial topics handled with nuance and "
|
||||
"evidence (10%).\n"
|
||||
"7. Strategic fit for the site (5%).\n\n"
|
||||
"Convert your overall judgment to a single integer grade from 1 to "
|
||||
"10:\n"
|
||||
"- 9-10: excellent, publish as-is.\n"
|
||||
"- 7-8: good, worth publishing.\n"
|
||||
"- 5-6: marginal, weak fit or quality.\n"
|
||||
"- 1-4: reject, low quality or off-topic.\n\n"
|
||||
"Return ONLY a single integer from 1 to 10, nothing else.\n\n"
|
||||
f"Title: {title}\n"
|
||||
f"Description: {description}\n"
|
||||
f"Content: {content}"
|
||||
|
||||
Reference in New Issue
Block a user