Proposal: Standardized Editorial URLs
Difference between en1 and en2, changed 253 character(s)
**Proposal: Standardized Editorial URLs (`/contest/xxxx/editorial`) & API Endpoint Support**↵
↵
Finding tutorials for past Codeforces contests is currently far more inconsistent than it needs to be.  ↵
Depending on the contest author and round, editorials are scattered across different formats:↵
↵
For anyone upsolving or building community tools (like browser extensions and problem trackers), this unpredictability causes constant friction.↵
↵
**The Proposal**  ↵
Introduce a standardized URL alias and API endpoint for contest tutorials.↵
↵
**1. Standardized Web Route**  ↵
Allow users to access any contest editorial via a single, predictable URL:  ↵
```↵
codeforces.com/contest/{contestId}/editorial↵
```  ↵
↵
Practical Implementation & Settings:↵
↵
- **Contest Manager Settings:** In the contest dashboard, coordinators or authors simply enter the `blogEntryId` (or external link) designated as the official tutorial.↵
- **Problem-Level Linking
:** Support automatic section anchors so users can navigate directly to a & Discussion:** [user:Errichto,2026-08-27] suggested supporting dedicated editorial pages/posts for individual problem's solution:↵
```↵
(e.g., `codeforces.com/contest/1900/editorial/A↵
```
`), giving each problem its own comment section for focused discussion of alternative solutions and edge cases.↵
- **Multi-resource Support:** If there are multiple tutorials (e.g., Official Text, Video Editorial, or Russian/Chinese translations), the main editorial page or alias can render quick tabs/links for each option at the top of the post.↵
- **Update the UI:** Add a prominent "Editorial" button directly on the contest sidebar and on the problem page headers once the contest ends and the tutorial is published.↵
↵
**2. Native API Endpoint (contest.editorial)**  ↵
Browser extensions, IDE plugins (like Competitive Companion or CPH), and platforms like Vjudge currently rely on fragile web scraping, or regex matching.  ↵
Adding an official endpoint, such as `contest.editorial` in the Codeforces API, would return structured data for a given contest ID:↵
↵
```↵
// Request: https://codeforces.me/api/contest.editorial?contestId=1900↵
{↵
  "status": "OK",↵
  "result": {↵
    "contestId": 1900,↵
    "editorialBlogId": 45678,↵
    "editorialUrl": "https://codeforces.me/blog/entry/45678",↵
    "videoEditorialUrl": "https://youtube.com/watch?v=...",↵
    "problemAnchors": {↵
      "A": "https://codeforces.me/blog/entry/45678#problem-A",↵
      "B": "https://codeforces.me/blog/entry/45678#problem-B"↵
    }↵
  }↵
}↵
```↵
↵
**3. Retroactive Backfilling for Past Rounds**  ↵
To handle older rounds without manual labor from Codeforces staff:↵
↵
- Coordinators, authors, or trusted high-rated users (e.g., Grandmasters) could be given permission to tag/link the historical blog entry ID for older rounds.↵
- Alternatively, a simple community-driven backfill tool or PR system could link historical contest IDs to their existing blog entries.↵
↵
I believe this is a real upgrade. Codeforces needs care and this is great.  ↵
A suggestion you may find useful here [user:MikeMirzayanov,2026-08-24] [user:KAN,2026-08-24]↵

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English Leeking 2026-08-27 01:21:41 253
en1 English Leeking 2026-08-24 19:22:00 2952 Initial revision (published)