|
Pierre-Yves Chibon |
704577 |
Theme your pagure
|
|
Pierre-Yves Chibon |
704577 |
=================
|
|
Pierre-Yves Chibon |
704577 |
|
|
Pierre-Yves Chibon |
704577 |
Pagure via `flask-multistatic <https: flask-multistatic="" pagure.io="">`_</https:>
|
|
Pierre-Yves Chibon |
704577 |
offers the possibility to override the default theme allowing to customize
|
|
Pierre-Yves Chibon |
704577 |
the style of your instance.
|
|
Pierre-Yves Chibon |
704577 |
|
|
Pierre-Yves Chibon |
704577 |
By default pagure looks for its templates and static files in the folders
|
|
Pierre-Yves Chibon |
704577 |
``pagure/templates`` and ``pagure/static``, but you can ask pagure to look
|
|
Pierre-Yves Chibon |
704577 |
for templates and static files in another folder.
|
|
Pierre-Yves Chibon |
704577 |
|
|
Pierre-Yves Chibon |
704577 |
By specifying the configuration keys ``THEME_TEMPLATE_FOLDER`` and
|
|
Pierre-Yves Chibon |
704577 |
``THEME_STATIC_FOLDER`` in pagure's configuration file, you tell pagure to
|
|
Pierre-Yves Chibon |
704577 |
look for templates and static files first in these folders, then in its
|
|
Pierre-Yves Chibon |
704577 |
usual folders.
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
9dd1c0 |
.. note: The principal is that pagure will look in the folder specified in
|
|
Pierre-Yves Chibon |
9dd1c0 |
the configuration file first and then in its usual folder, so the
|
|
Pierre-Yves Chibon |
9dd1c0 |
**file names must be identical**.
|
|
Pierre-Yves Chibon |
9dd1c0 |
|
|
Pierre-Yves Chibon |
129555 |
Example
|
|
Pierre-Yves Chibon |
129555 |
-------
|
|
Pierre-Yves Chibon |
9dd1c0 |
|
|
Pierre-Yves Chibon |
1342a6 |
Let's take an example, you wish to replace the pagure logo at the top right
|
|
Pierre-Yves Chibon |
1342a6 |
of all the pages.
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
This logo is part of the ``master.html`` template which all pages inherit
|
|
Pierre-Yves Chibon |
1342a6 |
from. So what you want to do is replace this ``master.html`` by your own.
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
* First, create the folder where your templates and static files will be stored:
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
::
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
mkdir /var/www/mypaguretheme/templates
|
|
Pierre-Yves Chibon |
1342a6 |
mkdir /var/www/mypaguretheme/static
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
* Place your own logo in the static folder
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
::
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
7b0a42 |
cp /path/to/your/my-logo.png /var/www/mypaguretheme/static
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
* Place in there the original ``master.html``
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
::
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
cp /path/to/original/pagure/templates/master.html /var/www/mypaguretheme/templates
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
René Genz |
ec0022 |
* Edit it and replace the URL pointing to the pagure logo (around line 27)
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
::
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
-
|
|
Pierre-Yves Chibon |
1342a6 |
+
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
* Adjust pagure's configuration file:
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
c669d2 |
::
|
|
Pierre-Yves Chibon |
c669d2 |
|
|
Pierre-Yves Chibon |
1342a6 |
+ THEME_TEMPLATE_FOLDER='/var/www/mypaguretheme/templates'
|
|
Pierre-Yves Chibon |
1342a6 |
+ THEME_STATIC_FOLDER='/var/www/mypaguretheme/static'
|
|
Pierre-Yves Chibon |
1342a6 |
|
|
Pierre-Yves Chibon |
1342a6 |
* Restart pagure
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
Pierre-Yves Chibon |
d66fc1 |
.. note: you could just have replaced the `pagure-logo.png` file with your
|
|
Pierre-Yves Chibon |
d66fc1 |
own logo which would have avoided overriding the template.
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
Pierre-Yves Chibon |
d66fc1 |
In production
|
|
Pierre-Yves Chibon |
d66fc1 |
-------------
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
Pierre-Yves Chibon |
d66fc1 |
Serving static files via flask is fine for development but in production
|
|
René Genz |
ec0022 |
you will probably want to have Apache serve them. This will allow caching
|
|
Pierre-Yves Chibon |
d66fc1 |
either on the server side or on the client side.
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
René Genz |
ec0022 |
You can ask Apache to behave in a similar way as does flask-multistatic with
|
|
René Genz |
ec0022 |
flask here, i.e.: search in one folder and if you don't find the file look
|
|
Pierre-Yves Chibon |
d66fc1 |
in another one.
|
|
Pierre-Yves Chibon |
d66fc1 |
|
|
René Genz |
ec0022 |
`An example Apache configuration <https: blob="" example.conf="" f="" flask-multistatic="" master="" pagure.io="">`_</https:>
|
|
Pierre-Yves Chibon |
918dfa |
is provided as part of the sources of `flask-multistatic`_.
|