32 |
33 | {%- if show_copyright %}
34 |
35 | {%- if hasdoc('copyright') %}
36 | {% trans path=pathto('copyright'), copyright=copyright|e -%}
37 |
Copyright © {{ copyright }}
38 | {%- endtrans %}
39 | {%- else %}
40 | {% trans copyright=copyright|e -%}
41 | Copyright © {{ copyright }}
42 | {%- endtrans %}
43 | {%- endif %}
44 |
45 | {%- endif %}
46 |
47 | {# ru-fu: removed "Made with" #}
48 |
49 | {%- if last_updated -%}
50 |
51 | {% trans last_updated=last_updated|e -%}
52 | Last updated on {{ last_updated }}
53 | {%- endtrans -%}
54 |
55 | {%- endif %}
56 |
57 | {%- if show_source and has_source and sourcename %}
58 |
62 | {%- endif %}
63 |
64 |
65 |
66 | {# ru-fu: replaced RTD icons with our links #}
67 |
68 | {% if discourse %}
69 |
72 | {% endif %}
73 |
74 | {% if github_url and github_version and github_folder %}
75 |
76 | {% if github_issues %}
77 |
80 | {% endif %}
81 |
82 |
85 | {% endif %}
86 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/.sphinx/_static/header.css:
--------------------------------------------------------------------------------
1 | .p-navigation {
2 | border-bottom: 1px solid var(--color-sidebar-background-border);
3 | }
4 |
5 | .p-navigation__nav {
6 | background: #333333;
7 | display: flex;
8 | }
9 |
10 | .p-logo {
11 | display: flex !important;
12 | padding-top: 0 !important;
13 | text-decoration: none;
14 | }
15 |
16 | .p-logo-image {
17 | height: 44px;
18 | padding-right: 10px;
19 | }
20 |
21 | .p-logo-text {
22 | margin-top: 18px;
23 | color: white;
24 | text-decoration: none;
25 | }
26 |
27 | ul.p-navigation__links {
28 | display: flex;
29 | list-style: none;
30 | margin-left: 0;
31 | margin-top: auto;
32 | margin-bottom: auto;
33 | max-width: 800px;
34 | width: 100%;
35 | }
36 |
37 | ul.p-navigation__links li {
38 | margin: 0 auto;
39 | text-align: center;
40 | width: 100%;
41 | }
42 |
43 | ul.p-navigation__links li a {
44 | background-color: rgba(0, 0, 0, 0);
45 | border: none;
46 | border-radius: 0;
47 | color: var(--color-sidebar-link-text);
48 | display: block;
49 | font-weight: 400;
50 | line-height: 1.5rem;
51 | margin: 0;
52 | overflow: hidden;
53 | padding: 1rem 0;
54 | position: relative;
55 | text-align: left;
56 | text-overflow: ellipsis;
57 | transition-duration: .1s;
58 | transition-property: background-color, color, opacity;
59 | transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
60 | white-space: nowrap;
61 | width: 100%;
62 | }
63 |
64 | ul.p-navigation__links .p-navigation__link {
65 | color: #ffffff;
66 | font-weight: 300;
67 | text-align: center;
68 | text-decoration: none;
69 | }
70 |
71 | ul.p-navigation__links .p-navigation__link:hover {
72 | background-color: #2b2b2b;
73 | }
74 |
75 | ul.p-navigation__links .p-dropdown__link:hover {
76 | background-color: var(--color-sidebar-item-background--hover);
77 | }
78 |
79 | ul.p-navigation__links .p-navigation__sub-link {
80 | background: var(--color-background-primary);
81 | padding: .5rem 0 .5rem .5rem;
82 | font-weight: 300;
83 | }
84 |
85 | ul.p-navigation__links .more-links-dropdown li a {
86 | border-left: 1px solid var(--color-sidebar-background-border);
87 | border-right: 1px solid var(--color-sidebar-background-border);
88 | }
89 |
90 | ul.p-navigation__links .more-links-dropdown li:first-child a {
91 | border-top: 1px solid var(--color-sidebar-background-border);
92 | }
93 |
94 | ul.p-navigation__links .more-links-dropdown li:last-child a {
95 | border-bottom: 1px solid var(--color-sidebar-background-border);
96 | }
97 |
98 | ul.p-navigation__links .p-navigation__logo {
99 | padding: 0.5rem;
100 | }
101 |
102 | ul.p-navigation__links .p-navigation__logo img {
103 | width: 40px;
104 | }
105 |
106 | ul.more-links-dropdown {
107 | display: none;
108 | overflow-x: visible;
109 | height: 0;
110 | z-index: 55;
111 | padding: 0;
112 | position: relative;
113 | list-style: none;
114 | margin-bottom: 0;
115 | margin-top: 0;
116 | }
117 |
118 | .nav-more-links::after {
119 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='%23111' d='M8.187 11.748l6.187-6.187-1.06-1.061-5.127 5.127L3.061 4.5 2 5.561z'/%3E%3C/svg%3E");
120 | background-position: center;
121 | background-repeat: no-repeat;
122 | background-size: contain;
123 | content: "";
124 | display: block;
125 | filter: invert(100%);
126 | height: 1rem;
127 | pointer-events: none;
128 | position: absolute;
129 | right: 1rem;
130 | text-indent: calc(100% + 10rem);
131 | top: calc(1rem + 0.25rem);
132 | width: 1rem;
133 | }
134 |
135 | .nav-ubuntu-com {
136 | display: none;
137 | }
138 |
139 | @media only screen and (min-width: 480px) {
140 | ul.p-navigation__links li {
141 | width: 100%;
142 | }
143 |
144 | .nav-ubuntu-com {
145 | display: inherit;
146 | }
147 | }
148 |
149 | @media only screen and (max-width: 800px) {
150 | .nav-more-links {
151 | margin-left: auto !important;
152 | padding-right: 2rem !important;
153 | width: 8rem !important;
154 | }
155 | }
156 |
157 | @media only screen and (min-width: 800px) {
158 | ul.p-navigation__links li {
159 | width: 100% !important;
160 | }
161 | }
162 |
163 | @media only screen and (min-width: 1310px) {
164 | ul.p-navigation__links {
165 | margin-left: calc(50% - 41em);
166 | }
167 | }
168 |
--------------------------------------------------------------------------------
/custom_conf.py:
--------------------------------------------------------------------------------
1 | import datetime
2 |
3 | # Custom configuration for the Sphinx documentation builder.
4 | # All configuration specific to your project should be done in this file.
5 | #
6 | # The file is included in the common conf.py configuration file.
7 | # You can modify any of the settings below or add any configuration that
8 | # is not covered by the common conf.py file.
9 | #
10 | # For the full list of built-in configuration values, see the documentation:
11 | # https://www.sphinx-doc.org/en/master/usage/configuration.html
12 |
13 | ############################################################
14 | ### Project information
15 | ############################################################
16 |
17 | # Product name
18 | project = 'Documentation starter pack'
19 | author = 'Canonical Group Ltd'
20 |
21 | # Uncomment if your product uses release numbers
22 | # release = '1.0'
23 |
24 | # The default value uses the current year as the copyright year
25 | copyright = '%s, %s' % (datetime.date.today().year, author)
26 |
27 | ## Open Graph configuration - defines what is displayed in the website preview
28 | # The URL of the documentation output
29 | ogp_site_url = 'https://canonical-starter-pack.readthedocs-hosted.com/'
30 | # The documentation website name (usually the same as the product name)
31 | ogp_site_name = project
32 | # An image or logo that is used in the preview
33 | ogp_image = 'https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg'
34 |
35 | # Update with the favicon for your product (default is the circle of friends)
36 | html_favicon = '.sphinx/_static/favicon.png'
37 |
38 | # (Some settings must be part of the html_context dictionary, while others
39 | # are on root level. Don't move the settings.)
40 | html_context = {
41 |
42 | # Change to the link to your product website (without "https://")
43 | 'product_page': 'documentation.ubuntu.com',
44 |
45 | # Add your product tag to ".sphinx/_static" and change the path
46 | # here (start with "_static"), default is the circle of friends
47 | 'product_tag': '_static/tag.png',
48 |
49 | # Change to the discourse instance you want to be able to link to
50 | # using the :discourse: metadata at the top of a file
51 | # (use an empty value if you don't want to link)
52 | 'discourse': 'https://discourse.ubuntu.com',
53 |
54 | # Change to the GitHub info for your project
55 | 'github_url': 'https://github.com/canonical/starter-pack',
56 |
57 | # Change to the branch for this version of the documentation
58 | 'github_version': 'main',
59 |
60 | # Change to the folder that contains the documentation
61 | # (usually "/" or "/docs/")
62 | 'github_folder': '/',
63 |
64 | # Change to an empty value if your GitHub repo doesn't have issues enabled.
65 | # This will disable the feedback button and the issue link in the footer.
66 | 'github_issues': 'enabled'
67 | }
68 |
69 | ############################################################
70 | ### Redirects
71 | ############################################################
72 |
73 | # Set up redirects (https://documatt.gitlab.io/sphinx-reredirects/usage.html)
74 | # For example: 'explanation/old-name.html': '../how-to/prettify.html',
75 |
76 | redirects = {}
77 |
78 | ############################################################
79 | ### Link checker exceptions
80 | ############################################################
81 |
82 | # Links to ignore when checking links
83 |
84 | linkcheck_ignore = [
85 | 'http://127.0.0.1:8000'
86 | ]
87 |
88 | ############################################################
89 | ### Additions to default configuration
90 | ############################################################
91 |
92 | ## The following settings are appended to the default configuration.
93 | ## Use them to extend the default functionality.
94 |
95 | # Add extensions
96 | custom_extensions = []
97 |
98 | # Add files or directories that should be excluded from processing.
99 | custom_excludes = []
100 |
101 | # Add CSS files (located in .sphinx/_static/)
102 | custom_html_css_files = []
103 |
104 | # Add JavaScript files (located in .sphinx/_static/)
105 | custom_html_js_files = []
106 |
107 | ## The following settings override the default configuration.
108 |
109 | # Specify a reST string that is included at the end of each file.
110 | # If commented out, use the default (which pulls the reuse/links.txt
111 | # file into each reST file).
112 | # custom_rst_epilog = ''
113 |
114 | # By default, the documentation includes a feedback button at the top.
115 | # You can disable it by setting the following configuration to True.
116 | disable_feedback_button = False
117 |
118 | ############################################################
119 | ### Additional configuration
120 | ############################################################
121 |
122 | ## Add any configuration that is not covered by the common conf.py file.
123 |
--------------------------------------------------------------------------------
/doc-cheat-sheet-myst.md:
--------------------------------------------------------------------------------
1 | ---
2 | orphan: true
3 | myst:
4 | substitutions:
5 | reuse_key: "This is **included** text."
6 | advanced_reuse_key: "This is a substitution that includes a code block:
7 | ```
8 | code block
9 | ```"
10 | ---
11 |
12 | (cheat-sheet-myst)=
13 | # Markdown/MyST cheat sheet
14 |
15 | This file contains the syntax for commonly used Markdown and MyST markup.
16 | Open it in your text editor to quickly copy and paste the markup you need.
17 |
18 | Also see the [MyST documentation](https://myst-parser.readthedocs.io/en/latest/index.html) for detailed information, and the [Canonical Documentation Style Guide](https://docs.ubuntu.com/styleguide/en) for general style conventions.
19 |
20 | ## H2 heading
21 |
22 | ### H3 heading
23 |
24 | #### H4 heading
25 |
26 | ##### H5 heading
27 |
28 | ## Inline formatting
29 |
30 | - {guilabel}`UI element`
31 | - `code`
32 | - {command}`command`
33 | - {kbd}`Key`
34 | - *Italic*
35 | - **Bold**
36 |
37 | ## Code blocks
38 |
39 | Start a code block:
40 |
41 | code:
42 | - example: true
43 |
44 | ```
45 | # Demonstrate a code block
46 | code:
47 | - example: true
48 | ```
49 |
50 | ```yaml
51 | # Demonstrate a code block
52 | code:
53 | - example: true
54 | ```
55 |
56 | (_a_section_target)=
57 | ## Links
58 |
59 | - [Canonical website](https://canonical.com/)
60 | - https:/