From 35a39ab7ebafdfb4324cf2d9c3d7d2453b64e6ef Mon Sep 17 00:00:00 2001 From: Marvin Sanders Date: Wed, 22 May 2024 15:00:23 +0200 Subject: [PATCH 01/14] Added some wordpress and Wocommerce docs --- ...-media-plugin-for-wordpress-woocommerce.md | 91 +++++++++++++++++++ ...-for-wordpress-woocommerce-on-hypernode.md | 47 ++++++++++ ...-woocommerce-and-wordpress-on-hypernode.md | 29 ++++++ 3 files changed, 167 insertions(+) create mode 100644 docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md create mode 100644 docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md create mode 100644 docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md new file mode 100644 index 00000000..57ff8674 --- /dev/null +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -0,0 +1,91 @@ +--- +myst: + html_meta: + description: Learn how to configure the "Converter for Media – Optimize images | Convert WebP & AVIF" plugin on your Hypernode server. Follow step-by-step instructions to verify your VHOST type, update NGINX configuration, and test the plugin for optimal performance and compatibility with WordPress/WooCommerce. + title: How to Configure "Converter for Media – Optimize images | Convert WebP & AVIF" Plugin on Hypernode +redirect_from: + - /en/ecommerce/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce/ +--- + + + +# How to Configure "Converter for Media – Optimize images | Convert WebP & AVIF" Plugin on Hypernode + +For the WordPress/WooCommerce plugin [Converter for Media – Optimize images | Convert WebP & AVIF](https://nl.wordpress.org/plugins/webp-converter-for-media/), an adjustment is required in your Hypernode NGINX configuration. To make it easier for you, follow the instructions below to get the plugin working correctly on Hypernode. + +## Verify your VHOST type + +First, check if your VHOSTS has the correct type by running the following command: + +```bash +hmv --list + +``` + +Running this command will give you an output like this: +```console ++-------------------+----------+----------------+-------+-------------+---------+--------------+ +| servername | type | default_server | https | force_https | varnish | ssl_config | ++-------------------+----------+----------------+-------+-------------+---------+--------------+ +| test.hypernode.io | magento2 | True | True | True | False | intermediate | ++-------------------+----------+----------------+-------+-------------+---------+--------------+ +``` + +As you can see, the type is incorrect because it needs to be set to WordPress. To change this, use the following command: +```bash +hmv --type wordpress --https test.hypernode.io +``` +After running this command, your VHOSTS will be set to WordPress. Make sure to replace `test.hypernode.io` with your actual domain name. + +## Update NGINX configuration for the plugin + +To ensure that "Converter for Media – Optimize images | Convert WebP & AVIF" works correctly, apply the following configuration: + +```nginx +# BEGIN Converter for Media +set $ext_avif ".avif"; +if ($http_accept !~* "image/avif") { + set $ext_avif ""; +} + +set $ext_webp ".webp"; +if ($http_accept !~* "image/webp") { + set $ext_webp ""; +} + +location ~ /wp-content/(?.+)\.(?jpe?g|png|gif|webp)$ { + add_header Vary Accept; + add_header Cache-Control "private"; + expires 365d; + try_files + /wp-content/uploads-webpc/$path.$ext$ext_avif + /wp-content/uploads-webpc/$path.$ext$ext_webp + $uri =404; +} +# END Converter for Media +``` + +Place the above configuration in `/data/web/server.media.conf.` Once you save the file, NGINX will automatically reload, and if something goes wrong, you will be notified. + +## Test the Configuration + +To test the configuration, you can use the following command: + +```bash +➜ ~ curl -IL -H "Accept: image/webp" https://test.hypernode.io/wp-content/upload/test.jpg + +HTTP/2 200 +server: nginx +date: Mon, 13 May 2024 08:49:44 GMT +content-type: image/webp +content-length: 53624 +last-modified: Wed, 08 May 2024 13:34:25 GMT +etag: "663b7f61-d178" +expires: Tue, 13 May 2025 08:49:44 GMT +cache-control: max-age=31536000 +vary: Accept +cache-control: private +accept-ranges: bytes +``` + +By following these instructions, you should be able to configure and test the "Converter for Media – Optimize images | Convert WebP & AVIF" plugin to work correctly on your Hypernode server. \ No newline at end of file diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md new file mode 100644 index 00000000..e4439391 --- /dev/null +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -0,0 +1,47 @@ +--- +myst: + html_meta: + description: Learn how to replace the default WordPress cron with a cron job on Hypernode to improve performance, schedule tasks precisely, and mitigate DDoS attacks. + title: How to Set Up a Real Cron Job for WordPress/WooCommerce on Hypernode +redirect_from: + - /en/ecommerce/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode/ +--- + + + +# How to set up a cron job for WordPress/WooCommerce on Hypernode + +In this guide, we'll explain how to replace the default WordPress cron job with a cron job on your Hypernode server. This can be useful for low traffic sites, important tasks that need to be run at specific times, mitigating excessive DDoS attacks, or improving high page load times. + +## Disable WordPress cron + +To begin, disable the default WordPress cron by editing the wp-config.php file. + +Connect to your server using an FTP client like FileZilla or an SSH client such as PuTTY. Navigate to the root directory of your WordPress installation and locate the `wp-config.php` file. Open the file for editing and add the following line of code before `/* That’s all. Stop editing! Happy blogging. */`: + +```php +define('DISABLE_WP_CRON', true); +``` + +This code disables the default WordPress cron functionality, allowing you to set up a cron job. + +## Adding a new cron job to your server + +Next, set up a cron job on your Hypernode server. Log in to your server via SSH and open your crontab file with the following command: + +```bash +crontab -e +``` + +Add the following line to your crontab file to set up a cron job that runs every minute: +```console +* * * * * wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron' >/dev/null 2>&1 +``` +Replace `https://yourdomain.hypernode.io` with the actual URL of your WordPress site. + +Explanation of the Cron Job Command +- `* * * * *`: Specifies the interval for the cron job. In this case, it is set to run every minute. You can adjust this based on your needs. +- `wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron'`: Uses wget to make a web request to the WordPress cron URL, triggering any scheduled tasks. +- `>/dev/null 2>&1`: Discards any output from the command, preventing it from filling up your server logs. + +After setting up your cron job, monitor your WordPress site to ensure that scheduled tasks are being executed as expected. This setup ensures that your WordPress or WooCommerce site on Hypernode handles scheduled tasks more reliably, especially under conditions where the default cron system may not suffice. \ No newline at end of file diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md new file mode 100644 index 00000000..59de80d1 --- /dev/null +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -0,0 +1,29 @@ +--- +myst: + html_meta: + description: How to enhance your WordPress/WooCommerce site's performance using Redis. Discover the benefits of Redis, recommended plugins, and step-by-step installation instructions. + title: How to Use Redis with WooCommerce and WordPress on Hypernode +redirect_from: + - /en/ecommerce/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode/ +--- + + + +# How to Use Redis with WooCommerce and WordPress on Hypernode + +Remote Dictionary Server (Redis) is an in-memory, persistent, key-value database known as a data structure server. Unlike similar servers, Redis can store and manipulate high-level data types such as lists, maps, sets, and sorted sets. + +By storing important data in its memory, Redis ensures fast data retrieval, significantly boosting performance and reducing response times. + +## Which Plugins Can We Use for Redis in WordPress/WooCommerce? + +There are several plugins available for Redis. The two most commonly used are [Redis Object Cache](https://wordpress.org/plugins/redis-cache/) and [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/). + +Due to the complexity of the cache module in "W3 Total Cache" and the possibility that you may already be using other cache plugins, we recommend the "Redis Object Cache" plugin. + +## How to Install Redis Object Cache +Redis is already active on the server on port 6379. + +Next, install the Redis Object Cache plugin via the WordPress Dashboard or using Composer. For detailed installation instructions, please refer to the standard installation procedure for WordPress plugins. + +After installing and activating the plugin, navigate to `WordPress` -> `Settings` -> `Redis` or `Network Admin` -> `Settings` -> `Redis on Multisite networks`. Enable the cache and check if the plugin can connect automatically. \ No newline at end of file From 00d730953eda1d3bae77f358a25f9ccdef1f5bd6 Mon Sep 17 00:00:00 2001 From: Marvin Sanders Date: Wed, 22 May 2024 15:24:25 +0200 Subject: [PATCH 02/14] Small fixed for md formatted --- ...converter-for-media-plugin-for-wordpress-woocommerce.md | 7 +++++-- ...up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md | 5 ++++- ...se-redis-with-woocommerce-and-wordpress-on-hypernode.md | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md index 57ff8674..97f2c678 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -9,7 +9,7 @@ redirect_from: -# How to Configure "Converter for Media – Optimize images | Convert WebP & AVIF" Plugin on Hypernode +# How to Configure Converter for Media – Optimize images Convert WebP & AVIF Plugin on Hypernode For the WordPress/WooCommerce plugin [Converter for Media – Optimize images | Convert WebP & AVIF](https://nl.wordpress.org/plugins/webp-converter-for-media/), an adjustment is required in your Hypernode NGINX configuration. To make it easier for you, follow the instructions below to get the plugin working correctly on Hypernode. @@ -23,6 +23,7 @@ hmv --list ``` Running this command will give you an output like this: + ```console +-------------------+----------+----------------+-------+-------------+---------+--------------+ | servername | type | default_server | https | force_https | varnish | ssl_config | @@ -32,9 +33,11 @@ Running this command will give you an output like this: ``` As you can see, the type is incorrect because it needs to be set to WordPress. To change this, use the following command: + ```bash hmv --type wordpress --https test.hypernode.io ``` + After running this command, your VHOSTS will be set to WordPress. Make sure to replace `test.hypernode.io` with your actual domain name. ## Update NGINX configuration for the plugin @@ -88,4 +91,4 @@ cache-control: private accept-ranges: bytes ``` -By following these instructions, you should be able to configure and test the "Converter for Media – Optimize images | Convert WebP & AVIF" plugin to work correctly on your Hypernode server. \ No newline at end of file +By following these instructions, you should be able to configure and test the "Converter for Media – Optimize images | Convert WebP & AVIF" plugin to work correctly on your Hypernode server. diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md index e4439391..488d6ca0 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -34,14 +34,17 @@ crontab -e ``` Add the following line to your crontab file to set up a cron job that runs every minute: + ```console * * * * * wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron' >/dev/null 2>&1 ``` + Replace `https://yourdomain.hypernode.io` with the actual URL of your WordPress site. Explanation of the Cron Job Command + - `* * * * *`: Specifies the interval for the cron job. In this case, it is set to run every minute. You can adjust this based on your needs. - `wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron'`: Uses wget to make a web request to the WordPress cron URL, triggering any scheduled tasks. - `>/dev/null 2>&1`: Discards any output from the command, preventing it from filling up your server logs. -After setting up your cron job, monitor your WordPress site to ensure that scheduled tasks are being executed as expected. This setup ensures that your WordPress or WooCommerce site on Hypernode handles scheduled tasks more reliably, especially under conditions where the default cron system may not suffice. \ No newline at end of file +After setting up your cron job, monitor your WordPress site to ensure that scheduled tasks are being executed as expected. This setup ensures that your WordPress or WooCommerce site on Hypernode handles scheduled tasks more reliably, especially under conditions where the default cron system may not suffice. diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md index 59de80d1..8f75298e 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -22,8 +22,9 @@ There are several plugins available for Redis. The two most commonly used are [R Due to the complexity of the cache module in "W3 Total Cache" and the possibility that you may already be using other cache plugins, we recommend the "Redis Object Cache" plugin. ## How to Install Redis Object Cache + Redis is already active on the server on port 6379. Next, install the Redis Object Cache plugin via the WordPress Dashboard or using Composer. For detailed installation instructions, please refer to the standard installation procedure for WordPress plugins. -After installing and activating the plugin, navigate to `WordPress` -> `Settings` -> `Redis` or `Network Admin` -> `Settings` -> `Redis on Multisite networks`. Enable the cache and check if the plugin can connect automatically. \ No newline at end of file +After installing and activating the plugin, navigate to `WordPress` -> `Settings` -> `Redis` or `Network Admin` -> `Settings` -> `Redis on Multisite networks`. Enable the cache and check if the plugin can connect automatically. From f27c345d9a148345cc90005bcd4a845995cbd884 Mon Sep 17 00:00:00 2001 From: Rick van de Loo Date: Sat, 25 May 2024 07:40:27 +0200 Subject: [PATCH 03/14] format wordpress and woocommerce docs --- ...onverter-for-media-plugin-for-wordpress-woocommerce.md | 8 ++++++-- ...p-a-cron-job-for-wordpress-woocommerce-on-hypernode.md | 4 +++- ...e-redis-with-woocommerce-and-wordpress-on-hypernode.md | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md index 97f2c678..746aa3ff 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -1,8 +1,12 @@ --- myst: html_meta: - description: Learn how to configure the "Converter for Media – Optimize images | Convert WebP & AVIF" plugin on your Hypernode server. Follow step-by-step instructions to verify your VHOST type, update NGINX configuration, and test the plugin for optimal performance and compatibility with WordPress/WooCommerce. - title: How to Configure "Converter for Media – Optimize images | Convert WebP & AVIF" Plugin on Hypernode + description: Learn how to configure the "Converter for Media – Optimize images + | Convert WebP & AVIF" plugin on your Hypernode server. Follow step-by-step + instructions to verify your VHOST type, update NGINX configuration, and test + the plugin for optimal performance and compatibility with WordPress/WooCommerce. + title: How to Configure "Converter for Media – Optimize images | Convert WebP + & AVIF" Plugin on Hypernode redirect_from: - /en/ecommerce/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce/ --- diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md index 488d6ca0..d4df366d 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -1,7 +1,9 @@ --- myst: html_meta: - description: Learn how to replace the default WordPress cron with a cron job on Hypernode to improve performance, schedule tasks precisely, and mitigate DDoS attacks. + description: Learn how to replace the default WordPress cron with a cron job on + Hypernode to improve performance, schedule tasks precisely, and mitigate DDoS + attacks. title: How to Set Up a Real Cron Job for WordPress/WooCommerce on Hypernode redirect_from: - /en/ecommerce/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode/ diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md index 8f75298e..ddcb51ef 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -1,7 +1,9 @@ --- myst: html_meta: - description: How to enhance your WordPress/WooCommerce site's performance using Redis. Discover the benefits of Redis, recommended plugins, and step-by-step installation instructions. + description: How to enhance your WordPress/WooCommerce site's performance using + Redis. Discover the benefits of Redis, recommended plugins, and step-by-step + installation instructions. title: How to Use Redis with WooCommerce and WordPress on Hypernode redirect_from: - /en/ecommerce/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode/ From 8dc190b670695e7c74ddcecbec686a1c9c893ef0 Mon Sep 17 00:00:00 2001 From: Timon de Groot Date: Wed, 27 Nov 2024 10:41:51 +0100 Subject: [PATCH 04/14] Update supported-php-versions-and-how-to-change-them-on-hypernode.md --- ...upported-php-versions-and-how-to-change-them-on-hypernode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hypernode-platform/php/supported-php-versions-and-how-to-change-them-on-hypernode.md b/docs/hypernode-platform/php/supported-php-versions-and-how-to-change-them-on-hypernode.md index 18634f24..3aea3b15 100644 --- a/docs/hypernode-platform/php/supported-php-versions-and-how-to-change-them-on-hypernode.md +++ b/docs/hypernode-platform/php/supported-php-versions-and-how-to-change-them-on-hypernode.md @@ -28,7 +28,7 @@ On Hypernode you can choose from a range of PHP versions: - **PHP 7.2** (EOL, No updates since 10 Nov 2020) - **PHP 7.1** (EOL, No updates since 1 Dec 2019) - **PHP 7.0** (EOL, No updates since 3 Dec 2018, deprecated) -- **PHP 5.6** (EOL, No updates since 31 Dec 2018, deprecated, we strongly recommend you to upgrade, will likely be phased out by us somewhere in 2022) +- **PHP 5.6** (EOL, No updates since 31 Dec 2018, deprecated, we strongly recommend you to upgrade) You can easily switch the PHP version of your Hypernode, but please thoroughly test a PHP change before implementing it on a live environment! From 053f77e9d55864c864cf4ce199eac2a06ece747e Mon Sep 17 00:00:00 2001 From: Marvin Sanders Date: Fri, 13 Dec 2024 12:50:28 +0100 Subject: [PATCH 05/14] remove the redirect_from --- ...gure-converter-for-media-plugin-for-wordpress-woocommerce.md | 2 -- ...-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md | 2 -- ...-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md | 2 -- 3 files changed, 6 deletions(-) diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md index 746aa3ff..1234356b 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -7,8 +7,6 @@ myst: the plugin for optimal performance and compatibility with WordPress/WooCommerce. title: How to Configure "Converter for Media – Optimize images | Convert WebP & AVIF" Plugin on Hypernode -redirect_from: - - /en/ecommerce/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce/ --- diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md index d4df366d..c22bab30 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -5,8 +5,6 @@ myst: Hypernode to improve performance, schedule tasks precisely, and mitigate DDoS attacks. title: How to Set Up a Real Cron Job for WordPress/WooCommerce on Hypernode -redirect_from: - - /en/ecommerce/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode/ --- diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md index ddcb51ef..c1ff0468 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -5,8 +5,6 @@ myst: Redis. Discover the benefits of Redis, recommended plugins, and step-by-step installation instructions. title: How to Use Redis with WooCommerce and WordPress on Hypernode -redirect_from: - - /en/ecommerce/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode/ --- From 064ec4a3a78760904337e0945f13362b1aba992c Mon Sep 17 00:00:00 2001 From: Marvin Sanders Date: Fri, 13 Dec 2024 13:15:16 +0100 Subject: [PATCH 06/14] Change some things on suggestion --- ...converter-for-media-plugin-for-wordpress-woocommerce.md | 7 +++---- ...up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md | 2 +- ...se-redis-with-woocommerce-and-wordpress-on-hypernode.md | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md index 1234356b..ca048b3f 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -20,8 +20,7 @@ For the WordPress/WooCommerce plugin [Converter for Media – Optimize images | First, check if your VHOSTS has the correct type by running the following command: ```bash -hmv --list - +app@abcdef-example-magweb-cmbl ~ $ hmv --list ``` Running this command will give you an output like this: @@ -37,7 +36,7 @@ Running this command will give you an output like this: As you can see, the type is incorrect because it needs to be set to WordPress. To change this, use the following command: ```bash -hmv --type wordpress --https test.hypernode.io +app@abcdef-example-magweb-cmbl ~ $ hmv --type wordpress --https test.hypernode.io ``` After running this command, your VHOSTS will be set to WordPress. Make sure to replace `test.hypernode.io` with your actual domain name. @@ -77,7 +76,7 @@ Place the above configuration in `/data/web/server.media.conf.` Once you save th To test the configuration, you can use the following command: ```bash -➜ ~ curl -IL -H "Accept: image/webp" https://test.hypernode.io/wp-content/upload/test.jpg +$ curl -IL -H "Accept: image/webp" https://test.hypernode.io/wp-content/upload/test.jpg HTTP/2 200 server: nginx diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md index c22bab30..9ffae818 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -30,7 +30,7 @@ This code disables the default WordPress cron functionality, allowing you to set Next, set up a cron job on your Hypernode server. Log in to your server via SSH and open your crontab file with the following command: ```bash -crontab -e +app@abcdef-example-magweb-cmbl ~ $ crontab -e ``` Add the following line to your crontab file to set up a cron job that runs every minute: diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md index c1ff0468..081fdb1d 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -23,7 +23,7 @@ Due to the complexity of the cache module in "W3 Total Cache" and the possibilit ## How to Install Redis Object Cache -Redis is already active on the server on port 6379. +Redis is already active on the server on port `6379`. Next, install the Redis Object Cache plugin via the WordPress Dashboard or using Composer. For detailed installation instructions, please refer to the standard installation procedure for WordPress plugins. From bb72be5f92b9a26a0b3dd72b6b2c6ba9acf79a5b Mon Sep 17 00:00:00 2001 From: Marvin Sanders Date: Fri, 13 Dec 2024 13:21:52 +0100 Subject: [PATCH 07/14] more suggestions added and `/dev/null` change to `/usr/bin/chronic` --- ...re-converter-for-media-plugin-for-wordpress-woocommerce.md | 2 -- ...et-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md | 4 +--- ...o-use-redis-with-woocommerce-and-wordpress-on-hypernode.md | 2 -- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md index ca048b3f..4d7c1253 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md +++ b/docs/ecommerce-applications/woocommerce/how-to-configure-converter-for-media-plugin-for-wordpress-woocommerce.md @@ -9,8 +9,6 @@ myst: & AVIF" Plugin on Hypernode --- - - # How to Configure Converter for Media – Optimize images Convert WebP & AVIF Plugin on Hypernode For the WordPress/WooCommerce plugin [Converter for Media – Optimize images | Convert WebP & AVIF](https://nl.wordpress.org/plugins/webp-converter-for-media/), an adjustment is required in your Hypernode NGINX configuration. To make it easier for you, follow the instructions below to get the plugin working correctly on Hypernode. diff --git a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md index 9ffae818..fe56c4cf 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md @@ -7,8 +7,6 @@ myst: title: How to Set Up a Real Cron Job for WordPress/WooCommerce on Hypernode --- - - # How to set up a cron job for WordPress/WooCommerce on Hypernode In this guide, we'll explain how to replace the default WordPress cron job with a cron job on your Hypernode server. This can be useful for low traffic sites, important tasks that need to be run at specific times, mitigating excessive DDoS attacks, or improving high page load times. @@ -36,7 +34,7 @@ app@abcdef-example-magweb-cmbl ~ $ crontab -e Add the following line to your crontab file to set up a cron job that runs every minute: ```console -* * * * * wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron' >/dev/null 2>&1 +* * * * * /usr/bin/chronic wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron' ``` Replace `https://yourdomain.hypernode.io` with the actual URL of your WordPress site. diff --git a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md index 081fdb1d..c5be27ea 100644 --- a/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md +++ b/docs/ecommerce-applications/woocommerce/how-to-use-redis-with-woocommerce-and-wordpress-on-hypernode.md @@ -7,8 +7,6 @@ myst: title: How to Use Redis with WooCommerce and WordPress on Hypernode --- - - # How to Use Redis with WooCommerce and WordPress on Hypernode Remote Dictionary Server (Redis) is an in-memory, persistent, key-value database known as a data structure server. Unlike similar servers, Redis can store and manipulate high-level data types such as lists, maps, sets, and sorted sets. From 3eb185dbcae50252fbe85f1a7d8b2ada76b4d304 Mon Sep 17 00:00:00 2001 From: Jonathan Visser Date: Tue, 31 Dec 2024 12:26:10 +0100 Subject: [PATCH 08/14] Use hypernode-deploy 4, bookworm, php 8.3, python 3.11 --- .github/workflows/cleanup_acceptance.yaml | 2 +- .github/workflows/deploy.yaml | 6 +++--- .github/workflows/detect_renamed_docs.yaml | 2 +- .github/workflows/test.yaml | 2 +- tox.ini | 3 ++- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cleanup_acceptance.yaml b/.github/workflows/cleanup_acceptance.yaml index c6f2fc84..dbf68d63 100644 --- a/.github/workflows/cleanup_acceptance.yaml +++ b/.github/workflows/cleanup_acceptance.yaml @@ -7,7 +7,7 @@ on: jobs: cleanup: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:3-php8.1-node18 + container: quay.io/hypernode/deploy:4-php8.3-node20 environment: acceptance steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 3e2a09fd..bf9ba3be 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -12,7 +12,7 @@ env: jobs: build: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:3-php8.1-node18 + container: quay.io/hypernode/deploy:4-php8.3-node20 steps: - uses: actions/checkout@v3 with: @@ -47,7 +47,7 @@ jobs: name: acceptance url: ${{ steps.get_brancher_hostname.outputs.BRANCHER_URL }} if: github.ref != 'refs/heads/master' - container: quay.io/hypernode/deploy:3-php8.1-node18 + container: quay.io/hypernode/deploy:4-php8.3-node20 steps: - uses: actions/checkout@v3 with: @@ -102,7 +102,7 @@ jobs: name: production url: https://docs.hypernode.io if: github.ref == 'refs/heads/master' - container: quay.io/hypernode/deploy:3-php8.1-node18 + container: quay.io/hypernode/deploy:4-php8.3-node20 steps: - uses: actions/checkout@v3 - name: download build artifact diff --git a/.github/workflows/detect_renamed_docs.yaml b/.github/workflows/detect_renamed_docs.yaml index 2d5a0fd2..2591768c 100644 --- a/.github/workflows/detect_renamed_docs.yaml +++ b/.github/workflows/detect_renamed_docs.yaml @@ -20,7 +20,7 @@ jobs: echo "$result" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT shell: bash - - name: Comment hostname on PR + - name: Comment changed files on PR if: ${{ steps.changed_files.outputs.CHANGED_FILES }} uses: thollander/actions-comment-pull-request@v1 with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2a47f1ef..372caa6c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v3 diff --git a/tox.ini b/tox.ini index a7b00ab6..8e0b58dd 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39,py310 +envlist = py37,py38,py39,py310,py311 skipsdist = True [gh-actions] @@ -8,6 +8,7 @@ python = 3.8: py38 3.9: py39 3.10: py310 + 3.11: py311 [testenv] setenv = From 54c95b9f81356e0a33d48a207c11fce1ff613498 Mon Sep 17 00:00:00 2001 From: Demian Delwig Date: Tue, 31 Dec 2024 14:18:50 +0100 Subject: [PATCH 09/14] Update TLD prices 2025 --- .../varnish/how-to-read-varnish-stats.md | 8 ++ .../which-tlds-does-hypernode-offer.md | 84 ++++++++++--------- hypernode-docs-next | 1 + 3 files changed, 52 insertions(+), 41 deletions(-) create mode 100644 docs/hypernode-platform/varnish/how-to-read-varnish-stats.md create mode 160000 hypernode-docs-next diff --git a/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md b/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md new file mode 100644 index 00000000..f0f871d6 --- /dev/null +++ b/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md @@ -0,0 +1,8 @@ +--- +myst: + html_meta: + description: 'While using Varnish you want to make sure Varnish is being used optimally. Here we explain how to read the varnish logging for hit and miss ratios.' + title: How read Varnish loggings? +--- + +# How read Varnish the statistic diff --git a/docs/services/domain-procedures/which-tlds-does-hypernode-offer.md b/docs/services/domain-procedures/which-tlds-does-hypernode-offer.md index d5e27de1..1772ee1b 100644 --- a/docs/services/domain-procedures/which-tlds-does-hypernode-offer.md +++ b/docs/services/domain-procedures/which-tlds-does-hypernode-offer.md @@ -17,52 +17,54 @@ At Hypernode you can order multiple exotic and new TLD domains. View which exten | Extension | Price per year | Price per 5 years | Setup Cost | | ---------- | -------------- | ----------------- | ---------- | -| .AMSTERDAM | €59.99 | €274.95 | | -| .AT | €34.95 | €134.99 | | -| .BE | €29.95 | €109.99 | | -| .BIZ | €29.95 | €109.99 | | -| .BLOG | €54.99 | | | -| .CH | €34.95 | €134.99 | | -| .CLUB | €34.95 | | | -| .COM | €24.95 | €84.99 | | -| .COUK | €29.95 | €109.99 | | -| .COZA | €34.95 | €164.99 | | -| .CZ | €44.95 | €189.99 | | -| .DE | €34.95 | €134.99 | | -| .DEALS | €54.99 | | | -| .DK | €49.95 | €219.99 | | -| .ES | €34.95 | €134.99 | | -| .EU | €24.95 | €84.99 | | -| .FR | €34.95 | €134.99 | | -| .FRL | €69.99 | | | -| .GR | €39.99 | €189.99 | | -| .IN | €34.95 | | | -| .INFO | €24.95 | €84.99 | | -| .IO | €64.99 | | | -| .IT | €34.95 | €134.99 | | -| .JP | €89.99 | | | -| .LU | €49.95 | | | -| .NET | €24.95 | €84.99 | | -| .NL | €19.95 | €54.99 | | -| .NU | €34.95 | €189.99 | | -| .ONLINE | €64.99 | €349.95 | | -| .ORG | €24.95 | €84.99 | | -| .PL | €49.95 | €219.99 | | -| .PT | €54.99 | €249.95 | | -| .RO | €94.99 | €474.70 | | -| .RU | €34.95 | €134.99 | | -| .SE | €49.95 | €219.99 | | -| .SHOP | €59.99 | €274.95 | | -| .SI | €24.95 | €109.99 | | -| .STORE | €94.99 | | | -| .TV | €44.95 | €189.99 | | -| .UK | €29.95 | €109.99 | €50.00 | -| .US | €19.99 | €109.99 | | +| .AMSTERDAM | €68,96 | €287.32 | | +| .AT | €40,18 | €155,17 | | +| .BE | €34,43 | €109.99 | | +| .BIZ | €34,43 | €126,43 | | +| .BLOG | €57.46 | | | +| .CH | €40,18 | €141.06 | | +| .CLUB | €36.52 | | | +| .COM | €28.68 | €97.70 | | +| .COUK | €34.43 | €126.43 | | +| .COZA | €36.52 | €189.66 | | +| .CZ | €51,67 | €198.54 | | +| .DE | €40,18 | €155,17 | | +| .DEALS | €57.46 | | | +| .DK | €57,42 | €252,88 | | +| .ES | €40,18 | €155,17 | | +| .EU | €28,68 | €97,70 | | +| .FR | €40,18 | €155,17 | | +| .FRL | €73,14 | | | +| .GR | €41.79 | €198.54 | | +| .IN | €40,18 | | | +| .INFO | €28,68 | €97,70 | | +| .IO | €74,71 | | | +| .IT | €40,18 | €155,17 | | +| .JP | €94.04 | | | +| .LU | €57,42 | | | +| .NET | €28,68 | €97,70 | | +| .NL | €22,93 | €63,21 | | +| .NU | €40,18 | €218,9 | | +| .ONLINE | €74,71 | €356.70 | | +| .ORG | €28,68 | €97,70 | | +| .PL | €57,42 | €229.89 | | +| .PT | €63,21 | €261.20 | | +| .RO | €99.26 | €496.60 | | +| .RU | €40,18 | €141.60 | | +| .SE | €57,42 | €229.89 | | +| .SHOP | €68,96 | €287.32 | | +| .SI | €26.07 | €111.94 | | +| .STORE | €109,19 | | | +| .TV | €46.97 | €218,39 | | +| .UK | €34,43 | €126,43 | €52.25 | +| .US | €20.89 | €114.94 | | ## How to order a new domain You can order a new domain very easy via your Control Panel. Please follow the steps in [this article](how-to-use-domains-in-the-control-panel.md#registering-a-new-domain) on how to order your domains in the Control Panel. Or click [this link](https://my.hypernode.com/domain/) to go to the Control Panel directly. +Domains will be billed once a year. + ## How to transfer you domain to Hypernode You can start the transfer of your domain in your Control Panel. Instructions on how to do this can be found in [this article](how-to-use-domains-in-the-control-panel.md#transfer-an-existing-domain-to-hypernode) diff --git a/hypernode-docs-next b/hypernode-docs-next new file mode 160000 index 00000000..44857e8e --- /dev/null +++ b/hypernode-docs-next @@ -0,0 +1 @@ +Subproject commit 44857e8ee837e660d06a3fd7d2b4e9db4ca2647e From 6b194367b72ce4a0c984cf186b8959b9b3ce0b92 Mon Sep 17 00:00:00 2001 From: ddelwig Date: Tue, 31 Dec 2024 14:39:07 +0100 Subject: [PATCH 10/14] Delete docs/hypernode-platform/varnish/how-to-read-varnish-stats.md Delete --- .../varnish/how-to-read-varnish-stats.md | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 docs/hypernode-platform/varnish/how-to-read-varnish-stats.md diff --git a/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md b/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md deleted file mode 100644 index f0f871d6..00000000 --- a/docs/hypernode-platform/varnish/how-to-read-varnish-stats.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -myst: - html_meta: - description: 'While using Varnish you want to make sure Varnish is being used optimally. Here we explain how to read the varnish logging for hit and miss ratios.' - title: How read Varnish loggings? ---- - -# How read Varnish the statistic From 6c54f079f976ebf46d6889cd4814988a35cc8b0a Mon Sep 17 00:00:00 2001 From: Jonathan Visser Date: Tue, 31 Dec 2024 14:43:42 +0100 Subject: [PATCH 11/14] Remove accidental symlink --- hypernode-docs-next | 1 - 1 file changed, 1 deletion(-) delete mode 160000 hypernode-docs-next diff --git a/hypernode-docs-next b/hypernode-docs-next deleted file mode 160000 index 44857e8e..00000000 --- a/hypernode-docs-next +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 44857e8ee837e660d06a3fd7d2b4e9db4ca2647e From 7708c197abdc70c2828df0d5876346c2378def0b Mon Sep 17 00:00:00 2001 From: Jonathan Visser Date: Tue, 31 Dec 2024 15:52:09 +0100 Subject: [PATCH 12/14] Only build one stylesheet file, use newest scss notations --- docs/_static/css/breakpoints.css | 3 - docs/_static/css/colors.css | 31 - docs/_static/css/general.css | 929 ----------------- docs/_static/css/main.css | 960 +----------------- .../{breakpoints.scss => _breakpoints.scss} | 0 .../scss/{colors.scss => _colors.scss} | 0 .../scss/{general.scss => _general.scss} | 4 +- docs/_static/scss/main.scss | 6 +- 8 files changed, 6 insertions(+), 1927 deletions(-) delete mode 100644 docs/_static/css/breakpoints.css delete mode 100644 docs/_static/css/colors.css delete mode 100644 docs/_static/css/general.css rename docs/_static/scss/{breakpoints.scss => _breakpoints.scss} (100%) rename docs/_static/scss/{colors.scss => _colors.scss} (100%) rename docs/_static/scss/{general.scss => _general.scss} (99%) diff --git a/docs/_static/css/breakpoints.css b/docs/_static/css/breakpoints.css deleted file mode 100644 index 3024c589..00000000 --- a/docs/_static/css/breakpoints.css +++ /dev/null @@ -1,3 +0,0 @@ - - -/*# sourceMappingURL=breakpoints.css.map */ diff --git a/docs/_static/css/colors.css b/docs/_static/css/colors.css deleted file mode 100644 index 6cc72e27..00000000 --- a/docs/_static/css/colors.css +++ /dev/null @@ -1,31 +0,0 @@ -:root { - --blue: #005dab; - --primary-blue: #063b67; - --secondary-blue: #074e8a; - --text-blue: #063b67; - --light-blue: #EEF8FF; - --light-blue-clear: #F8FCFF; - --aqua: #51B3DB; - --primary-orange: #FF7101; - --hover-orange: #FF8201; - --light-orange: #f2a557; - --grey: #F5F6F8; - --grey-border: #D9E7F3; - --light-grey-sidebar: #E5EAF0; - --message-success: #4bb52d; - --message-success-bg: #E3F6CF; - --message-success-text: #0D3D00; - --message-danger: #D10000; - --message-danger-bg: #FAE5E8; - --message-danger-text: #6A0000; - --message-warning: #DC7500; - --message-warning-bg: #FFF1ED; - --message-warning-text: #9C3900; - --message-info: #074E8A; - --message-info-bg: #E7F2F8; - --message-info-text: #063b67; - --cc-btn-primary-bg: var(--primary-blue); - --cc-btn-secondary-text: var(--primary-blue); -} - -/*# sourceMappingURL=colors.css.map */ diff --git a/docs/_static/css/general.css b/docs/_static/css/general.css deleted file mode 100644 index f20592e0..00000000 --- a/docs/_static/css/general.css +++ /dev/null @@ -1,929 +0,0 @@ -@charset "UTF-8"; -h1, -h2, -h3, -h4, -span { - font-family: "Montserrat", sans-serif; -} - -@media (max-width: 768px) { - p { - font-size: 17px; - line-height: 26px; - } -} - -span, p, div { - color: #404040; -} - -a { - text-decoration: none; -} - -a:hover:not(.logo-title) { - opacity: 0.7; -} - -a:visited { - color: var(--primary-blue); -} - -a.ahref-blue { - text-decoration: underline; - color: var(--primary-blue); -} - -a.ahref-orange { - text-decoration: underline; - color: var(--primary-orange); -} - -.main-content a { - color: var(--secondary-blue); - text-decoration: underline; -} - -.main-content a:visited { - opacity: 0.8; - color: var(--secondary-blue) !important; -} - -.wy-side-nav-search a:visited { - color: white !important; -} - -h1 { - font-size: 40px; - line-height: inherit; - margin: 40px 0; -} - -h2 { - font-size: 32px; - line-height: 1.2em; - margin-top: 40px; -} -@media (max-width: 768px) { - h2 { - font-size: 22px; - } -} - -section { - scroll-margin-top: 120px; -} - -#rtd-search-form input.main-search-bar__input { - position: relative; - top: 10px; - padding: 0 15px 0 30px; -} -@media (max-width: 420px) { - #rtd-search-form input.main-search-bar__input { - top: 0; - } -} -#rtd-search-form .search-icon { - position: relative; - width: 13px; - top: -18px; - left: -132px; -} -@media (max-width: 768px) { - #rtd-search-form .search-icon { - left: -83px; - } -} -@media (max-width: 420px) { - #rtd-search-form .search-icon { - top: -27px; - left: -149px; - } -} - -.wy-grid-for-nav { - display: grid; - grid-template-columns: 300px 900px 300px; - justify-content: center; - position: relative; - margin-top: 80px; -} -@media (max-width: 1442px) { - .wy-grid-for-nav { - display: grid; - grid-template-columns: 300px 700px 200px; - justify-content: center; - } -} -@media (max-width: 1200px) { - .wy-grid-for-nav { - grid-template-columns: 300px auto; - } -} -@media (max-width: 1024px) { - .wy-grid-for-nav { - display: block; - } -} - -.wy-nav-content-wrap { - background: #fcfcfc; -} -@media (max-width: 1024px) { - .wy-nav-content-wrap { - margin-left: 0; - } -} - -@media (max-width: 1024px) { - .wy-nav-content-wrap.shift { - left: 0; - } -} -@media (max-width: 768px) { - .wy-nav-content-wrap.shift { - position: inherit; - top: inherit; - } -} - -.wy-nav-top { - background: transparent; - color: var(--primary-blue); -} -.wy-nav-top i { - font-size: 20px; -} -.wy-nav-top .menu-hamburger { - position: relative; - width: 20px; - height: 20px; - top: 0; - left: 0; - transition-duration: 0.5s; -} -.wy-nav-top .menu-hamburger .icon { - transition-duration: 0.5s; - position: absolute; - height: 100%; - width: 100%; - top: 0; - left: 0; -} -.wy-nav-top .menu-hamburger .icon:before { - transition-duration: 0.5s; - position: absolute; - width: 20px; - height: 2px; - background-color: var(--primary-blue); - content: ""; - top: 0px; - left: 0; -} -.wy-nav-top .menu-hamburger .icon:after { - transition-duration: 0.5s; - position: absolute; - width: 20px; - height: 2px; - background-color: var(--primary-blue); - content: ""; - top: 10px; - left: 0; -} -@media (max-width: 1024px) { - .wy-nav-top { - display: block; - position: fixed; - top: 72px; - left: 10px; - z-index: 100; - } -} -@media (max-width: 1024px) and (max-width: 420px) { - .wy-nav-top { - top: 102px; - } -} - -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon { - transition-duration: 0.5s; -} -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:before { - transform: rotateZ(135deg) scaleX(1.05) translate(4px, -4.5px); -} -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:after { - transform: rotateZ(-135deg) scaleX(1.05) translate(2px, 2.9px); -} - -.wy-nav-content { - max-width: 1200px; - padding: 20px; - height: auto; -} -.wy-nav-content-wrap { - margin-left: 0; -} - -.wy-side-scroll { - height: auto; -} -@media (max-width: 1024px) { - .wy-side-scroll { - width: auto; - } -} - -.wy-side-nav-search { - width: 100%; - background-color: var(--primary-blue); - padding: 0; - position: fixed; - top: 0; - height: 60px; - display: grid; - grid-template-columns: 300px 1fr 300px; - justify-content: center; - align-items: center; -} -.wy-side-nav-search .search-bar-container { - width: 300px; -} -@media (max-width: 768px) { - .wy-side-nav-search .search-bar-container { - width: 200px; - } -} -@media (max-width: 420px) { - .wy-side-nav-search .search-bar-container { - width: 90%; - grid-area: 2/span 2; - justify-self: center; - } -} -@media (max-width: 1442px) { - .wy-side-nav-search { - display: grid; - grid-template-columns: 300px 1fr 300px; - justify-content: center; - } -} -@media (max-width: 1024px) { - .wy-side-nav-search { - width: 100%; - } -} -@media (max-width: 1200px) { - .wy-side-nav-search { - grid-template-columns: 300px 1fr 300px; - justify-content: flex-start; - } -} -@media (max-width: 768px) { - .wy-side-nav-search { - grid-template-columns: 200px 1fr 100px; - } -} -@media (max-width: 420px) { - .wy-side-nav-search { - grid-template-columns: 1fr 1fr; - grid-template-rows: 1fr 1fr; - height: 90px; - } -} - -.wy-menu-vertical { - height: calc(100vh - 60px); - overflow-y: scroll; - position: fixed; - top: 110px; - padding-bottom: 60px; - padding-top: 5px; - background-color: #fff; -} -@media (max-width: 420px) { - .wy-menu-vertical { - top: 140px; - } -} - -.wy-nav-side { - position: sticky; - top: 0; - background: inherit; - z-index: 10; -} -@media (max-width: 1024px) { - .wy-nav-side { - width: 300px; - left: -300px; - } -} -@media (max-width: 1024px) { - .wy-nav-side .wy-menu-vertical { - left: -300px; - width: 300px; - transition: 0.2s ease-in-out; - } -} - -@media (max-width: 768px) { - .wy-nav-side.shift { - width: 300px; - left: -300px; - } -} -@media (max-width: 1024px) { - .wy-nav-side.shift .wy-menu-vertical { - transition: 0.2s ease-in-out; - left: 0; - } -} - -.wy-menu-vertical p.caption { - color: var(--primary-blue); - padding: 0 20px; -} - -.wy-menu-vertical a { - color: var(--text-blue); -} - -.wy-menu-vertical li.current > a { - color: var(--primary-orange); - scroll-margin-top: 10px; -} - -.wy-menu-vertical li.toctree-l2 a, -.wy-menu-vertical li.toctree-l2.current > a { - background: rgb(245, 245, 245); -} - -.wy-menu-vertical li.toctree-l3 a, -.wy-menu-vertical li.toctree-l3.current > a { - background: rgb(235, 235, 235); -} - -.wy-menu-vertical li.toctree-l2.current li.toctree-l3, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { - background: rgb(230, 230, 230); -} - -.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { - background: rgb(220, 220, 220); -} - -.rst-content { - max-width: 900px; - padding: 0 50px; -} -@media (max-width: 768px) { - .rst-content { - padding: 0; - } -} - -/* code blocks */ -.rst-content section ul { - line-height: auto; -} - -code, -pre, -pre span, -span.pre, -.rst-content .linenodiv pre, -.rst-content div[class^=highlight] pre, -.rst-content pre.literal-block { - font-family: "Ubuntu Mono", monospace; -} - -ul.simple li code, -code.docutils.literal.notranslate { - border: none; - width: max-content; - font-size: 13px; - padding: 10px; - margin: 10px 0; - border-radius: 8px; - background: #292d3e; -} -ul.simple li code.literal, -code.docutils.literal.notranslate.literal { - color: var(--aqua); -} - -code.docutils.literal.notranslate { - background: #efefef; - padding: 2px 6px; -} -code.docutils.literal.notranslate.literal { - color: var(--blue); -} - -.rst-content div.notranslate { - border: none; -} -.rst-content div.notranslate .highlight { - font-family: "Ubuntu Mono", monospace; - font-size: 16px; - padding: 10px; - line-height: 24px; - margin: 10px 0; - border-radius: 8px; - background-color: #292d3e; - color: #D9E7F3; -} -.rst-content div.notranslate .highlight .c1 { - color: var(--message-warning); -} -.rst-content div.notranslate .highlight .mi, -.rst-content div.notranslate .highlight .o, -.rst-content div.notranslate .highlight .mf { - color: #e4e4e4; -} -.rst-content div.notranslate .highlight .s, -.rst-content div.notranslate .highlight .n, -.rst-content div.notranslate .highlight .nb, -.rst-content div.notranslate .highlight .na, -.rst-content div.notranslate .highlight .s1 { - color: var(--aqua); -} -.rst-content div.notranslate .highlight .s1 { - color: var(--light-orange); -} -.rst-content div.notranslate .highlight .k, -.rst-content div.notranslate .highlight .nv, -.rst-content div.notranslate .highlight .m, -.rst-content div.notranslate .highlight .vg, -.rst-content div.notranslate .highlight .p { - color: #D9E7F3; -} - -.rst-content div.highlight pre { - font-size: 14px; -} - -/* code blocks end */ -/* buttons next previous */ -.btn, -.btn-neutral { - background: #fff; - background-color: #fff !important; - border: 1px solid var(--primary-orange); - font-weight: 600; - font-size: 12px; - max-width: 110px; - padding: 0 15px; - color: var(--primary-orange) !important; -} -.btn .fa, -.btn-neutral .fa { - display: none; -} -.btn:visited, -.btn-neutral:visited { - color: var(--primary-orange) !important; -} -.btn:hover, -.btn-neutral:hover { - opacity: 1; -} - -.btn:active { - padding: 0 15px; -} - -.rst-content .btn:focus { - outline: 0px solid; -} - -.btn-orange { - background-color: var(--primary-orange) !important; - color: #fff !important; -} - -/* buttons next previous end */ -.rst-content p + ul { - margin-top: -14px; -} - -/* scrollbar */ -.wy-menu { - /* scrollbar end */ - /* sidebar */ -} -.wy-menu::-webkit-scrollbar { - width: 10px; - background-color: var(--grey-border); -} -.wy-menu::-webkit-scrollbar-thumb { - background-color: var(--primary-blue); - border-radius: 5px; - background-clip: content-box; -} -.wy-menu li.toctree-l1.current > a { - border-bottom: 0; - border-top: 0; -} -.wy-menu li.current, .wy-menu li.toctree-l2, .wy-menu li.toctree-l2 a, .wy-menu li.toctree-l2.current, .wy-menu li.toctree-l2.current li.toctree-l3, .wy-menu li.toctree-l3.current li.toctree-l4, .wy-menu li.toctree-l3.current li.toctree-l4 > a, .wy-menu li.toctree-l2.current li.toctree-l3 > a { - background: inherit; -} -.wy-menu li.current > a, .wy-menu li.toctree-l2.current a, .wy-menu li.toctree-l3.current li.toctree-l4.current > a, .wy-menu li.toctree-l2.current li.toctree-l3.current > a { - background: #fff; -} -.wy-menu li.current > a, .wy-menu li.on a { - background: #fff; -} -.wy-menu li.current > a button.toctree-expand, .wy-menu li.on a button.toctree-expand, .wy-menu li > a button.toctree-expand, .wy-menu li.on a button.toctree-expand { - display: none; -} -.wy-menu a { - font-size: 13px; -} -@media (max-width: 768px) { - .wy-menu a { - font-size: 15px; - } -} -.wy-menu li.toctree-l2 li.toctree-l3 a:hover, .wy-menu .toctree-l3 a:hover, .wy-menu li.current a:hover, .wy-menu a:hover { - color: var(--blue); - background-color: white; -} -.wy-menu li.current > a { - color: var(--blue); -} -.wy-menu li.toctree-l2, .wy-menu li.toctree-l3, .wy-menu li.toctree-l4, .wy-menu li.toctree-l5 { - margin-left: 22px; - border-left: 1px solid #c1d2e1; -} -.wy-menu li.current > a, .wy-menu li.on a, .wy-menu li.toctree-l2.current li.toctree-l3 > a, .wy-menu li.toctree-l2.current > a, .wy-menu li.toctree-l2 > a, .wy-menu li.toctree-l3.current li.toctree-l4 > a { - border-right: none; - padding: 10px; -} -.wy-menu li.current > a, .wy-menu li.on a { - padding-left: 20px; -} - -/* sidebar end */ -/* aside */ -.aside-tile { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: relative; - width: 100%; - height: max-content; - padding: 10px; -} -.aside-tile__container { - border-radius: 5px; - border: 1px solid var(--grey-border); - position: fixed; - top: 150px; - background-color: #fff; - width: 250px; - height: max-content; - padding: 20px 20px 10px 20px; -} -@media (max-width: 1442px) { - .aside-tile__container { - width: 179px; - } -} -.aside-tile__feedback { - top: 350px; -} -.aside-tile__content { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; -} -.aside-tile__content img { - max-width: 47px; -} -.aside-tile h4 { - line-height: 30px; - margin-bottom: 10px; -} -@media (max-width: 1200px) { - .aside-tile { - display: none; - } -} -.aside-tile .aside-tile__feedback-list { - font-size: 12px; - color: var(--blue); - text-align: left; - margin-bottom: 5px; -} -.aside-tile .aside-tile__feedback-list li { - line-height: 25px; -} -.aside-tile .aside-tile__feedback-list li i { - margin-right: 5px; - color: var(--message-success); -} - -/* aside end */ -/*notes (admonition notes)*/ -.rst-content .note, -.rst-content .attention, -.rst-content .caution, -.rst-content .danger, -.rst-content .error, -.rst-content .hint, -.rst-content .important, -.rst-content .tip, -.rst-content .warning { - padding: 25px 20px 20px 40px; - margin: 20px 0; - border-radius: 4px; -} -.rst-content .note .admonition-title, -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .danger .admonition-title, -.rst-content .error .admonition-title, -.rst-content .hint .admonition-title, -.rst-content .important .admonition-title, -.rst-content .tip .admonition-title, -.rst-content .warning .admonition-title { - background: transparent; - font-size: 16px; -} -.rst-content .note p, -.rst-content .note a, -.rst-content .attention p, -.rst-content .attention a, -.rst-content .caution p, -.rst-content .caution a, -.rst-content .danger p, -.rst-content .danger a, -.rst-content .error p, -.rst-content .error a, -.rst-content .hint p, -.rst-content .hint a, -.rst-content .important p, -.rst-content .important a, -.rst-content .tip p, -.rst-content .tip a, -.rst-content .warning p, -.rst-content .warning a { - font-size: 13px; -} -.rst-content .note { - background: var(--message-info-bg); -} -.rst-content .note p { - color: var(--message-info-text); -} -.rst-content .note .admonition-title { - color: var(--message-info-text); -} -.rst-content .attention, -.rst-content .caution, -.rst-content .warning, -.rst-content .important { - background: var(--message-warning-bg); -} -.rst-content .attention p, -.rst-content .caution p, -.rst-content .warning p, -.rst-content .important p { - color: var(--message-warning-text); -} -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .warning .admonition-title, -.rst-content .important .admonition-title { - color: var(--message-warning-text); -} -.rst-content .danger, -.rst-content .error { - background: var(--message-danger-bg); -} -.rst-content .danger p, -.rst-content .error p { - color: var(--message-danger-text); -} -.rst-content .danger .admonition-title, -.rst-content .error .admonition-title { - color: var(--message-danger-text); -} -.rst-content .hint, -.rst-content .tip { - background: var(--message-success-bg); -} -.rst-content .hint p, -.rst-content .tip p { - color: var(--message-success-text); -} -.rst-content .hint .admonition-title, -.rst-content .tip .admonition-title { - color: var(--message-success-text); -} - -/* notes (admonition notes) end */ -/* header*/ -.wy-side-nav-search img { - background-color: transparent; - position: relative; - top: 0; - margin: 0; - height: auto; - width: 150px; - border-radius: 0; - padding: 0; -} -@media (max-width: 768px) { - .wy-side-nav-search img { - width: 130px; - } -} - -.wy-side-nav-search input[type=text], -.wy-body-for-nav input:not([type=checkbox]):not([type=radio]):not([type=submit]) { - border: none; - box-shadow: none; -} - -.logo-title { - display: flex; - justify-content: center; - align-items: center; -} -.logo-title:hover { - color: #fff; -} -@media (max-width: 420px) { - .logo-title { - grid-area: 1/span 1; - } -} - -.wy-side-nav-search > a { - display: flex; - margin-bottom: 0; - font-size: 15px; - justify-self: flex-start; -} -.wy-side-nav-search > a:hover { - background: transparent; -} - -.wy-side-nav-search > a.wy-side-nav__login { - justify-self: flex-end; - position: relative; - right: 23px; - padding: 0 15px; - max-width: 100px; - font-size: 12px; -} -@media (max-width: 420px) { - .wy-side-nav-search > a.wy-side-nav__login { - grid-area: 1/span 1; - } -} - -.wy-side-nav-search__menu-items { - display: flex; - column-gap: 10px; - justify-content: flex-end; - align-items: center; - height: 100%; - padding-right: 20px; -} -.wy-side-nav-search__menu-items a { - font-size: 13px; -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item { - color: #fff; - height: 97%; - display: flex; - align-items: center; - padding: 0 10px; -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item:hover { - border-bottom: 2px solid var(--primary-orange); -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item.current { - border-bottom: 2px solid var(--primary-orange); -} -@media (max-width: 768px) { - .wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item { - display: none; - } -} - -/*header end*/ -/* breadcrumbs*/ -.wy-breadcrumbs { - max-width: 1461px; - margin: auto; -} -.wy-breadcrumbs li { - padding-top: initial; -} -@media (max-width: 1442px) { - .wy-breadcrumbs { - max-width: 1160px; - } -} -@media (max-width: 1200px) { - .wy-breadcrumbs { - max-width: none; - margin: 0 20px; - } -} -@media (max-width: 1024px) { - .wy-breadcrumbs { - max-width: none; - margin: 0 20px 0 60px; - width: 100%; - max-width: calc(100% - 90px); - overflow: scroll; - white-space: nowrap; - } -} -@media (max-width: 420px) { - .wy-breadcrumbs { - margin: 0 20px 0 65px; - } -} - -.wy-breadcrumbs, -.wy-breadcrumbs li a, -.wy-breadcrumbs-aside a { - font-size: 11px; -} - -@media (max-width: 768px) { - .wy-breadcrumbs li.wy-breadcrumbs-aside { - display: none; - } -} - -.wy-breadcrumbs li a:visited { - color: var(--light-orange); -} - -li.wy-breadcrumbs-aside a { - padding: 10px; -} - -.header { - height: 50px; - line-height: 50px; - width: 100%; - position: fixed; - top: 60px; - border-bottom: 1px solid var(--grey-border); - z-index: 20; - background-color: white; -} -@media (max-width: 420px) { - .header { - top: 90px; - } -} - -/* header end */ -/* article meta */ -.article-meta { - display: inline-block; - position: relative; - top: 30px; - font-size: 11px; - font-weight: 600; - opacity: 0.35; -} -.article-meta--updated { - opacity: 0.5; -} -.article-meta--updated::after { - content: "•"; - padding-left: 5px; -} -@media (max-width: 420px) { - .article-meta { - font-size: 12px; - } -} - -/* article meta end */ -/* footer */ -.edit { - text-align: center; -} - -.copyright p { - font-size: 11px; -} - -/* footer end */ - -/*# sourceMappingURL=general.css.map */ diff --git a/docs/_static/css/main.css b/docs/_static/css/main.css index 4c17bee5..219f5375 100644 --- a/docs/_static/css/main.css +++ b/docs/_static/css/main.css @@ -1,959 +1 @@ -@charset "UTF-8"; -:root { - --blue: #005dab; - --primary-blue: #063b67; - --secondary-blue: #074e8a; - --text-blue: #063b67; - --light-blue: #EEF8FF; - --light-blue-clear: #F8FCFF; - --aqua: #51B3DB; - --primary-orange: #FF7101; - --hover-orange: #FF8201; - --light-orange: #f2a557; - --grey: #F5F6F8; - --grey-border: #D9E7F3; - --light-grey-sidebar: #E5EAF0; - --message-success: #4bb52d; - --message-success-bg: #E3F6CF; - --message-success-text: #0D3D00; - --message-danger: #D10000; - --message-danger-bg: #FAE5E8; - --message-danger-text: #6A0000; - --message-warning: #DC7500; - --message-warning-bg: #FFF1ED; - --message-warning-text: #9C3900; - --message-info: #074E8A; - --message-info-bg: #E7F2F8; - --message-info-text: #063b67; - --cc-btn-primary-bg: var(--primary-blue); - --cc-btn-secondary-text: var(--primary-blue); -} - -h1, -h2, -h3, -h4, -span { - font-family: "Montserrat", sans-serif; -} - -@media (max-width: 768px) { - p { - font-size: 17px; - line-height: 26px; - } -} - -span, p, div { - color: #404040; -} - -a { - text-decoration: none; -} - -a:hover:not(.logo-title) { - opacity: 0.7; -} - -a:visited { - color: var(--primary-blue); -} - -a.ahref-blue { - text-decoration: underline; - color: var(--primary-blue); -} - -a.ahref-orange { - text-decoration: underline; - color: var(--primary-orange); -} - -.main-content a { - color: var(--secondary-blue); - text-decoration: underline; -} - -.main-content a:visited { - opacity: 0.8; - color: var(--secondary-blue) !important; -} - -.wy-side-nav-search a:visited { - color: white !important; -} - -h1 { - font-size: 40px; - line-height: inherit; - margin: 40px 0; -} - -h2 { - font-size: 32px; - line-height: 1.2em; - margin-top: 40px; -} -@media (max-width: 768px) { - h2 { - font-size: 22px; - } -} - -section { - scroll-margin-top: 120px; -} - -#rtd-search-form input.main-search-bar__input { - position: relative; - top: 10px; - padding: 0 15px 0 30px; -} -@media (max-width: 420px) { - #rtd-search-form input.main-search-bar__input { - top: 0; - } -} -#rtd-search-form .search-icon { - position: relative; - width: 13px; - top: -18px; - left: -132px; -} -@media (max-width: 768px) { - #rtd-search-form .search-icon { - left: -83px; - } -} -@media (max-width: 420px) { - #rtd-search-form .search-icon { - top: -27px; - left: -149px; - } -} - -.wy-grid-for-nav { - display: grid; - grid-template-columns: 300px 900px 300px; - justify-content: center; - position: relative; - margin-top: 80px; -} -@media (max-width: 1442px) { - .wy-grid-for-nav { - display: grid; - grid-template-columns: 300px 700px 200px; - justify-content: center; - } -} -@media (max-width: 1200px) { - .wy-grid-for-nav { - grid-template-columns: 300px auto; - } -} -@media (max-width: 1024px) { - .wy-grid-for-nav { - display: block; - } -} - -.wy-nav-content-wrap { - background: #fcfcfc; -} -@media (max-width: 1024px) { - .wy-nav-content-wrap { - margin-left: 0; - } -} - -@media (max-width: 1024px) { - .wy-nav-content-wrap.shift { - left: 0; - } -} -@media (max-width: 768px) { - .wy-nav-content-wrap.shift { - position: inherit; - top: inherit; - } -} - -.wy-nav-top { - background: transparent; - color: var(--primary-blue); -} -.wy-nav-top i { - font-size: 20px; -} -.wy-nav-top .menu-hamburger { - position: relative; - width: 20px; - height: 20px; - top: 0; - left: 0; - transition-duration: 0.5s; -} -.wy-nav-top .menu-hamburger .icon { - transition-duration: 0.5s; - position: absolute; - height: 100%; - width: 100%; - top: 0; - left: 0; -} -.wy-nav-top .menu-hamburger .icon:before { - transition-duration: 0.5s; - position: absolute; - width: 20px; - height: 2px; - background-color: var(--primary-blue); - content: ""; - top: 0px; - left: 0; -} -.wy-nav-top .menu-hamburger .icon:after { - transition-duration: 0.5s; - position: absolute; - width: 20px; - height: 2px; - background-color: var(--primary-blue); - content: ""; - top: 10px; - left: 0; -} -@media (max-width: 1024px) { - .wy-nav-top { - display: block; - position: fixed; - top: 72px; - left: 10px; - z-index: 100; - } -} -@media (max-width: 1024px) and (max-width: 420px) { - .wy-nav-top { - top: 102px; - } -} - -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon { - transition-duration: 0.5s; -} -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:before { - transform: rotateZ(135deg) scaleX(1.05) translate(4px, -4.5px); -} -.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:after { - transform: rotateZ(-135deg) scaleX(1.05) translate(2px, 2.9px); -} - -.wy-nav-content { - max-width: 1200px; - padding: 20px; - height: auto; -} -.wy-nav-content-wrap { - margin-left: 0; -} - -.wy-side-scroll { - height: auto; -} -@media (max-width: 1024px) { - .wy-side-scroll { - width: auto; - } -} - -.wy-side-nav-search { - width: 100%; - background-color: var(--primary-blue); - padding: 0; - position: fixed; - top: 0; - height: 60px; - display: grid; - grid-template-columns: 300px 1fr 300px; - justify-content: center; - align-items: center; -} -.wy-side-nav-search .search-bar-container { - width: 300px; -} -@media (max-width: 768px) { - .wy-side-nav-search .search-bar-container { - width: 200px; - } -} -@media (max-width: 420px) { - .wy-side-nav-search .search-bar-container { - width: 90%; - grid-area: 2/span 2; - justify-self: center; - } -} -@media (max-width: 1442px) { - .wy-side-nav-search { - display: grid; - grid-template-columns: 300px 1fr 300px; - justify-content: center; - } -} -@media (max-width: 1024px) { - .wy-side-nav-search { - width: 100%; - } -} -@media (max-width: 1200px) { - .wy-side-nav-search { - grid-template-columns: 300px 1fr 300px; - justify-content: flex-start; - } -} -@media (max-width: 768px) { - .wy-side-nav-search { - grid-template-columns: 200px 1fr 100px; - } -} -@media (max-width: 420px) { - .wy-side-nav-search { - grid-template-columns: 1fr 1fr; - grid-template-rows: 1fr 1fr; - height: 90px; - } -} - -.wy-menu-vertical { - height: calc(100vh - 60px); - overflow-y: scroll; - position: fixed; - top: 110px; - padding-bottom: 60px; - padding-top: 5px; - background-color: #fff; -} -@media (max-width: 420px) { - .wy-menu-vertical { - top: 140px; - } -} - -.wy-nav-side { - position: sticky; - top: 0; - background: inherit; - z-index: 10; -} -@media (max-width: 1024px) { - .wy-nav-side { - width: 300px; - left: -300px; - } -} -@media (max-width: 1024px) { - .wy-nav-side .wy-menu-vertical { - left: -300px; - width: 300px; - transition: 0.2s ease-in-out; - } -} - -@media (max-width: 768px) { - .wy-nav-side.shift { - width: 300px; - left: -300px; - } -} -@media (max-width: 1024px) { - .wy-nav-side.shift .wy-menu-vertical { - transition: 0.2s ease-in-out; - left: 0; - } -} - -.wy-menu-vertical p.caption { - color: var(--primary-blue); - padding: 0 20px; -} - -.wy-menu-vertical a { - color: var(--text-blue); -} - -.wy-menu-vertical li.current > a { - color: var(--primary-orange); - scroll-margin-top: 10px; -} - -.wy-menu-vertical li.toctree-l2 a, -.wy-menu-vertical li.toctree-l2.current > a { - background: rgb(245, 245, 245); -} - -.wy-menu-vertical li.toctree-l3 a, -.wy-menu-vertical li.toctree-l3.current > a { - background: rgb(235, 235, 235); -} - -.wy-menu-vertical li.toctree-l2.current li.toctree-l3, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { - background: rgb(230, 230, 230); -} - -.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { - background: rgb(220, 220, 220); -} - -.rst-content { - max-width: 900px; - padding: 0 50px; -} -@media (max-width: 768px) { - .rst-content { - padding: 0; - } -} - -/* code blocks */ -.rst-content section ul { - line-height: auto; -} - -code, -pre, -pre span, -span.pre, -.rst-content .linenodiv pre, -.rst-content div[class^=highlight] pre, -.rst-content pre.literal-block { - font-family: "Ubuntu Mono", monospace; -} - -ul.simple li code, -code.docutils.literal.notranslate { - border: none; - width: max-content; - font-size: 13px; - padding: 10px; - margin: 10px 0; - border-radius: 8px; - background: #292d3e; -} -ul.simple li code.literal, -code.docutils.literal.notranslate.literal { - color: var(--aqua); -} - -code.docutils.literal.notranslate { - background: #efefef; - padding: 2px 6px; -} -code.docutils.literal.notranslate.literal { - color: var(--blue); -} - -.rst-content div.notranslate { - border: none; -} -.rst-content div.notranslate .highlight { - font-family: "Ubuntu Mono", monospace; - font-size: 16px; - padding: 10px; - line-height: 24px; - margin: 10px 0; - border-radius: 8px; - background-color: #292d3e; - color: #D9E7F3; -} -.rst-content div.notranslate .highlight .c1 { - color: var(--message-warning); -} -.rst-content div.notranslate .highlight .mi, -.rst-content div.notranslate .highlight .o, -.rst-content div.notranslate .highlight .mf { - color: #e4e4e4; -} -.rst-content div.notranslate .highlight .s, -.rst-content div.notranslate .highlight .n, -.rst-content div.notranslate .highlight .nb, -.rst-content div.notranslate .highlight .na, -.rst-content div.notranslate .highlight .s1 { - color: var(--aqua); -} -.rst-content div.notranslate .highlight .s1 { - color: var(--light-orange); -} -.rst-content div.notranslate .highlight .k, -.rst-content div.notranslate .highlight .nv, -.rst-content div.notranslate .highlight .m, -.rst-content div.notranslate .highlight .vg, -.rst-content div.notranslate .highlight .p { - color: #D9E7F3; -} - -.rst-content div.highlight pre { - font-size: 14px; -} - -/* code blocks end */ -/* buttons next previous */ -.btn, -.btn-neutral { - background: #fff; - background-color: #fff !important; - border: 1px solid var(--primary-orange); - font-weight: 600; - font-size: 12px; - max-width: 110px; - padding: 0 15px; - color: var(--primary-orange) !important; -} -.btn .fa, -.btn-neutral .fa { - display: none; -} -.btn:visited, -.btn-neutral:visited { - color: var(--primary-orange) !important; -} -.btn:hover, -.btn-neutral:hover { - opacity: 1; -} - -.btn:active { - padding: 0 15px; -} - -.rst-content .btn:focus { - outline: 0px solid; -} - -.btn-orange { - background-color: var(--primary-orange) !important; - color: #fff !important; -} - -/* buttons next previous end */ -.rst-content p + ul { - margin-top: -14px; -} - -/* scrollbar */ -.wy-menu { - /* scrollbar end */ - /* sidebar */ -} -.wy-menu::-webkit-scrollbar { - width: 10px; - background-color: var(--grey-border); -} -.wy-menu::-webkit-scrollbar-thumb { - background-color: var(--primary-blue); - border-radius: 5px; - background-clip: content-box; -} -.wy-menu li.toctree-l1.current > a { - border-bottom: 0; - border-top: 0; -} -.wy-menu li.current, .wy-menu li.toctree-l2, .wy-menu li.toctree-l2 a, .wy-menu li.toctree-l2.current, .wy-menu li.toctree-l2.current li.toctree-l3, .wy-menu li.toctree-l3.current li.toctree-l4, .wy-menu li.toctree-l3.current li.toctree-l4 > a, .wy-menu li.toctree-l2.current li.toctree-l3 > a { - background: inherit; -} -.wy-menu li.current > a, .wy-menu li.toctree-l2.current a, .wy-menu li.toctree-l3.current li.toctree-l4.current > a, .wy-menu li.toctree-l2.current li.toctree-l3.current > a { - background: #fff; -} -.wy-menu li.current > a, .wy-menu li.on a { - background: #fff; -} -.wy-menu li.current > a button.toctree-expand, .wy-menu li.on a button.toctree-expand, .wy-menu li > a button.toctree-expand, .wy-menu li.on a button.toctree-expand { - display: none; -} -.wy-menu a { - font-size: 13px; -} -@media (max-width: 768px) { - .wy-menu a { - font-size: 15px; - } -} -.wy-menu li.toctree-l2 li.toctree-l3 a:hover, .wy-menu .toctree-l3 a:hover, .wy-menu li.current a:hover, .wy-menu a:hover { - color: var(--blue); - background-color: white; -} -.wy-menu li.current > a { - color: var(--blue); -} -.wy-menu li.toctree-l2, .wy-menu li.toctree-l3, .wy-menu li.toctree-l4, .wy-menu li.toctree-l5 { - margin-left: 22px; - border-left: 1px solid #c1d2e1; -} -.wy-menu li.current > a, .wy-menu li.on a, .wy-menu li.toctree-l2.current li.toctree-l3 > a, .wy-menu li.toctree-l2.current > a, .wy-menu li.toctree-l2 > a, .wy-menu li.toctree-l3.current li.toctree-l4 > a { - border-right: none; - padding: 10px; -} -.wy-menu li.current > a, .wy-menu li.on a { - padding-left: 20px; -} - -/* sidebar end */ -/* aside */ -.aside-tile { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: relative; - width: 100%; - height: max-content; - padding: 10px; -} -.aside-tile__container { - border-radius: 5px; - border: 1px solid var(--grey-border); - position: fixed; - top: 150px; - background-color: #fff; - width: 250px; - height: max-content; - padding: 20px 20px 10px 20px; -} -@media (max-width: 1442px) { - .aside-tile__container { - width: 179px; - } -} -.aside-tile__feedback { - top: 350px; -} -.aside-tile__content { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; -} -.aside-tile__content img { - max-width: 47px; -} -.aside-tile h4 { - line-height: 30px; - margin-bottom: 10px; -} -@media (max-width: 1200px) { - .aside-tile { - display: none; - } -} -.aside-tile .aside-tile__feedback-list { - font-size: 12px; - color: var(--blue); - text-align: left; - margin-bottom: 5px; -} -.aside-tile .aside-tile__feedback-list li { - line-height: 25px; -} -.aside-tile .aside-tile__feedback-list li i { - margin-right: 5px; - color: var(--message-success); -} - -/* aside end */ -/*notes (admonition notes)*/ -.rst-content .note, -.rst-content .attention, -.rst-content .caution, -.rst-content .danger, -.rst-content .error, -.rst-content .hint, -.rst-content .important, -.rst-content .tip, -.rst-content .warning { - padding: 25px 20px 20px 40px; - margin: 20px 0; - border-radius: 4px; -} -.rst-content .note .admonition-title, -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .danger .admonition-title, -.rst-content .error .admonition-title, -.rst-content .hint .admonition-title, -.rst-content .important .admonition-title, -.rst-content .tip .admonition-title, -.rst-content .warning .admonition-title { - background: transparent; - font-size: 16px; -} -.rst-content .note p, -.rst-content .note a, -.rst-content .attention p, -.rst-content .attention a, -.rst-content .caution p, -.rst-content .caution a, -.rst-content .danger p, -.rst-content .danger a, -.rst-content .error p, -.rst-content .error a, -.rst-content .hint p, -.rst-content .hint a, -.rst-content .important p, -.rst-content .important a, -.rst-content .tip p, -.rst-content .tip a, -.rst-content .warning p, -.rst-content .warning a { - font-size: 13px; -} -.rst-content .note { - background: var(--message-info-bg); -} -.rst-content .note p { - color: var(--message-info-text); -} -.rst-content .note .admonition-title { - color: var(--message-info-text); -} -.rst-content .attention, -.rst-content .caution, -.rst-content .warning, -.rst-content .important { - background: var(--message-warning-bg); -} -.rst-content .attention p, -.rst-content .caution p, -.rst-content .warning p, -.rst-content .important p { - color: var(--message-warning-text); -} -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .warning .admonition-title, -.rst-content .important .admonition-title { - color: var(--message-warning-text); -} -.rst-content .danger, -.rst-content .error { - background: var(--message-danger-bg); -} -.rst-content .danger p, -.rst-content .error p { - color: var(--message-danger-text); -} -.rst-content .danger .admonition-title, -.rst-content .error .admonition-title { - color: var(--message-danger-text); -} -.rst-content .hint, -.rst-content .tip { - background: var(--message-success-bg); -} -.rst-content .hint p, -.rst-content .tip p { - color: var(--message-success-text); -} -.rst-content .hint .admonition-title, -.rst-content .tip .admonition-title { - color: var(--message-success-text); -} - -/* notes (admonition notes) end */ -/* header*/ -.wy-side-nav-search img { - background-color: transparent; - position: relative; - top: 0; - margin: 0; - height: auto; - width: 150px; - border-radius: 0; - padding: 0; -} -@media (max-width: 768px) { - .wy-side-nav-search img { - width: 130px; - } -} - -.wy-side-nav-search input[type=text], -.wy-body-for-nav input:not([type=checkbox]):not([type=radio]):not([type=submit]) { - border: none; - box-shadow: none; -} - -.logo-title { - display: flex; - justify-content: center; - align-items: center; -} -.logo-title:hover { - color: #fff; -} -@media (max-width: 420px) { - .logo-title { - grid-area: 1/span 1; - } -} - -.wy-side-nav-search > a { - display: flex; - margin-bottom: 0; - font-size: 15px; - justify-self: flex-start; -} -.wy-side-nav-search > a:hover { - background: transparent; -} - -.wy-side-nav-search > a.wy-side-nav__login { - justify-self: flex-end; - position: relative; - right: 23px; - padding: 0 15px; - max-width: 100px; - font-size: 12px; -} -@media (max-width: 420px) { - .wy-side-nav-search > a.wy-side-nav__login { - grid-area: 1/span 1; - } -} - -.wy-side-nav-search__menu-items { - display: flex; - column-gap: 10px; - justify-content: flex-end; - align-items: center; - height: 100%; - padding-right: 20px; -} -.wy-side-nav-search__menu-items a { - font-size: 13px; -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item { - color: #fff; - height: 97%; - display: flex; - align-items: center; - padding: 0 10px; -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item:hover { - border-bottom: 2px solid var(--primary-orange); -} -.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item.current { - border-bottom: 2px solid var(--primary-orange); -} -@media (max-width: 768px) { - .wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item { - display: none; - } -} - -/*header end*/ -/* breadcrumbs*/ -.wy-breadcrumbs { - max-width: 1461px; - margin: auto; -} -.wy-breadcrumbs li { - padding-top: initial; -} -@media (max-width: 1442px) { - .wy-breadcrumbs { - max-width: 1160px; - } -} -@media (max-width: 1200px) { - .wy-breadcrumbs { - max-width: none; - margin: 0 20px; - } -} -@media (max-width: 1024px) { - .wy-breadcrumbs { - max-width: none; - margin: 0 20px 0 60px; - width: 100%; - max-width: calc(100% - 90px); - overflow: scroll; - white-space: nowrap; - } -} -@media (max-width: 420px) { - .wy-breadcrumbs { - margin: 0 20px 0 65px; - } -} - -.wy-breadcrumbs, -.wy-breadcrumbs li a, -.wy-breadcrumbs-aside a { - font-size: 11px; -} - -@media (max-width: 768px) { - .wy-breadcrumbs li.wy-breadcrumbs-aside { - display: none; - } -} - -.wy-breadcrumbs li a:visited { - color: var(--light-orange); -} - -li.wy-breadcrumbs-aside a { - padding: 10px; -} - -.header { - height: 50px; - line-height: 50px; - width: 100%; - position: fixed; - top: 60px; - border-bottom: 1px solid var(--grey-border); - z-index: 20; - background-color: white; -} -@media (max-width: 420px) { - .header { - top: 90px; - } -} - -/* header end */ -/* article meta */ -.article-meta { - display: inline-block; - position: relative; - top: 30px; - font-size: 11px; - font-weight: 600; - opacity: 0.35; -} -.article-meta--updated { - opacity: 0.5; -} -.article-meta--updated::after { - content: "•"; - padding-left: 5px; -} -@media (max-width: 420px) { - .article-meta { - font-size: 12px; - } -} - -/* article meta end */ -/* footer */ -.edit { - text-align: center; -} - -.copyright p { - font-size: 11px; -} - -/* footer end */ - -/*# sourceMappingURL=main.css.map */ +:root{--blue: #005dab;--primary-blue: #063b67;--secondary-blue: #074e8a;--text-blue: #063b67;--light-blue: #EEF8FF;--light-blue-clear: #F8FCFF;--aqua: #51B3DB;--primary-orange: #FF7101;--hover-orange: #FF8201;--light-orange: #f2a557;--grey: #F5F6F8;--grey-border: #D9E7F3;--light-grey-sidebar: #E5EAF0;--message-success: #4bb52d;--message-success-bg: #E3F6CF;--message-success-text: #0D3D00;--message-danger: #D10000;--message-danger-bg: #FAE5E8;--message-danger-text: #6A0000;--message-warning: #DC7500;--message-warning-bg: #FFF1ED;--message-warning-text: #9C3900;--message-info: #074E8A;--message-info-bg: #E7F2F8;--message-info-text: #063b67;--cc-btn-primary-bg: var(--primary-blue);--cc-btn-secondary-text: var(--primary-blue)}h1,h2,h3,h4,span{font-family:"Montserrat",sans-serif}@media(max-width: 768px){p{font-size:17px;line-height:26px}}span,p,div{color:#404040}a{text-decoration:none}a:hover:not(.logo-title){opacity:.7}a:visited{color:var(--primary-blue)}a.ahref-blue{text-decoration:underline;color:var(--primary-blue)}a.ahref-orange{text-decoration:underline;color:var(--primary-orange)}.main-content a{color:var(--secondary-blue);text-decoration:underline}.main-content a:visited{opacity:.8;color:var(--secondary-blue) !important}.wy-side-nav-search a:visited{color:#fff !important}h1{font-size:40px;line-height:inherit;margin:40px 0}h2{font-size:32px;line-height:1.2em;margin-top:40px}@media(max-width: 768px){h2{font-size:22px}}section{scroll-margin-top:120px}#rtd-search-form input.main-search-bar__input{position:relative;top:10px;padding:0 15px 0 30px}@media(max-width: 420px){#rtd-search-form input.main-search-bar__input{top:0}}#rtd-search-form .search-icon{position:relative;width:13px;top:-18px;left:-132px}@media(max-width: 768px){#rtd-search-form .search-icon{left:-83px}}@media(max-width: 420px){#rtd-search-form .search-icon{top:-27px;left:-149px}}.wy-grid-for-nav{display:grid;grid-template-columns:300px 900px 300px;justify-content:center;position:relative;margin-top:80px}@media(max-width: 1442px){.wy-grid-for-nav{display:grid;grid-template-columns:300px 700px 200px;justify-content:center}}@media(max-width: 1200px){.wy-grid-for-nav{grid-template-columns:300px auto}}@media(max-width: 1024px){.wy-grid-for-nav{display:block}}.wy-nav-content-wrap{background:#fcfcfc}@media(max-width: 1024px){.wy-nav-content-wrap{margin-left:0}}@media(max-width: 1024px){.wy-nav-content-wrap.shift{left:0}}@media(max-width: 768px){.wy-nav-content-wrap.shift{position:inherit;top:inherit}}.wy-nav-top{background:rgba(0,0,0,0);color:var(--primary-blue)}.wy-nav-top i{font-size:20px}.wy-nav-top .menu-hamburger{position:relative;width:20px;height:20px;top:0;left:0;transition-duration:.5s}.wy-nav-top .menu-hamburger .icon{transition-duration:.5s;position:absolute;height:100%;width:100%;top:0;left:0}.wy-nav-top .menu-hamburger .icon:before{transition-duration:.5s;position:absolute;width:20px;height:2px;background-color:var(--primary-blue);content:"";top:0px;left:0}.wy-nav-top .menu-hamburger .icon:after{transition-duration:.5s;position:absolute;width:20px;height:2px;background-color:var(--primary-blue);content:"";top:10px;left:0}@media(max-width: 1024px){.wy-nav-top{display:block;position:fixed;top:72px;left:10px;z-index:100}}@media(max-width: 1024px)and (max-width: 420px){.wy-nav-top{top:102px}}.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon{transition-duration:.5s}.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:before{transform:rotateZ(135deg) scaleX(1.05) translate(4px, -4.5px)}.wy-nav-content-wrap.shift .wy-nav-top .menu-hamburger .icon:after{transform:rotateZ(-135deg) scaleX(1.05) translate(2px, 2.9px)}.wy-nav-content{max-width:1200px;padding:20px;height:auto}.wy-nav-content-wrap{margin-left:0}.wy-side-scroll{height:auto}@media(max-width: 1024px){.wy-side-scroll{width:auto}}.wy-side-nav-search{width:100%;background-color:var(--primary-blue);padding:0;position:fixed;top:0;height:60px;display:grid;grid-template-columns:300px 1fr 300px;justify-content:center;align-items:center}.wy-side-nav-search .search-bar-container{width:300px}@media(max-width: 768px){.wy-side-nav-search .search-bar-container{width:200px}}@media(max-width: 420px){.wy-side-nav-search .search-bar-container{width:90%;grid-area:2/span 2;justify-self:center}}@media(max-width: 1442px){.wy-side-nav-search{display:grid;grid-template-columns:300px 1fr 300px;justify-content:center}}@media(max-width: 1024px){.wy-side-nav-search{width:100%}}@media(max-width: 1200px){.wy-side-nav-search{grid-template-columns:300px 1fr 300px;justify-content:flex-start}}@media(max-width: 768px){.wy-side-nav-search{grid-template-columns:200px 1fr 100px}}@media(max-width: 420px){.wy-side-nav-search{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;height:90px}}.wy-menu-vertical{height:calc(100vh - 60px);overflow-y:scroll;position:fixed;top:110px;padding-bottom:60px;padding-top:5px;background-color:#fff}@media(max-width: 420px){.wy-menu-vertical{top:140px}}.wy-nav-side{position:sticky;top:0;background:inherit;z-index:10}@media(max-width: 1024px){.wy-nav-side{width:300px;left:-300px}}@media(max-width: 1024px){.wy-nav-side .wy-menu-vertical{left:-300px;width:300px;transition:.2s ease-in-out}}@media(max-width: 768px){.wy-nav-side.shift{width:300px;left:-300px}}@media(max-width: 1024px){.wy-nav-side.shift .wy-menu-vertical{transition:.2s ease-in-out;left:0}}.wy-menu-vertical p.caption{color:var(--primary-blue);padding:0 20px}.wy-menu-vertical a{color:var(--text-blue)}.wy-menu-vertical li.current>a{color:var(--primary-orange);scroll-margin-top:10px}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l2.current>a{background:#f5f5f5}.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l3.current>a{background:#ebebeb}.wy-menu-vertical li.toctree-l2.current li.toctree-l3,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#e6e6e6}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#dcdcdc}.rst-content{max-width:900px;padding:0 50px}@media(max-width: 768px){.rst-content{padding:0}}.rst-content section ul{line-height:auto}code,pre,pre span,span.pre,.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:"Ubuntu Mono",monospace}ul.simple li code,code.docutils.literal.notranslate{border:none;width:max-content;font-size:13px;padding:10px;margin:10px 0;border-radius:8px;background:#292d3e}ul.simple li code.literal,code.docutils.literal.notranslate.literal{color:var(--aqua)}code.docutils.literal.notranslate{background:#efefef;padding:2px 6px}code.docutils.literal.notranslate.literal{color:var(--blue)}.rst-content div.notranslate{border:none}.rst-content div.notranslate .highlight{font-family:"Ubuntu Mono",monospace;font-size:16px;padding:10px;line-height:24px;margin:10px 0;border-radius:8px;background-color:#292d3e;color:#d9e7f3}.rst-content div.notranslate .highlight .c1{color:var(--message-warning)}.rst-content div.notranslate .highlight .mi,.rst-content div.notranslate .highlight .o,.rst-content div.notranslate .highlight .mf{color:#e4e4e4}.rst-content div.notranslate .highlight .s,.rst-content div.notranslate .highlight .n,.rst-content div.notranslate .highlight .nb,.rst-content div.notranslate .highlight .na,.rst-content div.notranslate .highlight .s1{color:var(--aqua)}.rst-content div.notranslate .highlight .s1{color:var(--light-orange)}.rst-content div.notranslate .highlight .k,.rst-content div.notranslate .highlight .nv,.rst-content div.notranslate .highlight .m,.rst-content div.notranslate .highlight .vg,.rst-content div.notranslate .highlight .p{color:#d9e7f3}.rst-content div.highlight pre{font-size:14px}.btn,.btn-neutral{background:#fff;background-color:#fff !important;border:1px solid var(--primary-orange);font-weight:600;font-size:12px;max-width:110px;padding:0 15px;color:var(--primary-orange) !important}.btn .fa,.btn-neutral .fa{display:none}.btn:visited,.btn-neutral:visited{color:var(--primary-orange) !important}.btn:hover,.btn-neutral:hover{opacity:1}.btn:active{padding:0 15px}.rst-content .btn:focus{outline:0px solid}.btn-orange{background-color:var(--primary-orange) !important;color:#fff !important}.rst-content p+ul{margin-top:-14px}.wy-menu::-webkit-scrollbar{width:10px;background-color:var(--grey-border)}.wy-menu::-webkit-scrollbar-thumb{background-color:var(--primary-blue);border-radius:5px;background-clip:content-box}.wy-menu li.toctree-l1.current>a{border-bottom:0;border-top:0}.wy-menu li.current,.wy-menu li.toctree-l2,.wy-menu li.toctree-l2 a,.wy-menu li.toctree-l2.current,.wy-menu li.toctree-l2.current li.toctree-l3,.wy-menu li.toctree-l3.current li.toctree-l4,.wy-menu li.toctree-l3.current li.toctree-l4>a,.wy-menu li.toctree-l2.current li.toctree-l3>a{background:inherit}.wy-menu li.current>a,.wy-menu li.toctree-l2.current a,.wy-menu li.toctree-l3.current li.toctree-l4.current>a,.wy-menu li.toctree-l2.current li.toctree-l3.current>a{background:#fff}.wy-menu li.current>a,.wy-menu li.on a{background:#fff}.wy-menu li.current>a button.toctree-expand,.wy-menu li.on a button.toctree-expand,.wy-menu li>a button.toctree-expand,.wy-menu li.on a button.toctree-expand{display:none}.wy-menu a{font-size:13px}@media(max-width: 768px){.wy-menu a{font-size:15px}}.wy-menu li.toctree-l2 li.toctree-l3 a:hover,.wy-menu .toctree-l3 a:hover,.wy-menu li.current a:hover,.wy-menu a:hover{color:var(--blue);background-color:#fff}.wy-menu li.current>a{color:var(--blue)}.wy-menu li.toctree-l2,.wy-menu li.toctree-l3,.wy-menu li.toctree-l4,.wy-menu li.toctree-l5{margin-left:22px;border-left:1px solid #c1d2e1}.wy-menu li.current>a,.wy-menu li.on a,.wy-menu li.toctree-l2.current li.toctree-l3>a,.wy-menu li.toctree-l2.current>a,.wy-menu li.toctree-l2>a,.wy-menu li.toctree-l3.current li.toctree-l4>a{border-right:none;padding:10px}.wy-menu li.current>a,.wy-menu li.on a{padding-left:20px}.aside-tile{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;width:100%;height:max-content;padding:10px}.aside-tile__container{border-radius:5px;border:1px solid var(--grey-border);position:fixed;top:150px;background-color:#fff;width:250px;height:max-content;padding:20px 20px 10px 20px}@media(max-width: 1442px){.aside-tile__container{width:179px}}.aside-tile__feedback{top:350px}.aside-tile__content{display:flex;flex-direction:column;align-items:center;text-align:center}.aside-tile__content img{max-width:47px}.aside-tile h4{line-height:30px;margin-bottom:10px}@media(max-width: 1200px){.aside-tile{display:none}}.aside-tile .aside-tile__feedback-list{font-size:12px;color:var(--blue);text-align:left;margin-bottom:5px}.aside-tile .aside-tile__feedback-list li{line-height:25px}.aside-tile .aside-tile__feedback-list li i{margin-right:5px;color:var(--message-success)}.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning{padding:25px 20px 20px 40px;margin:20px 0;border-radius:4px}.rst-content .note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .warning .admonition-title{background:rgba(0,0,0,0);font-size:16px}.rst-content .note p,.rst-content .note a,.rst-content .attention p,.rst-content .attention a,.rst-content .caution p,.rst-content .caution a,.rst-content .danger p,.rst-content .danger a,.rst-content .error p,.rst-content .error a,.rst-content .hint p,.rst-content .hint a,.rst-content .important p,.rst-content .important a,.rst-content .tip p,.rst-content .tip a,.rst-content .warning p,.rst-content .warning a{font-size:13px}.rst-content .note{background:var(--message-info-bg)}.rst-content .note p{color:var(--message-info-text)}.rst-content .note .admonition-title{color:var(--message-info-text)}.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .important{background:var(--message-warning-bg)}.rst-content .attention p,.rst-content .caution p,.rst-content .warning p,.rst-content .important p{color:var(--message-warning-text)}.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .warning .admonition-title,.rst-content .important .admonition-title{color:var(--message-warning-text)}.rst-content .danger,.rst-content .error{background:var(--message-danger-bg)}.rst-content .danger p,.rst-content .error p{color:var(--message-danger-text)}.rst-content .danger .admonition-title,.rst-content .error .admonition-title{color:var(--message-danger-text)}.rst-content .hint,.rst-content .tip{background:var(--message-success-bg)}.rst-content .hint p,.rst-content .tip p{color:var(--message-success-text)}.rst-content .hint .admonition-title,.rst-content .tip .admonition-title{color:var(--message-success-text)}.wy-side-nav-search img{background-color:rgba(0,0,0,0);position:relative;top:0;margin:0;height:auto;width:150px;border-radius:0;padding:0}@media(max-width: 768px){.wy-side-nav-search img{width:130px}}.wy-side-nav-search input[type=text],.wy-body-for-nav input:not([type=checkbox]):not([type=radio]):not([type=submit]){border:none;box-shadow:none}.logo-title{display:flex;justify-content:center;align-items:center}.logo-title:hover{color:#fff}@media(max-width: 420px){.logo-title{grid-area:1/span 1}}.wy-side-nav-search>a{display:flex;margin-bottom:0;font-size:15px;justify-self:flex-start}.wy-side-nav-search>a:hover{background:rgba(0,0,0,0)}.wy-side-nav-search>a.wy-side-nav__login{justify-self:flex-end;position:relative;right:23px;padding:0 15px;max-width:100px;font-size:12px}@media(max-width: 420px){.wy-side-nav-search>a.wy-side-nav__login{grid-area:1/span 1}}.wy-side-nav-search__menu-items{display:flex;column-gap:10px;justify-content:flex-end;align-items:center;height:100%;padding-right:20px}.wy-side-nav-search__menu-items a{font-size:13px}.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item{color:#fff;height:97%;display:flex;align-items:center;padding:0 10px}.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item:hover{border-bottom:2px solid var(--primary-orange)}.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item.current{border-bottom:2px solid var(--primary-orange)}@media(max-width: 768px){.wy-side-nav-search__menu-items a.wy-side-nav-search__menu-item{display:none}}.wy-breadcrumbs{max-width:1461px;margin:auto}.wy-breadcrumbs li{padding-top:initial}@media(max-width: 1442px){.wy-breadcrumbs{max-width:1160px}}@media(max-width: 1200px){.wy-breadcrumbs{max-width:none;margin:0 20px}}@media(max-width: 1024px){.wy-breadcrumbs{max-width:none;margin:0 20px 0 60px;width:100%;max-width:calc(100% - 90px);overflow:auto;white-space:nowrap}}@media(max-width: 420px){.wy-breadcrumbs{margin:0 20px 0 65px}}.wy-breadcrumbs,.wy-breadcrumbs li a,.wy-breadcrumbs-aside a{font-size:11px}@media(max-width: 768px){.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-breadcrumbs li a:visited{color:var(--light-orange)}li.wy-breadcrumbs-aside a{padding:10px}.header{height:50px;line-height:50px;width:100%;position:fixed;top:60px;border-bottom:1px solid var(--grey-border);z-index:20;background-color:#fff}@media(max-width: 420px){.header{top:90px}}.article-meta{display:inline-block;position:relative;top:30px;font-size:11px;font-weight:600;opacity:.35}.article-meta--updated{opacity:.5}.article-meta--updated::after{content:"•";padding-left:5px}@media(max-width: 420px){.article-meta{font-size:12px}}.edit{text-align:center}.copyright p{font-size:11px} diff --git a/docs/_static/scss/breakpoints.scss b/docs/_static/scss/_breakpoints.scss similarity index 100% rename from docs/_static/scss/breakpoints.scss rename to docs/_static/scss/_breakpoints.scss diff --git a/docs/_static/scss/colors.scss b/docs/_static/scss/_colors.scss similarity index 100% rename from docs/_static/scss/colors.scss rename to docs/_static/scss/_colors.scss diff --git a/docs/_static/scss/general.scss b/docs/_static/scss/_general.scss similarity index 99% rename from docs/_static/scss/general.scss rename to docs/_static/scss/_general.scss index 52f044e7..626c2edc 100644 --- a/docs/_static/scss/general.scss +++ b/docs/_static/scss/_general.scss @@ -1,4 +1,4 @@ -@import "breakpoints"; +@use "breakpoints" as *; h1, h2, @@ -857,7 +857,7 @@ code.docutils.literal.notranslate { margin: 0 20px 0 60px; width: 100%; max-width: calc(100% - 90px); - overflow: scroll; + overflow: auto; white-space: nowrap; } diff --git a/docs/_static/scss/main.scss b/docs/_static/scss/main.scss index 45c5becc..7ff0f9ab 100644 --- a/docs/_static/scss/main.scss +++ b/docs/_static/scss/main.scss @@ -1,3 +1,3 @@ -@import "breakpoints"; -@import "colors"; -@import "general"; +@use "breakpoints"; +@use "colors"; +@use "general"; From edd5b99d3a97b0cb3a316b2745c80694449d9955 Mon Sep 17 00:00:00 2001 From: Jonathan Visser Date: Tue, 31 Dec 2024 15:52:26 +0100 Subject: [PATCH 13/14] Build stylesheet on buildtime --- deploy.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deploy.php b/deploy.php index 38b2362f..36cd8e31 100644 --- a/deploy.php +++ b/deploy.php @@ -47,6 +47,10 @@ run('ln -sf docs/_build/html pub'); }); +task('node:build:scss', static function() { + run('npx sass --style compressed --no-source-map docs/_static/scss:docs/_static/css'); +}); + # HMV configuration for when this is running in a docker task('deploy:hmv_docker', static function () use (&$DOCKER_HOST, &$DOCKER_WEBROOT) { if (test('[ -f /etc/hypernode/is_docker ]')) { @@ -71,6 +75,7 @@ }); $configuration = new Configuration(); +$configuration->addBuildTask('node:build:scss'); $configuration->addBuildTask('python:venv:create'); $configuration->addBuildTask('python:venv:requirements'); $configuration->addBuildTask('python:build_documentation'); From bde627f879eddcdae4069925510395fcefc9e1c9 Mon Sep 17 00:00:00 2001 From: Jonathan Visser Date: Tue, 31 Dec 2024 15:52:44 +0100 Subject: [PATCH 14/14] Add instructions for styling in reflection of deployment --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 793b792d..8dacb025 100644 --- a/README.md +++ b/README.md @@ -42,12 +42,12 @@ open localhost and now you can make changes in style and refresh the page withou when you're working on scss to compile it automatically run ``` -sass --watch docs/_static/scss:docs/_static/css +npx sass --watch docs/_static/scss:docs/_static/css ``` -or after changes compile scss once: +or as a production build: ``` -sass docs/_static/scss:docs/_static/css +npx sass --style compressed --no-source-map docs/_static/scss:docs/_static/css ``` ## Deployment