From 51f4b076503bf43e458b7fc0932f701961521cfa Mon Sep 17 00:00:00 2001 From: Adam Cowley Date: Wed, 12 Jun 2024 13:33:00 +0300 Subject: [PATCH] add promo blocks (#234) --- .vscode/settings.json | 1 + preview-src/promos-ad-include.adoc | 6 ++++ preview-src/promos-include.adoc | 4 +++ preview-src/promos.adoc | 52 ++++++++++++++++++++++++++++++ preview-src/ui-model.yml | 15 +++++---- src/css/promo.css | 37 +++++++++++++++++++++ src/css/site.css | 1 + src/css/toc-ad.css | 52 +++++++++++++----------------- src/css/toc.css | 1 + src/css/vars-dark.css | 4 +-- src/img/ad-blob.svg | 3 ++ src/img/icons/mortarboard.svg | 3 ++ src/img/promo-blob.svg | 3 ++ src/partials/toc-ad.hbs | 4 +++ 14 files changed, 149 insertions(+), 37 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 preview-src/promos-ad-include.adoc create mode 100644 preview-src/promos-include.adoc create mode 100644 preview-src/promos.adoc create mode 100644 src/css/promo.css create mode 100644 src/img/ad-blob.svg create mode 100644 src/img/icons/mortarboard.svg create mode 100644 src/img/promo-blob.svg diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/preview-src/promos-ad-include.adoc b/preview-src/promos-ad-include.adoc new file mode 100644 index 00000000..1cfa6c79 --- /dev/null +++ b/preview-src/promos-ad-include.adoc @@ -0,0 +1,6 @@ +:page-ad-icon: mortarboard +:page-ad-title: Building Neo4j Applications with .NET +:page-ad-description: Learn how to build a movie recommendation website using the Neo4j NET Driver. +:page-ad-link: https://graphacademy.neo4j.com/courses/app-dotnet/?ref=docs-ad-dotnet +:page-ad-underline-role: button +:page-ad-underline: Enroll for free \ No newline at end of file diff --git a/preview-src/promos-include.adoc b/preview-src/promos-include.adoc new file mode 100644 index 00000000..89e93e86 --- /dev/null +++ b/preview-src/promos-include.adoc @@ -0,0 +1,4 @@ +[.promo.promo-graphacademy] +==== +Take our free, self-paced courses to learn link:https://graphacademy.neo4j.com/courses/app-typescript/?ref=docs-promo-typescript[how to build type-safe Neo4j applications with TypeScript^] or link:https://graphacademy.neo4j.com/courses/app-nodejs/?ref=docs-promo-typescript[how to build a Neo4j-backed movie recommendation site with Node.js^]. +==== diff --git a/preview-src/promos.adoc b/preview-src/promos.adoc new file mode 100644 index 00000000..b58e650d --- /dev/null +++ b/preview-src/promos.adoc @@ -0,0 +1,52 @@ += Promo Blocks +:author: Neo4j +:category: development +:tags: community, contributions, share +include::preview-src/promos-ad-include.adoc[] + + +For an example ad block in the sidebar, look to the right. +The attributes are set by the `include::` on line 5. + +== Some non-graphacademy promo + +[.promo] +==== +This is something worthy to promote but it doesn't have an icon or anything. +==== + +== One Liner + +[.promo.promo-graphacademy] +==== +New to Neo4j? Take our free introductory +link:#[Neo4j Fundamentals course^]. +==== + +[.promo.promo-graphacademy] +==== +Learn everything about Graph Algorithms and Machine Learning Pipelines with our +link:#[Graph Data Science Fundamentals course^]. +==== + +== Learning Path + +[.promo.promo-graphacademy] +==== +You can learn about this topic and so much more in our link:#[Data Reporting Learning Path^]: + +* link:#[Foo Fundamentals^]. +* link:#[Introduction to Bar^]. +* link:#[Baz for Data Scientists^]. +==== + +== Python Example + +[.promo.promo-graphacademy] +==== +Learn how to use the Neo4j Python Driver to build a Neo4j-backed movie recommendation website in the link:https://graphacademy.neo4j.com/courses/app-python/?ref=docs-promo[free Building Neo4j Applications with Python^] course on link:https://graphacademy.neo4j.com/?ref=docs-promo[Neo4j GraphAcademy^]. +==== + +== Include Example + +include::preview-src/promos-include.adoc[] diff --git a/preview-src/ui-model.yml b/preview-src/ui-model.yml index cbd864d8..ef2af3ac 100644 --- a/preview-src/ui-model.yml +++ b/preview-src/ui-model.yml @@ -177,12 +177,12 @@ page: - content: Training enrollement [disabled] url: training-enrollment-disabled.html urlType: internal - - content: Certification - url: neo4j-gds-certify.html - urlType: internal - - content: Course Yelp - url: applied-graph-algo-course-yelp.html - urlType: internal + # - content: Certification + # url: neo4j-gds-certify.html + # urlType: internal + # - content: Course Yelp + # url: applied-graph-algo-course-yelp.html + # urlType: internal - content: Tables url: tables.html urlType: internal @@ -264,6 +264,9 @@ page: - content: Contribute url: contribute.html urlType: internal + - content: Promos + url: promos.html + urlType: internal # additional page attributes indexed by page-slug pages-data: cheatsheet-products: &cheatsheet-products diff --git a/src/css/promo.css b/src/css/promo.css new file mode 100644 index 00000000..35e40ee5 --- /dev/null +++ b/src/css/promo.css @@ -0,0 +1,37 @@ +div.promo.promo-graphacademy .content { + background-image: url(../img/icons/mortarboard.svg); + background-repeat: no-repeat; + background-position: 0 4px; + padding-left: 48px !important; +} + +div.promo { + background-image: url(../img/promo-blob.svg); + background-repeat: no-repeat; + background-position: bottom right; + padding: 24px; + border: 1px solid #e2e3e5; + border-radius: 16px; +} + +div.promo .content { + padding: 0 !important; + border: 0 none !important; +} + +div.promo .content .paragraph, +div.promo .content .ulist { + margin-bottom: 0; +} + +div.promo .content .ulist ul { + padding-left: 12px; +} + +div.promo .content .ulist li { + margin-bottom: 0; +} + +div.promo a { + font-weight: 400; +} diff --git a/src/css/site.css b/src/css/site.css index 007eab57..80b06336 100644 --- a/src/css/site.css +++ b/src/css/site.css @@ -43,3 +43,4 @@ @import "neo4j-docs.css"; @import "newsletter.css"; @import "challenges.css"; +@import "promo.css"; diff --git a/src/css/toc-ad.css b/src/css/toc-ad.css index 5ad70195..9fd12445 100644 --- a/src/css/toc-ad.css +++ b/src/css/toc-ad.css @@ -1,58 +1,53 @@ .toc .toc-ad { - border: 1px solid rgba(var(--colors-neutral-30)); - padding: 1rem 0.5rem; - border-radius: 0.5rem; + border: 1px solid #e2e3e5; + padding: 24px 16px 48px; + border-radius: 12px; margin: 2rem -0.5rem 0; + background: #fff url(../img/ad-blob.svg) no-repeat bottom right; + background-size: cover; } .toc .toc-ad a { padding: 0 !important; border-left: 0 none !important; + color: #1a1b1d; } .toc .toc-ad a:active { background-color: var(--color-white) !important; } -.toc .toc-ad .toc-ad-overline { - font-size: 0.7rem; - color: rgba(var(--colors-neutral-60)); - text-transform: uppercase; - background-color: var(--color-white); +.toc .toc-ad .toc-ad-icon { + display: block; + content: ""; + width: 24px; + height: 24px; + background-repeat: no-repeat; + background-position: center; + background-position: cover; + margin-bottom: 12px; + /* toc-ad-icon */ } -.toc .toc-ad .toc-ad-overline a { - padding-left: 0 !important; - border-left: 0 none !important; - color: rgba(var(--colors-neutral-60)); -} - -.toc .toc-ad .toc-ad-image { - width: 80%; - margin: 0.2rem auto; -} - -.toc .toc-ad .toc-ad-overline a:hover { - color: rgba(var(--colors-neutral-80)); +.toc .toc-ad .toc-ad-icon.toc-ad-icon--mortarboard { + background-image: url(../img/icons/mortarboard.svg); } .toc .toc-ad .toc-ad-title { - color: rgba(var(--colors-baltic-50)); - font-size: 1rem; - margin: 0.2rem 0 !important; + color: rgba(var(--colors-neutral-75)); + font-size: 18px; + margin: 12px 0 !important; padding: 0 !important; } .toc .toc-ad-description { - color: rgba(var(--colors-neutral-50)); - font-size: 0.8rem; + color: rgba(var(--colors-neutral-75)); margin-top: 0; } .toc .toc-ad-underline { color: rgba(var(--colors-baltic-50)); font-weight: bold; - font-size: 0.8rem; } .toc .toc-ad-underline-button, @@ -61,9 +56,8 @@ background-color: rgba(var(--colors-baltic-50)); color: var(--color-white); display: inline-block; - font-size: 0.8rem; font-weight: bold; - padding: 0.5rem 1rem; + padding: 8px 24px; } .doc .ad { diff --git a/src/css/toc.css b/src/css/toc.css index d8ff76e0..ad21210e 100644 --- a/src/css/toc.css +++ b/src/css/toc.css @@ -1,6 +1,7 @@ .toc-menu { color: var(--toc-font-color); margin-bottom: 2rem; + width: 220px !important; } .toc.sidebar { diff --git a/src/css/vars-dark.css b/src/css/vars-dark.css index 0761084e..45b5d38d 100644 --- a/src/css/vars-dark.css +++ b/src/css/vars-dark.css @@ -382,9 +382,9 @@ --toc-top: calc(var(--body-top) + var(--toolbar-height)); --kb-metadata-top: calc(var(--body-top) + var(--toolbar-height)); --toc-height: calc(100vh - var(--toc-top) - 8.5rem); - --toc-width: calc(162 / var(--rem-base) * 1rem); + --toc-width: 274px; --kb-metadata-width: calc(216 / var(--rem-base) * 1rem); - --toc-width--widescreen: calc(216 / var(--rem-base) * 1rem); + --toc-width--widescreen: 274px; --kb-metadata-width--widescreen: calc(244 / var(--rem-base) * 1rem); --toolbar-wrapper-width: 69rem; --doc-max-width: calc(720 / var(--rem-base) * 1rem); diff --git a/src/img/ad-blob.svg b/src/img/ad-blob.svg new file mode 100644 index 00000000..af6f5eb2 --- /dev/null +++ b/src/img/ad-blob.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/img/icons/mortarboard.svg b/src/img/icons/mortarboard.svg new file mode 100644 index 00000000..1b163936 --- /dev/null +++ b/src/img/icons/mortarboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/img/promo-blob.svg b/src/img/promo-blob.svg new file mode 100644 index 00000000..096dab81 --- /dev/null +++ b/src/img/promo-blob.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/partials/toc-ad.hbs b/src/partials/toc-ad.hbs index e7cb2c6b..c4ba1241 100644 --- a/src/partials/toc-ad.hbs +++ b/src/partials/toc-ad.hbs @@ -15,6 +15,10 @@ {{/if}} + {{#with page.attributes.ad-icon}} + + {{/with}} + {{#with page.attributes.ad-image}} {{{ page.attributes.ad-title }}} {{/with}}