This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch feat/docs-resources-admonition
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 9a76da78e74907f7aaf4a0a9e24f7914438f3a62
Author: Evan Rusackas <[email protected]>
AuthorDate: Fri Dec 19 01:00:50 2025 -0800

    feat(docs): add resources links across documentation pages
    
    Adds external resources (vendor docs, blogs, tutorials, videos) to
    documentation pages using the custom :::resources admonition:
    
    - databases.mdx: Added resources for ClickHouse, CrateDB, Trino,
      YugabyteDB, Elasticsearch, BigQuery, Hive, Oracle, PostgreSQL,
      Snowflake, Spark SQL, TimescaleDB
    - quickstart.mdx: Added Superset 101 video
    - theming.mdx: Added theming video and CSS blogs
    - exploring-data.mdx: Added ECharts, drill-by, cross-filtering blogs
    - creating-your-first-dashboard.mdx: Added dashboard best practices
    - configuring-superset.mdx: Added feature flags blog
    - securing_superset.mdx: Added security vulnerabilities blog
    - api.mdx: Added REST API and accessing APIs blogs
    - alerts-reports.mdx: Added Slack/email alerts tutorials
    - kubernetes.mdx: Added Helm deployment tutorials
    - async-queries-celery.mdx: Added GAQ setup guide
    - cache.mdx: Added performance optimization blogs
    - sql-templating.mdx: Added Jinja templating blog
    - contributing.mdx: Added contributing tutorial
    - development.mdx: Added viz plugins blogs
    
    Also registers 'resources' as a valid admonition keyword in
    docusaurus.config.ts and updates CSS to use subtle gray styling.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
---
 docs/docs/api.mdx                                  |   5 +
 docs/docs/configuration/alerts-reports.mdx         |   5 +
 docs/docs/configuration/async-queries-celery.mdx   |   4 +
 docs/docs/configuration/cache.mdx                  |   5 +
 docs/docs/configuration/configuring-superset.mdx   |   4 +
 docs/docs/configuration/databases.mdx              | 128 ++++++++++++++++++---
 docs/docs/configuration/sql-templating.mdx         |   4 +
 docs/docs/configuration/theming.mdx                |   8 ++
 docs/docs/contributing/contributing.mdx            |   4 +
 docs/docs/contributing/development.mdx             |   7 +-
 docs/docs/installation/kubernetes.mdx              |   5 +
 docs/docs/quickstart.mdx                           |   1 +
 docs/docs/security/securing_superset.mdx           |   5 +
 .../creating-your-first-dashboard.mdx              |  11 ++
 docs/docs/using-superset/exploring-data.mdx        |   9 ++
 docs/docusaurus.config.ts                          |  12 ++
 docs/src/styles/custom.css                         |  16 +--
 17 files changed, 211 insertions(+), 22 deletions(-)

diff --git a/docs/docs/api.mdx b/docs/docs/api.mdx
index 11e0b86fe8..52f6be851b 100644
--- a/docs/docs/api.mdx
+++ b/docs/docs/api.mdx
@@ -16,6 +16,11 @@ Superset's public **REST API** follows the
 documented here. The docs below are generated using
 [Swagger React UI](https://www.npmjs.com/package/swagger-ui-react).
 
+:::resources
+- [Blog: The Superset REST 
API](https://preset.io/blog/2020-10-01-superset-api/)
+- [Blog: Accessing APIs with 
Superset](https://preset.io/blog/accessing-apis-with-superset/)
+:::
+
 <Alert
   type="info"
   message={
diff --git a/docs/docs/configuration/alerts-reports.mdx 
b/docs/docs/configuration/alerts-reports.mdx
index eca5037473..9a6b1ff573 100644
--- a/docs/docs/configuration/alerts-reports.mdx
+++ b/docs/docs/configuration/alerts-reports.mdx
@@ -398,3 +398,8 @@ the user can add the metadata required for scheduling the 
query.
 This information can then be retrieved from the endpoint 
`/api/v1/saved_query/` and used to
 schedule the queries that have `schedule_info` in their JSON metadata. For 
schedulers other than
 Airflow, additional fields can be easily added to the configuration file above.
+
+:::resources
+- [Tutorial: Automated Alerts and Reporting via Slack/Email in 
Superset](https://dev.to/ngtduc693/apache-superset-topic-5-automated-alerts-and-reporting-via-slackemail-in-superset-2gbe)
+- [Blog: Integrating Slack alerts and Apache Superset for better data 
observability](https://medium.com/affinityanswers-tech/integrating-slack-alerts-and-apache-superset-for-better-data-observability-fd2f9a12c350)
+:::
diff --git a/docs/docs/configuration/async-queries-celery.mdx 
b/docs/docs/configuration/async-queries-celery.mdx
index 10afa02a31..ee2d2c2862 100644
--- a/docs/docs/configuration/async-queries-celery.mdx
+++ b/docs/docs/configuration/async-queries-celery.mdx
@@ -102,3 +102,7 @@ You can run flower using:
 ```bash
 celery --app=superset.tasks.celery_app:app flower
 ```
+
+:::resources
+- [Blog: How to Set Up Global Async Queries (GAQ) in Apache 
Superset](https://medium.com/@ngigilevis/how-to-set-up-global-async-queries-gaq-in-apache-superset-a-complete-guide-9d2f4a047559)
+:::
diff --git a/docs/docs/configuration/cache.mdx 
b/docs/docs/configuration/cache.mdx
index ccd4daba6d..c89cdc85eb 100644
--- a/docs/docs/configuration/cache.mdx
+++ b/docs/docs/configuration/cache.mdx
@@ -152,3 +152,8 @@ Then on configuration:
 ```
 WEBDRIVER_AUTH_FUNC = auth_driver
 ```
+
+:::resources
+- [Blog: The Data Engineer's Guide to Lightning-Fast Superset 
Dashboards](https://preset.io/blog/the-data-engineers-guide-to-lightning-fast-apache-superset-dashboards/)
+- [Blog: Accelerating Dashboards with Materialized 
Views](https://preset.io/blog/accelerating-apache-superset-dashboards-with-materialized-views/)
+:::
diff --git a/docs/docs/configuration/configuring-superset.mdx 
b/docs/docs/configuration/configuring-superset.mdx
index 0a50b07fe6..e7ad43c6d8 100644
--- a/docs/docs/configuration/configuring-superset.mdx
+++ b/docs/docs/configuration/configuring-superset.mdx
@@ -442,3 +442,7 @@ FEATURE_FLAGS = {
 ```
 
 A current list of feature flags can be found in 
[RESOURCES/FEATURE_FLAGS.md](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md).
+
+:::resources
+- [Blog: Feature Flags in Apache 
Superset](https://preset.io/blog/feature-flags-in-apache-superset-and-preset/)
+:::
diff --git a/docs/docs/configuration/databases.mdx 
b/docs/docs/configuration/databases.mdx
index 7ec4997c18..98cd9c58a2 100644
--- a/docs/docs/configuration/databases.mdx
+++ b/docs/docs/configuration/databases.mdx
@@ -99,8 +99,9 @@ exists, please file an issue on the
 [Superset GitHub repo](https://github.com/apache/superset/issues), so we can 
work on documenting and
 supporting it.
 
-If you'd like to build a database connector for Superset integration,
-read the [following 
tutorial](https://preset.io/blog/building-database-connector/).
+:::resources
+- [Tutorial: Building a Database Connector for 
Superset](https://preset.io/blog/building-database-connector/)
+:::
 
 ### Installing Drivers in Docker Images
 
@@ -219,6 +220,10 @@ Here's what the connection string looks like:
 doris://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
 ```
 
+:::resources
+- [Apache Doris Docs: Superset 
Integration](https://doris.apache.org/docs/ecosystem/bi/apache-superset/)
+:::
+
 #### AWS Athena
 
 ##### PyAthenaJDBC
@@ -360,6 +365,13 @@ uses the default user without a password (and doesn't 
encrypt the connection):
 clickhousedb://localhost/default
 ```
 
+:::resources
+- [ClickHouse Docs: Superset 
Integration](https://clickhouse.com/docs/integrations/superset)
+- [Altinity: Connect ClickHouse to 
Superset](https://docs.altinity.com/integrations/clickhouse-and-superset/connect-clickhouse-to-superset/)
+- [Instaclustr: Connecting to ClickHouse from 
Superset](https://www.instaclustr.com/support/documentation/clickhouse/using-a-clickhouse-cluster/connecting-to-clickhouse-from-apache-superset/)
+- [Blog: ClickHouse and Apache 
Superset](https://preset.io/blog/2021-5-26-clickhouse-superset/)
+:::
+
 #### Cloudflare D1
 
 To use Cloudflare D1 with superset, install the 
[superset-engine-d1](https://github.com/sqlalchemy-cf-d1/superset-engine-d1) 
library.
@@ -432,6 +444,11 @@ Docker Compose.
 echo "sqlalchemy-cratedb" >> ./docker/requirements-local.txt
 ```
 
+:::resources
+- [CrateDB Docs: Apache Superset 
Integration](https://cratedb.com/docs/guide/integrate/apache-superset/index.html)
+- [Blog: Visualizing Time-Series Data with CrateDB and 
Superset](https://preset.io/blog/timeseries-cratedb-superset/)
+:::
+
 [CrateDB Cloud]: https://cratedb.com/product/cloud
 [CrateDB Self-Managed]: https://cratedb.com/product/self-managed
 [sqlalchemy-cratedb]: https://pypi.org/project/sqlalchemy-cratedb/
@@ -564,8 +581,10 @@ The expected connection string for Arrow Flight (Dremio 
4.9.1+. Default port is
 dremio+flight://{username}:{password}@{host}:{port}/dremio
 ```
 
-This [blog post by 
Dremio](https://www.dremio.com/tutorials/dremio-apache-superset/) has some
-additional helpful instructions on connecting Superset to Dremio.
+:::resources
+- [Dremio Docs: Superset 
Integration](https://docs.dremio.com/current/client-applications/superset/)
+- [Blog: Connecting Dremio to Apache 
Superset](https://www.dremio.com/tutorials/dremio-apache-superset/)
+:::
 
 #### Apache Drill
 
@@ -608,6 +627,10 @@ We recommend reading the
 the [GitHub 
README](https://github.com/JohnOmernik/sqlalchemy-drill#usage-with-odbc) to 
learn how to
 work with Drill through ODBC.
 
+:::resources
+- [Tutorial: Query MongoDB in Superset with Apache 
Drill](https://medium.com/@thoren.lederer/query-data-from-mongodb-in-apache-superset-with-the-help-of-apache-drill-full-tutorial-b34c33eac6c1)
+:::
+
 import useBaseUrl from "@docusaurus/useBaseUrl";
 
 #### Apache Druid
@@ -674,6 +697,10 @@ much like you would create an aggregation manually, but 
specify `postagg` as a `
 then have to provide a valid json post-aggregation definition (as specified in 
the Druid docs) in
 the JSON field.
 
+:::resources
+- [Blog: Real-Time Business Insights with Apache Druid and 
Superset](https://www.deep.bi/blog/real-time-business-insights-with-apache-druid-and-apache-superset)
+:::
+
 #### Elasticsearch
 
 The recommended connector library for Elasticsearch is
@@ -744,6 +771,10 @@ To disable SSL verification, add the following to the 
**SQLALCHEMY URI** field:
 elasticsearch+https://{user}:{password}@{host}:9200/?verify_certs=False
 ```
 
+:::resources
+- [Blog: Superset Announces Elasticsearch 
Support](https://preset.io/blog/2019-12-16-elasticsearch-in-superset/)
+:::
+
 #### Exasol
 
 The recommended connector library for Exasol is
@@ -792,6 +823,10 @@ or
 
firebolt://{client_id}:{client_secret}@{database}/{engine_name}?account_name={name}
 ```
 
+:::resources
+- [Firebolt Docs: Connecting to Apache 
Superset](https://docs.firebolt.io/guides/integrations/connecting-to-apache-superset)
+:::
+
 #### Google BigQuery
 
 The recommended connector library for BigQuery is
@@ -878,15 +913,21 @@ To be able to upload CSV or Excel files to BigQuery in 
Superset, you'll need to
 Currently, the Google BigQuery Python SDK is not compatible with `gevent`, due 
to some dynamic monkeypatching on python core library by `gevent`.
 So, when you deploy Superset with `gunicorn` server, you have to use worker 
type except `gevent`.
 
+:::resources
+- [Tutorial: Build A StackOverflow Dashboard — Connecting Superset to 
BigQuery](https://preset.io/blog/2020-08-04-google-bigquery/)
+:::
+
 #### Google Sheets
 
 Google Sheets has a very limited
 [SQL API](https://developers.google.com/chart/interactive/docs/querylanguage). 
The recommended
 connector library for Google Sheets is 
[shillelagh](https://github.com/betodealmeida/shillelagh).
 
-There are a few steps involved in connecting Superset to Google Sheets. This
-[tutorial](https://preset.io/blog/2020-06-01-connect-superset-google-sheets/) 
has the most up to date
-instructions on setting up this connection.
+There are a few steps involved in connecting Superset to Google Sheets.
+
+:::resources
+- [Tutorial: Connect Superset to Google 
Sheets](https://preset.io/blog/2020-06-01-connect-superset-google-sheets/)
+:::
 
 #### Hana
 
@@ -908,6 +949,10 @@ The expected connection string is formatted as follows:
 hive://hive@{hostname}:{port}/{database}
 ```
 
+:::resources
+- [Cloudera: Connect Apache Hive to 
Superset](https://docs-archive.cloudera.com/HDPDocuments/HDP3/HDP-3.0.0/integrating-hive/content/hive_connect_hive_to_apache_superset.html)
+:::
+
 #### Hologres
 
 Hologres is a real-time interactive analytics service developed by Alibaba 
Cloud. It is fully compatible with PostgreSQL 11 and integrates seamlessly with 
the big data ecosystem.
@@ -1059,6 +1104,10 @@ The connection string is formatted as follows:
 oracle://<username>:<password>@<hostname>:<port>
 ```
 
+:::resources
+- [Oracle Developers: Steps to use Apache Superset and Oracle 
Database](https://medium.com/oracledevs/steps-to-use-apache-superset-and-oracle-database-ae0858b4f134)
+:::
+
 #### Parseable
 
 [Parseable](https://www.parseable.io) is a distributed log analytics database 
that provides SQL-like query interface for log data. The recommended connector 
library is 
[sqlalchemy-parseable](https://github.com/parseablehq/sqlalchemy-parseable).
@@ -1077,7 +1126,10 @@ 
parseable://admin:[email protected]:443/ingress-nginx
 
 Note: The stream_name in the URI represents the Parseable logstream you want 
to query. You can use both HTTP (port 80) and HTTPS (port 443) connections.
 
->>>>>>>
+:::resources
+- [Blog: Parseable with Apache 
Superset](https://www.parseable.com/blog/parseable-with-apache-superset)
+:::
+
 #### Apache Pinot
 
 The recommended connector library for Apache Pinot is 
[pinotdb](https://pypi.org/project/pinotdb/).
@@ -1101,6 +1153,11 @@ Add below argument while creating database connection in 
Advanced -> Other -> EN
 {"connect_args":{"use_multistage_engine":"true"}}
 ```
 
+:::resources
+- [Apache Pinot Docs: Superset 
Integration](https://docs.pinot.apache.org/integrations/superset)
+- [StarTree: Data Visualization with Apache Superset and 
Pinot](https://startree.ai/resources/data-visualization-with-apache-superset-and-pinot)
+:::
+
 #### Postgres
 
 Note that, if you're using docker compose, the Postgres connector library 
[psycopg2](https://www.psycopg.org/docs/)
@@ -1137,6 +1194,28 @@ More information about PostgreSQL connection options can 
be found in the
 and the
 [PostgreSQL 
docs](https://www.postgresql.org/docs/9.1/libpq-connect.html#LIBPQ-PQCONNECTDBPARAMS).
 
+:::resources
+- [Blog: Data Visualization in PostgreSQL With Apache 
Superset](https://www.tigerdata.com/blog/data-visualization-in-postgresql-with-apache-superset)
+:::
+
+#### QuestDB
+
+[QuestDB](https://questdb.io/) is a high-performance, open-source time-series 
database with SQL support.
+The recommended connector library is the PostgreSQL driver 
[psycopg2](https://www.psycopg.org/docs/),
+as QuestDB supports the PostgreSQL wire protocol.
+
+The connection string is formatted as follows:
+
+```
+postgresql+psycopg2://{username}:{password}@{hostname}:{port}/{database}
+```
+
+The default port for QuestDB's PostgreSQL interface is `8812`.
+
+:::resources
+- [QuestDB Docs: Apache Superset 
Integration](https://questdb.com/docs/third-party-tools/superset/)
+:::
+
 #### Presto
 
 The [pyhive](https://pypi.org/project/PyHive/) library is the recommended way 
to connect to Presto through SQLAlchemy.
@@ -1179,6 +1258,10 @@ SSL Secure extra add json config to extra connection 
information.
 }
 ```
 
+:::resources
+- [Tutorial: Presto SQL + S3 Data + Superset Data 
Lake](https://hackernoon.com/presto-sql-s3-data-superset-data-lake)
+:::
+
 #### RisingWave
 
 The recommended connector library for RisingWave is
@@ -1252,6 +1335,10 @@ If your private key is stored on server, you can replace 
"privatekey_body" with
 }
 ```
 
+:::resources
+- [Snowflake Builders Blog: Building Real-Time Operational Dashboards with 
Apache Superset and 
Snowflake](https://medium.com/snowflake/building-real-time-operational-dashboards-with-apache-superset-and-snowflake-23f625e07d7c)
+:::
+
 #### Apache Solr
 
 The [sqlalchemy-solr](https://pypi.org/project/sqlalchemy-solr/) library 
provides a
@@ -1273,6 +1360,10 @@ The expected connection string is formatted as follows:
 hive://hive@{hostname}:{port}/{database}
 ```
 
+:::resources
+- [Tutorial: How to Connect Apache Superset with Apache 
SparkSQL](https://medium.com/free-or-open-source-software/how-to-connect-apache-superset-with-apache-sparksql-50efe48ac0e4)
+:::
+
 #### Arc
 
 There are two ways to connect Superset to Arc:
@@ -1356,8 +1447,8 @@ Here's what the connection string looks like:
 starrocks://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
 ```
 
-:::note
-StarRocks maintains their Superset docuementation 
[here](https://docs.starrocks.io/docs/integrations/BI_integrations/Superset/).
+:::resources
+- [StarRocks Docs: Superset 
Integration](https://docs.starrocks.io/docs/integrations/BI_integrations/Superset/)
 :::
 
 #### TDengine
@@ -1441,6 +1532,11 @@ 
postgresql://{username}:{password}@{host}:{port}/{database name}?sslmode=require
 
 [Learn more about TimescaleDB!](https://docs.timescale.com/)
 
+:::resources
+- [Timescale DevRel: Visualize time series data with TimescaleDB and Apache 
Superset](https://attilatoth.dev/speaking/timescaledb-superset/)
+- [Tutorial: PostgreSQL with TimescaleDB — Visualizing Real-Time Data with 
Superset](https://www.slingacademy.com/article/postgresql-with-timescaledb-visualizing-real-time-data-with-superset/)
+:::
+
 #### Trino
 
 Supported trino version 352 and higher
@@ -1566,9 +1662,11 @@ or factory function (which returns an `Authentication` 
instance) to `auth_method
 
 All fields in `auth_params` are passed directly to your class/function.
 
-**Reference**:
-
-- [Trino-Superset-Podcast](https://trino.io/episodes/12.html)
+:::resources
+- [Starburst Docs: Superset 
Integration](https://docs.starburst.io/clients/superset.html)
+- [Podcast: Trino and Superset](https://trino.io/episodes/12.html)
+- [Blog: Trino and Apache 
Superset](https://preset.io/blog/2021-6-22-trino-superset/)
+:::
 
 #### Vertica
 
@@ -1680,6 +1778,10 @@ The connection string looks like:
 postgresql://{username}:{password}@{host}:{port}/{database}
 ```
 
+:::resources
+- [Blog: Introduction to YugabyteDB and Apache 
Superset](https://preset.io/blog/introduction-yugabytedb-apache-superset/)
+:::
+
 ## Connecting through the UI
 
 Here is the documentation on how to leverage the new DB Connection UI. This 
will provide admins the ability to enhance the UX for users who want to connect 
to new databases.
diff --git a/docs/docs/configuration/sql-templating.mdx 
b/docs/docs/configuration/sql-templating.mdx
index 43bd5783e7..b6337e0687 100644
--- a/docs/docs/configuration/sql-templating.mdx
+++ b/docs/docs/configuration/sql-templating.mdx
@@ -590,3 +590,7 @@ Loads a string as a `datetime` object. This is useful when 
performing date opera
    do something else
 {% endif %}
 ```
+
+:::resources
+- [Blog: Intro to Jinja Templating in Apache 
Superset](https://preset.io/blog/intro-jinja-templating-apache-superset/)
+:::
diff --git a/docs/docs/configuration/theming.mdx 
b/docs/docs/configuration/theming.mdx
index 86243742cc..8f88ec8fda 100644
--- a/docs/docs/configuration/theming.mdx
+++ b/docs/docs/configuration/theming.mdx
@@ -395,3 +395,11 @@ For programmatic theme management, Superset provides REST 
endpoints:
 - `POST /api/v1/theme/import/` - Import themes from YAML
 
 These endpoints require appropriate permissions and are subject to RBAC 
controls.
+
+:::resources
+- [Video: Live Demo — Theming Apache 
Superset](https://www.youtube.com/watch?v=XsZAsO9tC3o)
+- [CSS and Theming](https://docs.preset.io/docs/css-and-theming) - Additional 
theming techniques and CSS customization
+- [Blog: Customizing Apache Superset Dashboards with 
CSS](https://preset.io/blog/customizing-superset-dashboards-with-css/)
+- [Blog: Customizing Dashboards with CSS — Tips and 
Tricks](https://preset.io/blog/customizing-apache-superset-dashboards-with-css-additional-tips-and-tricks/)
+- [Blog: Customizing Chart 
Colors](https://preset.io/blog/customizing-chart-colors-with-superset-and-preset/)
+:::
diff --git a/docs/docs/contributing/contributing.mdx 
b/docs/docs/contributing/contributing.mdx
index 109a3692df..d3aec8e3d1 100644
--- a/docs/docs/contributing/contributing.mdx
+++ b/docs/docs/contributing/contributing.mdx
@@ -136,3 +136,7 @@ Security team members should also follow these general 
expectations:
 - Actively participate in assessing, discussing, fixing, and releasing 
security issues in Superset.
 - Avoid discussing security fixes in public forums. Pull request (PR) 
descriptions should not contain any information about security issues. The 
corresponding JIRA ticket should contain a link to the PR.
 - Security team members who contribute to a fix may be listed as remediation 
developers in the CVE report, along with their job affiliation (if they choose 
to include it).
+
+:::resources
+- [Blog: Comprehensive Tutorial for Contributing Code to Apache 
Superset](https://preset.io/blog/tutorial-contributing-code-to-apache-superset/)
+:::
diff --git a/docs/docs/contributing/development.mdx 
b/docs/docs/contributing/development.mdx
index c43e703152..6c2a6ca935 100644
--- a/docs/docs/contributing/development.mdx
+++ b/docs/docs/contributing/development.mdx
@@ -972,7 +972,12 @@ The `test-storybook` job runs automatically in CI on every 
pull request, ensurin
 
 The topic of authoring new plugins, whether you'd like to contribute
 it back or not has been well documented in the
-[the 
documentation](https://superset.apache.org/docs/contributing/creating-viz-plugins),
 and in [this blog 
post](https://preset.io/blog/building-custom-viz-plugins-in-superset-v2).
+[documentation](https://superset.apache.org/docs/contributing/creating-viz-plugins).
+
+:::resources
+- [Blog: Building Custom Viz Plugins in Superset 
v2](https://preset.io/blog/building-custom-viz-plugins-in-superset-v2)
+- [Blog: Enhancing Superset Visualization 
Plugins](https://preset.io/blog/enhancing-superset-visualization-plugins-part-1/)
+:::
 
 To contribute a plugin to Superset, your plugin must meet the following 
criteria:
 
diff --git a/docs/docs/installation/kubernetes.mdx 
b/docs/docs/installation/kubernetes.mdx
index 9f515a6301..06e5991b59 100644
--- a/docs/docs/installation/kubernetes.mdx
+++ b/docs/docs/installation/kubernetes.mdx
@@ -444,3 +444,8 @@ To load the examples, add the following to the 
`my_values.yaml` file:
 init:
   loadExamples: true
 ```
+
+:::resources
+- [Tutorial: Mastering Data Visualization — Installing Superset on Kubernetes 
with Helm 
Chart](https://mahira-technology.medium.com/mastering-data-visualization-installing-superset-on-kubernetes-cluster-using-helm-chart-e4ec99199e1e)
+- [Tutorial: Installing Apache Superset in 
Kubernetes](https://aws.plainenglish.io/installing-apache-superset-in-kubernetes-1aec192ac495)
+:::
diff --git a/docs/docs/quickstart.mdx b/docs/docs/quickstart.mdx
index 6e339b6860..aaeac91a55 100644
--- a/docs/docs/quickstart.mdx
+++ b/docs/docs/quickstart.mdx
@@ -83,6 +83,7 @@ Or just explore our 
[Documentation](https://superset.apache.org/docs/intro)!
 
 :::resources
 - [Video: Superset in 2 Minutes](https://www.youtube.com/watch?v=AqousXQ7YHw)
+- [Video: Superset 101](https://www.youtube.com/watch?v=mAIH3hUoxEE)
 - [Blog: Getting Started with Apache 
Superset](https://preset.io/blog/apache-superset-quick-start/)
 - [Tutorial: Creating Your First 
Dashboard](/docs/using-superset/creating-your-first-dashboard)
 :::
diff --git a/docs/docs/security/securing_superset.mdx 
b/docs/docs/security/securing_superset.mdx
index f98f86c5fe..a0d5f7b591 100644
--- a/docs/docs/security/securing_superset.mdx
+++ b/docs/docs/security/securing_superset.mdx
@@ -172,3 +172,8 @@ Rotating the `SUPERSET_SECRET_KEY` is a critical security 
procedure. It is manda
 **Procedure for Rotating the Key**
 The procedure for safely rotating the SECRET_KEY must be followed precisely to 
avoid locking yourself out of your instance. The official Apache Superset 
documentation maintains the correct, up-to-date procedure. Please follow the 
official guide here:
 
https://superset.apache.org/docs/configuration/configuring-superset/#rotating-to-a-newer-secret_key
+
+:::resources
+- [Blog: Running Apache Superset on the Open 
Internet](https://preset.io/blog/running-apache-superset-on-the-open-internet-a-report-from-the-fireline/)
+- [Blog: How Security Vulnerabilities are Reported & Handled in Apache 
Superset](https://preset.io/blog/how-security-vulnerabilities-are-reported-and-handled-in-apache-superset/)
+:::
diff --git a/docs/docs/using-superset/creating-your-first-dashboard.mdx 
b/docs/docs/using-superset/creating-your-first-dashboard.mdx
index a976e4b60d..0b542bc55d 100644
--- a/docs/docs/using-superset/creating-your-first-dashboard.mdx
+++ b/docs/docs/using-superset/creating-your-first-dashboard.mdx
@@ -114,6 +114,12 @@ Aggregate functions aren't allowed in calculated columns.
 
 <img src={useBaseUrl("/img/tutorial/tutorial_calculated_column.png" )} />
 
+:::resources
+- [Using Metrics and Calculated 
Columns](https://docs.preset.io/docs/using-metrics-and-calculated-columns) - 
In-depth guide to the semantic layer
+- [Blog: Understanding the Superset Semantic 
Layer](https://preset.io/blog/understanding-superset-semantic-layer/)
+- [Blog: Unlocking the Power of Virtual 
Datasets](https://preset.io/blog/unlocking-the-power-of-virtual-datasets-in-apache-superset/)
+:::
+
 ### Creating charts in Explore view
 
 Superset has 2 main interfaces for exploring data:
@@ -229,3 +235,8 @@ The following URL parameters can be used to modify how the 
dashboard is rendered
 For example, when running the local development build, the following will 
disable the
 Top Nav and remove the Filter Bar:
 
`http://localhost:8088/superset/dashboard/my-dashboard/?standalone=1&show_filters=0`
+
+:::resources
+- [Dashboard 
Customization](https://docs.preset.io/docs/dashboard-customization) - Advanced 
dashboard styling and layout options
+- [Blog: BI Dashboard Best 
Practices](https://preset.io/blog/bi-dashboard-best-practices/)
+:::
diff --git a/docs/docs/using-superset/exploring-data.mdx 
b/docs/docs/using-superset/exploring-data.mdx
index d3e263c462..6a62f448e1 100644
--- a/docs/docs/using-superset/exploring-data.mdx
+++ b/docs/docs/using-superset/exploring-data.mdx
@@ -326,3 +326,12 @@ various options in this section, refer to the
 
 Lastly, save your chart as Tutorial Resample and add it to the Tutorial 
Dashboard. Go to the
 tutorial dashboard to see the four charts side by side and compare the 
different outputs.
+
+:::resources
+- [Chart Walkthroughs](https://docs.preset.io/docs/chart-walkthroughs) - 
Detailed guides for most chart types
+- [Blog: Why Apache ECharts is the Future of Apache 
Superset](https://preset.io/blog/2021-4-1-why-echarts/)
+- [Blog: ECharts Time-Series Visualizations in 
Superset](https://preset.io/blog/echarts-time-series-visualizations-in-superset/)
+- [Blog: Finding New Insights with Drill By](https://preset.io/blog/drill-by/)
+- [Blog: From Drill Down to Drill 
By](https://preset.io/blog/drill-down-and-drill-by/)
+- [Blog: Cross-Filtering in Apache 
Superset](https://preset.io/blog/cross-filtering-in-Superset-and-Preset/)
+:::
diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts
index f5590de7d1..cfb4121457 100644
--- a/docs/docusaurus.config.ts
+++ b/docs/docusaurus.config.ts
@@ -46,6 +46,10 @@ if (!versionsConfig.components.disabled) {
       editUrl:
         'https://github.com/apache/superset/edit/master/docs/components',
       remarkPlugins: [remarkImportPartial, remarkLocalizeBadges],
+      admonitions: {
+        keywords: ['note', 'tip', 'info', 'warning', 'danger', 'resources'],
+        extendDefaults: true,
+      },
       docItemComponent: '@theme/DocItem',
       includeCurrentVersion: versionsConfig.components.includeCurrentVersion,
       lastVersion: versionsConfig.components.lastVersion,
@@ -70,6 +74,10 @@ if (!versionsConfig.developer_portal.disabled) {
       editUrl:
         'https://github.com/apache/superset/edit/master/docs/developer_portal',
       remarkPlugins: [remarkImportPartial, remarkLocalizeBadges],
+      admonitions: {
+        keywords: ['note', 'tip', 'info', 'warning', 'danger', 'resources'],
+        extendDefaults: true,
+      },
       docItemComponent: '@theme/DocItem',
       includeCurrentVersion: 
versionsConfig.developer_portal.includeCurrentVersion,
       lastVersion: versionsConfig.developer_portal.lastVersion,
@@ -343,6 +351,10 @@ const config: Config = {
             return 
`https://github.com/apache/superset/edit/master/docs/${versionDocsDirPath}/${docPath}`;
           },
           remarkPlugins: [remarkImportPartial, remarkLocalizeBadges],
+          admonitions: {
+            keywords: ['note', 'tip', 'info', 'warning', 'danger', 
'resources'],
+            extendDefaults: true,
+          },
           includeCurrentVersion: versionsConfig.docs.includeCurrentVersion,
           lastVersion: versionsConfig.docs.lastVersion,  // Make 'next' the 
default
           onlyIncludeVersions: versionsConfig.docs.onlyIncludeVersions,
diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css
index 17f89d016f..dbc825d668 100644
--- a/docs/src/styles/custom.css
+++ b/docs/src/styles/custom.css
@@ -137,9 +137,9 @@ ul.dropdown__menu svg {
 
 /* Custom "resources" admonition for additional resources/links */
 .alert--resources {
-  --ifm-alert-background-color: #f3e8ff;
-  --ifm-alert-border-color: #a855f7;
-  --ifm-alert-foreground-color: #6b21a8;
+  --ifm-alert-background-color: #f8f9fa;
+  --ifm-alert-border-color: #6c757d;
+  --ifm-alert-foreground-color: #495057;
   background-color: var(--ifm-alert-background-color);
   border-left: 5px solid var(--ifm-alert-border-color);
 }
@@ -155,14 +155,14 @@ ul.dropdown__menu svg {
 
 /* Resources admonition - dark mode */
 [data-theme='dark'] .alert--resources {
-  --ifm-alert-background-color: #3b0764;
-  --ifm-alert-border-color: #a855f7;
-  --ifm-alert-foreground-color: #e9d5ff;
+  --ifm-alert-background-color: #2d3748;
+  --ifm-alert-border-color: #718096;
+  --ifm-alert-foreground-color: #e2e8f0;
 }
 
 /* Style links within resources admonition */
 .alert--resources a {
-  color: #7c3aed;
+  color: var(--ifm-link-color);
   text-decoration: none;
 }
 
@@ -171,5 +171,5 @@ ul.dropdown__menu svg {
 }
 
 [data-theme='dark'] .alert--resources a {
-  color: #c4b5fd;
+  color: var(--ifm-color-primary-light);
 }

Reply via email to