Skip to content

Commit 78b8b83

Browse files
PS-9769 [DOCs] Configure the print-site plugin for PDF generation (#495)
new file: _resourcepdf/overrides/404.html new file: _resourcepdf/overrides/main.html new file: _resourcepdf/overrides/partials/banner.html new file: _resourcepdf/overrides/partials/copyright.html new file: _resourcepdf/overrides/partials/header.html new file: docs/templates/pdf_cover_page.tpl modified: mkdocs-base.yml deleted: mkdocs-pdf.yml modified: mkdocs.yml modified: requirements.txt
1 parent 2aaf458 commit 78b8b83

File tree

11 files changed

+282
-28
lines changed

11 files changed

+282
-28
lines changed

_resourcepdf/overrides/404.html

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{#-
2+
This file was automatically generated - do not edit
3+
-#}
4+
{% extends "main.html" %}
5+
{% block content %}
6+
<h1>404 - Not found</h1>
7+
<p>
8+
We can't find the page you are looking for. Try using the Search or <a href= "{{ config.extra.homepage | d(nav.homepage.url, true) | url }}"> return to homepage </a>. </p>
9+
{% endblock %}

_resourcepdf/overrides/main.html

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
{#
2+
MkDocs template for builds with Material theme to customize docs layout
3+
by adding marketing-requested elements
4+
#}
5+
6+
{# Import the theme's layout. #}
7+
{% extends "base.html" %}
8+
9+
10+
{% block site_nav %}
11+
{% if nav %}
12+
{% if page.meta and page.meta.hide %}
13+
{% set hidden = "hidden" if "navigation" in page.meta.hide %}
14+
{% endif %}
15+
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" {{ hidden }}>
16+
<div class="md-sidebar__scrollwrap">
17+
<div class="md-sidebar__inner">
18+
{% include "partials/nav.html" %}
19+
<br>
20+
<label class="md-nav__title" for="__drawer">
21+
<a href="https://learn.percona.com/download-manual-percona-server-for-mysql-8.0" onclick="_gaq.push(['b._trackEvent', 'Percona Server', 'Download', 'Download Manual Percona Server']);" class="md-nav__link md-nav__link--active" style="font-size: .7rem;">
22+
Download PDF
23+
</a>
24+
</label>
25+
</div>
26+
</div>
27+
</div>
28+
{% endif %}
29+
{% if "toc.integrate" not in features %}
30+
{% if page.meta and page.meta.hide %}
31+
{% set hidden = "hidden" if "toc" in page.meta.hide %}
32+
{% endif %}
33+
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" {{ hidden }}>
34+
<div class="md-sidebar__scrollwrap">
35+
<div class="md-sidebar__inner">
36+
{% include "partials/toc.html" %}
37+
</div>
38+
<div class="md-sidebar__inner">
39+
{% include "partials/banner.html" %}
40+
</div>
41+
</div>
42+
</div>
43+
{% endif %}
44+
{% endblock %}
45+
46+
{% block content%}
47+
48+
{{ super() }}
49+
50+
51+
<script>
52+
window.addEventListener('beforeprint', (event) => {
53+
for (const detailEl of document.querySelectorAll('details')) {
54+
if (detailEl.getAttribute('open') == null) {
55+
detailEl.setAttribute('data-was-closed', 'true')
56+
}
57+
detailEl.setAttribute('open', '')
58+
}
59+
})
60+
window.addEventListener('afterprint', (event) => {
61+
for (const detailEl of document.querySelectorAll('details')) {
62+
if (detailEl.getAttribute('data-was-closed') != null) {
63+
detailEl.removeAttribute('data-was-closed')
64+
detailEl.removeAttribute('open')
65+
}
66+
}
67+
})
68+
</script>
69+
{% endblock %}
70+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<div data-banner="data-banner">
2+
<p><svg style="display:block;margin:-1em 0 0.75em" width="78" height="69" viewBox="0 0 78 69" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M56.7281 30.7666C62.6528 26.8938 64.5914 18.9942 61.0059 12.7854C59.2094 9.67113 56.3053 7.44082 52.8311 6.50951C49.6122 5.64535 46.2502 5.99872 43.2912 7.49366L39.251 0.5L30.8648 15.0245L11.4811 48.5937H67.021L56.7281 30.7666ZM51.881 10.0674C54.4064 10.7401 56.5079 12.3616 57.8168 14.6194C60.3895 19.0701 59.053 24.7153 54.8808 27.5665L45.1362 10.6905C47.2355 9.68104 49.6034 9.46087 51.881 10.0674ZM39.251 7.87125L60.6339 44.907H48.1228L32.9927 18.7102L39.2499 7.87235L39.251 7.87125ZM17.8682 44.907L30.8637 22.4035L43.8592 44.907H17.8682Z" fill="url(#paint0_linear_2899_1968)"></path><path style="fill:var(--md-typeset-color)" d="M4.981 64.943H3.157V68.207H.756V57.323H5.217C7.822 57.323 9.397 58.861 9.397 61.086V61.116C9.397 63.635 7.433 64.94 4.984 64.94L4.981 64.943V64.943ZM6.961 61.134C6.961 60.061 6.213 59.485 5.011 59.485H3.154V62.812H5.056C6.258 62.812 6.958 62.096 6.958 61.163V61.134H6.961ZM10.738 68.208V57.323H18.973V59.455H13.124V61.664H18.27V63.796H13.124V66.082H19.051V68.214H10.738V68.208 68.208ZM27.557 68.208 25.218 64.726H23.332V68.208H20.931V57.323H25.921C28.496 57.323 30.039 58.677 30.039 60.915V60.945C30.039 62.702 29.088 63.807 27.7 64.32L30.367 68.207H27.556L27.557 68.208ZM27.605 61.041C27.605 60.016 26.887 59.485 25.719 59.485H23.333V62.61H25.767C26.936 62.61 27.605 61.987 27.605 61.071V61.042 61.041ZM36.922 68.499C33.668 68.499 31.249 65.994 31.249 62.825V62.795C31.249 59.659 33.619 57.091 37.019 57.091 39.105 57.091 40.356 57.783 41.383 58.792L39.834 60.571C38.98 59.798 38.113 59.327 37.004 59.327 35.141 59.327 33.795 60.871 33.795 62.762V62.793C33.795 64.684 35.107 66.257 37.004 66.257 38.268 66.257 39.043 65.753 39.913 64.964L41.462 66.524C40.322 67.738 39.059 68.493 36.925 68.493L36.922 68.499ZM47.885 68.499C44.47 68.499 42.021 65.962 42.021 62.825V62.795C42.021 59.659 44.503 57.091 47.915 57.091 51.327 57.091 53.779 59.628 53.779 62.765V62.795C53.779 65.931 51.297 68.499 47.885 68.499ZM51.237 62.795C51.237 60.904 49.846 59.331 47.885 59.331 45.925 59.331 44.567 60.874 44.567 62.766V62.796C44.567 64.688 45.959 66.261 47.919 66.261 49.879 66.261 51.237 64.717 51.237 62.826V62.795 62.795ZM67.001 68.217 72.374 57.091 77.746 68.218H75.052L72.374 62.681 69.705 68.218H67.001V68.217ZM66.007 57.327V68.5L57.813 61.884V68.199H55.264V57.091L63.458 63.681V57.327H66.007Z"></path><defs><linearGradient id="paint0_linear_2899_1968" x1="18.1513" y1="44.7152" x2="61.4356" y2="20.9786" gradientUnits="userSpaceOnUse"><stop stop-color="#FC3519"></stop><stop offset="1" stop-color="#F0D136"></stop></linearGradient></defs></svg></p>
3+
<p>For help, click the link below to get free database assistance or contact our experts for personalized support.</p>
4+
5+
<div class="actions">
6+
7+
<a href="https://docs.percona.com/percona-server/8.0/get-help.html" style="color: var(--md-typeset-a-color);">Get help from Percona</a>
8+
</div>
9+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{#-
2+
This file was automatically generated - do not edit
3+
-#}
4+
<div class="md-copyright">
5+
<div class="md-copyright__highlight">
6+
<a href='https://percona.com' target='_blank'>Percona LLC and/or its affiliates, </a> &copy; {{ build_date_utc.strftime('%Y') }} — <a href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')">Cookie Preferences</a>
7+
</div>
8+
{% if not config.extra.generator == false %}
9+
Made with
10+
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
11+
Material for MkDocs
12+
</a>
13+
{% endif %}
14+
</div>
+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<!--
2+
Copyright (c) 2016-2024 Martin Donath <[email protected]>
3+
4+
Permission is hereby granted, free of charge, to any person obtaining a copy
5+
of this software and associated documentation files (the "Software"), to
6+
deal in the Software without restriction, including without limitation the
7+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8+
sell copies of the Software, and to permit persons to whom the Software is
9+
furnished to do so, subject to the following conditions:
10+
11+
The above copyright notice and this permission notice shall be included in
12+
all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
17+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20+
IN THE SOFTWARE.
21+
-->
22+
23+
<!-- Determine classes -->
24+
{% set class = "md-header" %}
25+
{% if "navigation.tabs.sticky" in features %}
26+
{% set class = class ~ " md-header--shadow md-header--lifted" %}
27+
{% elif "navigation.tabs" not in features %}
28+
{% set class = class ~ " md-header--shadow" %}
29+
{% endif %}
30+
31+
<!-- Header -->
32+
<header class="{{ class }}" data-md-component="header">
33+
34+
<!-- Super Nav -->
35+
<div class="superNav">
36+
<div class="md-header__inner md-grid">
37+
<a href="https://docs.percona.com/percona-for-mysql/" title="Percona Documentation home page">
38+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
39+
<mask id="a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
40+
<path d="M0 0h24v24H0z"/>
41+
</mask>
42+
<g mask="url(#a)">
43+
<path d="m7.825 13 5.6 5.6L12 20l-8-8 8-8 1.425 1.4-5.6 5.6H20v2H7.825Z"/>
44+
</g>
45+
</svg>
46+
<span>Percona Software for PostgreSQL Documentation</span>
47+
</a>
48+
</div>
49+
</div>
50+
51+
<nav
52+
class="md-header__inner md-grid"
53+
aria-label="{{ lang.t('header') }}"
54+
>
55+
56+
<!-- Link to home -->
57+
<a
58+
href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}"
59+
title="{{ config.site_name | e }}"
60+
class="md-header__button md-logo"
61+
aria-label="{{ config.site_name }}"
62+
data-md-component="logo"
63+
>
64+
{% include "partials/logo.html" %}
65+
</a>
66+
67+
<!-- Button to open drawer -->
68+
<label class="md-header__button md-icon" for="__drawer">
69+
{% set icon = config.theme.icon.menu or "material/menu" %}
70+
{% include ".icons/" ~ icon ~ ".svg" %}
71+
</label>
72+
73+
<!-- Header title -->
74+
<div class="md-header__title">
75+
<div class="md-header__ellipsis">
76+
<a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" class="md-header__topic">
77+
<span class="md-ellipsis">
78+
{{ config.site_name }}
79+
</span>
80+
</a>
81+
<div class="md-header__topic" data-md-component="header-topic">
82+
<span class="md-ellipsis">
83+
{% if page.meta and page.meta.title %}
84+
{{ page.meta.title }}
85+
{% else %}
86+
{{ page.title }}
87+
{% endif %}
88+
</span>
89+
</div>
90+
</div>
91+
</div>
92+
93+
<!-- Color palette toggle -->
94+
{% if config.theme.palette %}
95+
{% if not config.theme.palette is mapping %}
96+
{% include "partials/palette.html" %}
97+
{% endif %}
98+
{% endif %}
99+
100+
<!-- User preference: color palette -->
101+
{% if not config.theme.palette is mapping %}
102+
{% include "partials/javascripts/palette.html" %}
103+
{% endif %}
104+
105+
<!-- Site language selector -->
106+
{% if config.extra.alternate %}
107+
{% include "partials/alternate.html" %}
108+
{% endif %}
109+
110+
<!-- Button to open search modal -->
111+
{% if "material/search" in config.plugins %}
112+
<label class="md-header__button md-icon" for="__search">
113+
{% set icon = config.theme.icon.search or "material/magnify" %}
114+
{% include ".icons/" ~ icon ~ ".svg" %}
115+
</label>
116+
117+
<!-- Search interface -->
118+
{% include "partials/search.html" %}
119+
{% endif %}
120+
121+
<!-- Repository information -->
122+
{% if config.repo_url %}
123+
<div class="md-header__source">
124+
{% include "partials/source.html" %}
125+
</div>
126+
{% endif %}
127+
</nav>
128+
129+
<!-- Navigation tabs (sticky) -->
130+
{% if "navigation.tabs.sticky" in features %}
131+
{% if "navigation.tabs" in features %}
132+
{% include "partials/tabs.html" %}
133+
{% endif %}
134+
{% endif %}
135+
</header>

docs/templates/pdf_cover_page.tpl

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!--<h1>'{{ config.site_name }}'</h1>-->
2+
{{ config.extra.added_key }}
3+
<p>
4+
<img src="_static/Percona_Logo_Color.png" />
5+
</p>
6+
<h1>Percona Server for MySQL</h1>
7+
{% if config.site_description %}
8+
<h1>{{ config.site_description }}</h1>
9+
{% endif %}
10+
<h2>8.0 (February 26, 2025)</h2>
11+
<!--<h3>Percona Technical Documentation Team</h3>-->

docs/using-kmip.md

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# Using the Key Management Interoperability Protocol (KMIP)
22

3-
As of Percona Server for MySQL 8.0.30-22, the `Key Management Interoperability Protocol (KMIP)` feature is [Generally Available (GA)](glossary.md##general-availability-ga).
4-
53
**Percona Server for MySQL** 8.0.27-18 adds support for the [OASIS Key Management Interoperability Protocol (KMIP)](https://docs.oasis-open.org/kmip/kmip-spec/v2.0/os/kmip-spec-v2.0-os.html). This implementation was tested with the [PyKMIP server](https://pykmip.readthedocs.io/en/latest/server.html) and the [HashiCorp Vault Enterprise KMIP Secrets Engine](https://www.vaultproject.io/docs/secrets/kmip).
64

75
KMIP enables communication between key management systems and the database server. The protocol can do the following:

mkdocs-base.yml

+30-15
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,20 @@ theme:
4545

4646
features:
4747
- search.highlight
48+
- search.share
49+
- search.suggest
4850
- navigation.top
51+
- navigation.tracking
52+
- navigation.instant
53+
- navigation.instant.progress
54+
- navigation.indexes
55+
- content.tooltips
4956
- content.tabs.link
50-
- content.code.copy
51-
- navigation.tracking
5257
- content.action.edit
5358
- content.action.view
59+
- content.code.copy
60+
- content.code.annotate
61+
- toc.follow
5462

5563
extra_css:
5664
- https://unicons.iconscout.com/release/v3.0.3/css/line.css
@@ -117,24 +125,31 @@ plugins:
117125
macros:
118126
include_yaml:
119127
- 'variables.yml' # Use in markdown as '{{ VAR }}'
120-
# exclude: # Don't process these files
121-
# glob:
122-
# - file.md
123-
with-pdf: # https://github.com/orzih/mkdocs-with-pdf
124-
output_path: '_pdf/PerconaServer-8.0.pdf'
125-
cover_title: 'Percona Server Documentation'
126-
cover_subtitle: 8.0.41-32 (2025-02-26)
127-
author: 'Percona Technical Documentation Team'
128-
cover_logo: docs/_static/pdf-logo.png
129-
debug_html: false
130-
custom_template_path: _resource/templates
131-
enabled_if_env: ENABLE_PDF_EXPORT
128+
132129
mike:
133130
version_selector: true
134131
css_dir: css
135132
javascript_dir: js
136133
canonical_version: null
137-
134+
print-site:
135+
add_to_navigation: false
136+
print_page_title: 'Percona Server for MySQL documentation'
137+
add_print_site_banner: false
138+
# Table of contents
139+
add_table_of_contents: true
140+
toc_title: 'Table of Contents'
141+
toc_depth: 2
142+
# Content-related
143+
add_full_urls: false
144+
enumerate_headings: false
145+
enumerate_headings_depth: 1
146+
enumerate_figures: true
147+
add_cover_page: true
148+
cover_page_template: "docs/templates/pdf_cover_page.tpl"
149+
path_to_pdf: ""
150+
include_css: true
151+
enabled: true
152+
138153
extra:
139154
version:
140155
provider: mike

mkdocs-pdf.yml

-9
This file was deleted.

mkdocs.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ site_url: "https://docs.percona.com/percona-server/"
66

77
theme:
88
name: material
9-
custom_dir: _resource/overrides
9+
custom_dir: _resourcepdf/overrides/
1010

1111

1212
#Google Analytics configuration
@@ -26,5 +26,5 @@ extra:
2626
name: This page could be improved
2727
data: 0
2828
note: >-
29-
Thank you for your feedback! Help us improve by following this <a href="https://docs.google.com/forms/d/1bkWACehjqlwA0AKf-qTJcXvYbOSYgze8iTPXjntqmNo/edit" target="_blank" rel="noopener">feedback form</a>.
29+
Thanks for your feedback! Help us improve by following this <a href="https://docs.google.com/forms/d/1bkWACehjqlwA0AKf-qTJcXvYbOSYgze8iTPXjntqmNo/edit" target="_blank" rel="noopener">feedback form</a>.
3030

requirements.txt

+2
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ mkdocs-section-index
1313
mkdocs-htmlproofer-plugin
1414
mkdocs-meta-descriptions-plugin
1515
mike
16+
mkdocs-open-in-new-tab
17+
mkdocs-print-site-plugin

0 commit comments

Comments
 (0)