feat: add inject support

Co-authored-by: st1020 <me@st1020.com>
This commit is contained in:
Damien LaRocque 2024-10-05 11:12:49 -04:00 committed by GitHub
parent fe3b3a6e14
commit a6cf030459
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 48 additions and 10 deletions

View file

@ -12,6 +12,7 @@ This theme is based on Hugo theme [hugo-paper](https://github.com/nanxiaobei/hug
- Easy to use and modify - Easy to use and modify
- No preset limits (This theme does not limit your content directory structure, taxonomy names, etc. It's applicable to all zola sites.) - No preset limits (This theme does not limit your content directory structure, taxonomy names, etc. It's applicable to all zola sites.)
- Inject support
- Dark mode - Dark mode
- Responsive design - Responsive design
- Social icons - Social icons
@ -49,6 +50,20 @@ theme = "kita"
See the `extra` section in [config.toml](https://github.com/st1020/kita/blob/main/config.toml) as a example. See the `extra` section in [config.toml](https://github.com/st1020/kita/blob/main/config.toml) as a example.
## Inject support
You can easily use inject to add new features to your side without modifying the theme itself.
To use inject, you need to add some HTML files to the `templates/injects` directory.
The available inject points are: `head`, `header_nav`, `body_start`, `body_end`, `page_start`, `page_end`, `footer`, `page_info`.
For example, to load a custom script, you can add a `templates/injects/head.html` file:
```html
<script src="js-file-path-or-cdn-url.js"></script>
```
## License ## License
[MIT License](https://github.com/st1020/kita/blob/main/LICENSE) [MIT License](https://github.com/st1020/kita/blob/main/LICENSE)

View file

@ -5,6 +5,9 @@
<body class="text-black duration-200 ease-out dark:text-white"> <body class="text-black duration-200 ease-out dark:text-white">
{% include "partials/header.html" %} {% include "partials/header.html" %}
<!-- Body Start inject -->
{% include "injects/body_start.html" ignore missing %}
<main <main
class="prose prose-neutral relative mx-auto min-h-[calc(100%-9rem)] max-w-3xl break-words px-4 pb-16 pt-32 dark:prose-invert prose-pre:rounded-lg prose-img:rounded-lg" class="prose prose-neutral relative mx-auto min-h-[calc(100%-9rem)] max-w-3xl break-words px-4 pb-16 pt-32 dark:prose-invert prose-pre:rounded-lg prose-img:rounded-lg"
> >
@ -20,5 +23,8 @@
</main> </main>
{% include "partials/footer.html" %} {% include "partials/footer.html" %}
<!-- Body End inject -->
{% include "injects/body_end.html" ignore missing %}
</body> </body>
</html> </html>

View file

@ -1,6 +1,9 @@
{% extends "index.html" %}<!----> {% extends "index.html" %}<!---->
{% block main %} {% block main %}
<article> <article>
<!-- Page Start inject -->
{% include "injects/page_start.html" ignore missing %}
<header class="mb-16"> <header class="mb-16">
<h1 class="!my-0 pb-2.5">{{ page.title }}</h1> <h1 class="!my-0 pb-2.5">{{ page.title }}</h1>
{% include "partials/page_info.html" %} {% include "partials/page_info.html" %}
@ -34,5 +37,8 @@
{% if page.extra.comment | default(value=config.extra.comment) %}<!----> {% if page.extra.comment | default(value=config.extra.comment) %}<!---->
{% include "partials/comment.html" %}<!----> {% include "partials/comment.html" %}<!---->
{% endif %} {% endif %}
<!-- Page End inject -->
{% include "injects/page_end.html" ignore missing %}
</article> </article>
{% endblock main %} {% endblock main %}

View file

@ -1,12 +1,14 @@
<footer class="mx-auto flex max-w-3xl flex-wrap items-center px-8 py-4 text-sm opacity-60"> <footer class="mx-auto flex max-w-3xl flex-wrap items-center px-8 py-4 text-sm opacity-60">
<div class="mr-auto basis-full lg:basis-1/2"> <div class="mr-auto basis-full lg:basis-1/2">
{% set current_year = now() | date(format="%Y") | int %} {% set current_year = now() | date(format="%Y") | int %}<!---->
&copy; {% if config.extra.footer.since and config.extra.footer.since != current_year %} {% if config.extra.footer.since and config.extra.footer.since != current_year %}<!---->
{{ config.extra.footer.since }} - {{ current_year }} &copy; {{ config.extra.footer.since }} - {{ current_year }}<!---->
{% else %}{{ current_year }}{% endif %} {% else %}<!---->
<a class="link" href="{{ get_url(path=``) }}" &copy; {{ current_year }}<!---->
>{{ config.author | default(value=config.title) }}</a {% endif %}
> <a class="link" href="{{ get_url(path=``) }}">
{{ config.author | default(value=config.title) }}
</a>
{% if config.extra.footer.license %} |<!----> {% if config.extra.footer.license %} |<!---->
{% if config.extra.footer.license_url %}<!----> {% if config.extra.footer.license_url %}<!---->
<a class="link" href="{{ config.extra.footer.license_url }}" rel="noopener" target="_blank"> <a class="link" href="{{ config.extra.footer.license_url }}" rel="noopener" target="_blank">
@ -18,9 +20,11 @@
{% endif %} {% endif %}
</div> </div>
<div class="flex basis-full lg:basis-1/2 lg:justify-end"> <div class="flex basis-full lg:basis-1/2 lg:justify-end">
<a class="link mr-6 lg:ml-6" href="https://www.getzola.org/" rel="noopener" target="_blank" <a class="link mr-6 lg:ml-6" href="https://www.getzola.org/" rel="noopener" target="_blank">
>Powered by Zola</a Powered by Zola
> </a>
<a class="link" href="https://github.com/st1020/kita" rel="noopener" target="_blank">✎ Kita</a> <a class="link" href="https://github.com/st1020/kita" rel="noopener" target="_blank">✎ Kita</a>
</div> </div>
<!-- Footer inject -->
{% include "injects/footer.html" ignore missing %}
</footer> </footer>

View file

@ -141,4 +141,7 @@
<!-- Canonical --> <!-- Canonical -->
<link rel="canonical" href="{{ page.permalink | default(value=get_url(path=``)) }}" /> <link rel="canonical" href="{{ page.permalink | default(value=get_url(path=``)) }}" />
<!-- Head inject -->
{% include "injects/head.html" ignore missing %}
</head> </head>

View file

@ -79,6 +79,8 @@
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<!-- Header Nav inject -->
{% include "injects/header_nav.html" ignore missing %}
</nav> </nav>
{% endif %} {% endif %}
</div> </div>

View file

@ -13,4 +13,6 @@
<span class="mx-1">&middot;</span> <span class="mx-1">&middot;</span>
<span>{{ author }}</span> <span>{{ author }}</span>
{% endif %} {% endif %}
<!-- Page Info inject -->
{% include "injects/page_info.html" ignore missing %}
</div> </div>