Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
47 additions
and
39 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,42 @@ | ||
--- | ||
name: Custom Template | ||
name: Custom template | ||
--- | ||
|
||
# Customizing Templates | ||
# Customizing templates | ||
|
||
There are two types of template customizations you can utilize: | ||
1. Template replacement | ||
* The core template is superseded by the custom template and thus the original will not execute. | ||
* Future template changes must be manually integrated into your custom override templates. | ||
2. Code injection | ||
* This keeps the original template, but simply injects additional code. | ||
* Future template changes are automatically integrated when you upgrade to newer releases. | ||
|
||
## Override HTML templates | ||
|
||
## Replace With a Custom Template | ||
You can replace/override core templates by creating a custom version. Your replacement templates will survive code updates, but you may want to keep tabs on them in case functionality changes. Be careful when replacing core templates as you may break things in future releases. | ||
You can override HTML templates (including templates for emails) by creating a customized version by creating a customized version under `custom/templates/` directory. Your version of HTML templates will survive code updates, but you may want to keep tabs on them in case functionality changes. Be careful when overriding HTML templates as you may break things in future releases. | ||
|
||
A great example is to customize the look and contents of the home page. | ||
An example is to customize the look and contents of the home page: | ||
|
||
1. Copy the existing template `/templates/home.tmpl` | ||
2. Save edited file as `custom/templates/home.tmpl` | ||
1. Copy the content of template file `templates/home.tmpl`. | ||
2. Save edited file as `custom/templates/home.tmpl`. | ||
|
||
Edits to the custom template file(s) do not require restart Gogs | ||
⚠ Edits to the custom HTML templates **require restarting Gogs**. | ||
|
||
Other templates can also be replaced by saving the customized template in the same relative location as the original, but under the `custom/templates` directory. Create subdirectories as needed in the `custom/templates` directory to match the corresponding template file you wish to override. | ||
## Override static files | ||
|
||
To create a custom replacement 404 template, you would save it as `custom/templates/status/404.tmpl` | ||
You can override static files (CSS, JavaScript, images, etc.) by creating a customized version under `custom/public/` directory. Your version of static files will survive code updates, but you may want to keep tabs on them in case functionality changes. Be careful when overriding static files as you may break things in future releases. | ||
|
||
For example, you can override the site favicon by putting your version of favicon to `custom/public/img/favicon.png`. | ||
|
||
⚠ Edits to the custom static files **DO NOT require restarting Gogs**. | ||
|
||
## Inject content into existing templates | ||
|
||
## Inject Code Into Existing Template | ||
You can inject your custom head or footer content to Gogs without touching source code of main repository. This is useful if you want to add analytics code or include custom static resources. | ||
|
||
[You can read more about injecting a custom head and footer here.](https://discuss.gogs.io/t/how-to-inject-custom-head-and-footer/943). | ||
|
||
## Include Custom CSS File | ||
This approach is recommended whenever possible because it has the minimum impact on templates. | ||
|
||
### Inject custom CSS file | ||
|
||
Here is an example of how you can include a custom CSS file in your Gogs instance. Names and directories are just for demonstration, you can put it anywhere as long as it can be accessed via network requests. | ||
|
||
1. Create a file named `custom.css` under `public/css` directory. | ||
1. Create a file named `custom.css` under `custom/public/css/` directory. | ||
2. Put some CSS rules into the file. | ||
3. Edit file `custom/templates/inject/head.tmpl` and add a line `<link rel="stylesheet" href="/css/custom.css">` | ||
4. Restart Gogs | ||
5. Further changes to the custom CSS file do not require restarting Gogs. | ||
4. Restart Gogs. | ||
5. Future edits to the custom CSS file **DO NOT require restarting Gogs**. |
This file contains 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