Repository navigation
Templates: Rendered GitHub's layouts on the server, so pages no longer change after loading - #95
Merged
Conversation
… in JavaScript Several scripts rewrote Forgejo's markup after it loaded: replacing text, moving elements and restyling inline colours. That work now happens in template overrides and CSS, and the scripts keep only real behaviour. - Issue and pull request lists: search placeholder, state counters, mobile filter button, "All states", labels below the title and the empty state are rendered by the templates. - Conversations: the "opened" header, "Add a comment" heading, reaction picker under the body and GitHub's sidebar order come from the templates; the attach icon is CSS. - Merge box: the ready-to-merge header and merge actions wrapper are rendered by pull.tmpl. - Labels: a theme label template passes colours as CSS variables, so the stylesheet adapts them to light and dark mode; repository-labels.js is removed. Timeline label events use the same markup. - Releases: check status labels come from the template, and the sidebar's latest release date uses Forgejo's relative-time element. - Diff: hunk headers keep their first "@", and the Vue file tree's icons are drawn in CSS. Text added to templates uses Forgejo's translation keys where one exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rozsazoltan
pushed a commit
to rozsazoltan-forks/forgejo-github-theme
that referenced
this pull request
Oct 23, 2026
The release draft resolves to 1.0.0 now that whereareiam#94 carries major: its templates target Forgejo 17, and admins on Forgejo 16 have to stay on 0.4.0. The notes give the summary, the tested Forgejo version and that upgrade warning. CONTRIBUTING lists Templates as an area, as whereareiam#94 and whereareiam#95 use it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Several theme scripts rewrote Forgejo's markup after the page loaded: replacing text, moving elements and overriding inline colours. That work now happens in template overrides and CSS, so pages render correctly before any script runs and nothing jumps after load. The scripts keep only real behaviour.
issue-list.jsonly opens and closes the mobile filter menuissue-conversation.jsonly keeps Comment disabled while the editor is emptypull-review.jsonly marks scheduled mergesrepository-labels.jsremovedrelative-time@; the Vue file tree's icons are CSSText that the templates add uses Forgejo's translation keys where one exists (search placeholders, "opened … by", "No results", "Filter", the check status sentences). "Add a comment" and "All states" stay English because Forgejo has no equivalent.
Not changed: the Actions run page is a Vue component the templates cannot reach into, so
actions-run.jsstays. Release asset digests and the repository sidebar's latest release still load in the browser because Forgejo exposes no data for them.Checks
bun vitest: 406 tests pass; Prettier check passes.bun lintcould not run locally: the installed typescript-eslint does not support TypeScript 7.🤖 Generated with Claude Code