Theming Guide ============= Pagure is built on Flask, and uses Jinja2 for templates. Pagure also includes the ability to apply different themes that control the look and feel of your pagure instance, or add or remove elements from the interface. Setting a theme --------------- The theme is set in the Pagure configuration file. The theme name is defined by the name of the directory in the /themes/ folder that contains the theme. For example to enable the theme that is used on Pagure.io, add the following line to your Pagure configuration: :: THEME = "pagureio" Theme contents -------------- A theme requires two directories (`templates` and `static`) in the directory that contains the theme. The only other required file is theme.html which is placed in the templates directory templates/ ~~~~~~~~~~ The `templates` directory is where pagure will look for the `theme.html` template. Additionally, if you wish to override any template in Pagure, place it in the theme templates/ directory, and pagure will use that template rather than the standard one. .. warning:: Take care when overriding templates, as any changes to Pagure upstream will need to be backported to your theme template override. static/ ~~~~~~~ The `static` directory contains all the static elements for the theme, including additional a favicon, images, Javascript, and CSS files. To reference a file in the theme static directory use the jinja2 tag `{{ url_for('theme.static', filename='filename')}}`. For example: :: templates/theme.html ~~~~~~~~~~~~~~~~~~~~ The theme.html file defines a subset of items in the Pagure interface that are commonly changed when creating a new theme. Theming is a new feature in Pagure, so this set is currently small, but please file issues or PRs against pagure with ideas of new items to include. The current items configurable in theme.html are: `masthead_class` variable ######################### A string of additional CSS class(es) to be added to the navbar element. This navbar element is the topbar in Pagure. For example: :: {% set masthead_class = "navbar-dark bg-dark" %} `masthead_navbar_items()` macro ############################### A Jinja macro that allows themes to inject custom items in the Pagure navigation bar. Example: :: {% macro masthead_navbar_items() %}
Pagure is an Open Source software code hosting system.
This is an instance of Pagure, a git forge.
If you experience a bug or security concern, please submit an issue.
You may also post questions to the Pagure Development list by emailing: pagure-devel@lists.pagure.io or subscribe to the list.
Subscribe to announcements about Pagure.