You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

customizing-gitea.en-us.md 15KB

Add Privacy Policy and Terms of Service Page (#9513) * Add privacy policy page and link * Add TOS page and link * Add update date * [Docs] Add customizing PP and TOS * Separate h2 user-generated content with its paragraph * Reimplement Privacy Policy The document is inspired from GitHub. * Refactor to contrib * [Docs] Mention how to add legal pages * Reimplement Terms of Service Adapted from GitHub * Update revision date * Rename to mark as sample file * Apply suggestion from @sapk Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Apply suggestion from @sapk Use absolute link instead Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Apply suggestion from @zeripath Change `Last Updated` element to `<h4>` Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Close this `<li>` element instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Intentionally grammar fix Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Information grammar Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Cannot guarantee absolute security... Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Use `<h4>` element for last updated date Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Remove trailing `</p>` at the end of API clause Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Migrate privacy email domain to Your Gitea Instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container for `<ol>` definitions Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container that contain `<ol>` user-generated content Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container for private repositories `<ol>` listing Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Migrate remaining email domains to Your Gitea Instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Offer support Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Change "Your Gitea Instance" references to match your situation and Gitea project disclaimer Co-Authored-By: zeripath <art27@cantab.net> * Reword transmission data to reflect hosting on third-party provider * Reword Analytics clause to reflects that not all Gitea instances deploy analytics OOTB * Remove `<p>` container from account terms * Migrate support email on tos to your-gitea-instance * Reword Tracking and Analytics clause for OOTB case * [Docs] Append privacy.html to cp destination * Apply suggestion from @6543 Create or append to footer template Co-Authored-By: 6543 <6543@obermui.de> * Apply suggestion from myself @6543 suggest replacing this `cp` line (which assumed that Gitea sources are available) with `wget` to GitHub raw link. At the time of writing this, this returned 404, but when this PR has been merged, this should get the actual page. * Apply suggestions from @6543 1. Add gpg key to profile information 2. Add Git repos to list of User Personal Information 3. Comment out responsibility for sensitive information Co-Authored-By: 6543 <6543@obermui.de> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: 6543 <6543@obermui.de>
4 years ago
Add Privacy Policy and Terms of Service Page (#9513) * Add privacy policy page and link * Add TOS page and link * Add update date * [Docs] Add customizing PP and TOS * Separate h2 user-generated content with its paragraph * Reimplement Privacy Policy The document is inspired from GitHub. * Refactor to contrib * [Docs] Mention how to add legal pages * Reimplement Terms of Service Adapted from GitHub * Update revision date * Rename to mark as sample file * Apply suggestion from @sapk Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Apply suggestion from @sapk Use absolute link instead Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Apply suggestion from @zeripath Change `Last Updated` element to `<h4>` Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Close this `<li>` element instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Intentionally grammar fix Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Information grammar Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Cannot guarantee absolute security... Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Use `<h4>` element for last updated date Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Remove trailing `</p>` at the end of API clause Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Migrate privacy email domain to Your Gitea Instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container for `<ol>` definitions Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container that contain `<ol>` user-generated content Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Remove `<p>` container for private repositories `<ol>` listing Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestions from @zeripath Migrate remaining email domains to Your Gitea Instance Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Offer support Co-Authored-By: zeripath <art27@cantab.net> * Apply suggestion from @zeripath Change "Your Gitea Instance" references to match your situation and Gitea project disclaimer Co-Authored-By: zeripath <art27@cantab.net> * Reword transmission data to reflect hosting on third-party provider * Reword Analytics clause to reflects that not all Gitea instances deploy analytics OOTB * Remove `<p>` container from account terms * Migrate support email on tos to your-gitea-instance * Reword Tracking and Analytics clause for OOTB case * [Docs] Append privacy.html to cp destination * Apply suggestion from @6543 Create or append to footer template Co-Authored-By: 6543 <6543@obermui.de> * Apply suggestion from myself @6543 suggest replacing this `cp` line (which assumed that Gitea sources are available) with `wget` to GitHub raw link. At the time of writing this, this returned 404, but when this PR has been merged, this should get the actual page. * Apply suggestions from @6543 1. Add gpg key to profile information 2. Add Git repos to list of User Personal Information 3. Comment out responsibility for sensitive information Co-Authored-By: 6543 <6543@obermui.de> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: 6543 <6543@obermui.de>
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. ---
  2. date: "2017-04-15T14:56:00+02:00"
  3. title: "Customizing Gitea"
  4. slug: "customizing-gitea"
  5. weight: 9
  6. toc: false
  7. draft: false
  8. menu:
  9. sidebar:
  10. parent: "advanced"
  11. name: "Customizing Gitea"
  12. identifier: "customizing-gitea"
  13. weight: 9
  14. ---
  15. # Customizing Gitea
  16. Customizing Gitea is typically done using the `CustomPath` folder - by default this is
  17. the `custom` folder from the running directory, but may be different if your build has
  18. set this differently. This is the central place to override configuration settings,
  19. templates, etc. You can check the `CustomPath` using `gitea help`. You can also find
  20. the path on the _Configuration_ tab in the _Site Administration_ page. You can override
  21. the `CustomPath` by setting either the `GITEA_CUSTOM` environment variable or by
  22. using the `--custom-path` option on the `gitea` binary. (The option will override the
  23. environment variable.)
  24. If Gitea is deployed from binary, all default paths will be relative to the Gitea
  25. binary. If installed from a distribution, these paths will likely be modified to
  26. the Linux Filesystem Standard. Gitea will attempt to create required folders, including
  27. `custom/`. Distributions may provide a symlink for `custom` using `/etc/gitea/`.
  28. Application settings can be found in file `CustomConf` which is by default,
  29. `$GITEA_CUSTOM/conf/app.ini` but may be different if your build has set this differently.
  30. Again `gitea help` will allow you review this variable and you can override it using the
  31. `--config` option on the `gitea` binary.
  32. - [Quick Cheat Sheet](https://docs.gitea.io/en-us/config-cheat-sheet/)
  33. - [Complete List](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
  34. If the `CustomPath` folder can't be found despite checking `gitea help`, check the `GITEA_CUSTOM`
  35. environment variable; this can be used to override the default path to something else.
  36. `GITEA_CUSTOM` might, for example, be set by an init script. You can check whether the value
  37. is set under the "Configuration" tab on the site administration page.
  38. - [List of Environment Variables](https://docs.gitea.io/en-us/environment-variables/)
  39. **Note:** Gitea must perform a full restart to see configuration changes.
  40. **Table of Contents**
  41. {{< toc >}}
  42. ## Serving custom public files
  43. To make Gitea serve custom public files (like pages and images), use the folder
  44. `$GITEA_CUSTOM/public/` as the webroot. Symbolic links will be followed.
  45. For example, a file `image.png` stored in `$GITEA_CUSTOM/public/`, can be accessed with
  46. the url `http://gitea.domain.tld/assets/image.png`.
  47. ## Changing the logo
  48. To build a custom logo and/or favicon clone the Gitea source repository, replace `assets/logo.svg` and/or `assets/favicon.svg` and run
  49. `make generate-images`. `assets/favicon.svg` is used for the favicon only. This will update below output files which you can then place in `$GITEA_CUSTOM/public/img` on your server:
  50. - `public/img/logo.svg` - Used for site icon, app icon
  51. - `public/img/logo.png` - Used for Open Graph
  52. - `public/img/avatar_default.png` - Used as the default avatar image
  53. - `public/img/apple-touch-icon.png` - Used on iOS devices for bookmarks
  54. - `public/img/favicon.svg` - Used for favicon
  55. - `public/img/favicon.png` - Used as fallback for browsers that don't support SVG favicons
  56. In case the source image is not in vector format, you can attempt to convert a raster image using tools like [this](https://www.aconvert.com/image/png-to-svg/).
  57. ## Customizing Gitea pages and resources
  58. Gitea's executable contains all the resources required to run: templates, images, style-sheets
  59. and translations. Any of them can be overridden by placing a replacement in a matching path
  60. inside the `custom` directory. For example, to replace the default `.gitignore` provided
  61. for C++ repositories, we want to replace `options/gitignore/C++`. To do this, a replacement
  62. must be placed in `$GITEA_CUSTOM/options/gitignore/C++` (see about the location of the `CustomPath`
  63. directory at the top of this document).
  64. Every single page of Gitea can be changed. Dynamic content is generated using [go templates](https://golang.org/pkg/html/template/),
  65. which can be modified by placing replacements below the `$GITEA_CUSTOM/templates` directory.
  66. To obtain any embedded file (including templates), the [`gitea embedded` tool]({{< relref "doc/advanced/cmd-embedded.en-us.md" >}}) can be used. Alternatively, they can be found in the [`templates`](https://github.com/go-gitea/gitea/tree/main/templates) directory of Gitea source (Note: the example link is from the `main` branch. Make sure to use templates compatible with the release you are using).
  67. Be aware that any statement contained inside `{{` and `}}` are Gitea's template syntax and
  68. shouldn't be touched without fully understanding these components.
  69. ### Customizing startpage / homepage
  70. Copy [`home.tmpl`](https://github.com/go-gitea/gitea/blob/main/templates/home.tmpl) for your version of Gitea from `templates` to `$GITEA_CUSTOM/templates`.
  71. Edit as you wish.
  72. Dont forget to restart your Gitea to apply the changes.
  73. ### Adding links and tabs
  74. If all you want is to add extra links to the top navigation bar or footer, or extra tabs to the repository view, you can put them in `extra_links.tmpl` (links added to the navbar), `extra_links_footer.tmpl` (links added to the left side of footer), and `extra_tabs.tmpl` inside your `$GITEA_CUSTOM/templates/custom/` directory.
  75. For instance, let's say you are in Germany and must add the famously legally-required "Impressum"/about page, listing who is responsible for the site's content:
  76. just place it under your "$GITEA_CUSTOM/public/" directory (for instance `$GITEA_CUSTOM/public/impressum.html`) and put a link to it in either `$GITEA_CUSTOM/templates/custom/extra_links.tmpl` or `$GITEA_CUSTOM/templates/custom/extra_links_footer.tmpl`.
  77. To match the current style, the link should have the class name "item", and you can use `{{AppSubUrl}}` to get the base URL:
  78. `<a class="item" href="{{AppSubUrl}}/assets/impressum.html">Impressum</a>`
  79. For more information, see [Adding Legal Pages](https://docs.gitea.io/en-us/adding-legal-pages).
  80. You can add new tabs in the same way, putting them in `extra_tabs.tmpl`.
  81. The exact HTML needed to match the style of other tabs is in the file
  82. `templates/repo/header.tmpl`
  83. ([source in GitHub](https://github.com/go-gitea/gitea/blob/main/templates/repo/header.tmpl))
  84. ### Other additions to the page
  85. Apart from `extra_links.tmpl` and `extra_tabs.tmpl`, there are other useful templates you can put in your `$GITEA_CUSTOM/templates/custom/` directory:
  86. - `header.tmpl`, just before the end of the `<head>` tag where you can add custom CSS files for instance.
  87. - `body_outer_pre.tmpl`, right after the start of `<body>`.
  88. - `body_inner_pre.tmpl`, before the top navigation bar, but already inside the main container `<div class="full height">`.
  89. - `body_inner_post.tmpl`, before the end of the main container.
  90. - `body_outer_post.tmpl`, before the bottom `<footer>` element.
  91. - `footer.tmpl`, right before the end of the `<body>` tag, a good place for additional Javascript.
  92. #### Example: PlantUML
  93. You can add [PlantUML](https://plantuml.com/) support to Gitea's markdown by using a PlantUML server.
  94. The data is encoded and sent to the PlantUML server which generates the picture. There is an online
  95. demo server at http://www.plantuml.com/plantuml, but if you (or your users) have sensitive data you
  96. can set up your own [PlantUML server](https://plantuml.com/server) instead. To set up PlantUML rendering,
  97. copy javascript files from https://gitea.com/davidsvantesson/plantuml-code-highlight and put them in your
  98. `$GITEA_CUSTOM/public` folder. Then add the following to `custom/footer.tmpl`:
  99. ```html
  100. <script>
  101. $(async () => {
  102. if (!$('.language-plantuml').length) return;
  103. await Promise.all([
  104. $.getScript('https://your-server.com/deflate.js'),
  105. $.getScript('https://your-server.com/encode.js'),
  106. $.getScript('https://your-server.com/plantuml_codeblock_parse.js'),
  107. ]);
  108. // Replace call with address to your plantuml server
  109. parsePlantumlCodeBlocks("https://www.plantuml.com/plantuml");
  110. });
  111. </script>
  112. ```
  113. You can then add blocks like the following to your markdown:
  114. ```plantuml
  115. Alice -> Bob: Authentication Request
  116. Bob --> Alice: Authentication Response
  117. Alice -> Bob: Another authentication Request
  118. Alice <-- Bob: Another authentication Response
  119. ```
  120. The script will detect tags with `class="language-plantuml"`, but you can change this by providing a second argument to `parsePlantumlCodeBlocks`.
  121. #### Example: STL Preview
  122. You can display STL file directly in Gitea by adding:
  123. ```html
  124. <script>
  125. function lS(src) {
  126. return new Promise(function (resolve, reject) {
  127. let s = document.createElement("script");
  128. s.src = src;
  129. s.addEventListener("load", () => {
  130. resolve();
  131. });
  132. document.body.appendChild(s);
  133. });
  134. }
  135. if ($('.view-raw>a[href$=".stl" i]').length) {
  136. $("body").append(
  137. '<link href="/assets/Madeleine.js/src/css/Madeleine.css" rel="stylesheet">'
  138. );
  139. Promise.all([
  140. lS("/assets/Madeleine.js/src/lib/stats.js"),
  141. lS("/assets/Madeleine.js/src/lib/detector.js"),
  142. lS("/assets/Madeleine.js/src/lib/three.min.js"),
  143. lS("/assets/Madeleine.js/src/Madeleine.js"),
  144. ]).then(function () {
  145. $(".view-raw")
  146. .attr("id", "view-raw")
  147. .attr("style", "padding: 0;margin-bottom: -10px;");
  148. new Madeleine({
  149. target: "view-raw",
  150. data: $('.view-raw>a[href$=".stl" i]').attr("href"),
  151. path: "/assets/Madeleine.js/src",
  152. });
  153. $('.view-raw>a[href$=".stl"]').remove();
  154. });
  155. }
  156. </script>
  157. ```
  158. to the file `templates/custom/footer.tmpl`
  159. You also need to download the content of the library [Madeleine.js](https://jinjunho.github.io/Madeleine.js/) and place it under `$GITEA_CUSTOM/public/` folder.
  160. You should end-up with a folder structure similar to:
  161. ```
  162. $GITEA_CUSTOM/templates
  163. -- custom
  164. `-- footer.tmpl
  165. $GITEA_CUSTOM/public
  166. -- Madeleine.js
  167. |-- LICENSE
  168. |-- README.md
  169. |-- css
  170. | |-- pygment_trac.css
  171. | `-- stylesheet.css
  172. |-- examples
  173. | |-- ajax.html
  174. | |-- index.html
  175. | `-- upload.html
  176. |-- images
  177. | |-- bg_hr.png
  178. | |-- blacktocat.png
  179. | |-- icon_download.png
  180. | `-- sprite_download.png
  181. |-- models
  182. | |-- dino2.stl
  183. | |-- ducati.stl
  184. | |-- gallardo.stl
  185. | |-- lamp.stl
  186. | |-- octocat.stl
  187. | |-- skull.stl
  188. | `-- treefrog.stl
  189. `-- src
  190. |-- Madeleine.js
  191. |-- css
  192. | `-- Madeleine.css
  193. |-- icons
  194. | |-- logo.png
  195. | |-- madeleine.eot
  196. | |-- madeleine.svg
  197. | |-- madeleine.ttf
  198. | `-- madeleine.woff
  199. `-- lib
  200. |-- MadeleineConverter.js
  201. |-- MadeleineLoader.js
  202. |-- detector.js
  203. |-- stats.js
  204. `-- three.min.js
  205. ```
  206. Then restart Gitea and open a STL file on your Gitea instance.
  207. ## Customizing Gitea mails
  208. The `$GITEA_CUSTOM/templates/mail` folder allows changing the body of every mail of Gitea.
  209. Templates to override can be found in the
  210. [`templates/mail`](https://github.com/go-gitea/gitea/tree/main/templates/mail)
  211. directory of Gitea source.
  212. Override by making a copy of the file under `$GITEA_CUSTOM/templates/mail` using a
  213. full path structure matching source.
  214. Any statement contained inside `{{` and `}}` are Gitea's template
  215. syntax and shouldn't be touched without fully understanding these components.
  216. ## Adding Analytics to Gitea
  217. Google Analytics, Matomo (previously Piwik), and other analytics services can be added to Gitea. To add the tracking code, refer to the `Other additions to the page` section of this document, and add the JavaScript to the `$GITEA_CUSTOM/templates/custom/header.tmpl` file.
  218. ## Customizing gitignores, labels, licenses, locales, and readmes.
  219. Place custom files in corresponding sub-folder under `custom/options`.
  220. **NOTE:** The files should not have a file extension, e.g. `Labels` rather than `Labels.txt`
  221. ### gitignores
  222. To add custom .gitignore, add a file with existing [.gitignore rules](https://git-scm.com/docs/gitignore) in it to `$GITEA_CUSTOM/options/gitignore`
  223. ### Labels
  224. To add a custom label set, add a file that follows the [label format](https://github.com/go-gitea/gitea/blob/main/options/label/Default) to `$GITEA_CUSTOM/options/label`
  225. `#hex-color label name ; label description`
  226. ### Licenses
  227. To add a custom license, add a file with the license text to `$GITEA_CUSTOM/options/license`
  228. ### Locales
  229. Locales are managed via our [Crowdin](https://crowdin.com/project/gitea).
  230. You can override a locale by placing an altered locale file in `$GITEA_CUSTOM/options/locale`.
  231. Gitea's default locale files can be found in the [`options/locale`](https://github.com/go-gitea/gitea/tree/main/options/locale) source folder and these should be used as examples for your changes.
  232. To add a completely new locale, as well as placing the file in the above location, you will need to add the new lang and name to the `[i18n]` section in your `app.ini`. Keep in mind that Gitea will use those settings as **overrides**, so if you want to keep the other languages as well you will need to copy/paste the default values and add your own to them.
  233. ```
  234. [i18n]
  235. LANGS = en-US,foo-BAR
  236. NAMES = English,FooBar
  237. ```
  238. The first locale will be used as the default if user browser's language doesn't match any locale in the list.
  239. Locales may change between versions, so keeping track of your customized locales is highly encouraged.
  240. ### Readmes
  241. To add a custom Readme, add a markdown formatted file (without an `.md` extension) to `$GITEA_CUSTOM/options/readme`
  242. **NOTE:** readme templates support **variable expansion**.
  243. currently there are `{Name}` (name of repository), `{Description}`, `{CloneURL.SSH}`, `{CloneURL.HTTPS}` and `{OwnerName}`
  244. ### Reactions
  245. To change reaction emoji's you can set allowed reactions at app.ini
  246. ```
  247. [ui]
  248. REACTIONS = +1, -1, laugh, confused, heart, hooray, eyes
  249. ```
  250. A full list of supported emoji's is at [emoji list](https://gitea.com/gitea/gitea.com/issues/8)
  251. ## Customizing the look of Gitea
  252. The default built-in themes are `gitea` (light), `arc-green` (dark), and `auto` (chooses light or dark depending on operating system settings).
  253. The default theme can be changed via `DEFAULT_THEME` in the [ui](https://docs.gitea.io/en-us/config-cheat-sheet/#ui-ui) section of `app.ini`.
  254. Gitea also has support for user themes, which means every user can select which theme should be used.
  255. The list of themes a user can choose from can be configured with the `THEMES` value in the [ui](https://docs.gitea.io/en-us/config-cheat-sheet/#ui-ui) section of `app.ini`.
  256. To make a custom theme available to all users:
  257. 1. Add a CSS file to `$GITEA_PUBLIC/public/css/theme-<theme-name>.css`.
  258. The value of `$GITEA_PUBLIC` of your instance can be queried by calling `gitea help` and looking up the value of "CustomPath".
  259. 2. Add `<theme-name>` to the comma-separated list of setting `THEMES` in `app.ini`
  260. Community themes are listed in [gitea/awesome-gitea#themes](https://gitea.com/gitea/awesome-gitea#themes).
  261. The `arc-green` theme source can be found [here](https://github.com/go-gitea/gitea/blob/main/web_src/less/themes/theme-arc-green.less).
  262. If your custom theme is considered a dark theme, set the global css variable `--is-dark-theme` to `true`.
  263. This allows Gitea to adjust the Monaco code editor's theme accordingly.
  264. ## Customizing fonts
  265. Fonts can be customized using CSS variables:
  266. ```css
  267. :root {
  268. --fonts-proportional: /* custom proportional fonts */ !important;
  269. --fonts-monospace: /* custom monospace fonts */ !important;
  270. --fonts-emoji: /* custom emoji fonts */ !important;
  271. }
  272. ```