Skip to content

docs(dev): correct 15.8 theme development guide against implementation#450

Open
marevol wants to merge 1 commit into
masterfrom
docs/15.8-theme-development
Open

docs(dev): correct 15.8 theme development guide against implementation#450
marevol wants to merge 1 commit into
masterfrom
docs/15.8-theme-development

Conversation

@marevol

@marevol marevol commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Reviewed the developer theme development guide (dev/theme-development.rst) against the current Fess source and rewrote it to match the actual implementation, then propagated the changes to all languages (ja, en, de, fr, es, ko, zh-cn).

The previous page described a theming model that does not exist in the code (e.g. a theme.properties file, a theme/<name> resource layout, a bin/fess-plugin CLI, and a Design-page theme selector). This rewrite documents the two real mechanisms.

Changes

  • Static theme (Fess 15.7+) — documented as the recommended approach: the theme.yml manifest (apiVersion / kind / name / displayName / version plus optional fields), an index.html SPA that uses /api/v2/*, served under /themes/<name>/; packaged with fess-themes/scripts/package.sh; uploaded and activated from System > Theme (/admin/theme/) via the theme.default system property or virtual-host binding.
  • JAR theme plugin (legacy) — corrected structure (view / css / js / images, JSP templates), a fess-parent-based pom.xml, ThemeHelper deployment targets (WEB-INF/view/<theme>/, css/<theme>/, js/<theme>/, images/<theme>/), and virtual-host activation.
  • Removed fabricated contenttheme.properties, the theme/<name> resource layout, templates/search.html, the bin/fess-plugin CLI, the "Design page selects a theme" claim, and the nonexistent fess-theme-minimal example.

Verification

  • Cross-checked every claim against source (org.codelibs.fess.theme.*, ThemeHelper, AdminThemeAction, fess_config.properties, and the fess-themes / fess-theme-simple repositories).
  • All 7 language versions share identical RST structure; admin-UI labels were localized per fess_label_*.properties; docutils parses each file cleanly (only the usual Sphinx :doc: role and CJK title-underline notices remain).

Verified the developer theme-development guide against the current
source and rewrote it to match the actual implementation, then
propagated the changes to all languages (ja, en, de, fr, es, ko,
zh-cn).

- Document the two real theming mechanisms: the static theme system
  (Fess 15.7+, theme.yml manifest and an SPA served under
  /themes/<name>/, uploaded and activated via System > Theme) and the
  legacy JAR theme plugin (view/css/js/images overrides installed via
  System > Plugin)
- Describe the theme.yml manifest fields, packaging with
  fess-themes/scripts/package.sh, and activation via the theme.default
  system property or virtual host binding
- Correct the JAR theme structure (view/css/js/images, JSP) with its
  ThemeHelper deployment targets and virtual-host activation
- Remove fabricated content: theme.properties, the theme/<name>
  resource layout, templates/search.html, the bin/fess-plugin CLI, the
  "Design page selects a theme" claim, and the nonexistent
  fess-theme-minimal example
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant