From e0dc38d366ab2d18a6a5386e02faf25890653c39 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 31 Mar 2025 15:01:28 +0100 Subject: [PATCH 01/83] initial noodlings --- preview-src/admonitions.adoc | 298 ------ preview-src/ads.adoc | 187 ---- preview-src/algorithms.adoc | 22 - preview-src/alpha.adoc | 14 - .../applied-graph-algo-course-yelp.adoc | 34 - preview-src/banner-note.adoc | 20 - preview-src/banner-warning.adoc | 20 - preview-src/beta.adoc | 14 - preview-src/bibliography.adoc | 12 - preview-src/challenge.adoc | 38 - preview-src/cheat-sheet.adoc | 495 --------- preview-src/code.adoc | 212 ---- preview-src/contribute.adoc | 124 --- preview-src/deprecated.adoc | 39 - preview-src/developer.adoc | 231 ----- preview-src/docs-explainer.adoc | 174 ---- preview-src/docs-hub.adoc | 104 -- preview-src/docs-ndl.adoc | 231 ----- preview-src/docs-roles.adoc | 349 ------- preview-src/driver.adoc | 172 ---- preview-src/drivers-apis.adoc | 122 --- preview-src/drivers-tabs.adoc | 558 ----------- preview-src/edit-run-cypher.adoc | 66 -- preview-src/example.adoc | 154 --- preview-src/feedback-disabled.adoc | 5 - preview-src/first-steps-with-cypher.adoc | 76 -- preview-src/fundamentals.adoc | 13 + .../graph-gist-category-pop-culture.adoc | 8 - preview-src/graph-gist-index.adoc | 6 - .../graph-gist-star-wars-social-network.adoc | 938 ------------------ preview-src/image-borders.adoc | 75 -- preview-src/index.adoc | 756 -------------- preview-src/kb-article.adoc | 84 -- preview-src/kb-index.adoc | 6 - preview-src/labels.adoc | 223 ----- preview-src/labs.adoc | 101 -- preview-src/links.adoc | 39 - preview-src/lists.adoc | 13 - preview-src/neo4j-gds-certify.adoc | 65 -- preview-src/private-page.adoc | 3 - preview-src/promos-ad-include.adoc | 6 - preview-src/promos-include.adoc | 4 - preview-src/promos.adoc | 52 - preview-src/security-docs.adoc | 143 --- preview-src/sidebar-headings-ad.adoc | 14 - preview-src/sidebar-headings-no-ad.adoc | 8 - preview-src/sidebar-no-headings-ad.adoc | 11 - preview-src/sidebar-no-headings-no-ad.adoc | 5 - preview-src/tables-no-captions.adoc | 271 ----- preview-src/tables-no-toc.adoc | 281 ------ preview-src/tables.adoc | 285 ------ preview-src/tiles.adoc | 63 -- preview-src/training-enrollment-disabled.adoc | 16 - preview-src/training-enrollment.adoc | 36 - preview-src/ui-model.yml | 481 +-------- src/css/docs-remix.css | 115 +++ src/css/site.css | 1 + src/css/vars.css | 12 +- src/js/60-docs-roles.js | 4 +- src/layouts/center-align.hbs | 25 - src/layouts/cheat-sheet.hbs | 12 - src/layouts/docs-home.hbs | 29 - src/layouts/docs-ndl.hbs | 25 - src/layouts/graphgist-category.hbs | 32 - src/layouts/graphgist-index.hbs | 79 -- src/layouts/graphgist.hbs | 96 -- src/layouts/kb-article.hbs | 75 -- src/layouts/kb-category.hbs | 31 - src/layouts/kb-index.hbs | 64 -- src/layouts/kb-tag.hbs | 31 - src/layouts/landing.hbs | 35 - src/layouts/remix.hbs | 12 + src/layouts/tiles.hbs | 18 - src/layouts/training-certification.hbs | 69 -- src/layouts/training-enrollment.hbs | 70 -- src/layouts/training-index.hbs | 63 -- src/layouts/training.hbs | 2 +- src/partials/article-ndl.hbs | 3 - src/partials/article.hbs | 73 +- src/partials/body.hbs | 1 + src/partials/footer-scripts.hbs | 4 +- src/partials/header-content.hbs | 92 +- src/partials/header-end.hbs | 21 + src/partials/main.hbs | 3 - src/partials/nav-ndl.hbs | 13 - src/partials/nav-selectors.hbs | 9 - src/partials/nav.hbs | 13 +- src/partials/navbar-end.hbs | 322 ------ src/partials/tab-row.hbs | 12 + src/partials/toolbar.hbs | 21 +- 90 files changed, 243 insertions(+), 9021 deletions(-) delete mode 100644 preview-src/admonitions.adoc delete mode 100644 preview-src/ads.adoc delete mode 100644 preview-src/algorithms.adoc delete mode 100644 preview-src/alpha.adoc delete mode 100644 preview-src/applied-graph-algo-course-yelp.adoc delete mode 100644 preview-src/banner-note.adoc delete mode 100644 preview-src/banner-warning.adoc delete mode 100644 preview-src/beta.adoc delete mode 100644 preview-src/bibliography.adoc delete mode 100644 preview-src/challenge.adoc delete mode 100644 preview-src/cheat-sheet.adoc delete mode 100644 preview-src/code.adoc delete mode 100644 preview-src/contribute.adoc delete mode 100644 preview-src/deprecated.adoc delete mode 100644 preview-src/developer.adoc delete mode 100644 preview-src/docs-explainer.adoc delete mode 100644 preview-src/docs-hub.adoc delete mode 100644 preview-src/docs-ndl.adoc delete mode 100644 preview-src/docs-roles.adoc delete mode 100644 preview-src/driver.adoc delete mode 100644 preview-src/drivers-apis.adoc delete mode 100644 preview-src/drivers-tabs.adoc delete mode 100644 preview-src/edit-run-cypher.adoc delete mode 100644 preview-src/example.adoc delete mode 100644 preview-src/feedback-disabled.adoc delete mode 100644 preview-src/first-steps-with-cypher.adoc create mode 100644 preview-src/fundamentals.adoc delete mode 100644 preview-src/graph-gist-category-pop-culture.adoc delete mode 100644 preview-src/graph-gist-index.adoc delete mode 100644 preview-src/graph-gist-star-wars-social-network.adoc delete mode 100644 preview-src/image-borders.adoc delete mode 100644 preview-src/index.adoc delete mode 100644 preview-src/kb-article.adoc delete mode 100644 preview-src/kb-index.adoc delete mode 100644 preview-src/labels.adoc delete mode 100644 preview-src/labs.adoc delete mode 100644 preview-src/links.adoc delete mode 100644 preview-src/lists.adoc delete mode 100644 preview-src/neo4j-gds-certify.adoc delete mode 100644 preview-src/private-page.adoc delete mode 100644 preview-src/promos-ad-include.adoc delete mode 100644 preview-src/promos-include.adoc delete mode 100644 preview-src/promos.adoc delete mode 100644 preview-src/security-docs.adoc delete mode 100644 preview-src/sidebar-headings-ad.adoc delete mode 100644 preview-src/sidebar-headings-no-ad.adoc delete mode 100644 preview-src/sidebar-no-headings-ad.adoc delete mode 100644 preview-src/sidebar-no-headings-no-ad.adoc delete mode 100644 preview-src/tables-no-captions.adoc delete mode 100644 preview-src/tables-no-toc.adoc delete mode 100644 preview-src/tables.adoc delete mode 100644 preview-src/tiles.adoc delete mode 100644 preview-src/training-enrollment-disabled.adoc delete mode 100644 preview-src/training-enrollment.adoc create mode 100644 src/css/docs-remix.css delete mode 100644 src/layouts/center-align.hbs delete mode 100644 src/layouts/cheat-sheet.hbs delete mode 100644 src/layouts/docs-home.hbs delete mode 100644 src/layouts/docs-ndl.hbs delete mode 100644 src/layouts/graphgist-category.hbs delete mode 100644 src/layouts/graphgist-index.hbs delete mode 100644 src/layouts/graphgist.hbs delete mode 100644 src/layouts/kb-article.hbs delete mode 100644 src/layouts/kb-category.hbs delete mode 100644 src/layouts/kb-index.hbs delete mode 100644 src/layouts/kb-tag.hbs delete mode 100644 src/layouts/landing.hbs create mode 100644 src/layouts/remix.hbs delete mode 100644 src/layouts/tiles.hbs delete mode 100644 src/layouts/training-certification.hbs delete mode 100644 src/layouts/training-enrollment.hbs delete mode 100644 src/layouts/training-index.hbs create mode 100644 src/partials/header-end.hbs delete mode 100644 src/partials/navbar-end.hbs create mode 100644 src/partials/tab-row.hbs diff --git a/preview-src/admonitions.adoc b/preview-src/admonitions.adoc deleted file mode 100644 index 83cce8ca..00000000 --- a/preview-src/admonitions.adoc +++ /dev/null @@ -1,298 +0,0 @@ -= Admonitions -:check-mark: icon:check[] - - -== NOTE - -[NOTE] -==== -You've been down _this_ road before. - -`$ npm i -g @antora/cli @antora/site-generator-default` - -* list 1 -* list 2 - -Link example: link:https://neo4j.com[Neo4j] - -Xref example: xref:alpha.adoc[] -==== - -Cum dicat putant ne. -Est in reque homero principes, meis deleniti mediocrem ad has. -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. - -== TIP - -Cum dicat putant ne. -Est in reque homero principes, meis deleniti mediocrem ad has. -Altera atomorum his ex, has cu elitr melius propriae. - -[TIP] -==== -This oughta do it! - -Cum dicat putant ne. -Est in reque homero principes, meis deleniti mediocrem ad has. -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. -==== - - - -== IMPORTANT - -[IMPORTANT] -==== -Don't forget this step! - - $ npm i -g @antora/cli @antora/site-generator-default - -* list 1 -* list 2 - -Link example: link:https://neo4j.com[Neo4j] - -Xref example: xref:alpha.adoc[] -==== - - - -== CAUTION - -[CAUTION] -==== -[#inline]#I wouldn't try that if I were you.# - - $ npm i -g @antora/cli @antora/site-generator-default - -* list 1 -* list 2 - -Link example: link:https://neo4j.com[Neo4j] - -Xref example: xref:alpha.adoc[] -==== - -== WARNING - -[WARNING] -==== -Watch out! - - $ npm i -g @antora/cli @antora/site-generator-default - -* list 1 -* list 2 - -Link example: link:https://neo4j.com[Neo4j] - -Xref example: xref:alpha.adoc[] -==== - - - -== TIP - -.Key Points to Remember -[TIP] -==== -If you installed the CLI and the default site generator globally, you can upgrade both of them with the same command. - - $ npm i -g @antora/cli @antora/site-generator-default - -* list 1 -* list 2 - -Link example: link:https://neo4j.com[Neo4j] - -Xref example: xref:alpha.adoc[] -==== - -== Admonition block margins - -[NOTE] -==== -Admonition block with a single paragraph of text. -==== - -[NOTE] -==== -Admonition block with multiple paragraphs. - -This is the second paragraph. -==== - -[NOTE] -==== -Admonition block with multiple different elements. - -- List item 1 -- List item 2 - -Paragraph of text. -==== - -[NOTE] -==== -Admonition block with multiple different elements. - -- List item 1 -- List item 2 - -``` -$ npm i -g @antora/cli @antora/site-generator-default -``` -==== - -.Admonition with title text -[NOTE] -==== -Admonition block with multiple different elements. - -- List item 1 -- List item 2 - -``` -$ npm i -g @antora/cli @antora/site-generator-default -``` -==== - -[WARNING] -==== -``` -$ npm i -g @antora/cli @antora/site-generator-default -``` - -``` -$ npm i -g @antora/cli @antora/site-generator-default -``` -==== - -.Admonition with title text -[WARNING] -==== -``` -$ npm i -g @antora/cli @antora/site-generator-default -``` -==== - -Nominavi luptatum eos, an vim hinc philosophia intellegebat. -Eu mea inani iriure. - -== Admonition in a table - -[options="header",width="100%",cols="2,3a"] -|=== -| Parameter -| Explanation - - -| Parameter name -| Parameter explanation -Lorem ipsum - -Dolor sit est. - -[NOTE] -==== -Note text goes here. -Note should be nicely aligned and have no borders -==== - -|=== - - -== Admonition first element in an example block - - -[.tabbed-example] -===== -[.include-with-admonition-first] -====== - - -[WARNING] -==== -Admonition should be given enough margin if it is the first element in an example block. -==== - -====== - -[.include-with-admonition-not-first] -====== - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. - -Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - -[TIP] -==== -Admonition should be given normal margin if it is not the first element in an example block. -==== - -===== - -== Icons in tables - -Icons that are not part of an admonition block should have no color filter applied. - -[options="header", cols="^,^,^,^"] -|=== -| Type | Date support | Time support | Time zone support -| `DATE` | {check-mark} | | -| `LOCAL TIME` | | {check-mark} | -| `ZONED TIME` | | {check-mark} | {check-mark} -| `LOCAL DATETIME` | {check-mark} | {check-mark} | -| `ZONED DATETIME` | {check-mark} | {check-mark} | {check-mark} -| `DURATION` | `-` | `-` | `-` -|=== - -== Admonition that contains a code block - -[source, shell] ----- -docker container exec -u neo4j -it /bin/bash ----- - - -[TIP] -==== -If working with a Neo4j Docker container, ensure you connect to it with the user `neo4j` before issuing import commands, or you will get permission issues after the import. - -[source, shell] ----- -docker container exec -u neo4j -it /bin/bash ----- -==== - - -== Admonition that contains a table? - - -[TIP] -==== -This is an admonition that contains a table. - -[options="header", cols="^,^,^,^"] -|=== -| Type | Date support | Time support | Time zone support -| `DATE` | {check-mark} | | -| `LOCAL TIME` | | {check-mark} | -| `ZONED TIME` | | {check-mark} | {check-mark} -| `LOCAL DATETIME` | {check-mark} | {check-mark} | -| `ZONED DATETIME` | {check-mark} | {check-mark} | {check-mark} -| `DURATION` | `-` | `-` | `-` -|=== - -==== - -== Admonition with a title - -.note with title -[NOTE] -==== -This is a note with a title. -==== - diff --git a/preview-src/ads.adoc b/preview-src/ads.adoc deleted file mode 100644 index 160d1b84..00000000 --- a/preview-src/ads.adoc +++ /dev/null @@ -1,187 +0,0 @@ -= icon:graduation-cap[] Hardware and Software Requirements -Author Name -:idprefix: -:idseparator: - -:!example-caption: -:!table-caption: -:page-pagination: -:page-disabletracking: -// tag::theme[] -:page-theme: docs -// end::theme[] -// tag::search[] -:page-type: knowledgebase -:page-environment: macos -:page-programminglanguage: java -:page-neo4jversion: 3.5 -:page-product: NEOSEMANTICS -// end::search[] -// tag::meta[] -:description: This guide shows the different ways you can import data from a relational database to Neo4j. Completing this guide will give you the tools to choose how to import your relational data and transform it to the graph. -:keywords: one, two, three, four -// end::meta[] -// tag:discourse[] -// :page-comments: -// :page-topicid: 22863 -// end:discourse[] -:page-disabletracking: true -:page-newsletter: true -// tag::link[] -:page-ad-overline-link: {aura_signup} -:page-ad-overline: Neo4j Aura -:page-ad-title: Follow Along and Learn While Doing -:page-ad-description: Free forever, no credit card required. -:page-ad-link: {aura_signup} -:page-ad-underline-role: button -:page-ad-underline: Start on AuraDB -// :page-ad-image: https://s3.amazonaws.com/cdn.graphacademy.neo4j.com/tshirts/python-tshirt.jpg -// :page-ad-image: https://graphacademy.neo4j.com/courses/app-python/badge/ -// end::link[] - -.Goals -[abstract] -{description} - -.Prerequisites -[abstract] -You should be familiar with link:/developer/get-started/graph-database[graph database] concepts and the link:/developer/get-started/graph-database#property-graph[property graph model]. -It is also helpful to know the differences between link:/developer/graph-db-vs-rdbms/[relational and graph concepts] and their link:/developer/relational-to-graph-modeling/[data models]. - -[.procedures,%headers, cols="5,2,1"] -|=== -| Qualified Name | Type | Release - -| **apoc.agg.first** - -`apoc.agg.first(value)` - -returns first value - -| -+++ -Function -+++ -| -+++ -Full -+++ - -| link:#[apoc.import.csv icon:book[]] - -`apoc.import.csv(nodes, relationships, config)` - -imports nodes and relationships from the provided CSV files with given labels and types - -| -+++ -Procedure -+++ -| -+++ -Core -+++ - -|=== - -// tag::level[] -:level: Beginner -[role=expertise {level}] -{level} -// end::level[] - - - -[.discrete.ad] -== link:https://graphacademy.neo4j.com/[Learn with GraphAcademy^] - -image::https://graphacademy.neo4j.com/courses/app-python/badge/[float=left] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - - -== Section with Ads - -[.discrete.ad.left] -== link:https://graphacademy.neo4j.com/[Floated Left^] - -// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - -== Break out of Ad box - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - - -== Break out of box - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - - -[.discrete.ad.right] -== link:https://graphacademy.neo4j.com/[Floated Right^] - -// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - -== Break out again - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - diff --git a/preview-src/algorithms.adoc b/preview-src/algorithms.adoc deleted file mode 100644 index 73af931d..00000000 --- a/preview-src/algorithms.adoc +++ /dev/null @@ -1,22 +0,0 @@ -.Supported algorithm traits: -[.graph-variants, caption=] --- -[.supported] -<> - -[.not-supported] -<> - -[.allowed] -<> --- - -[discrete.glossary] -== Glossary - -[glossary] -[[directed]]Directed:: xref:introduction.adoc#introduction-algorithms-directed[Directed trait]. The algorithm is well-defined on a directed graph. - -[[undirected]]Undirected:: xref:introduction.adoc#introduction-algorithms-undirected[Undirected trait]. The algorithm is well-defined on an undirected graph. - -[[homogeneous]]Homogeneous:: xref:introduction.adoc#introduction-algorithms-homogeneous[Homogeneous trait]. The algorithm will treat all nodes and relationships in its input graph(s) similarly, as if they were all of the same type. If multiple types of nodes or relationships exist in the graph, this must be taken into account when analysing the results of the algorithm. diff --git a/preview-src/alpha.adoc b/preview-src/alpha.adoc deleted file mode 100644 index ca19c6ee..00000000 --- a/preview-src/alpha.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Alpha Content -:page-role: alpha - -[abstract] --- -Flags page as Alpha --- - -Alpha pages include the following: - -[.alpha-symbol] -[.tier-note] -This algorithm is in the alpha tier. -For more information on algorithm tiers, see <>. diff --git a/preview-src/applied-graph-algo-course-yelp.adoc b/preview-src/applied-graph-algo-course-yelp.adoc deleted file mode 100644 index 397f30dc..00000000 --- a/preview-src/applied-graph-algo-course-yelp.adoc +++ /dev/null @@ -1,34 +0,0 @@ -= Applied Graph Algo Course -:uri-yelp-dataset-agreement-pdf: https://s3-media3.fl.yelpcdn.com/assets/srv0/engineering_pages/bea5c1e92bf3/assets/vendor/yelp-dataset-agreement.pdf -:neo4j-version: 3.5 -:page-type: training-course-index -:page-pagination: next -:page-layout: training -:page-course-name: applied-algos -:page-theme: training - -We will start with an existing web application (a simple business reviews website written in React.js) populated with data from the Yelp public dataset in Neo4j. We then work to enhance the existing functionality of the application using graph algorithms. - -== Exercise - -Your exercise for this module is to get all the tools up and running and talking to each other. - -[#yelp-dataset-agreement] --- -Before creating a Yelp Neo4j Sandbox instance, you need to read and agree to the {uri-yelp-dataset-agreement-pdf}[Yelp Dataset License^]. --- - -. Create a https://sandbox.neo4j.com/?usecase=yelp[Yelp Neo4j Sandbox instance^,id=yelp-create-sandbox-link]. -*Note*: You must log in to the Neo4j Sandbox site. This may require you to register with Neo4j. -. In Yelp Sandbox you just created, click the *Open Neo4j Browser* button to open a Neo4j Browser for the Yelp database. You will be using this Neo4j Browser window throughout this course. -. In Neo4j Browser, complete the steps in the first Neo4j Browser Guide (:play applied_graph_algorithms), *Cypher Refresher*. -. Open the https://codesandbox.io/s/github/neo4j-contrib/training-v2/tree/master/Courses/AppliedGraphAlgorithms/react-app[React application in CodeSandbox^]. This is the initial version of our business reviews application. You will be using this Code Sandbox window throughout this course. -. In CodeSandbox: -.. Sign in to CodeSandbox with your github credentials. -.. Click Fork. -.. Edit the *.env* file by replacing the default environment variables with the credentials for your Yelp Neo4j Sandbox. The URL and credentials are available to you from your Yelp sandbox pane if you open the details of the pane by selecting arrow to the right of the *Open Neo4j Browser* button. -... Replace the value for REACT_APP_NEO4J_URI with the value of *Websocket Bolt URL* from the *Connection Details* tab of the Yelp Sandbox. -... Replace the value for REACT_APP_NEO4J_PASSWORD with the *Password* in the *Connection Details* tab of the Yelp Sandbox. -.. Save this file. -.. Click the refresh icon to connect the CodeSandbox Browser (on the right) to the database. -.. Confirm that you can now view data in the database by selecting a name in the drop down (initially selected with Dolores). Data should be retrieved for each user. diff --git a/preview-src/banner-note.adoc b/preview-src/banner-note.adoc deleted file mode 100644 index 3c4f9375..00000000 --- a/preview-src/banner-note.adoc +++ /dev/null @@ -1,20 +0,0 @@ -= Note banner -:page-theme: docs -:page-banner: note -:page-banner-text: Lorem ipsum dolor sit est. -:page-banner-link: https://neo4j.com/docs -:page-banner-link-text: Link text - - -[abstract] --- -Add page banner attributes to a page to display a message between the header and the toolbar. --- - -[source] ----- -:page-banner: note -:page-banner-text: Lorem ipsum dolor sit est. -:page-banner-link: https://neo4j.com/docs -:page-banner-link-text: Link text ----- \ No newline at end of file diff --git a/preview-src/banner-warning.adoc b/preview-src/banner-warning.adoc deleted file mode 100644 index dafd780e..00000000 --- a/preview-src/banner-warning.adoc +++ /dev/null @@ -1,20 +0,0 @@ -= Warning banner -:page-theme: docs -:page-banner: warning -:page-banner-text: Lorem ipsum dolor sit est. -:page-banner-link: https://neo4j.com/docs -:page-banner-link-text: Link text - - -[abstract] --- -Add page banner attributes to a page to display a message between the header and the toolbar --- - -[source] ----- -:page-banner: warning -:page-banner-text: Lorem ipsum dolor sit est. -:page-banner-link: https://neo4j.com/docs -:page-banner-link-text: Link text ----- \ No newline at end of file diff --git a/preview-src/beta.adoc b/preview-src/beta.adoc deleted file mode 100644 index f468c07b..00000000 --- a/preview-src/beta.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Beta Content -:page-role: beta - -[abstract] --- -Flags page as Beta --- - -Alpha pages include the following: - -[.beta-symbol] -[.tier-note] -This algorithm is in the beta tier. -For more information on algorithm tiers, see <>. diff --git a/preview-src/bibliography.adoc b/preview-src/bibliography.adoc deleted file mode 100644 index 8a2b9a88..00000000 --- a/preview-src/bibliography.adoc +++ /dev/null @@ -1,12 +0,0 @@ -= Use of `bibliography` - -Citations with xreftext: <>, <>. - -Citations without xreftext (ID only): <>. - -[bibliography] -== References - -* [[[Brandes2001, 1]]] Brandes, Ulrik. "A faster algorithm for betweenness centrality." _Journal of mathematical sociology_ 25, no. 2 (2001): 163-177. link:https://snap.stanford.edu/class/cs224w-readings/brandes01centrality.pdf[]. -* [[[Brandes2007, 2]]] Brandes, Ulrik, and Christian Pich. "Centrality estimation in large networks." _International Journal of Bifurcation and Chaos_ 17, no. 07 (2007): 2303-2318. link:https://www.uni-konstanz.de/mmsp/pubsys/publishedFiles/BrPi07.pdf[]. -* [[[Freeman1977]]] Freeman, Linton C. "A set of measures of centrality based on betweenness." _Sociometry_ (1977): 35-41. diff --git a/preview-src/challenge.adoc b/preview-src/challenge.adoc deleted file mode 100644 index c58052da..00000000 --- a/preview-src/challenge.adoc +++ /dev/null @@ -1,38 +0,0 @@ -= Challenge -Author Name -:idprefix: -:idseparator: - -:!example-caption: -:!table-caption: -:page-disabletracking: -// tag::theme[] -:page-theme: developer -// end::theme[] -// tag::search[] -:page-type: knowledgebase -:page-environment: macos -:page-programminglanguage: java -:page-neo4jversion: 3.5 -:page-product: NEOSEMANTICS -// end::search[] -// tag::meta[] -:description: This guide shows the different ways you can import data from a relational database to Neo4j. Completing this guide will give you the tools to choose how to import your relational data and transform it to the graph. -:keywords: one, two, three, four -// end::meta[] -// tag:discourse[] -// :page-comments: -// :page-topicid: 22863 -// end:discourse[] -:page-disabletracking: true -:page-includedriver: true - - -[.arrange] -== Arrange the Query - -So let's take our Movie graph for example, we would like to find a node with a `:Person` label and a name property with the value _Tom Hanks_. -Arrange the parts of the query below to form a query. -Once you are done, click **Run Query** to see whether you have got it right... - -[source,cypher] -MATCH (p:Person {name: "Tom Hanks"}) RETURN p LIMIT 10 diff --git a/preview-src/cheat-sheet.adoc b/preview-src/cheat-sheet.adoc deleted file mode 100644 index 0fc724a4..00000000 --- a/preview-src/cheat-sheet.adoc +++ /dev/null @@ -1,495 +0,0 @@ -= Cypher Cheat Sheet -:neo4j-docs-base-uri: https://neo4j.com/docs -:page-theme: cheat-sheet -:page-slug: cheat-sheet -// :page-show-labels: true -:page-no-toolbar: true - - -== How the cheat sheet works - -// this has no product, which means it matches all products -=== Example structure - -===== -[source, cypher, role=noheader] ------ -[.neo4j-ee] <1> -==== <2> -[source, cypher, role=noheader] <3> ----- -MATCH (n) -RETURN n AS node ----- - -[.description] <4> --- <5> -Description - -More description --- - -[.extra] <6> --- -Additional content, to be used sparingly because this is a cheat sheet or quick reference, not a full Cypher reference manual. --- -==== ------ - -[.description] --- -<1> Add a role for each cheat-sheet that the example applies to. Leave blank if it applies in all cases. -<2> Use an example block to contain the Cypher example and description. -<3> Add an optional block for a Cypher example, specifying `[source, cypher,`role=noheader`]. -<4> Add a required description block. -<5> If the description consists of more than one paragraph of text, use an open block. -<6> If you need to, you can add `extra` content, which is displayed below the example code and description. --- -===== - - -=== Playbook configuration - -===== -[source, cypher, role=noheader] ------ -asciidoc: - attributes: - page-cheatsheet-product: Neo4j <1> - page-cheatsheet-products: <2> - - name: 'Neo4j Enterprise Edition' <3> - label: 'Enterprise Edition' <4> - class: 'neo4j-ee' <5> - default: true <6> - - name: 'Neo4j Community Edition' - class: 'neo4j-ce' - - name: 'Deprecated' - class: 'deprecated' - label-only: true <7> ------ - -[.description] --- -<1> Add a product name to displayed before `Version` in the version selector. The default value is `Product`. -<2> Add a `page-cheatsheet-products` section to the playbook to define the different views that a user can choose from. In this example we've added two views: Neo4j Enterprise Edition and Neo4j Community Edition. -<3> Add a name for each view. This text is displayed in the dropdown that you use to select which Cheat Sheet you want to view. -<4> [Optional] Add label text. When an example is not applicable in all views, a label is displayed to indicate which views it applies to. If no `label` value is specified, the value of `name` is used. -<5> Specify a class for each view. This is used to add a role to the example block. For example, the class `neo4j-ee` is specified by `[.neo4j-ee]`. -<6> Specify a default view. This is the view that is displayed when the page is loaded. -<7> If you want to display a label for some entries without that label appearing in the dropdown, you can use the `label-only` attribute. In this example, entries that have the `[.deprecated]` role will have the `Deprecated` label displayed, but 'Deprecated' is not an option you can select from the dropdown. In this preview build, both `Configuration` and `Deprecated` have been added as `label-only` views. --- -===== - - -== Section title - - -=== Subsection title - - -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -Text describing the example. This example has no role, and therefore no labels. It is displayed in all views. -==== - -[.neo4j-ee] -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -This example only applies to Neo4j Enterprise Edition and is marked with the `[.neo4j-ee]` role. -==== - - -[.read] -== Read queries - - -=== Read queries subsection - - -[.neo4j-ce.neo4j-ee.aura-dbe.aura-dsp.aura-dbp.aura-dse] -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -This example only applies to Neo4j Enterprise Edition and is marked with the `[.neo4j-ee]` role. -==== - - -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -Text describing the example. This example has no role, and therefore no labels. It is displayed in all views. -==== - -[.neo4j-ee] -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -This example only applies to Neo4j Enterprise Edition and is marked with the `[.neo4j-ee]` role. -==== - - -== Write queries - - -=== Write queries subsection - - -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -Text describing the example. This example has no role, and therefore no labels. It is displayed in all views. -==== - - -[.neo4j-ee] -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -This example only applies to Neo4j Enterprise Edition and is marked with the `[.neo4j-ee]` role. -==== - - -=== link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/match/[Title with link^] - - -==== -[.description] -This entry has no example code. -==== - - -==== -[.description] --- -This entry has no example code. - -It contains: - -- more than one paragraph -- a list - -Therefore it is formatted as an open block --- -==== - - -[.neo4j-ee] -==== -[source, cypher, role=noheader] ----- -MATCH (n) -RETURN n AS node ----- - -[.description] -Displayed for Neo4j Enterprise Edition - -[.extra] --- -Some additional content. -Can be any arbitrary asciidoc blocks and elements. - -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Neo4j -| Graphy -|=== --- -==== - - -[.neo4j-ee] -==== -[source, cypher, role=noheader] ----- -MATCH (n) -RETURN n AS node ----- - -[.description] -Displayed for Neo4j Enterprise Edition -==== - - -==== -[source, cypher, role=noheader] ----- -MATCH (n:A&B) -RETURN n.name AS name ----- - -[.description] -This example is displayed in all views. -==== - - -[.aura-dbe] -==== -[source, cypher, role=noheader] ----- -MATCH (n:A&B) -RETURN n.name AS name ----- - -[.description] -This example is displayed for AuraDB Virtual Dedicated Cloud (`[.aura-dbe]`) -==== - - -[.aura-dbf.aura-dbe] -==== -[source, cypher, role=noheader] ----- -MATCH (n:A|B) -RETURN n.name AS name - ----- - -[.description] -This example is displayed for both AuraDB Free and AuraDB Virtual Dedicated Cloud. -==== - - - -== Not on Aura - - -[.neo4j-ce.neo4j-ee] -=== Not on Aura examples - -==== -[.description] --- -This section applies to Neo4j Community Edition and Neo4j Enterprise Edition. It does not apply to any flavour of Aura. -So, we've added two roles: `[.neo4j-ce.neo4j-ee]`. - -When generating a Neo4j (ie not Aura) cheat sheet, we would only add those two versions to the playbook: - -[source, asciidoc, role=noheader] ----- -- name: 'Neo4j Community Edition' - class: 'neo4j-ce' -- name: 'Neo4j Enterprise Edition' - class: 'neo4j-ee' - default: true ----- - -In this example the labels would _not_ be displayed. - -If we add any other versions to the playbook, such as AuraDB Virtual Dedicated Cloud, the labels will be displayed when viewing the examples for Neo4j Community Edition or Neo4j Enterprise Edition, but the content will be hidden entirely when viewing the AuraDB Virtual Dedicated Cloud examples. --- -==== - -[.neo4j-ce] -== Neo4j Community Edition Only - - -=== Labeling example - - -==== -[.description] -The title of this section has a `[.neo4j-ce]` role. All subsections and examples within this section will be treated as Neo4j Community Edition only. -Labels are not automatically added to each subsection or example, but they are all hidden when a cheat sheet view other than Neo4j Community Edition is selected. -==== - - -==== -[source, cypher, role=noheader] ----- - ----- - -[.description] -This example is not explicitly marked as Neo4j Community Edition, but it is in a section that is marked as Neo4j Community Edition. -It is displayed or hidden accordingly. -==== - - -[.deprecated] -== Deprecated - - -[.deprecated] -=== Deprecated examples - - -[.deprecated] -==== -[.description] -This section contains deprecated examples. The section has a `[.deprecated]` role, and the subsection and examples also have the role. -That's a lot of labels. -==== - - -[.deprecated] -==== -[source, cypher, role=noheader] ----- -(neo4j:Neo4j {name: "Neo4j"}) -(neo4j)-[:INCLUDES]->(browser:Product {name: "Neo4j Browser"}) -(browser)-[:HAS]->(:Feature {name: "Cypher"}) -(browser)-[:HAS]->(:Feature {name: "Dev Tools"}) -(browser)-[:HAS]->(:Feature {name: "Visualization"}) -(neo4j)-[:CONNECTS_WITH]->(drivers:Drivers {name: "Drivers"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Java"}) ----- - -[.description] -Deprecated cypher example. -==== - - -== Functions - - -=== Temporal functions - - -==== -[source, cypher, role=noheader] ----- -date('2018-04-05') ----- - -[.description] -Returns a date parsed from a string. -==== - - -==== -[source, cypher, role=noheader] ----- -localtime('12:45:30.25') ----- - -[.description] -Returns a time with no time zone. -==== - - -==== -[source, cypher, role=noheader] ----- -time('12:45:30.25+01:00') ----- - -[.description] -Returns a time in a specified time zone. -==== - - -==== -[source, cypher, role=noheader] ----- -localdatetime('2018-04-05T12:34:00') ----- - -[.description] -Returns a datetime with no time zone. -==== - - -==== -[source, cypher, role=noheader] ----- -datetime('2018-04-05T12:34:00[Europe/Berlin]') ----- - -[.description] -Returns a datetime in the specified time zone. -==== - - -==== -[source, cypher, role=noheader] ----- -datetime({epochMillis: 3360000}) ----- - -[.description] -Transforms 3360000 as a UNIX Epoch time into a normal datetime. -==== - - -[.neo4j-ce.aura-dbe] -==== -[source, cypher, role=noheader] ----- -date({year: $year, month: $month, day: $day}) ----- - -[.description] -All of the temporal functions can also be called with a map of named components. -This example returns a date from year, month and day components. -Each function supports a different set of possible components. -==== - - -==== -[source, cypher, role=noheader] ----- -datetime({date: $date, time: $time}) ----- - -[.description] -Temporal types can be created by combining other types. -This example creates a datetime from a date and a time. -==== - - -==== -[source, cypher, role=noheader] ----- -date({date: $datetime, day: 5}) ----- - -[.description] -Temporal types can be created by selecting from more complex types, as well as overriding individual components. This example creates a date by selecting from a datetime, as well as overriding the day component. -==== - - -==== -[source, cypher, role=noheader] ----- -WITH date('2018-04-05') AS d -RETURN d.year, d.month, d.day, d.week, d.dayOfWeek ----- - -[.description] -Accessors allow extracting components of temporal types. -==== diff --git a/preview-src/code.adoc b/preview-src/code.adoc deleted file mode 100644 index f8ce8738..00000000 --- a/preview-src/code.adoc +++ /dev/null @@ -1,212 +0,0 @@ -= Code blocks - -== Copy Button - -The **Copy To Clipboard** button will appear on all code blocks: - - -[source,shell] ----- -Copy me! -Do something else -Callout # <1> -Callout # <2> -Callout tab # <3> -Comment # Just a regular comment after some code ----- - -<1> Callout -<2> Callout -<3> Callout after a tab - - - -[source,adoc] ----- -[source,adoc] -Copy me! ----- - -Unless you add `role=nocopy`: - -[source,adoc,role=nocopy] ----- -[source,adoc,role=nocopy] -Don't copy me! ----- - -== Reference lines (Callouts) - -You can add number bubbles to reference specific lines by appending `` to a line. It is advised to put them behind a line comment for the language the code is in. - -[source,ruby] ----- -require 'sinatra' <1> - -get '/hi' do <2> <3> - "Hello World!" -end ----- -<1> Library import -<2> URL mapping -<3> Response block - -[source] ----- -line of code // <1> -line of code # <2> -line of code ;; <3> -line of code ----- -<1> A callout behind a line comment for C-style languages. -<2> A callout behind a line comment for Ruby, Python, Perl, etc. -<3> A callout behind a line comment for Clojure. -<4> A callout behind a line comment for XML or SGML languages like HTML. - - -== Highlight lines - -Highlight one or more lines of code by adding e.g. `//mark-line` at the end of each of them. Use the line comment syntax for the language the block contains. - -[source, adoc] ----- -[source, java] ---- -var result = driver.executableQuery("MATCH (p:Person {name: $name})") - .withParameters(Map.of("name", "Alice")) //mark-line - .withConfig(QueryConfig.builder().withDatabase("neo4j").build()) - .execute(); ---- ----- - -[source, java] ----- -var result = driver.executableQuery("MATCH (p:Person {name: $name})") - .withParameters(Map.of("name", "Alice")) //mark-line - .withConfig(QueryConfig.builder().withDatabase("neo4j").build()) - .execute(); ----- - - -== Expand code block - -Code blocks longer than 15 lines (+5 of tolerance) are collapsed, unless you add `role=nocollapse` - -[source,adoc] ----- -[source,js] -... ----- - -[source,js] ----- - // Collapse/Expand long blocks - var codeMaxLines = 15 // lines - var codeTolerance = 5 // lines - var codeLineHeight = parseFloat(window.getComputedStyle( - document.getElementsByClassName('highlight')[0], null) - .getPropertyValue('line-height')) - var codeMaxHeight = codeLineHeight*codeMaxLines - var maskImage = 'linear-gradient(to bottom, black 0px, transparent ' + - (codeMaxHeight + 100) + 'px)' - - var codeBlockLinesNum = function (code) { - var paddingTop = parseFloat(window.getComputedStyle(code, null).getPropertyValue('padding-top')) - var paddingBottom = parseFloat(window.getComputedStyle(code, null).getPropertyValue('padding-bottom')) - var height = code.clientHeight-paddingTop-paddingBottom; - var lines = Math.ceil(height / codeLineHeight) - var hiddenLines = Math.ceil(lines - codeMaxLines) - return hiddenLines - } - - var expandCollapseBlock = function (e) { - e.preventDefault() - var showMore = e.target - var pre = showMore.parentNode - var code = pre.querySelector('code') - - if (pre.style.overflow === 'hidden') { - window.sessionStorage.setItem('scrollpos', window.scrollY) - pre.style.maxHeight = pre.scrollHeight + 'px' - pre.style.overflow = 'visible' - code.style.webkitMaskImage = '' - code.style.maskImage = '' - showMore.innerHTML = '↑' // show less - } else { - // Scoll back to where you where before expanding - var scrollpos = window.sessionStorage.getItem('scrollpos') - if (scrollpos) { - window.scrollTo({ - top: scrollpos, - behavior: 'auto', - }) - } - window.sessionStorage.removeItem('scrollpos') - - var hiddenLines = codeBlockLinesNum(code) - pre.style.maxHeight = codeMaxHeight + 'px' - pre.style.overflow = 'hidden' - code.style.webkitMaskImage = maskImage - code.style.maskImage = maskImage - showMore.innerHTML = '↓ View all (' + hiddenLines + ' lines more) ↓' - } - } - - // Collapse long blocks on load - var collapseCodeBlock = function (pre) { - var dotContent = pre.parentNode - var listingBlock = dotContent.parentNode - var code = pre.querySelector('code') - - if (!listingBlock.classList.contains('nocollapse') && - pre.offsetHeight > (codeMaxLines+codeTolerance)*codeLineHeight) { - pre.style.maxHeight = codeMaxHeight + 'px' - pre.style.overflow = 'hidden' - code.style.webkitMaskImage = maskImage - code.style.maskImage = maskImage - - var hiddenLines = codeBlockLinesNum(code) - var showMore = createElement('a', 'show-more') - showMore.innerHTML = '↓ View all (' + hiddenLines + ' lines more) ↓' - showMore.addEventListener('click', expandCollapseBlock) - pre.appendChild(showMore) - } - } - - // Apply collapseCodeBlock - document.querySelectorAll('.highlight') - .forEach(collapseCodeBlock) - ----- - -[source,adoc] ----- -[source,js,role=nocollapse] -... ----- - -[source,js,role=nocollapse] ----- -// Collapse/Expand long blocks -var codeBlockMaxHeight = 300 // px -var styleMaskImage = 'linear-gradient(to bottom, black 0px, transparent ' + (codeBlockMaxHeight+100) + 'px)' - -var expandCollapseBlock = function (e) { - e.preventDefault(); - var showMore = e.target - var pre = showMore.parentNode - var codeBlock = pre.querySelector('code') - - if (pre.st.style.webkitMaskImage = styleMaskImage - codeBlock.style.maskImage = styleMaskImage - showMore.innerHTML = '↓' // show more - //codeBlock.scrollIntoView({behavior: 'smooth'}) - } -} - if (pre.st.style.webkitMaskImage = styleMaskImage - codeBlock.style.maskImage = styleMaskImage - showMore.innerHTML = '↓' // show more - //codeBlock.scrollIntoView({behavior: 'smooth'}) - } -} ----- diff --git a/preview-src/contribute.adoc b/preview-src/contribute.adoc deleted file mode 100644 index 6eb34f48..00000000 --- a/preview-src/contribute.adoc +++ /dev/null @@ -1,124 +0,0 @@ -= Contributing to Neo4j -:page-layout: center-align -:author: Neo4j -:category: development -:tags: community, contributions, share - -[#neo4j-contribute] -Looking for a place to contribute to the Neo4j ecosystem? -This is a great place to start. -Here you will find guides from Neo4j’s community of contributors. - -[#finding-help] -== Help Others in the Community - -Want to help others? - -There are a number of great resources the Neo4j community uses to get quick help from graph database experts. -Don't hesitate to ask when you’re stuck and looking for help. Also, if you're familiar with a particular topic area, please jump in and lend a hand for your fellow graphistas. - -The primary home for Neo4j community discussion is our https://community.neo4j.com[Neo4j Forum^]. - -We also have some other places the community asks questions. - -* http://stackoverflow.com/questions/tagged/neo4j[Neo4j on StackOverflow^] -* http://twitter.com/neo4j[Social: Neo4j on Twitter^] -* https://discord.gg/neo4j[Discord Chat^] -* http://github.com/neo4j/neo4j/issues[Raise Issues: GitHub Issues^] - -[#ask-question-tips] -== Tips for Asking Good Questions - -If you have technical questions, we would love to help you find the answers to them! Please help us help you by following the guidelines below. - -*Write a title that summarizes the specific problem* + -The title may be the first and the last thing that potential viewers see of your post. -Make it count. Make it describe the problem, not your current state of mind. -ALL CAPS and lots of question and exclamation marks are an indication that you wear your underwear on your head ??? not that you have an urgent problem !!! - -*Choose the correct "category" and add the relevant "tags"* + -Both of these serve to narrow down the problem area. -A database creation error on the "Neo4j Desktop" is quite possible, it is almost impossible if installed with a Yum package. -For installation questions specifying the OS is definitely useful. And so on. - -*Explain First* + -What do you want to accomplish? What is the problem? -What have you tried (you have tried something, right...right?)? -Can you reproduce the situation? Which steps need to be followed to get there? - -*Code Second* + -For some weird reason, Verdana 12pt does horrible things to code. -There are a ton of ways to add readable code in your posts, the easiest is to select it and use the preformatted text icon. -Reading hundreds of lines of code and Cypher-queries is the favorite hobby of most of the visitors of the forum. -Just in case it is one of the others that is trying to help you, provide the code that demonstrates the issue and no more. - -*Proofread* + -Are you ready to press "Create"? Take a deep breath. Exhale. -Go once more over what you've just written. Does it look like the kind of question you could answer? - -*I'm not sure my English is good enough...can I get help?* + -Just do the best you can! While technical questions should be in English, there are Local Groups on the forum. -Not only are those good for finding out about local activities, but there might be somebody else there that knows (for example) South-West England English and can help you translate it into six o'clock news English! - -*Be Patient - Be Friendly - Be Polite - Help someone else in turn* + -Somebody is going to spend some of the single most valuable resources for a human on your question. Time. -Giving an indication that you understand the value of that is the least you can do. - -[#speaking] -== Sharing your Love of Graphs - -No matter where you live in the world, there are plenty of ways to share your love of graphs -and help others understand the importance of relationships. - -With thousands of technology and business *conferences* occuring every year around the world, -you can present to your peers and become a recognized expert in your field. Neo4j, via the -link:/speaker-program/[*Neo4j Speaker Program*], can also help and reimburse -travel expenses for community members speaking at many of the top conferences. - -There are also hundreds of face-to-face https://www.meetup.com/topics/neo4j/[*Neo4j meetup groups*] in communities -around the world. Many of these meetup groups regularly look for speakers to share their stories. - -The https://www.meetup.com/Neo4j-Online-Meetup/[*Neo4j Online Meetup*] is a way for you to meet the global community online and share your story. - -We select talks for the Online Meetup and stories for our link:/tag/twin4j/[*Developer Newsletter*] from https://community.neo4j.com/[*Neo4j Community Forum*]. To submit your story, post it in the `Projects & Collaboration` (if including a link to github or website) or `Community Content & Blogs` (if linking to a blog post, -slideshow, video, or article) categories. - -[#contributing] -== Other Ways to Contribute - -The Neo4j project is an open source effort to bring fast, complex data storage and processing to life. -Every form of help is highly appreciated by the community. -Note that you can contribute to Neo4j also by providing documentation or giving feedback on the current documentation. -Basically, in all the places where you can get help, there is also room for contributions. - -* link:/developer/contributing-code/[Contributing Code^] -* link:/developer/cla/[Contributors License Agreement^] -* GitHub http://github.com/neo4j/neo4j/issues[Issues^] and http://github.com/neo4j/neo4j/pulls[Pull Requests^] -* See the https://github.com/neo4j/neo4j/graphs/contributors[list of contributors^] - -[#develop-neo4j] -== Tools for Developing Neo4j - -We are happy users of the following tools that we use daily to develop Neo4j. - -* IDE: https://www.jetbrains.com/idea/[IntelliJ Idea by JetBrains^] - *Thank you so much for the https://www.jetbrains.com/idea/buy/choose_edition.jsp?license=OPEN_SOURCE[OSS license^]!* and Eclipse -* Build System: https://www.jetbrains.com/teamcity/[TeamCity by JetBrains^] - *Thank you so much for the https://www.jetbrains.com/teamcity/buy/choose_edition.jsp?license=OPEN_SOURCE[OSS license^]!* -* Profiler: Yourkit, VisualVM, jvmtop, Java Mission Control, Flight Recorder -* Version Control: Git & http://github.com/neo4j[GitHub^] -* Issue Management: Trello and http://github.com/neo4j/neo4j/issues[GitHub issues^] -* Team Communication: Neo4j Community Site, Discord, Google Hangouts, and Zoom -* Pair Programming: Team Viewer, join.me -* Documents: Google Docs -* Manual, GraphGists, Presentations: http://asciidoctor.org[AsciiDoctor^] -* Programming Language: Java, Build-Tool - Maven -* Libraries - JVM: Scala, Parboiled, Google Collections, JMH, Jetty, Jersey, Jackson, Apache Commons, JUnit -* Libs & Tools: Javascript: D3.js, Angular.js, Grunt, Bower - -[#integration-dev] -== Tools, Libraries, and Drivers - -Neo4j is supported by a rich ecosystem of libraries, tools, drivers and guides provided by partners, users and community contributors. -We want to give an overview about what is available and link to the original sources. -We try to focus on the freely available solutions here and provide links to commercial options where appropriate. - -Read more about it in our link:/developer/integration/[Integrations section]. \ No newline at end of file diff --git a/preview-src/deprecated.adoc b/preview-src/deprecated.adoc deleted file mode 100644 index 72c42a78..00000000 --- a/preview-src/deprecated.adoc +++ /dev/null @@ -1,39 +0,0 @@ -[role=deprecated] -= This entire topic is deprecated -:page-role: deprecated - -[abstract] --- -Flags all sections as Deprecated --- - -All headers have 'Deprecated' appended. - -== Deprecated Heading 1 - -Lorem ipsum - -Simple paragraph. - -[.deprecated] -Simple paragraph marked as deprecated. - - -[.deprecated] - -== Deprecated Heading 2 - -Lorem ipsum - -=== Deprecated Heading 2.1 - -Lorem ipsum - -==== Deprecated Heading 2.2 - -Lorem ipsum - -== Deprecated Heading 3 - -Lorem ipsum - diff --git a/preview-src/developer.adoc b/preview-src/developer.adoc deleted file mode 100644 index a08c3855..00000000 --- a/preview-src/developer.adoc +++ /dev/null @@ -1,231 +0,0 @@ -= Neo4j Developer Guides -:page-layout: landing -:page-theme: developer -:page-toclevels: -1 - - -[.hero] -== Neo4j Developer Resources - -All you need to be happy and successful with Neo4j - -[.buttons] -* link:/developer/language-guides/?role=developer[I'm a Developer] -* link:/developer/graph-data-science/?role=datascientist[I'm a Data Scientist] -* link:/developer/in-production/?role=administrator[I'm an Administrator] - - -[.secondary.leading.flex-container.no-arrows] - -== Getting Started - -[.column] -=== 1. Run Neo4j - -Start by link:/try-neo4j/?ref=developer-lp[using Neo4j Sandbox for free^]. -Alternatively: - -* link:#[Install Neo4j Desktop] -* link:#[Use Neo4j Aura in the Cloud] -* link:#[Run with Docker] -* link:#[The Neo4j Graph Platform] - -[.column] -=== 2. Query Data - -Get an example data set, or model and import your own data. -Then query your graph to solve your problem. - -* link:#[The Cypher Query Language] -* link:#[Graph Data Modeling] -* link:#[Importing Data into Neo4j] - -[.column] -=== 3. Build your application - -Use the link:#[Neo4j tools] to access your data or develop an application your favorite programming language. - - -* link:#[Drivers & Language Guides] -* link:#[Neo4j Browser], link:#[Neo4j Bloom] -* link:#[Graph Visualization] - -== What is a Graph Database (in under 10 Minutes) - -video::REVkXVxvMQE[youtube] - -[.secondary.flex-container.use-cases.no-arrows] -== Start with an Example - -// * Fraud Detection & Analytics -// * Network and Database Infrastructure Management -// * Recommendation Engines -// * Master Data Management -// * Social Media and Social Network Graphs -// * Identity and Access Management - - -[.column] -// === Social Networking - -// image:diagram.png[JavaScript & Node.js] - -// Joe knows Sally, and Sally knows Anna. Bob is excluded from the result because, in addition to being a 2nd-degree friend through Sally, he's also a first-degree friend. -// Pad the content out by a couple of lines to even things up. - -// link:#[Create a Free Social Sandbox, role=more information] - -=== Movie Recommendations - -image:https://neo4jsandbox.com/img/recommendations-icon-pink.png[Create a Movie Recommendations Sandbox,link="https://sandbox.neo4j.com/?usecase=recommendations&ref=developer-lp"] - -Generate personalized real-time recommendations using a dataset of movie reviews. - -// link:https://sandbox.neo4j.com/?usecase=movies[Create a free Movies Sandbox, role=more information^] -link:https://sandbox.neo4j.com/?usecase=recommendations&ref=developer-lp[Create a Movie Recommendations Sandbox, role=more information^] - - - -[.column] -=== Network Management - -image:https://neo4jsandbox.com/img/network-management-icon-grey.png[Create a Neo4j Network Management Sandbox,link="https://sandbox.neo4j.com/?usecase=recommendations&ref=developer-lp"] - -Dependency and root cause analysis for network and IT management. - - -link:https://sandbox.neo4j.com/?usecase=network-management&ref=developer-lp[Create a Network Management Sandbox, role=more information^] - -[.column] -=== Fraud Detection - -image:fraud-detection-icon.png[Create a Fraud Detection Sandbox,link="https://sandbox.neo4j.com/?usecase=recommendations&ref=developer-lp"] - -Fraud detection with a financial transactions dataset, the Neo4j Graph Data Science Library, and Neo4j Bloom visualization. - -link:https://sandbox.neo4j.com/?usecase=fraud-detection&ref=developer-lp[Create a Fraud Detection Sandbox, role=more information] - - -[.discrete.secondary] -== GraphGist Project - -link:https://sandbox.neo4j.com/[Explore the other Sandbox Examples^, role=button] -link:/graphgists/[View 100+ Graph examples by Industry and Use Case^, role=button]   - - -// [.secondary.flex-container.languages] -// == Building Applications - -// [.column] -// === Java - -// image:java.png[Java] - -// * link:#[Neo4j Java Example] -// * link:#[Spring Data Neo4j] -// * link:#[Procedures and Functions] - -// [.column] -// === Node.js - -// image:javascript.png[JavaScript & Node.js] - -// * link:#[Neo4j JavaScript Example] -// * link:#[TypeScript] - -// [.column] -// === .NET - -// image:net.png[.NET] - -// * link:#[Neo4j .NET Example] -// * link:#[Neo4jClient] - -// [.column] -// === Python - -// image:python.png[Python] - -// * link:#[Neo4j Python Example] -// * link:#[Py2Neo] - -// [.column] -// === Go - -// image:go.png[Go] - -// * link:#[Neo4j Go Example] - - -// [.community-language] -// === Community Drivers - -// link:#[Ruby] | link:#[Perl] | link:#[PHP] | link:#[Erlang] - - -== Code Examples by Language - -Neo4j officially supports drivers for link:#[.Net], link:#[Java], link:#[Node.js], link:#[GoLang] and link:#[Python]. -Our community contributors provide many more, including link:#[PHP], link:#[Ruby], link:#[R], link:#[Erlang] and link:#[Clojure]. - -[.tabs] -[source,Java] ----- -include::https://raw.githubusercontent.com/neo4j-graph-examples/template/main/code/java/Example.java[] ----- - -.Node.js -[source,javascript] ----- -include::https://raw.githubusercontent.com/neo4j-graph-examples/template/main/code/javascript/example.js[] ----- - -[source,Python] ----- -include::https://raw.githubusercontent.com/neo4j-graph-examples/template/main/code/python/example.py[] ----- - -[source,Go] ----- -include::https://raw.githubusercontent.com/neo4j-graph-examples/template/main/code/go/example.go[] ----- - -..NET -[source,c] ----- -include::https://raw.githubusercontent.com/neo4j-graph-examples/template/main/code/csharp/Example.cs[] ----- - -You can learn more in our link:#[Drivers & Language Guides] or link:https://github.com/neo4j-examples[view example projects on Github, role=more information] - -== Neo4j Community Forum - -If you're ever stuck and need help, head over to the link:https://community.neo4j.com[Neo4j Community Site^]. -We have an active community of experts who are more than happy to answer your questions. - -Why not join our community and link:https://community.neo4j.com/c/general/introduce-yourself/7[introduce yourself]? -Do you have a side-project or idea and would like to link:https://community.neo4j.com/c/projects-collaboration/9[find collaborators^]? - -[.flex-container.secondary.no-bullets] -== Resources for Learning Neo4j - -[.column] -=== Learn - -* link:/graphacademy/online-training[Online Training^] -* link:/graphacademy/neo4j-certification/[Neo4j Certification^] -* link:https://medium.com/neo4j[Developer Blog^] - -[.column] -=== Watch - -* link:#[Intro Video Series] -* link:https://youtube.com/neo4j[Neo4j YouTube Channel^] -* link:https://neo4j.com/developer/online-meetup/[Livestreams on Twitch^] - -[.column] -=== Interact - -* link:https://meetup.com/Neo4j-Online-Meetup/[Online Meetups^] -* link:https://stackoverflow.com/questions/tagged/neo4j[Stack Overflow^] -* link:https://twitter.com/neo4j[Twitter^] diff --git a/preview-src/docs-explainer.adoc b/preview-src/docs-explainer.adoc deleted file mode 100644 index 7f0ef340..00000000 --- a/preview-src/docs-explainer.adoc +++ /dev/null @@ -1,174 +0,0 @@ -= Import your data -:page-layout: docs-ndl -:page-theme: docs -:page-role: explainer -:page-show-home-link: true -:page-hide-nav-title: true -// :page-disablefeedback: true -:page-toclevels: 0 - - -ifndef::backend-pdf[] -++++ -
- -
-++++ -endif::[] - - - -[.cards.selectable] -== How to use your own data on a graph database - -This section is designed to help you learn how to import various types of data into Neo4j. From JSON to APIs to another database, you can retrieve data from nearly any source and use it to populate your graph. - - -[role=label--new-5.12] -=== `LOAD CSV` -[.icon] -image:icons/ndl/icon-import.svg[] - -[.description] -Use Cypher for importing bulk data into Neo4j. Suited for non-admin users. - -[.link] -link:https://www.neo4j.com/docs/cypher-manual/current/clauses/load-csv/[Load CSV] - - -[.labs.label--labs] -=== From relational into graph - -[.icon] -image:icons/ndl/icon-csvtodb.svg[] - -[.description] -Learn how to translate and migrate tabular data and relational datasets into a graph database. - -[.link] -link:https://www.neo4j.com/docs/data-import/relational-to-graph-import/[Relational to graph] - - -[.not-selectable] -=== Neo4j Connectors - -[.icon] -image:icons/ndl/icon-connectors.svg[] - -[.description] -Learn how to use connectors to connect data from various sources into Neo4j. - -[.link] -link:https://www.neo4j.com/docs/connectors/[Connectors] - - -[.label--graph-academy.label--featured] -=== Graph Academy - -[.icon] -image:icons/ndl/icon-neo4j.svg[] - -[.description] -Start using Neo4j's tool for importing data and get started quickly with testing and prototyping. - -[.link] -link:https://www.neo4j.com/docs/data-importer/current/[Data importer] - -=== Neo4j Admin Import - -[.icon] -image:icons/ndl/icon-admin.svg[] - -[.description] -Use Neo4j admin import for initial loading of large amounts of data. - -[.link] -link:https://www.neo4j.com/docs/operations-manual/current/tools/neo4j-admin/neo4j-admin-import/#import-tool-full[Import admin] - -=== APOC - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.description] -Learn how to import data from various data formats, including JSON, XML, and XLS using the APOC library. - -[.link] -link:https://www.neo4j.com/docs/apoc/current/import/[Import data using APOC Core] - - -[.cards.selectable] -== Keep exploring - - -[.graph-academy.label--graph-academy.label--featured] -=== GraphAcademy - -[.icon] -image:icons/ndl/icon-graphacademy.svg[] - -[.description] -Learn how to import CSV data into Neo4j using Cypher. - -[.link] -link:https://graphacademy.neo4j.com/courses/importing-cypher/[GraphAcademy: Importing CSV data into Neo4j] - - -=== Import CSV data with Neo4j Desktop - -[.icon] -image:icons/ndl/icon-import.svg[] - -[.description] -Learn how to use CSV files to import data to a graph with Neo4j Desktop. - -[.link] -link:https://www.neo4j.com/docs/getting-started/appendix/tutorials/guide-import-desktop-csv/[How-To: Import CSV data with Neo4j Desktop] - - -=== Importing JSON data from a REST API into Neo4j - -[.icon] -image:icons/ndl/icon-neo4j.svg[] - -[.description] -See techniques for loading data from JSON-based REST APIs into Neo4j. - -[.link] -link:https://www.neo4j.com/docs/getting-started/data-import/json-rest-api-import/[Importing JSON data from a REST API into Neo4j] - - - -[.next-steps] -== Keep exploring - -Here are some recommended resources start importing your data: - -* link:https://graphacademy.neo4j.com/courses/importing-cypher/[GraphAcademy: Importing CSV data into Neo4j] -+ -Learn how to import CSV data into Neo4j using Cypher. - -* link:https://www.neo4j.com/docs/getting-started/appendix/tutorials/guide-import-desktop-csv/[How-To: Import CSV data with Neo4j Desktop] -+ -Learn how to use CSV files to import data to a graph with Neo4j Destktop. - -* link:https://www.neo4j.com/docs/getting-started/data-import/json-rest-api-import/[Importing JSON data from a REST API into Neo4j] -+ -See techniques for loading data from JSON-based REST APIs into Neo4j. - -[.next-steps] -== Keep exploring - -Here are some recommended resources start importing your data: - -. link:https://graphacademy.neo4j.com/courses/importing-cypher/[GraphAcademy: Importing CSV data into Neo4j] -+ -Learn how to import CSV data into Neo4j using Cypher. - -. link:https://www.neo4j.com/docs/getting-started/appendix/tutorials/guide-import-desktop-csv/[How-To: Import CSV data with Neo4j Desktop] -+ -Learn how to use CSV files to import data to a graph with Neo4j Destktop. - -. link:https://www.neo4j.com/docs/getting-started/data-import/json-rest-api-import/[Importing JSON data from a REST API into Neo4j] -+ -See techniques for loading data from JSON-based REST APIs into Neo4j. diff --git a/preview-src/docs-hub.adoc b/preview-src/docs-hub.adoc deleted file mode 100644 index 792a443a..00000000 --- a/preview-src/docs-hub.adoc +++ /dev/null @@ -1,104 +0,0 @@ -= Neo4j Tools -:page-theme: docs -:page-role: hub -:page-layout: docs-ndl -:page-show-home-link: true -:page-hide-nav-title: true -// :page-disablefeedback: true -:page-toclevels: -1 - -[.cards] - -== Developer tools documentation - -Use Neo4j tools to query and manage your databases, import data, and create graphical visualizations. - -=== Neo4j Bloom/Explore - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.description] -Visualize and explore graph data using natural language search and an intuitive and graphical interface. - -[.link] -link:{docs-home}/bloom-user-guide/[Neo4j Bloom] + -link:{docs-home}/aura/preview/explore/introduction/[Explore (Aura)] - -=== Neo4j Browser/Query - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.description] -Write and execute Cypher queries and visualize the results in nodes and relationships. - -[.link] -link:{docs-home}/browser-manual/[Neo4j Browser] + -link:{docs-home}/aura/preview/query/introduction/[Query (Aura)] - -[.selectable] - -=== Neo4j Data Importer - -[.category] -Neo4j Data Importer - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.description] -Learn how to model and import data to your Neo4j database. - -[.link] -link:{docs-home}/data-importer[] -link:{docs-home}/data-importer[] - -[.selectable] - -=== Neo4j Desktop - -[.category] -Neo4j Desktop - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.description] -Learn how to experience Neo4j on your local desktop. - -[.link] -link:{docs-home}/desktop-manual[] - -[.selectable] - -=== Neo4j Ops Manager - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.category] -Neo4j Ops Manager - -[.description] -Learn how to monitor, administer, and operate all of the Neo4j DBMSs in an Enterprise with Neo4j Ops Manager. - -[.link] -link:{docs-home}/ops-manager[] - -[.display.next-steps] -== Keep exploring - -Here are some recommended resources to get started with data visualization: - -. link:https://neo4j.com/developer-blog/15-tools-for-visualizing-your-neo4j-graph-database/[*15 Tools for Visualizing Your Neo4j Graph Database*] -+ -Read an overview of the graph visualization landscape. - -. link:https://medium.com/neo4j/showing-charts-for-neo4j-query-results-using-amcharts-and-structr-efae0b7a04f0[*Showing Charts for Neo4j Query Results using amCharts and Structr*] -+ -Learn how to render a bar chart based upon the example movies graph. - -. link:https://medium.com/neo4j/working-with-neo4j-date-and-spatial-types-in-a-react-js-app-5475b5042b50[*Working With Neo4j Date And Spatial Types In A React.js App*] -+ -Learn how to build a dashboard app with Neo4j, Mapbox, React, and Nivo Charts. \ No newline at end of file diff --git a/preview-src/docs-ndl.adoc b/preview-src/docs-ndl.adoc deleted file mode 100644 index 273ca337..00000000 --- a/preview-src/docs-ndl.adoc +++ /dev/null @@ -1,231 +0,0 @@ -= Neo4j documentation -:page-layout: docs-ndl -:page-role: hub -:page-theme: docs -:page-hide-nav-title: true -:!page-show-home-link: -:!toc: -:page-toclevels: -1 - - -[.widget.banner.start] -== Getting started - -// [.icon] -// image:icons/ndl/start.svg[] - --- -[.caption] -Get started with Neo4j - -[.description] -Learn more about graph databases and start working with your data using Neo4j tools. - -[.button] -xref:tutorials:index.adoc[Get started] --- - -[.cards.selectable] -== CTA cards - -[role=label--featured] -=== Deployment options - -[.icon.icon-l] -image:icons/ndl/deployment-options.svg[] - -[.description] -Choose from self-managed local and cloud deployments, or fully-managed options. - -[.link.display] -link:https://www.neo4j.com/docs/deployment-options[Get a Neo4j instance] - -=== Cypher - -[.icon.icon-l] -image:icons/ndl/cypher-manual.svg[] - -[.description] -Learn how to write Cypher, Neo4j's declarative query language. - -[.link.display] -link:https://www.neo4j.com/docs/cypher-manual/[Query your data] - -=== Neo4j Tools - -[.icon.icon-l] -image:icons/ndl/neo4j-tools.svg[] - -[.description] -Use Neo4j's tools to explore, visualize, manage, monitor, and import data to your graph. - -[.link.display] -link:https://www.neo4j.com/docs/tools[Discover the products] - -=== Graph Data Science - -[.icon.icon-l] -image:icons/ndl/data-science.svg[] - -[.description] -Run graph algorithms and machine learning models to analyze your data at scale. - -[.link.display] -xref:gds:index.adoc[Unlock insights from data] - -=== Create applications - -[.icon.icon-l] -image:icons/ndl/create-applications.svg[] - -[.description] -Discover the client libraries and APIs to develop applications with Neo4j and AuraDB. - -[.link.display] -xref:create-applications:index.adoc[Start developing] - -=== Connect data sources - -[.icon.icon-l] -image:icons/ndl/connectors.svg[] - -[.description] -Learn how to use connectors and other tools to connect Neo4j with other data sources. - -[.link.display] -xref:connectors:index.adoc[Connect to Neo4j] - - -[.widget.lists] -== Tailored for you - -[.caption] -Keep exploring - -=== Developer - -[.icon] -image:icons/ndl/icon-developer.svg[] - -[.list] -* xref:deployment-options:index.adoc[Choose your deployment] -* link:{docs-home}/getting-started/cypher-intro/[Learn Cypher] -* link:{docs-home}/cypher-manual/current/queries/[Start querying] -* link:{docs-home}/create-applications/[Create applications] -* link:{docs-home}/connectors/[Connect data sources] -* xref:genai:index.adoc[Integrate GenAI functions] -* link:{docs-home}/cypher-manual/current/planning-and-tuning/query-tuning/[Improve app performance] -* link:{docs-home}/java-reference[Extend Neo4j] - -=== Database Admin - -[.icon] -image:icons/ndl/icon-admin.svg[] - -[.list] -* link:{docs-home}/operations-manual/current/database-administration/[Manage your database] -* link:{docs-home}/operations-manual/current/clustering/[Deploy and manage a cluster] -* link:{docs-home}/operations-manual/current/database-internals/[Database internals] -* link:{docs-home}/operations-manual/current/authentication-authorization/[Manage users, roles, and privileges] -* link:{docs-home}/operations-manual/current/monitoring/[Monitor your database] -* link:{docs-home}/operations-manual/current/backup-restore/[Backup and restore] -* link:{docs-home}/upgrade-migration-guide/current/[Upgrade and migration] - -=== Data Scientist - -[.icon] -image:icons/ndl/icon-scientist.svg[] - -[.list] -* link:{docs-home}/graph-data-science/current/getting-started/[Analyze your data] -* link:{docs-home}/graph-data-science/current/production-deployment/[Set up your deployment] -* link:{docs-home}/bloom-user-guide/current/bloom-tutorial/gds-integration/[Create data visualizations] -* link:{docs-home}/graph-data-science/current/machine-learning/machine-learning/[Use machine learning algorithms] -* link:{docs-home}/graph-data-science-client/current/[Set up a Python client] -* link:{docs-home}/graph-data-science/current/management-ops/[Manage your graph] - - -=== Data Engineer - -[.icon] -image:icons/ndl/icon-engineer.svg[] - -[.list] -* link:{docs-home}/getting-started/appendix/graphdb-concepts/[Graph database concepts] -* link:{docs-home}/model/[Model your data] -* link:{docs-home}/connectors/[Connect data sources] -* link:{docs-home}/import/[Import your dataset] -* link:{docs-home}/cdc/current/[Monitor data changes] -* link:{docs-home}/getting-started/data-modeling/data-modeling-tools/[Data modeling tools] - -[.widget.highlights] -== Tutorials & How-to guides - -[.icon] -image:icons/ndl/highlights.svg[] - --- -[.caption] -Tutorials & How-to guides - -[.list] -* link:{docs-home}/genai/tutorials/embeddings-vector-indexes/[Embedding & Vector Indexes Tutorial] -* link:{docs-home}/getting-started/appendix/tutorials/guide-import-relational-and-etl/[Import data from a relational database into Neo4j] -* link:{docs-home}/getting-started/appendix/tutorials/guide-build-a-recommendation-engine/[Build a Cypher recommendation engine] -* link:{docs-home}/operations-manual/current/tutorial/tutorial-composite-database/[Set up and use a composite database] -* link:{docs-home}/cdc/current/procedures/query-examples/[Capture and track changes in real-time] -* link:{docs-home}/graph-data-science-client/current/tutorials/centrality-algorithms/[Apply centrality algorithms to your graph] - -[.footer-link] -xref:tutorials:index.adoc[All tutorials] --- - -[.widget.highlights] -== GraphAcademy courses - -[.icon] -image:icons/ndl/ga-home.svg[] - --- -[.caption] -GraphAcademy courses - -[.list] -* link:{docs-home}/genai/tutorials/embeddings-vector-indexes/[Embedding & Vector Indexes Tutorial] -* xref:{docs-home}/getting-started/tutorials/import-relational/[Import data from a relational database into Neo4j] -* xref:{docs-home}/getting-started/tutorials/recommendation-engine/[Build a Cypher recommendation engine] -* link:{docs-home}/operations-manual/current/tutorial/tutorial-composite-database/[Set up and use a composite database] -* link:{docs-home}/cdc/current/procedures/query-examples/[Capture and track changes in real-time] -* link:{docs-home}/graph-data-science-client/current/tutorials/centrality-algorithms/[Apply centrality algorithms to your graph] - -[.footer-link] -xref:tutorials:index.adoc[All tutorials] --- - - -[.cards.bottom-cards] -== Other resources - -=== Join forums and discussions - -[.icon] -image:icons/ndl/icon-community.svg[] - -[.link] -link:https://community.neo4j.com/[Community forum] -link:https://discord.com/invite/neo4j[Discord] - -=== Dev blogs, articles, and books - -[.icon] -image:icons/ndl/icon-developercenter.svg[] - -[.link] -link:https://neo4j.com/developer-blog/[Developer blog] link:https://www.neo4j.com/docs/reference/resources[Other resources] - - - - -// == License - -// © 2024 license: link:{docs-home}/license[Creative Commons 4.0] \ No newline at end of file diff --git a/preview-src/docs-roles.adoc b/preview-src/docs-roles.adoc deleted file mode 100644 index 25738880..00000000 --- a/preview-src/docs-roles.adoc +++ /dev/null @@ -1,349 +0,0 @@ -= Docs roles with a long title -:page-role: alpha aura-db-dedicated beta deprecated-5.17 invented-label new-5.17 not-on-aura -:page-theme: docs -:page-banner: warning -:page-banner-text: Lorem ipsum dolor sit est. -:page-banner-link: https://neo4j.com/docs -:page-banner-link-text: Link text -:page-product: Neo4j -// :page-labels: fabric enterprise-edition alpha test - -[abstract] --- -Flags sections as Not Available on Aura, Aura DB Enterprise, Enterprise Edition, Fabric, and Deprecated --- - -This page has the `:page-product:` attribute set to `Neo4j`. -By default, labels that related to a version of a product have `Neo4j` prepended to the version number. - -For example, `label--beta-until-5.12` is displayed as `Beta until Neo4j 5.12`. - -To override this value, include the product name in the label. -For example, `label--beta-until-bolt-1.0` is displayed as `Beta until Bolt 1.0`. - -For a list of all roles, see `src/js/data/rolesData.json`. - -[role=test-role] -Paragraph with non-label role. - - -[role=label--beta-until-bolt-1.0 label--removed-2.0] -== Adding a product name to versioned labels - - -[role=label--beta-until-1.0 label--dynamic-5.22 label--dynamic] -[[messages-ack-failure]] -=== Request message `ACK_FAILURE` - -The request message `ACK_FAILURE` signals to the server that the client has acknowledged a previous failure and should return to a `READY` state. - - -[role=label--new-5.11 label--beta-until-5.12] -== Beta until - -Lorem ipsum. - - -[role="label--new-5.17 label--enterprise-edition"] -== Relationship property type constraints - -Blocks with the appropriate roles have labels added. - -[discrete] -[role="label--new-5.17 label--enterprise-edition"] -=== (Discrete) H3 AuraDB Virtual Dedicated Cloud AND Not on Aura - -Labels are not displayed for discrete headers. - - -[role=label--aura-db-dedicated label--aura-db-business-critical label--not-on-aura] -=== H3 AuraDB Virtual Dedicated Cloud AND Not on Aura - -Lorem ipsum dolor sit - -Open blocks can be used to mark multiple paragraphs within a section. - -[role=label--dynamic-5.17] --- -Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. - -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. --- - - -This is a normal paragraph. - -The next paragraph has a label, but it's not one we support. - -[role=label--invented-label] -Lorem ipsum dolor sit amet, consectetur adipiscing elit. - -[role=label--enterprise-edition] -Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. - -[role=label--deprecated-5.17] -. list with label -. item 2 -. item 3 - -These labels from roles should be used for block elements only. -For inline elements, use a label. - - -=== Code - -Intro para - -[role=label--deprecated-5.17] -.Title -[source, shell] ----- -How does a label look on a code block? ----- - - -=== Examples - -Intro para - -[role=label--new-5.17] -.This is a short one -[example] -==== -Lorem Ipsunm -==== - - -=== Tables - -Intro para - -[[procedure_db_create_setVectorProperty]] -[role=label--admin-only label--deprecated-5.9] -.db.create.setVectorProperty() -[cols="<15s,<85"] -|=== -| Description -a| -Set a vector property on a given node in a more space efficient representation than Cypher’s link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/set#set-set-a-property[`SET`]. -| Signature -m| db.create.setVectorProperty(node :: NODE, key :: STRING, vector :: LIST) :: (node :: NODE) -| Mode -m|WRITE -| Replaced by -a|xref:reference/procedures.adoc#procedure_db_create_setNodeVectorProperty[`db.create.setNodeVectorProperty()`] -|=== - - - -[role=label--not-on-aura] -== Not on `code test` Aura - -Lorem ipsum dolor `code test` sit - -Roles can be added anywhere, for example this definition list item has a role. - -[enterprise-edition]#Pipelined#:: -In the _pipelined_ runtime, the operators are grouped into pipelines in the execution plan to generate new combinations and orders of execution, which are optimized for performance and memory usage. - -And so does this table - -[options="header",cols="2m,2a,^1a"] -|=== -|Option -|Description -|Default - -|`runtime=slotted` -|Forces the Cypher query planner to use the _slotted_ runtime. -|Default for Community Edition. - -|[enterprise-edition]#runtime=pipelined# -| Forces the Cypher query planner to use the _pipelined_ runtime. -| Default for Enterprise Edition. -|=== - - -[role=label--aura-db-dedicated] -== AuraDB Virtual Dedicated Cloud - -Lorem ipsum dolor sit - - -[role=label--aura-db-dedicated label--not-on-aura] -== H2 AuraDB Virtual Dedicated Cloud AND Not on Aura - -Lorem ipsum dolor sit - - -== H2 with no roles - -Lorem ipsum dolor sit - - -[role=label--aura-db-dedicated label--not-on-aura] -=== H3 AuraDB Virtual Dedicated Cloud AND Not on Aura - -Lorem ipsum dolor sit - -[role=label--aura-db-dedicated label--not-on-aura] -=== H4 show roles - -Lorem ipsum dolor sit - - -[role=label--fabric] -== Fabric Heading - -Lorem ipsum - -[role=label--enterprise-edition] -== Enterprise Edition content - -Lorem ipsum - -=== H3 inside labeled section - -Lorem ipsum - -==== H4 inside labeled section - -[role=label--deprecated] -== Deprecated content - -Other blocks can have deprecated roles added. - -.Example block title -==== -Example 1 content - this example is not deprecated. - -This is a second paragraph in the example. - -This is the third. -==== - -[role=label--deprecated] -.Example 2 title -==== -Example 2 content - this example is deprecated -==== - -[role=label--alpha] -== Alpha content - - -[.alpha-symbol] -[.tier-note] -This algorithm is in the alpha tier. -For more information on algorithm tiers, see <>. - -=== Third level heading in Alpha section - -Lorem ipsum - - -[role=label--beta] -== Beta content - - -[.beta-symbol] -[.tier-note] -This algorithm is in the beta tier. -For more information on algorithm tiers, see <>. - - -=== Third level heading in Beta section - -Lorem ipsum - - -[role=label--deprecated] -== Deprecated content - -Lorem ipsum - - -=== Third level heading in Deprecated section - -Lorem ipsum - - -== Function symbol - -[opts=header,cols="1, 1"] -|=== -|Description | Operation -.2+<.^| Check if a named graph exists -| `gds.graph.exists` -a| [.function-reference]`_gds.graph.exists_` - -|=== - -== GDS Graph Variants Styling - - -.Graph variants support -[.graph-variants, caption=] --- -[.not-supported] -Directed - -[.supported] -Undirected - -[.supported] -link:example.com[Heterogeneous nodes] - -[.allowed] -Heterogeneous relationships - -[.not-supported] -Weighted relationships --- - -== List of procedures - -.Neo4j procedures -[options=header, cols="<70,<30"] -|=== -| Name | - -| <> -| +++ -Enterprise Edition -+++ - -| <> -| +++ -Admin only -+++ - -|=== - -== Examples - -=== Copying the data store of a database - -You can use `neo4j-admin database copy` to copy the data store of a database, for example, `neo4j`. - -. Stop the database named `neo4j`: -+ -[source, cypher, role=noplay] ----- -STOP DATABASE neo4j ----- - -. Copy the data store from `neo4j` to a new database called `database-copy`. -+ -[TIP] -==== -If you do not need an actual copy of the database, you can use the same values for `` and ``. -The command replaces the original database with the newly created copy. -==== -+ -[source, shell] ----- -bin/neo4j-admin database copy neo4j database-copy ----- diff --git a/preview-src/driver.adoc b/preview-src/driver.adoc deleted file mode 100644 index c5beb27e..00000000 --- a/preview-src/driver.adoc +++ /dev/null @@ -1,172 +0,0 @@ -= Neo4j & Python -:page-theme: docs -:page-role: code-walkthrough -:page-chatbot: http://localhost:3000 -:!toc: - - - -Neo4j provides drivers which allow you to make a connection to the database and develop applications which create, read, update, and delete information from the graph. - - -[.disconnected] -== Installing the Driver - -The latest version of the Neo4j Python Driver can be installed using the `pip` command. - -* link:#[View Package on Pypi] -* link:#[View Code] - -.Installing Dependencies -[source,bash] ----- -pip install neo4j ----- - - -[.first] -== Creating the Driver - -.Using the Neo4j Python Driver -[source,python] ----- -# Import the neo4j dependency -from neo4j import GraphDatabase - -# Create a new Driver instance -driver = GraphDatabase.driver("neo4j://localhost:7687", # <1> - auth=("neo4j", "neo")) # <2> - -# <3> Verify connection details -driver.verify_connectivity() ----- -// [source,python] -// ---- -// include::https://raw.githubusercontent.com/neo4j-graphacademy/app-python/main/example/index.py[tag=import] -// include::https://raw.githubusercontent.com/neo4j-graphacademy/app-python/main/example/index.py[tag=driver] -// ---- - -You should create one <> object per Neo4j instance. -The driver accepts two arguments, *(1)* a connection string and *(2)* an authentication token. - -Once you have created a Driver instance, you can call the *(3)* link:#[`verify_connectivity()`] method to verify that your credentials are correct. - -* link:#[Building a Connection String] -* link:#[Advanced Driver Configuration] -* link:#[Verifying Connectivity] - - -== Open a Session - -// [source,python] -// ---- -// include::https://raw.githubusercontent.com/neo4j-graphacademy/app-python/main/example/index.py[tag=import] -// ---- - -.Opening a Session -[source,python] ----- -with driver.session() as session: - # Run a Cypher Statement within a transaction ----- - -When you want to query Neo4j, you will first open a <>. - -Sessions manage connections between the Driver and the Neo4j instance or cluster. -These are lightweight objects that can be opened and closed with no overhead. - -* link:#[Connecting to a Database] -* link:#[Advanced Session Configuration] - - -== Reading From Neo4j - -// [source,python] -// ---- -// include::https://raw.githubusercontent.com/neo4j-graphacademy/app-python/main/example/index.py[tag=session.readTransaction] -// ---- - -.Reading from Neo4j -[source,python] ----- - # Define a Unit of work to run within a Transaction (`tx`) - def get_movies(tx, title): - return tx.run(""" - MATCH (p:Person)-[:ACTED_IN]->(m:Movie) - WHERE m.title = $title // <1> - RETURN p.name AS name - LIMIT 10 - """, title=title) - - # Execute get_movies within a Read Transaction - session.read_transaction(get_movies, - title="Arthur" # <2> - ) ----- - -To read from a Neo4j Instance you should use the session to create a read transaction. -The session provides a `read_transaction()` method, which should be called with a function represent the <1> unit of work. - -The unit of work has one positional argument, representing the transaction and can accept one or more optional arguments. - - -* link:#[More on Read Transactions] -* link:#[Working with Neo4j Values] - -+ -+ -+ - - -== Write to Neo4j - -// [source,python] -// ---- -// include::https://raw.githubusercontent.com/neo4j-graphacademy/app-python/main/example/index.py[tag=session.writeTransaction] -// ---- - -.Writing to Neo4j -[source,python] ----- - # Call tx.run() to execute the query to create a Person node - def create_person(tx, name): - return tx.run( - "CREATE (p:Person {name: $name})", - name=name - ) ----- - -Neo4j supports <> to ensure that data is data is safely and consistently stored. -A transaction, by definition, must be atomic, consistent, isolated, and durable. - -The `write_transaction()` method provides the user with the ability to execute a unit of work. - -In a <>, your queries will always be routed to the leader of the cluster. - - -* link:#[More on Write Transactions] -* link:#[The `MERGE` keyword] - -[.last] -== Close Connections - -Once you have finished with your Driver instance, you can call the `.close()` method release any resources still held by the instance. - -.Close the Connection -[source,python] -driver.close() - -* link:#[The Driver Lifecycle] - - -[discrete.glossary] -== Glossary - -[glossary] -[[Driver]]Driver:: Lorem ipsum dolor sit amet, consectetur adipiscing elit. -[[Session]]Session:: Duis porta erat vestibulum placerat venenatis. -[[Transaction]]Transaction:: Morbi blandit accumsan risus in sodales. -[[ACID]]ACID Transactions:: In vel molestie massa. Curabitur sollicitudin quis purus dapibus accumsan. -+ -Donec in vestibulum velit. Donec in iaculis nulla. -[[Cluster]]Neo4j Cluster:: Duis porta erat vestibulum placerat venenatis. \ No newline at end of file diff --git a/preview-src/drivers-apis.adoc b/preview-src/drivers-apis.adoc deleted file mode 100644 index afee603a..00000000 --- a/preview-src/drivers-apis.adoc +++ /dev/null @@ -1,122 +0,0 @@ -[.drivers-apis] -= Neo4j documentation - Drivers and APIs -:page-layout: docs-ndl -:page-theme: docs -:!toc: -:page-toclevels: -1 - -[.display] -== Neo4j Drivers - -=== Neo4j Go Driver documentation - -[.category] -Neo4j Driver - -[.icon] -image:go-logo.svg[] - -[.link] -link:{docs-home}/go-manual[Get started] - -=== Neo4j Java Driver documentation - -[.category] -Neo4j Driver - -[.icon] -image:java-logo.svg[] - -[.link] -link:{docs-home}/java-manual[Get started] - -=== Neo4j JavaScript Driver documentation - -[.category] -Neo4j Driver - -[.icon] -image:js-logo.svg[] - -[.link] -link:{docs-home}/javascript-manual[Get started] - -=== Neo4j Python Driver documentation - -[.category] -Neo4j Driver - -[.icon] -image:python-logo.svg[] - -[.link] -link:{docs-home}/python-manual[Get started] - -=== Neo4j .NET Driver documentation - -[.category] -Neo4j Driver - -[.icon] -image:dotnet-logo.svg[] - -[.link] -link:{docs-home}/dotnet-manual[Get started] - -[.display] -== APIs and connectors - -=== Neo4j GraphQL Library documentation - -[.category] -Neo4j GraphQL Library - -[.icon] -image:graphql-logo.svg[] - -[.link] -link:{docs-home}/graphql-manual[Get started] - -=== Neo4j HTTP API documentation - -[.category] -Neo4j API - -[.icon] -image:neo4j-logo.svg[] - -[.link] -link:{docs-home}/http-api[Get started] - -=== Neo4j-OGM documentation - -[.category] -Object Graph Mapping - -[.icon] -image:neo4j-logo.svg[] - -[.link] -link:{docs-home}/ogm-manual[Get started] - -=== Spring Data Neo4j documentation - -[.category] -Spring Data Neo4j - -[.icon] -image:spring-logo.svg[] - -[.link] -link:https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/[Get started] - -=== Neo4j Connector for Apache Spark documentation - -[.category] -Apache Spark connector - -[.icon] -image:Apache_Spark_logo.svg[] - -[.link] -link:{docs-home}/spark/current[Get started] diff --git a/preview-src/drivers-tabs.adoc b/preview-src/drivers-tabs.adoc deleted file mode 100644 index fde7e09b..00000000 --- a/preview-src/drivers-tabs.adoc +++ /dev/null @@ -1,558 +0,0 @@ -= Tabbed sections in Neo4j Manuals - -Up to Neo4j 4.1 the Drivers Manual includes tabs to allow users to choose with driver language sections to display. -From 4.2 on, the Drivers Manual is split into a separate manual per language. - -GDS also uses tabs, but they have a different list of tab separators. Rather than tab on languages, they tab on modes (mutate, stats, stream, train, write) and output tab text as _ mode_ eg _Stream mode_. - -[.tabbed-example] -==== -[.include-with-macos] -[[mac-os-bit]] -====== -Tab for macOS -====== -[.include-with-linux] -[[linux-bit]] -====== -Tab for Linux -====== -[.include-with-windows] -====== -Tab for Linux -====== -[.include-with-whatever] -====== -Tab for whatever -====== -==== - -== Example drivers manual content - -.Acquire the driver -[.tabbed-example] -==== - -[.include-with-dotnet] -====== - -The .NET driver is distributed via the NuGet Gallery. -To find the latest version of the driver, visit https://www.nuget.org/packages/Neo4j.Driver/. - -*Dependencies* - -* .NETStandard (^2.0) -* System.Net.NameResolution (^4.3.0) -* System.Net.Security (^4.3.2) -* System.Net.Sockets (^4.3.0) -* System.Runtime.InteropServices.RuntimeInformation (^4.3.0) -* System.Runtime.Serialization.Primitives (^4.3.0) -* System.Threading.Thread (^4.3.0) -* System.ValueTuple (^4.5.0) - -The .NET Reactive API is under package `Neo4j.Driver.Reactive`. -It is built upon https://github.com/dotnet/reactive[`System.Reactive`]. -There is no extra dependency required use .NET reactive API. - -.Installation via Install-package -======== -To install the latest version of the driver using NuGet in Visual Studio: - -[source, csharp, subs="attributes, specialcharacters"] ----- -PM> Install-Package Neo4j.Driver ----- - -It is also an option to install a certain version of the driver. - -[source, csharp, subs="attributes, specialcharacters"] ----- -PM> Install-Package Neo4j.Driver -Version $DOTNET_DRIVER_VERSION ----- - -The .Net driver uses asynchronous methods by default. -If you want to use blocking calls, the `Neo4j.Driver.Simple` NuGet package contains a set of extensions. -This can be found at https://www.nuget.org/packages/Neo4j.Driver.Simple/. -The initial examples make use of these extensions. - -In the following example we are installing driver version {dotnet-driver-version}. - -[source, csharp, subs="attributes, specialcharacters"] ----- -PM> Install-Package Neo4j.Driver -Version {dotnet-driver-version} ----- -======== - -The release notes for this driver are available https://github.com/neo4j/neo4j-dotnet-driver/releases[here]. - -====== - -[.include-with-go] -====== - -To find out the latest version of the driver, visit https://github.com/neo4j/neo4j-go-driver/releases - -======== - -To install the latest version of the driver using `go get`: - -[source, shell, subs="attributes, specialcharacters"] ----- -go get github.com/neo4j/neo4j-go-driver/v4@ ----- -Note that this requires that Go modules are enabled. - -======== - -====== - -[.include-with-java] -[[java-bit]] -====== - -To use the Java driver, it is recommended employing a dependency manager, such as Maven or Gradle. -To find the latest version of the driver, visit the https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.neo4j.driver%22%20AND%20a%3A%22neo4j-java-driver%22[Maven Central Repository]. - -*Dependencies* - -* org.reactivestreams:reactive-streams -* org.apache.logging.log4j:log4j (optional) - -The driver is dependent on the https://www.reactive-streams.org/[Reactive Streams API], thus maintaining JDK 8 compatibility. -To make optimal use of the reactive APIs, we suggest an additional framework like Project Reactor or RxJava2. -Both implement the Reactive Streams API and provide an exhaustive set of operators. - - -.Installation via Maven -======== - -When using Maven, add the following block to the _pom.xml_ file. -The driver version can either be declared as a property (as in the first example) or as an explicit version number (as in the second). - -[source, xml, subs="attributes, specialcharacters"] ----- - - - org.neo4j.driver - neo4j-java-driver - $JAVA_DRIVER_VERSION - - ----- - -In the following example, driver version {java-driver-version} is added. - -[source, xml, subs="attributes, specialcharacters"] ----- - - - org.neo4j.driver - neo4j-java-driver - {java-driver-version} - - ----- -======== - -.Installation via Gradle -======== - -For Gradle, a compile line will be required. Again, this can use a property or an explicit version number. - -[source, groovy, subs="attributes, specialcharacters"] ----- -compile 'org.neo4j.driver:neo4j-java-driver:$JAVA_DRIVER_VERSION' ----- - -In the following example, a driver version {java-driver-version} is added. - -[source, groovy, subs="attributes, specialcharacters"] ----- -compile 'org.neo4j.driver:neo4j-java-driver:{java-driver-version}' ----- -======== - -The release notes for this driver are available https://github.com/neo4j/neo4j-java-driver/wiki[here]. - -====== - -[.include-with-javascript] -====== - -To use the JavaScript driver, it is recommended employing `npm`. -To find the latest version of the driver, use: - -[source, shell, subs="attributes, specialcharacters"] ----- -npm show neo4j-driver@* version ----- - -*Dependencies* - -* Babel/Runtime (^7.5.5) -* RxJS (^6.5.2) -* text-encoding-utf-8 (^1.0.2) -* URI-js (^4.2.2) - - -The JavaScript Reactive API is built and exposed via RxJs. -A dependency of RxJs is automatically installed with the driver. - -.Installation via npm -======== - -To install the latest version of the driver: - -[source, shell, subs="attributes, specialcharacters"] ----- -npm install neo4j-driver ----- - -It is also an option to install a certain version of the driver. - -[source, shell, subs="attributes, specialcharacters"] ----- -npm install neo4j-driver@$JAVASCRIPT-DRIVER-VERSION ----- - -In the following example, driver version {javascript-driver-version} is installed. - -[source, shell, subs="attributes, specialcharacters"] ----- -npm install neo4j-driver@{javascript-driver-version} ----- -======== - -The release notes for this driver are available https://github.com/neo4j/neo4j-javascript-driver/wiki[here]. - -====== - -[.include-with-python] -====== - -To find the latest stable version of the Python Driver, visit https://pypi.org/project/neo4j/ - -To find a list of all available releases, visit https://pypi.org/simple/neo4j/ - -To install the latest stable version of the Python Driver: -[source, shell, subs="attributes, specialcharacters"] ----- -pip install neo4j ----- - -It is also an option to install a certain version of the driver. - -.Installation with Python -======== -The following is the syntax for installing a certain version of the Python Driver: -[source, shell, subs="attributes, specialcharacters"] ----- -pip install neo4j==$PYTHON_DRIVER_VERSION ----- - -In the following example we are installing Python Driver version {python-driver-version}. -[source, shell, subs="attributes, specialcharacters"] ----- -pip install neo4j=={python-driver-version} ----- -======== - -.Installation with Python, get Python Driver prerelease -======== -In the following example we get the latest prerelease version: -[source, shell, subs="attributes, specialcharacters"] ----- -pip install neo4 --pre ----- -======== - -The release notes for the Python Driver are available https://github.com/neo4j/neo4j-python-driver/wiki[here] - -====== - -==== - -== Example GDS tabs - -.FastRP syntax per mode -[.tabbed-example] -==== - -[.include-with-stream] -====== - -.Run FastRP in stream mode on a named graph. -[source, cypher] ----- -CALL gds.fastRP.stream( - graphName: String, - configuration: Map -) YIELD - nodeId: Integer, - embedding: List ----- - -.Results -[opts="header"] -|=== -| Name | Type | Description -| nodeId | Integer | Node ID. -| embedding | List | FastRP node embedding. -|=== -====== - -[.include-with-stats] -====== - -.Run FastRP in stats mode on a named graph. -[source, cypher] ----- -CALL gds.fastRP.stats( - graphName: String, - configuration: Map -) YIELD - nodeCount: Integer, - createMillis: Integer, - computeMillis: Integer, - configuration: Map ----- - -.Results -[opts="header",cols="1,1,6"] -|=== -| Name | Type | Description -| nodeCount | Integer | Number of nodes processed. -| createMillis | Integer | Milliseconds for creating the graph. -| computeMillis | Integer | Milliseconds for running the algorithm. -| configuration | Map | Configuration used for running the algorithm. -|=== - -====== - -[.include-with-mutate] -====== - -.Run FastRP in mutate mode on a named graph. -[source, cypher] ----- -CALL gds.fastRP.mutate( - graphName: String, - configuration: Map -) YIELD - nodeCount: Integer, - nodePropertiesWritten: Integer, - createMillis: Integer, - computeMillis: Integer, - mutateMillis: Integer, - configuration: Map ----- - -.Results -[opts="header"] -|=== -| Name | Type | Description -| nodeCount | Integer | Number of nodes processed. -| nodePropertiesWritten | Integer | Number of node properties written. -| createMillis | Integer | Milliseconds for creating the graph. -| computeMillis | Integer | Milliseconds for running the algorithm. -| mutateMillis | Integer | Milliseconds for adding properties to the in-memory graph. -| configuration | Map | Configuration used for running the algorithm. -|=== -====== - -[.include-with-write] -====== - -.Run FastRP in write mode on a named graph. -[source, cypher] ----- -CALL gds.fastRP.write( - graphName: String, - configuration: Map -) YIELD - nodeCount: Integer, - propertiesWritten: Integer, - createMillis: Integer, - computeMillis: Integer, - writeMillis: Integer, - configuration: Map ----- - - -.Results -[opts="header"] -|=== -| Name | Type | Description -| nodeCount | Integer | Number of nodes processed. -| nodePropertiesWritten | Integer | Number of node properties written. -| createMillis | Integer | Milliseconds for creating the graph. -| computeMillis | Integer | Milliseconds for running the algorithm. -| writeMillis | Integer | Milliseconds for writing result data back to Neo4j. -| configuration | Map | Configuration used for running the algorithm. -|=== - -====== - -==== - -== Example GDS with hyphens in the tab name - -.Syntax descriptions of the different operations over node properties -[.tabbed-example, caption = ] -==== - -[.include-with-stream-single-property] -====== -[source, cypher, role=noplay] ----- -CALL gds.graph.streamNodeProperty( - graphName: String, - nodeProperties: String, - nodeLabels: String or List of Strings, - configuration: Map -) -YIELD - nodeId: Integer, - propertyValue: Integer or Float or List of Integer or List of Float ----- - -.Parameters -[opts="header",cols="1,3,1,5"] -|=== -| Name | Type | Optional | Description -| graphName | String | no | The name under which the graph is stored in the catalog. -| nodeProperties | String | no | The node property in the graph to stream. -| nodeLabels | String or List of Strings | yes | The node labels to stream the node properties for graph. -| configuration | Map | yes | Additional parameters to configure streamNodeProperties. -|=== - -.Configuration -[opts="header",cols="1,1,1,7"] -|=== -| Name | Type | Default | Description -| concurrency | Integer | 4 | The number of concurrent threads. Note, this procedure is always running single-threaded. -|=== - -.Results -[opts="header",cols="2,3,5"] -|=== -| Name | Type | Description -|nodeId | Integer | The id of the node. -.^|propertyValue a| -* Integer -* Float -* List of Integer -* List of Float .^| The stored property value. -|=== -====== - -[.include-with-stream] -====== -[source, cypher, role=noplay] ----- -CALL gds.graph.streamNodeProperties( - graphName: String, - nodeProperties: String or List of Strings, - nodeLabels: String or List of Strings, - configuration: Map -) -YIELD - nodeId: Integer, - nodeProperty: String, - propertyValue: Integer or Float or List of Integer or List of Float ----- - -.Parameters -[opts="header",cols="1,3,1,5"] -|=== -| Name | Type | Optional | Description -| graphName | String | no | The name under which the graph is stored in the catalog. -| nodeProperties | String or List of Strings | no | The node properties in the graph to stream. -| nodeLabels | String or List of Strings | yes | The node labels to stream the node properties for graph. -| configuration | Map | yes | Additional parameters to configure streamNodeProperties. -|=== - -.Configuration -[opts="header",cols="1,1,1,7"] -|=== -| Name | Type | Default | Description -| concurrency | Integer | 4 | The number of concurrent threads. Note, this procedure is always running single-threaded. -|=== - -.Results -[opts="header",cols="2,3,5"] -|=== -| Name | Type | Description -|nodeId | Integer | The id of the node. -|nodeProperty | String | The name of the node property. -.^|propertyValue a| -* Integer -* Float -* List of Integer -* List of Float .^| The stored property value. -|=== -====== - -==== - - -== No tab in drivers when only one language - -.Driver example -[.tabbed-example] -==== - -[.include-with-dotnet] -====== -.dotnet code -[source, cypher] ----- -CODE GOES HERE ----- - -====== -==== - -== Tab when only one GDS tab is needed - -.Collapse Path syntax per mode -[.tabbed-example] -==== - -[.include-with-mutate] -====== -.Run Collapse Path in mutate mode on a named graph. -[source, cypher] ----- -CALL gds.alpha.collapsePath.mutate( - graphName: String, - configuration: Map -) -YIELD - createMillis: Integer, - computeMillis: Integer, - mutateMillis: Integer, - relationshipsWritten: Integer, - configuration: Map ----- - -.General configuration for algorithm execution on a named graph. -[opts="header",cols="1,1,1m,1,4"] -|=== -| Name | Type | Default | Optional | Description -| nodeLabels | String[] | ['*'] | yes | Filter the named graph using the given node labels. -| concurrency | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -.Results -[opts="header",cols="1m,1,6"] -|=== -| Name | Type | Description -| createMillis | Integer | Milliseconds for loading data. -| computeMillis | Integer | Milliseconds for running the algorithm. -| mutateMillis | Integer | Milliseconds for adding properties to the in-memory graph. -| relationshipsWritten | Integer | The number of relationships created by the algorithm. -| configuration | Map | The configuration used for running the algorithm. -|=== -====== -==== diff --git a/preview-src/edit-run-cypher.adoc b/preview-src/edit-run-cypher.adoc deleted file mode 100644 index 4b558d55..00000000 --- a/preview-src/edit-run-cypher.adoc +++ /dev/null @@ -1,66 +0,0 @@ -= Run Cypher -:page-feedback: false -:page-includedriver: true -:page-disabletracking: true - -Runs a query against the link:https://demo.neo4jlabs.com:7473[`movies` database on the Neo4j Labs Demo Instance^]. The query runs in a transaction before being rolled back. - - -.Graph Layout -[source,cypher,role=runnable instant graph] -MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) -RETURN p, r, m -LIMIT 10 - - -.Results on pageload: -[source,cypher,role=runnable instant] -MATCH (n) RETURN count(n) // `role=runnable instant` - -.Mixed Results, Multiple Rows and role=editable -[source,cypher,role="runnable editable database:movies"] -MATCH (n:Person)-[r:ACTED_IN]->(m:Movie) -RETURN n, - n.name, - n.born, - id(n) AS id, - m.title, - m.degree, - type(r), - id(r), - r -LIMIT 10 - -.Syntax Error -[source%interactive%runnable,cypher,role=runnable editable] -MATCH (n) RETURN count - -.Write Mode -[source,cypher,role=runnable database:movies mode:write] -MATCH (n) RETURN count(n) - - - -See `src/js/07-runnable-code.js`. At the moment URL, username and password are currently hardcoded: - -[source,js] -window.neo4jDatabaseUri = 'neo4j+s://demo.neo4jlabs.com:7687' -window.neo4jDatabase = 'movies' -window.neo4jDriver = window.neo4j.driver(window.neo4jDatabaseUri, window.neo4j.auth.basic('movies', 'movies')) - - -== Config Options - -* Runnable Statement: -** `[source,role=runnable]` -* Make it editable (Basic editing): -** `[source,role=editable]` -* Session/Query Mode (read, write) -** `[source,role=mode:read]` -** `[source,role=mode:write]` -* Modify DB: -** `[source,role=database:movies]` -** `[source,role=database:fincen]` -** `[source,role=database:etc]` -* Get instant results: -** `[source,role=instant]` \ No newline at end of file diff --git a/preview-src/example.adoc b/preview-src/example.adoc deleted file mode 100644 index c73bb97d..00000000 --- a/preview-src/example.adoc +++ /dev/null @@ -1,154 +0,0 @@ -= Example blocks - -Example blocks should have a background colour in the docs theme - -== Example 1 - -A short example - -.This is a short one -[example] -==== -Lorem Ipsunm -==== - -Some text follows the example - -.This is also short -[example] -==== -Lorem Ipsunm -==== - -And some more text here - -== Example 2 - -A longer example - -.A longer example -[example] -==== -Let's assume there exists a procedure called `myProc`. - -This procedure gives the result `A` and `B` for a user with `EXECUTE PROCEDURE` privilege and `A`, `B` and `C` for a user with `EXECUTE BOOSTED PROCEDURE` privilege. - -Now, let's adapt the privileges in examples 1 to 4 to apply to this procedure and show what is returned. -With the privileges from example 1, granted `EXECUTE PROCEDURE *` and denied `EXECUTE BOOSTED PROCEDURE myProc`, the `myProc` procedure returns the result `A` and `B`. - -With the privileges from example 2, granted `EXECUTE BOOSTED PROCEDURE *` and denied `EXECUTE PROCEDURE myProc`, execution of the `myProc` procedure is not allowed. - -With the privileges from example 3, granted `EXECUTE BOOSTED PROCEDURE *` and denied `EXECUTE BOOSTED PROCEDURE myProc`, execution of the `myProc` procedure is not allowed. - -With the privileges from example 4, granted `EXECUTE PROCEDURE myProc` and `EXECUTE BOOSTED PROCEDURE *` and denied `EXECUTE BOOSTED PROCEDURE myProc`, the `myProc` procedure returns the result `A` and `B`. - -For comparison, when only granted `EXECUTE BOOSTED PROCEDURE myProc`, the `myProc` procedure returns the result `A`, `B` and `C`, without needing to be granted the `EXECUTE PROCEDURE myProc` privilege. -==== - -A line of text after the longer example - -[[manage-databases-cc-commands]] -== Run Cypher administrative commands from Cypher Shell on a cluster - -For the following examples consider a cluster environment formed by 5 members, 3 Core servers, and 2 Read Replicas: - -.View the members of a cluster -==== - -[source, cypher, role=noplay] ----- -neo4j@neo4j> CALL dbms.cluster.overview(); ----- - -[.queryresult] ----- -+------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| id | addresses | databases | groups | -+------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| "8c...3d" | ["bolt://localhost:7683", "http://localhost:7473", "https://localhost:7483"] | {neo4j: "FOLLOWER", system: "FOLLOWER"} | [] | -| "8f...28" | ["bolt://localhost:7681", "http://localhost:7471", "https://localhost:7481"] | {neo4j: "LEADER", system: "LEADER"} | [] | -| "e0...4d" | ["bolt://localhost:7684", "http://localhost:7474", "https://localhost:7484"] | {neo4j: "READ_REPLICA", system: "READ_REPLICA"} | [] | -| "1a...64" | ["bolt://localhost:7682", "http://localhost:7472", "https://localhost:7482"] | {neo4j: "FOLLOWER", system: "FOLLOWER"} | [] | -| "59...87" | ["bolt://localhost:7685", "http://localhost:7475", "https://localhost:7485"] | {neo4j: "READ_REPLICA", system: "READ_REPLICA"} | [] | -+------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -5 rows available after 5 ms, consumed after another 0 ms ----- - -The leader is currently the instance exposing port `7681` for the `bolt` protocol, and `7471/7481` for the `http/https` protocol. - -==== - -Administrators can connect and execute Cypher commands in the following ways: - -.Using the `bolt://` scheme to connect to the Leader: -==== -[source, cypher, role=noheader] ----- -$ bin/cypher-shell -a bolt://localhost:7681 -d system -u neo4j -p neo4j1 ----- - ----- -Connected to Neo4j 4.0.0 at bolt://localhost:7681 as user neo4j. -Type :help for a list of available commands or :exit to exit the shell. -Note that Cypher queries must end with a semicolon. ----- - -[source, cypher, role=noheader] ----- -neo4j@system> SHOW DATABASES; ----- - ----- -+-------------------------------+ -| name | status | default | -+-------------------------------+ -| "neo4j" | "online" | TRUE | -| "system" | "online" | FALSE | -+-------------------------------+ - -2 rows available after 34 ms, consumed after another 0 ms ----- - -[source, cypher, role=noheader] ----- -neo4j@system> CREATE DATABASE data001; ----- - -[.queryresult] ----- -0 rows available after 378 ms, consumed after another 12 ms -Added 1 nodes, Set 4 properties, Added 1 labels -neo4j@system> SHOW DATABASES; -+--------------------------------+ -| name | status | default | -+--------------------------------+ -| "neo4j" | "online" | TRUE | -| "system" | "online" | FALSE | -| "data001" | "online" | FALSE | -+--------------------------------+ - -3 rows available after 2 ms, consumed after another 1 ms ----- -==== - - -== Example block inside a list - -. List item -+ -.An Example -==== -Lorem ipsum -==== -+ -. List item -. List item -. List item -+ -.An Example -==== -Lorem ipsum -==== -+ -. List item \ No newline at end of file diff --git a/preview-src/feedback-disabled.adoc b/preview-src/feedback-disabled.adoc deleted file mode 100644 index ac7b780c..00000000 --- a/preview-src/feedback-disabled.adoc +++ /dev/null @@ -1,5 +0,0 @@ -= Feedback disabled -:page-disablefeedback: true - -This page has the header attribute `:page-disablefeedback: true` set to disable the feedback popup. - diff --git a/preview-src/first-steps-with-cypher.adoc b/preview-src/first-steps-with-cypher.adoc deleted file mode 100644 index b6f20593..00000000 --- a/preview-src/first-steps-with-cypher.adoc +++ /dev/null @@ -1,76 +0,0 @@ -= First Steps with Cypher -:neo4j-version: 3.5 -:author: Michael Hunger -:style: #65b144/#58b535/white:Person(name),#008cc1/#0f5788/white:Database(name) -:page-layout: graphgist -:page-neo4j-version: 3.5 -:page-theme: graphgists - -== Create a Record for Yourself - -[source,cypher,role="runnable instant single backend:graphgist"] ----- -CREATE (you:Person {name:"You"}) -RETURN you ----- - -`CREATE` creates nodes with labels and properties. - -You like _Neo4j_, right? - -Let's find ourselves and add a new relationship to a new node. - -[source,cypher,role="runnable instant single backend:graphgist"] ----- -MATCH (you:Person {name:"You"}) -CREATE (you)-[like:LIKE]->(neo:Database {name:"Neo4j" }) -RETURN you,like,neo ----- - -`CREATE` can create single nodes, or more complex structures. - - -== Create Your Friends - -[source,cypher,role="runnable instant single backend:graphgist"] ----- -MATCH (you:Person {name:"You"}) -FOREACH (name in ["Johan","Rajesh","Anna","Julia","Andrew"] | - CREATE (you)-[:FRIEND]->(:Person {name:name})) ----- - -`FOREACH` allows you to execute update operations for each element of a list. - -== Find Your Friends - -[source,cypher,role="runnable graph backend:graphgist"] ----- -MATCH (you {name:"You"})-[friendship:FRIEND]->(yourFriends) -RETURN you, yourFriends ----- - -// NOTE: nodes won't be attached/linked, unless we explicitly return the "friendship" relation: "RETURN you, friendship, yourFriends" -// in runnable.js, if we remove "res.links.filter((link) => link.selected)" (line 118) then nodes will be attached. - -Note that we get ourselves repeated for each path found in the graph. - -== Create Second Degree Friends and Expertise - -[source,cypher,role="runnable instant single backend:graphgist"] ----- -MATCH (neo:Database {name:"Neo4j"}) -MATCH (anna:Person {name:"Anna"}) -CREATE (anna)-[:FRIEND]->(:Person:Expert {name:"Amanda"})-[:WORKED_WITH]->(neo) ----- - -`CREATE` can also add more complex patterns. - -== Find Someone in your Network Who Can Help You Learn Neo4j - -[source,cypher,role="runnable graph backend:graphgist"] ----- -MATCH (you {name:"You"}) -MATCH (expert)-[:WORKED_WITH]->(db:Database {name:"Neo4j"}) -MATCH path = shortestPath( (you)-[:FRIEND*..5]-(expert) ) -RETURN db,expert,path ----- diff --git a/preview-src/fundamentals.adoc b/preview-src/fundamentals.adoc new file mode 100644 index 00000000..8c242b11 --- /dev/null +++ b/preview-src/fundamentals.adoc @@ -0,0 +1,13 @@ += Sample page for new docs theme +:page-theme: docs-remix +:page-category-tab: administration +:description: Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. + +Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, + + +== Subheading + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, diff --git a/preview-src/graph-gist-category-pop-culture.adoc b/preview-src/graph-gist-category-pop-culture.adoc deleted file mode 100644 index 15f89488..00000000 --- a/preview-src/graph-gist-category-pop-culture.adoc +++ /dev/null @@ -1,8 +0,0 @@ -= Category Pop Culture -// the content of this page will be automatically generated from the GraphQL API -:page-layout: graphgist-category -:page-theme: graphgists -:page-component: graphgist -:page-slug: pop-culture -:page-category: Pop Culture -page-breadcrumb: Pop Culture diff --git a/preview-src/graph-gist-index.adoc b/preview-src/graph-gist-index.adoc deleted file mode 100644 index 2cf25987..00000000 --- a/preview-src/graph-gist-index.adoc +++ /dev/null @@ -1,6 +0,0 @@ -= GraphGists -// the content of this page will be automatically generated from the GraphQL API -:page-layout: graphgist-index -:page-component: graphgist -:page-slug: graphgists -:page-theme: graphgists diff --git a/preview-src/graph-gist-star-wars-social-network.adoc b/preview-src/graph-gist-star-wars-social-network.adoc deleted file mode 100644 index a9f33af8..00000000 --- a/preview-src/graph-gist-star-wars-social-network.adoc +++ /dev/null @@ -1,938 +0,0 @@ -= The Star Wars social network -:page-layout: graphgist -:author: Evelina Gabasova -:twitter: @evelgab -:page-slug: exploring-the-star-wars-social-network -:page-neo4j-version: 3.5 -:page-theme: graphgists - -I recently looked at the whole Star Wars universe from a computational perspective, where I extracted and analyzed -social networks from all seven films. The social network structure revealed some interesting differences -between the individual films, especially between the original trilogy and the prequels. Here I'll look at how we -can represent and explore the same network using a Neo4j database. - -You can read more about my original analysis in my two blog posts, which include additional social -network analysis and my F# scripts for downloading and extracting the data: - -* http://evelinag.com/blog/2015/12-15-star-wars-social-network/index.html[The Star Wars social network] -* http://evelinag.com/blog/2016/01-25-social-network-force-awakens/index.html[Star Wars social networks: The Force Awakens] - -== The network - -The social network was automatically constructed using the films' screenplays. -The nodes in the network represent the individual characters who are -connected by a link if they both speak within the same movie scene. -The network only includes characters that appear in at least two scenes and -that are explicitly named in the screenplay (I excluded characters called "PILOT" or even "STAR DESTROYER TECHNICIAN"). -I also separated the characters into two categories: `Person` and `Droid`. - -The interactions create the basic structure of the network, where characters are connected -by the `SPEAKS_WITH` relation. I also included the information about the individual -movies using the `APPEARS_IN` relation. The following graph illustrates the general -network structure: - -image::https://s3-eu-west-1.amazonaws.com/evelinag/network-relations.png[] - -Now we can setup the database using the social network from all the 7 movies -combined together. - -//setup -//hide -[source,cypher,role="runnable instant hidden backend:graphgist"] ----- -CREATE - (Episode1:Movie {name: 'Episode I: The Phantom Menace'}), - (Episode2:Movie {name: 'Episode II: Attack of the Clones'}), - (Episode3:Movie {name: 'Episode III: Revenge of the Sith'}), - (Episode4:Movie {name: 'Episode IV: A New Hope'}), - (Episode5:Movie {name: 'Episode V: The Empire Strikes Back'}), - (Episode6:Movie {name: 'Episode VI: Return of the Jedi'}), - (Episode7:Movie {name: 'Episode VII: The Force Awakens'}), - (r2_d2:Droid {name: 'R2-D2'}), - (chewbacca:Person {name: 'CHEWBACCA'}), - (bb_8:Droid {name: 'BB-8'}), - (qui_gon:Person {name: 'QUI-GON'}), - (nute_gunray:Person {name: 'NUTE GUNRAY'}), - (pk_4:Person {name: 'PK-4'}), - (tc_14:Person {name: 'TC-14'}), - (obi_wan:Person {name: 'OBI-WAN'}), - (dofine:Person {name: 'DOFINE'}), - (rune:Person {name: 'RUNE'}), - (tey_how:Person {name: 'TEY HOW'}), - (emperor:Person {name: 'EMPEROR'}), - (captain_panaka:Person {name: 'CAPTAIN PANAKA'}), - (sio_bibble:Person {name: 'SIO BIBBLE'}), - (jar_jar:Person {name: 'JAR JAR'}), - (tarpals:Person {name: 'TARPALS'}), - (boss_nass:Person {name: 'BOSS NASS'}), - (padme:Person {name: 'PADME'}), - (ric_olie:Person {name: 'RIC OLIE'}), - (watto:Person {name: 'WATTO'}), - (anakin:Person {name: 'ANAKIN'}), - (sebulba:Person {name: 'SEBULBA'}), - (jira:Person {name: 'JIRA'}), - (shmi:Person {name: 'SHMI'}), - (c_3po:Droid {name: 'C-3PO'}), - (darth_maul:Person {name: 'DARTH MAUL'}), - (kitster:Person {name: 'KITSTER'}), - (wald:Person {name: 'WALD'}), - (fode_beed:Person {name: 'FODE/BEED'}), - (jabba:Person {name: 'JABBA'}), - (greedo:Person {name: 'GREEDO'}), - (valorum:Person {name: 'VALORUM'}), - (mace_windu:Person {name: 'MACE WINDU'}), - (ki_adi_mundi:Person {name: 'KI-ADI-MUNDI'}), - (yoda:Person {name: 'YODA'}), - (rabe:Person {name: 'RABE'}), - (bail_organa:Person {name: 'BAIL ORGANA'}), - (general_ceel:Person {name: 'GENERAL CEEL'}), - (bravo_two:Person {name: 'BRAVO TWO'}), - (bravo_three:Person {name: 'BRAVO THREE'}), - (captain_typho:Person {name: 'CAPTAIN TYPHO'}), - (senator_ask_aak:Person {name: 'SENATOR ASK AAK'}), - (orn_free_taa:Person {name: 'ORN FREE TAA'}), - (sola:Person {name: 'SOLA'}), - (jobal:Person {name: 'JOBAL'}), - (ruwee:Person {name: 'RUWEE'}), - (taun_we:Person {name: 'TAUN WE'}), - (lama_su:Person {name: 'LAMA SU'}), - (boba_fett:Person {name: 'BOBA FETT'}), - (jango_fett:Person {name: 'JANGO FETT'}), - (owen:Person {name: 'OWEN'}), - (beru:Person {name: 'BERU'}), - (cliegg:Person {name: 'CLIEGG'}), - (count_dooku:Person {name: 'COUNT DOOKU'}), - (sun_rit:Person {name: 'SUN RIT'}), - (poggle:Person {name: 'POGGLE'}), - (plo_koon:Person {name: 'PLO KOON'}), - (odd_ball:Person {name: 'ODD BALL'}), - (general_grievous:Person {name: 'GENERAL GRIEVOUS'}), - (fang_zar:Person {name: 'FANG ZAR'}), - (mon_mothma:Person {name: 'MON MOTHMA'}), - (giddean_danu:Person {name: 'GIDDEAN DANU'}), - (clone_commander_gree:Person {name: 'CLONE COMMANDER GREE'}), - (clone_commander_cody:Person {name: 'CLONE COMMANDER CODY'}), - (tion_medon:Person {name: 'TION MEDON'}), - (captain_antilles:Person {name: 'CAPTAIN ANTILLES'}), - (darth_vader:Person {name: 'DARTH VADER'}), - (luke:Person {name: 'LUKE'}), - (camie:Person {name: 'CAMIE'}), - (biggs:Person {name: 'BIGGS'}), - (leia:Person {name: 'LEIA'}), - (motti:Person {name: 'MOTTI'}), - (tarkin:Person {name: 'TARKIN'}), - (han:Person {name: 'HAN'}), - (dodonna:Person {name: 'DODONNA'}), - (gold_leader:Person {name: 'GOLD LEADER'}), - (wedge:Person {name: 'WEDGE'}), - (red_leader:Person {name: 'RED LEADER'}), - (red_ten:Person {name: 'RED TEN'}), - (gold_five:Person {name: 'GOLD FIVE'}), - (rieekan:Person {name: 'RIEEKAN'}), - (derlin:Person {name: 'DERLIN'}), - (zev:Person {name: 'ZEV'}), - (piett:Person {name: 'PIETT'}), - (ozzel:Person {name: 'OZZEL'}), - (dack:Person {name: 'DACK'}), - (janson:Person {name: 'JANSON'}), - (needa:Person {name: 'NEEDA'}), - (lando:Person {name: 'LANDO'}), - (jerjerrod:Person {name: 'JERJERROD'}), - (bib_fortuna:Person {name: 'BIB FORTUNA'}), - (boushh:Person {name: 'BOUSHH'}), - (admiral_ackbar:Person {name: 'ADMIRAL ACKBAR'}), - (lor_san_tekka:Person {name: 'LOR SAN TEKKA'}), - (poe:Person {name: 'POE'}), - (kylo_ren:Person {name: 'KYLO REN'}), - (captain_phasma:Person {name: 'CAPTAIN PHASMA'}), - (finn:Person {name: 'FINN'}), - (unkar_plutt:Person {name: 'UNKAR PLUTT'}), - (rey:Person {name: 'REY'}), - (general_hux:Person {name: 'GENERAL HUX'}), - (lieutenant_mitaka:Person {name: 'LIEUTENANT MITAKA'}), - (bala_tik:Person {name: 'BALA-TIK'}), - (snoke:Person {name: 'SNOKE'}), - (maz:Person {name: 'MAZ'}), - (snap:Person {name: 'SNAP'}), - (admiral_statura:Person {name: 'ADMIRAL STATURA'}), - (yolo_ziff:Person {name: 'YOLO ZIFF'}), - (colonel_datoo:Person {name: 'COLONEL DATOO'}), - (ello_asty:Person {name: 'ELLO ASTY'}), - (jess:Person {name: 'JESS'}), - (niv_lek:Person {name: 'NIV LEK'}), - (chewbacca)-[:SPEAKS_WITH]->(r2_d2), - (bb_8)-[:SPEAKS_WITH]->(r2_d2), - (bb_8)-[:SPEAKS_WITH]->(chewbacca), - (obi_wan)-[:SPEAKS_WITH]->(r2_d2), - (padme)-[:SPEAKS_WITH]->(r2_d2), - (qui_gon)-[:SPEAKS_WITH]->(r2_d2), - (anakin)-[:SPEAKS_WITH]->(r2_d2), - (r2_d2)-[:SPEAKS_WITH]->(watto), - (c_3po)-[:SPEAKS_WITH]->(r2_d2), - (kitster)-[:SPEAKS_WITH]->(r2_d2), - (jabba)-[:SPEAKS_WITH]->(r2_d2), - (emperor)-[:SPEAKS_WITH]->(r2_d2), - (captain_typho)-[:SPEAKS_WITH]->(r2_d2), - (beru)-[:SPEAKS_WITH]->(r2_d2), - (owen)-[:SPEAKS_WITH]->(r2_d2), - (bail_organa)-[:SPEAKS_WITH]->(r2_d2), - (r2_d2)-[:SPEAKS_WITH]->(yoda), - (luke)-[:SPEAKS_WITH]->(r2_d2), - (leia)-[:SPEAKS_WITH]->(r2_d2), - (captain_antilles)-[:SPEAKS_WITH]->(r2_d2), - (biggs)-[:SPEAKS_WITH]->(r2_d2), - (darth_vader)-[:SPEAKS_WITH]->(r2_d2), - (han)-[:SPEAKS_WITH]->(r2_d2), - (lando)-[:SPEAKS_WITH]->(r2_d2), - (chewbacca)-[:SPEAKS_WITH]->(obi_wan), - (c_3po)-[:SPEAKS_WITH]->(chewbacca), - (chewbacca)-[:SPEAKS_WITH]->(luke), - (chewbacca)-[:SPEAKS_WITH]->(han), - (chewbacca)-[:SPEAKS_WITH]->(jabba), - (chewbacca)-[:SPEAKS_WITH]->(leia), - (chewbacca)-[:SPEAKS_WITH]->(darth_vader), - (chewbacca)-[:SPEAKS_WITH]->(rieekan), - (chewbacca)-[:SPEAKS_WITH]->(lando), - (boba_fett)-[:SPEAKS_WITH]->(chewbacca), - (chewbacca)-[:SPEAKS_WITH]->(finn), - (chewbacca)-[:SPEAKS_WITH]->(rey), - (bala_tik)-[:SPEAKS_WITH]->(chewbacca), - (chewbacca)-[:SPEAKS_WITH]->(maz), - (chewbacca)-[:SPEAKS_WITH]->(poe), - (chewbacca)-[:SPEAKS_WITH]->(kylo_ren), - (captain_phasma)-[:SPEAKS_WITH]->(chewbacca), - (bb_8)-[:SPEAKS_WITH]->(poe), - (bb_8)-[:SPEAKS_WITH]->(lor_san_tekka), - (bb_8)-[:SPEAKS_WITH]->(rey), - (bb_8)-[:SPEAKS_WITH]->(unkar_plutt), - (bb_8)-[:SPEAKS_WITH]->(finn), - (bb_8)-[:SPEAKS_WITH]->(han), - (bala_tik)-[:SPEAKS_WITH]->(bb_8), - (bb_8)-[:SPEAKS_WITH]->(maz), - (bb_8)-[:SPEAKS_WITH]->(leia), - (bb_8)-[:SPEAKS_WITH]->(c_3po), - (nute_gunray)-[:SPEAKS_WITH]->(qui_gon), - (pk_4)-[:SPEAKS_WITH]->(tc_14), - (obi_wan)-[:SPEAKS_WITH]->(tc_14), - (qui_gon)-[:SPEAKS_WITH]->(tc_14), - (obi_wan)-[:SPEAKS_WITH]->(qui_gon), - (nute_gunray)-[:SPEAKS_WITH]->(tc_14), - (dofine)-[:SPEAKS_WITH]->(nute_gunray), - (dofine)-[:SPEAKS_WITH]->(tc_14), - (nute_gunray)-[:SPEAKS_WITH]->(rune), - (rune)-[:SPEAKS_WITH]->(tey_how), - (nute_gunray)-[:SPEAKS_WITH]->(tey_how), - (captain_panaka)-[:SPEAKS_WITH]->(emperor), - (emperor)-[:SPEAKS_WITH]->(sio_bibble), - (captain_panaka)-[:SPEAKS_WITH]->(sio_bibble), - (jar_jar)-[:SPEAKS_WITH]->(qui_gon), - (jar_jar)-[:SPEAKS_WITH]->(obi_wan), - (jar_jar)-[:SPEAKS_WITH]->(tarpals), - (boss_nass)-[:SPEAKS_WITH]->(qui_gon), - (boss_nass)-[:SPEAKS_WITH]->(obi_wan), - (boss_nass)-[:SPEAKS_WITH]->(jar_jar), - (emperor)-[:SPEAKS_WITH]->(nute_gunray), - (emperor)-[:SPEAKS_WITH]->(rune), - (nute_gunray)-[:SPEAKS_WITH]->(sio_bibble), - (jar_jar)-[:SPEAKS_WITH]->(sio_bibble), - (captain_panaka)-[:SPEAKS_WITH]->(jar_jar), - (qui_gon)-[:SPEAKS_WITH]->(sio_bibble), - (captain_panaka)-[:SPEAKS_WITH]->(qui_gon), - (captain_panaka)-[:SPEAKS_WITH]->(padme), - (padme)-[:SPEAKS_WITH]->(qui_gon), - (padme)-[:SPEAKS_WITH]->(sio_bibble), - (captain_panaka)-[:SPEAKS_WITH]->(obi_wan), - (obi_wan)-[:SPEAKS_WITH]->(ric_olie), - (jar_jar)-[:SPEAKS_WITH]->(ric_olie), - (qui_gon)-[:SPEAKS_WITH]->(ric_olie), - (captain_panaka)-[:SPEAKS_WITH]->(ric_olie), - (jar_jar)-[:SPEAKS_WITH]->(padme), - (qui_gon)-[:SPEAKS_WITH]->(watto), - (anakin)-[:SPEAKS_WITH]->(watto), - (padme)-[:SPEAKS_WITH]->(watto), - (anakin)-[:SPEAKS_WITH]->(qui_gon), - (anakin)-[:SPEAKS_WITH]->(padme), - (jar_jar)-[:SPEAKS_WITH]->(sebulba), - (anakin)-[:SPEAKS_WITH]->(sebulba), - (qui_gon)-[:SPEAKS_WITH]->(sebulba), - (padme)-[:SPEAKS_WITH]->(sebulba), - (anakin)-[:SPEAKS_WITH]->(jar_jar), - (anakin)-[:SPEAKS_WITH]->(jira), - (jira)-[:SPEAKS_WITH]->(qui_gon), - (jira)-[:SPEAKS_WITH]->(padme), - (anakin)-[:SPEAKS_WITH]->(shmi), - (jar_jar)-[:SPEAKS_WITH]->(shmi), - (qui_gon)-[:SPEAKS_WITH]->(shmi), - (padme)-[:SPEAKS_WITH]->(shmi), - (anakin)-[:SPEAKS_WITH]->(c_3po), - (c_3po)-[:SPEAKS_WITH]->(padme), - (obi_wan)-[:SPEAKS_WITH]->(sio_bibble), - (darth_maul)-[:SPEAKS_WITH]->(emperor), - (anakin)-[:SPEAKS_WITH]->(kitster), - (anakin)-[:SPEAKS_WITH]->(wald), - (kitster)-[:SPEAKS_WITH]->(wald), - (jar_jar)-[:SPEAKS_WITH]->(kitster), - (kitster)-[:SPEAKS_WITH]->(qui_gon), - (jar_jar)-[:SPEAKS_WITH]->(wald), - (qui_gon)-[:SPEAKS_WITH]->(wald), - (anakin)-[:SPEAKS_WITH]->(obi_wan), - (obi_wan)-[:SPEAKS_WITH]->(shmi), - (c_3po)-[:SPEAKS_WITH]->(watto), - (kitster)-[:SPEAKS_WITH]->(watto), - (c_3po)-[:SPEAKS_WITH]->(qui_gon), - (c_3po)-[:SPEAKS_WITH]->(kitster), - (kitster)-[:SPEAKS_WITH]->(padme), - (fode_beed)-[:SPEAKS_WITH]->(jabba), - (jabba)-[:SPEAKS_WITH]->(shmi), - (sebulba)-[:SPEAKS_WITH]->(shmi), - (anakin)-[:SPEAKS_WITH]->(jabba), - (jabba)-[:SPEAKS_WITH]->(jar_jar), - (jabba)-[:SPEAKS_WITH]->(padme), - (jabba)-[:SPEAKS_WITH]->(sebulba), - (jabba)-[:SPEAKS_WITH]->(qui_gon), - (fode_beed)-[:SPEAKS_WITH]->(jar_jar), - (fode_beed)-[:SPEAKS_WITH]->(padme), - (greedo)-[:SPEAKS_WITH]->(qui_gon), - (anakin)-[:SPEAKS_WITH]->(greedo), - (greedo)-[:SPEAKS_WITH]->(wald), - (kitster)-[:SPEAKS_WITH]->(shmi), - (anakin)-[:SPEAKS_WITH]->(captain_panaka), - (anakin)-[:SPEAKS_WITH]->(ric_olie), - (emperor)-[:SPEAKS_WITH]->(valorum), - (emperor)-[:SPEAKS_WITH]->(jar_jar), - (emperor)-[:SPEAKS_WITH]->(qui_gon), - (jar_jar)-[:SPEAKS_WITH]->(valorum), - (qui_gon)-[:SPEAKS_WITH]->(valorum), - (mace_windu)-[:SPEAKS_WITH]->(qui_gon), - (ki_adi_mundi)-[:SPEAKS_WITH]->(qui_gon), - (qui_gon)-[:SPEAKS_WITH]->(yoda), - (qui_gon)-[:SPEAKS_WITH]->(rabe), - (ki_adi_mundi)-[:SPEAKS_WITH]->(mace_windu), - (mace_windu)-[:SPEAKS_WITH]->(yoda), - (anakin)-[:SPEAKS_WITH]->(mace_windu), - (mace_windu)-[:SPEAKS_WITH]->(rabe), - (ki_adi_mundi)-[:SPEAKS_WITH]->(yoda), - (anakin)-[:SPEAKS_WITH]->(ki_adi_mundi), - (ki_adi_mundi)-[:SPEAKS_WITH]->(rabe), - (anakin)-[:SPEAKS_WITH]->(yoda), - (rabe)-[:SPEAKS_WITH]->(yoda), - (anakin)-[:SPEAKS_WITH]->(rabe), - (bail_organa)-[:SPEAKS_WITH]->(emperor), - (bail_organa)-[:SPEAKS_WITH]->(valorum), - (obi_wan)-[:SPEAKS_WITH]->(yoda), - (mace_windu)-[:SPEAKS_WITH]->(obi_wan), - (ki_adi_mundi)-[:SPEAKS_WITH]->(obi_wan), - (boss_nass)-[:SPEAKS_WITH]->(padme), - (darth_maul)-[:SPEAKS_WITH]->(nute_gunray), - (anakin)-[:SPEAKS_WITH]->(boss_nass), - (boss_nass)-[:SPEAKS_WITH]->(captain_panaka), - (obi_wan)-[:SPEAKS_WITH]->(padme), - (emperor)-[:SPEAKS_WITH]->(general_ceel), - (general_ceel)-[:SPEAKS_WITH]->(nute_gunray), - (darth_maul)-[:SPEAKS_WITH]->(general_ceel), - (darth_maul)-[:SPEAKS_WITH]->(rune), - (bravo_two)-[:SPEAKS_WITH]->(ric_olie), - (anakin)-[:SPEAKS_WITH]->(bravo_two), - (general_ceel)-[:SPEAKS_WITH]->(jar_jar), - (nute_gunray)-[:SPEAKS_WITH]->(padme), - (dofine)-[:SPEAKS_WITH]->(tey_how), - (bravo_three)-[:SPEAKS_WITH]->(bravo_two), - (bravo_three)-[:SPEAKS_WITH]->(ric_olie), - (anakin)-[:SPEAKS_WITH]->(bravo_three), - (emperor)-[:SPEAKS_WITH]->(padme), - (emperor)-[:SPEAKS_WITH]->(senator_ask_aak), - (emperor)-[:SPEAKS_WITH]->(orn_free_taa), - (orn_free_taa)-[:SPEAKS_WITH]->(senator_ask_aak), - (emperor)-[:SPEAKS_WITH]->(mace_windu), - (emperor)-[:SPEAKS_WITH]->(yoda), - (emperor)-[:SPEAKS_WITH]->(ki_adi_mundi), - (bail_organa)-[:SPEAKS_WITH]->(mace_windu), - (bail_organa)-[:SPEAKS_WITH]->(yoda), - (bail_organa)-[:SPEAKS_WITH]->(ki_adi_mundi), - (captain_typho)-[:SPEAKS_WITH]->(jar_jar), - (captain_typho)-[:SPEAKS_WITH]->(obi_wan), - (anakin)-[:SPEAKS_WITH]->(captain_typho), - (obi_wan)-[:SPEAKS_WITH]->(pk_4), - (anakin)-[:SPEAKS_WITH]->(sio_bibble), - (padme)-[:SPEAKS_WITH]->(sola), - (anakin)-[:SPEAKS_WITH]->(sola), - (jobal)-[:SPEAKS_WITH]->(sola), - (ruwee)-[:SPEAKS_WITH]->(sola), - (jobal)-[:SPEAKS_WITH]->(padme), - (padme)-[:SPEAKS_WITH]->(ruwee), - (anakin)-[:SPEAKS_WITH]->(jobal), - (anakin)-[:SPEAKS_WITH]->(ruwee), - (jobal)-[:SPEAKS_WITH]->(ruwee), - (obi_wan)-[:SPEAKS_WITH]->(taun_we), - (lama_su)-[:SPEAKS_WITH]->(taun_we), - (lama_su)-[:SPEAKS_WITH]->(obi_wan), - (boba_fett)-[:SPEAKS_WITH]->(taun_we), - (boba_fett)-[:SPEAKS_WITH]->(jango_fett), - (boba_fett)-[:SPEAKS_WITH]->(obi_wan), - (jango_fett)-[:SPEAKS_WITH]->(taun_we), - (jango_fett)-[:SPEAKS_WITH]->(obi_wan), - (c_3po)-[:SPEAKS_WITH]->(owen), - (beru)-[:SPEAKS_WITH]->(c_3po), - (c_3po)-[:SPEAKS_WITH]->(cliegg), - (anakin)-[:SPEAKS_WITH]->(owen), - (anakin)-[:SPEAKS_WITH]->(beru), - (anakin)-[:SPEAKS_WITH]->(cliegg), - (beru)-[:SPEAKS_WITH]->(owen), - (owen)-[:SPEAKS_WITH]->(padme), - (cliegg)-[:SPEAKS_WITH]->(owen), - (beru)-[:SPEAKS_WITH]->(padme), - (beru)-[:SPEAKS_WITH]->(cliegg), - (cliegg)-[:SPEAKS_WITH]->(padme), - (bail_organa)-[:SPEAKS_WITH]->(obi_wan), - (emperor)-[:SPEAKS_WITH]->(obi_wan), - (obi_wan)-[:SPEAKS_WITH]->(senator_ask_aak), - (bail_organa)-[:SPEAKS_WITH]->(senator_ask_aak), - (bail_organa)-[:SPEAKS_WITH]->(jar_jar), - (senator_ask_aak)-[:SPEAKS_WITH]->(yoda), - (jar_jar)-[:SPEAKS_WITH]->(yoda), - (mace_windu)-[:SPEAKS_WITH]->(senator_ask_aak), - (jar_jar)-[:SPEAKS_WITH]->(mace_windu), - (jar_jar)-[:SPEAKS_WITH]->(senator_ask_aak), - (mace_windu)-[:SPEAKS_WITH]->(padme), - (jar_jar)-[:SPEAKS_WITH]->(orn_free_taa), - (count_dooku)-[:SPEAKS_WITH]->(padme), - (count_dooku)-[:SPEAKS_WITH]->(jango_fett), - (poggle)-[:SPEAKS_WITH]->(sun_rit), - (nute_gunray)-[:SPEAKS_WITH]->(sun_rit), - (nute_gunray)-[:SPEAKS_WITH]->(poggle), - (obi_wan)-[:SPEAKS_WITH]->(sun_rit), - (obi_wan)-[:SPEAKS_WITH]->(poggle), - (nute_gunray)-[:SPEAKS_WITH]->(obi_wan), - (count_dooku)-[:SPEAKS_WITH]->(obi_wan), - (anakin)-[:SPEAKS_WITH]->(sun_rit), - (anakin)-[:SPEAKS_WITH]->(poggle), - (anakin)-[:SPEAKS_WITH]->(nute_gunray), - (anakin)-[:SPEAKS_WITH]->(count_dooku), - (padme)-[:SPEAKS_WITH]->(sun_rit), - (count_dooku)-[:SPEAKS_WITH]->(sun_rit), - (padme)-[:SPEAKS_WITH]->(poggle), - (count_dooku)-[:SPEAKS_WITH]->(poggle), - (count_dooku)-[:SPEAKS_WITH]->(nute_gunray), - (count_dooku)-[:SPEAKS_WITH]->(mace_windu), - (ki_adi_mundi)-[:SPEAKS_WITH]->(plo_koon), - (count_dooku)-[:SPEAKS_WITH]->(yoda), - (padme)-[:SPEAKS_WITH]->(yoda), - (count_dooku)-[:SPEAKS_WITH]->(emperor), - (obi_wan)-[:SPEAKS_WITH]->(odd_ball), - (anakin)-[:SPEAKS_WITH]->(odd_ball), - (anakin)-[:SPEAKS_WITH]->(emperor), - (general_grievous)-[:SPEAKS_WITH]->(obi_wan), - (anakin)-[:SPEAKS_WITH]->(general_grievous), - (anakin)-[:SPEAKS_WITH]->(bail_organa), - (c_3po)-[:SPEAKS_WITH]->(obi_wan), - (c_3po)-[:SPEAKS_WITH]->(emperor), - (bail_organa)-[:SPEAKS_WITH]->(c_3po), - (bail_organa)-[:SPEAKS_WITH]->(padme), - (bail_organa)-[:SPEAKS_WITH]->(fang_zar), - (bail_organa)-[:SPEAKS_WITH]->(mon_mothma), - (bail_organa)-[:SPEAKS_WITH]->(giddean_danu), - (fang_zar)-[:SPEAKS_WITH]->(padme), - (fang_zar)-[:SPEAKS_WITH]->(mon_mothma), - (fang_zar)-[:SPEAKS_WITH]->(giddean_danu), - (mon_mothma)-[:SPEAKS_WITH]->(padme), - (giddean_danu)-[:SPEAKS_WITH]->(padme), - (giddean_danu)-[:SPEAKS_WITH]->(mon_mothma), - (captain_typho)-[:SPEAKS_WITH]->(padme), - (c_3po)-[:SPEAKS_WITH]->(captain_typho), - (clone_commander_gree)-[:SPEAKS_WITH]->(yoda), - (clone_commander_cody)-[:SPEAKS_WITH]->(obi_wan), - (obi_wan)-[:SPEAKS_WITH]->(tion_medon), - (general_grievous)-[:SPEAKS_WITH]->(nute_gunray), - (anakin)-[:SPEAKS_WITH]->(clone_commander_cody), - (clone_commander_cody)-[:SPEAKS_WITH]->(mace_windu), - (clone_commander_cody)-[:SPEAKS_WITH]->(yoda), - (bail_organa)-[:SPEAKS_WITH]->(captain_antilles), - (bail_organa)-[:SPEAKS_WITH]->(qui_gon), - (c_3po)-[:SPEAKS_WITH]->(yoda), - (darth_vader)-[:SPEAKS_WITH]->(emperor), - (c_3po)-[:SPEAKS_WITH]->(captain_antilles), - (camie)-[:SPEAKS_WITH]->(luke), - (biggs)-[:SPEAKS_WITH]->(camie), - (biggs)-[:SPEAKS_WITH]->(luke), - (darth_vader)-[:SPEAKS_WITH]->(leia), - (beru)-[:SPEAKS_WITH]->(luke), - (luke)-[:SPEAKS_WITH]->(owen), - (c_3po)-[:SPEAKS_WITH]->(luke), - (c_3po)-[:SPEAKS_WITH]->(leia), - (leia)-[:SPEAKS_WITH]->(luke), - (beru)-[:SPEAKS_WITH]->(leia), - (luke)-[:SPEAKS_WITH]->(obi_wan), - (leia)-[:SPEAKS_WITH]->(obi_wan), - (motti)-[:SPEAKS_WITH]->(tarkin), - (darth_vader)-[:SPEAKS_WITH]->(motti), - (darth_vader)-[:SPEAKS_WITH]->(tarkin), - (han)-[:SPEAKS_WITH]->(obi_wan), - (han)-[:SPEAKS_WITH]->(luke), - (greedo)-[:SPEAKS_WITH]->(han), - (han)-[:SPEAKS_WITH]->(jabba), - (c_3po)-[:SPEAKS_WITH]->(han), - (leia)-[:SPEAKS_WITH]->(motti), - (leia)-[:SPEAKS_WITH]->(tarkin), - (han)-[:SPEAKS_WITH]->(leia), - (darth_vader)-[:SPEAKS_WITH]->(obi_wan), - (dodonna)-[:SPEAKS_WITH]->(gold_leader), - (dodonna)-[:SPEAKS_WITH]->(wedge), - (dodonna)-[:SPEAKS_WITH]->(luke), - (gold_leader)-[:SPEAKS_WITH]->(wedge), - (gold_leader)-[:SPEAKS_WITH]->(luke), - (luke)-[:SPEAKS_WITH]->(wedge), - (biggs)-[:SPEAKS_WITH]->(leia), - (leia)-[:SPEAKS_WITH]->(red_leader), - (luke)-[:SPEAKS_WITH]->(red_leader), - (biggs)-[:SPEAKS_WITH]->(red_leader), - (biggs)-[:SPEAKS_WITH]->(c_3po), - (c_3po)-[:SPEAKS_WITH]->(red_leader), - (red_leader)-[:SPEAKS_WITH]->(wedge), - (gold_leader)-[:SPEAKS_WITH]->(red_leader), - (biggs)-[:SPEAKS_WITH]->(wedge), - (red_leader)-[:SPEAKS_WITH]->(red_ten), - (biggs)-[:SPEAKS_WITH]->(gold_leader), - (luke)-[:SPEAKS_WITH]->(red_ten), - (han)-[:SPEAKS_WITH]->(rieekan), - (leia)-[:SPEAKS_WITH]->(rieekan), - (c_3po)-[:SPEAKS_WITH]->(derlin), - (han)-[:SPEAKS_WITH]->(zev), - (c_3po)-[:SPEAKS_WITH]->(rieekan), - (ozzel)-[:SPEAKS_WITH]->(piett), - (darth_vader)-[:SPEAKS_WITH]->(piett), - (darth_vader)-[:SPEAKS_WITH]->(ozzel), - (derlin)-[:SPEAKS_WITH]->(leia), - (dack)-[:SPEAKS_WITH]->(luke), - (janson)-[:SPEAKS_WITH]->(wedge), - (luke)-[:SPEAKS_WITH]->(zev), - (darth_vader)-[:SPEAKS_WITH]->(needa), - (needa)-[:SPEAKS_WITH]->(piett), - (luke)-[:SPEAKS_WITH]->(yoda), - (boba_fett)-[:SPEAKS_WITH]->(piett), - (boba_fett)-[:SPEAKS_WITH]->(darth_vader), - (han)-[:SPEAKS_WITH]->(lando), - (lando)-[:SPEAKS_WITH]->(leia), - (c_3po)-[:SPEAKS_WITH]->(lando), - (darth_vader)-[:SPEAKS_WITH]->(lando), - (darth_vader)-[:SPEAKS_WITH]->(han), - (boba_fett)-[:SPEAKS_WITH]->(lando), - (boba_fett)-[:SPEAKS_WITH]->(c_3po), - (c_3po)-[:SPEAKS_WITH]->(darth_vader), - (boba_fett)-[:SPEAKS_WITH]->(han), - (boba_fett)-[:SPEAKS_WITH]->(leia), - (darth_vader)-[:SPEAKS_WITH]->(luke), - (lando)-[:SPEAKS_WITH]->(luke), - (darth_vader)-[:SPEAKS_WITH]->(jerjerrod), - (bib_fortuna)-[:SPEAKS_WITH]->(c_3po), - (c_3po)-[:SPEAKS_WITH]->(jabba), - (jabba)-[:SPEAKS_WITH]->(luke), - (boushh)-[:SPEAKS_WITH]->(jabba), - (boushh)-[:SPEAKS_WITH]->(c_3po), - (boushh)-[:SPEAKS_WITH]->(han), - (boushh)-[:SPEAKS_WITH]->(leia), - (bib_fortuna)-[:SPEAKS_WITH]->(luke), - (bib_fortuna)-[:SPEAKS_WITH]->(jabba), - (han)-[:SPEAKS_WITH]->(mon_mothma), - (admiral_ackbar)-[:SPEAKS_WITH]->(han), - (lando)-[:SPEAKS_WITH]->(mon_mothma), - (admiral_ackbar)-[:SPEAKS_WITH]->(lando), - (admiral_ackbar)-[:SPEAKS_WITH]->(mon_mothma), - (c_3po)-[:SPEAKS_WITH]->(mon_mothma), - (leia)-[:SPEAKS_WITH]->(mon_mothma), - (luke)-[:SPEAKS_WITH]->(mon_mothma), - (admiral_ackbar)-[:SPEAKS_WITH]->(c_3po), - (admiral_ackbar)-[:SPEAKS_WITH]->(leia), - (admiral_ackbar)-[:SPEAKS_WITH]->(luke), - (emperor)-[:SPEAKS_WITH]->(luke), - (lando)-[:SPEAKS_WITH]->(wedge), - (admiral_ackbar)-[:SPEAKS_WITH]->(wedge), - (anakin)-[:SPEAKS_WITH]->(darth_vader), - (anakin)-[:SPEAKS_WITH]->(luke), - (lor_san_tekka)-[:SPEAKS_WITH]->(poe), - (kylo_ren)-[:SPEAKS_WITH]->(lor_san_tekka), - (kylo_ren)-[:SPEAKS_WITH]->(poe), - (captain_phasma)-[:SPEAKS_WITH]->(kylo_ren), - (captain_phasma)-[:SPEAKS_WITH]->(lor_san_tekka), - (captain_phasma)-[:SPEAKS_WITH]->(poe), - (captain_phasma)-[:SPEAKS_WITH]->(finn), - (general_hux)-[:SPEAKS_WITH]->(kylo_ren), - (rey)-[:SPEAKS_WITH]->(unkar_plutt), - (finn)-[:SPEAKS_WITH]->(poe), - (general_hux)-[:SPEAKS_WITH]->(lieutenant_mitaka), - (kylo_ren)-[:SPEAKS_WITH]->(lieutenant_mitaka), - (captain_phasma)-[:SPEAKS_WITH]->(general_hux), - (finn)-[:SPEAKS_WITH]->(rey), - (han)-[:SPEAKS_WITH]->(rey), - (finn)-[:SPEAKS_WITH]->(han), - (bala_tik)-[:SPEAKS_WITH]->(han), - (bala_tik)-[:SPEAKS_WITH]->(rey), - (bala_tik)-[:SPEAKS_WITH]->(finn), - (general_hux)-[:SPEAKS_WITH]->(snoke), - (kylo_ren)-[:SPEAKS_WITH]->(snoke), - (han)-[:SPEAKS_WITH]->(maz), - (finn)-[:SPEAKS_WITH]->(maz), - (maz)-[:SPEAKS_WITH]->(rey), - (han)-[:SPEAKS_WITH]->(poe), - (leia)-[:SPEAKS_WITH]->(poe), - (finn)-[:SPEAKS_WITH]->(leia), - (kylo_ren)-[:SPEAKS_WITH]->(rey), - (poe)-[:SPEAKS_WITH]->(snap), - (admiral_ackbar)-[:SPEAKS_WITH]->(poe), - (c_3po)-[:SPEAKS_WITH]->(poe), - (admiral_statura)-[:SPEAKS_WITH]->(poe), - (han)-[:SPEAKS_WITH]->(snap), - (admiral_ackbar)-[:SPEAKS_WITH]->(snap), - (finn)-[:SPEAKS_WITH]->(snap), - (leia)-[:SPEAKS_WITH]->(snap), - (c_3po)-[:SPEAKS_WITH]->(snap), - (admiral_statura)-[:SPEAKS_WITH]->(snap), - (admiral_statura)-[:SPEAKS_WITH]->(han), - (admiral_ackbar)-[:SPEAKS_WITH]->(finn), - (admiral_ackbar)-[:SPEAKS_WITH]->(admiral_statura), - (c_3po)-[:SPEAKS_WITH]->(finn), - (admiral_statura)-[:SPEAKS_WITH]->(finn), - (admiral_statura)-[:SPEAKS_WITH]->(leia), - (admiral_statura)-[:SPEAKS_WITH]->(c_3po), - (captain_phasma)-[:SPEAKS_WITH]->(han), - (colonel_datoo)-[:SPEAKS_WITH]->(general_hux), - (ello_asty)-[:SPEAKS_WITH]->(poe), - (jess)-[:SPEAKS_WITH]->(snap), - (han)-[:SPEAKS_WITH]->(kylo_ren), - (finn)-[:SPEAKS_WITH]->(kylo_ren), - (jess)-[:SPEAKS_WITH]->(niv_lek), - (niv_lek)-[:SPEAKS_WITH]->(yolo_ziff), - (niv_lek)-[:SPEAKS_WITH]->(poe), - (ello_asty)-[:SPEAKS_WITH]->(niv_lek), - (jess)-[:SPEAKS_WITH]->(yolo_ziff), - (jess)-[:SPEAKS_WITH]->(poe), - (ello_asty)-[:SPEAKS_WITH]->(jess), - (poe)-[:SPEAKS_WITH]->(yolo_ziff), - (ello_asty)-[:SPEAKS_WITH]->(yolo_ziff), - (leia)-[:SPEAKS_WITH]->(rey), - (luke)-[:SPEAKS_WITH]->(rey), - (r2_d2)-[:APPEARS_IN]->(Episode1), - (r2_d2)-[:APPEARS_IN]->(Episode2), - (r2_d2)-[:APPEARS_IN]->(Episode3), - (r2_d2)-[:APPEARS_IN]->(Episode4), - (r2_d2)-[:APPEARS_IN]->(Episode5), - (r2_d2)-[:APPEARS_IN]->(Episode6), - (r2_d2)-[:APPEARS_IN]->(Episode7), - (chewbacca)-[:APPEARS_IN]->(Episode4), - (chewbacca)-[:APPEARS_IN]->(Episode5), - (chewbacca)-[:APPEARS_IN]->(Episode6), - (chewbacca)-[:APPEARS_IN]->(Episode7), - (bb_8)-[:APPEARS_IN]->(Episode7), - (qui_gon)-[:APPEARS_IN]->(Episode1), - (qui_gon)-[:APPEARS_IN]->(Episode3), - (nute_gunray)-[:APPEARS_IN]->(Episode1), - (nute_gunray)-[:APPEARS_IN]->(Episode2), - (nute_gunray)-[:APPEARS_IN]->(Episode3), - (pk_4)-[:APPEARS_IN]->(Episode1), - (pk_4)-[:APPEARS_IN]->(Episode2), - (tc_14)-[:APPEARS_IN]->(Episode1), - (obi_wan)-[:APPEARS_IN]->(Episode1), - (obi_wan)-[:APPEARS_IN]->(Episode2), - (obi_wan)-[:APPEARS_IN]->(Episode3), - (obi_wan)-[:APPEARS_IN]->(Episode4), - (obi_wan)-[:APPEARS_IN]->(Episode5), - (obi_wan)-[:APPEARS_IN]->(Episode6), - (dofine)-[:APPEARS_IN]->(Episode1), - (rune)-[:APPEARS_IN]->(Episode1), - (tey_how)-[:APPEARS_IN]->(Episode1), - (emperor)-[:APPEARS_IN]->(Episode1), - (emperor)-[:APPEARS_IN]->(Episode2), - (emperor)-[:APPEARS_IN]->(Episode3), - (emperor)-[:APPEARS_IN]->(Episode5), - (emperor)-[:APPEARS_IN]->(Episode6), - (captain_panaka)-[:APPEARS_IN]->(Episode1), - (sio_bibble)-[:APPEARS_IN]->(Episode1), - (sio_bibble)-[:APPEARS_IN]->(Episode2), - (jar_jar)-[:APPEARS_IN]->(Episode1), - (jar_jar)-[:APPEARS_IN]->(Episode2), - (jar_jar)-[:APPEARS_IN]->(Episode3), - (tarpals)-[:APPEARS_IN]->(Episode1), - (boss_nass)-[:APPEARS_IN]->(Episode1), - (padme)-[:APPEARS_IN]->(Episode1), - (padme)-[:APPEARS_IN]->(Episode2), - (padme)-[:APPEARS_IN]->(Episode3), - (ric_olie)-[:APPEARS_IN]->(Episode1), - (watto)-[:APPEARS_IN]->(Episode1), - (watto)-[:APPEARS_IN]->(Episode2), - (anakin)-[:APPEARS_IN]->(Episode1), - (anakin)-[:APPEARS_IN]->(Episode2), - (anakin)-[:APPEARS_IN]->(Episode3), - (anakin)-[:APPEARS_IN]->(Episode6), - (sebulba)-[:APPEARS_IN]->(Episode1), - (jira)-[:APPEARS_IN]->(Episode1), - (shmi)-[:APPEARS_IN]->(Episode1), - (shmi)-[:APPEARS_IN]->(Episode2), - (c_3po)-[:APPEARS_IN]->(Episode1), - (c_3po)-[:APPEARS_IN]->(Episode2), - (c_3po)-[:APPEARS_IN]->(Episode3), - (c_3po)-[:APPEARS_IN]->(Episode4), - (c_3po)-[:APPEARS_IN]->(Episode5), - (c_3po)-[:APPEARS_IN]->(Episode6), - (c_3po)-[:APPEARS_IN]->(Episode7), - (darth_maul)-[:APPEARS_IN]->(Episode1), - (kitster)-[:APPEARS_IN]->(Episode1), - (wald)-[:APPEARS_IN]->(Episode1), - (fode_beed)-[:APPEARS_IN]->(Episode1), - (jabba)-[:APPEARS_IN]->(Episode1), - (jabba)-[:APPEARS_IN]->(Episode4), - (jabba)-[:APPEARS_IN]->(Episode6), - (greedo)-[:APPEARS_IN]->(Episode1), - (greedo)-[:APPEARS_IN]->(Episode4), - (valorum)-[:APPEARS_IN]->(Episode1), - (mace_windu)-[:APPEARS_IN]->(Episode1), - (mace_windu)-[:APPEARS_IN]->(Episode2), - (mace_windu)-[:APPEARS_IN]->(Episode3), - (ki_adi_mundi)-[:APPEARS_IN]->(Episode1), - (ki_adi_mundi)-[:APPEARS_IN]->(Episode2), - (yoda)-[:APPEARS_IN]->(Episode1), - (yoda)-[:APPEARS_IN]->(Episode2), - (yoda)-[:APPEARS_IN]->(Episode3), - (yoda)-[:APPEARS_IN]->(Episode5), - (yoda)-[:APPEARS_IN]->(Episode6), - (rabe)-[:APPEARS_IN]->(Episode1), - (bail_organa)-[:APPEARS_IN]->(Episode1), - (bail_organa)-[:APPEARS_IN]->(Episode2), - (bail_organa)-[:APPEARS_IN]->(Episode3), - (general_ceel)-[:APPEARS_IN]->(Episode1), - (bravo_two)-[:APPEARS_IN]->(Episode1), - (bravo_three)-[:APPEARS_IN]->(Episode1), - (captain_typho)-[:APPEARS_IN]->(Episode2), - (captain_typho)-[:APPEARS_IN]->(Episode3), - (senator_ask_aak)-[:APPEARS_IN]->(Episode2), - (orn_free_taa)-[:APPEARS_IN]->(Episode2), - (sola)-[:APPEARS_IN]->(Episode2), - (jobal)-[:APPEARS_IN]->(Episode2), - (ruwee)-[:APPEARS_IN]->(Episode2), - (taun_we)-[:APPEARS_IN]->(Episode2), - (lama_su)-[:APPEARS_IN]->(Episode2), - (boba_fett)-[:APPEARS_IN]->(Episode2), - (boba_fett)-[:APPEARS_IN]->(Episode5), - (jango_fett)-[:APPEARS_IN]->(Episode2), - (owen)-[:APPEARS_IN]->(Episode2), - (owen)-[:APPEARS_IN]->(Episode4), - (beru)-[:APPEARS_IN]->(Episode2), - (beru)-[:APPEARS_IN]->(Episode4), - (cliegg)-[:APPEARS_IN]->(Episode2), - (count_dooku)-[:APPEARS_IN]->(Episode2), - (count_dooku)-[:APPEARS_IN]->(Episode3), - (sun_rit)-[:APPEARS_IN]->(Episode2), - (poggle)-[:APPEARS_IN]->(Episode2), - (plo_koon)-[:APPEARS_IN]->(Episode2), - (plo_koon)-[:APPEARS_IN]->(Episode3), - (odd_ball)-[:APPEARS_IN]->(Episode3), - (general_grievous)-[:APPEARS_IN]->(Episode3), - (fang_zar)-[:APPEARS_IN]->(Episode3), - (mon_mothma)-[:APPEARS_IN]->(Episode3), - (mon_mothma)-[:APPEARS_IN]->(Episode6), - (giddean_danu)-[:APPEARS_IN]->(Episode3), - (clone_commander_gree)-[:APPEARS_IN]->(Episode3), - (clone_commander_cody)-[:APPEARS_IN]->(Episode3), - (tion_medon)-[:APPEARS_IN]->(Episode3), - (captain_antilles)-[:APPEARS_IN]->(Episode3), - (darth_vader)-[:APPEARS_IN]->(Episode3), - (darth_vader)-[:APPEARS_IN]->(Episode4), - (darth_vader)-[:APPEARS_IN]->(Episode5), - (darth_vader)-[:APPEARS_IN]->(Episode6), - (luke)-[:APPEARS_IN]->(Episode4), - (luke)-[:APPEARS_IN]->(Episode5), - (luke)-[:APPEARS_IN]->(Episode6), - (luke)-[:APPEARS_IN]->(Episode7), - (camie)-[:APPEARS_IN]->(Episode4), - (biggs)-[:APPEARS_IN]->(Episode4), - (leia)-[:APPEARS_IN]->(Episode4), - (leia)-[:APPEARS_IN]->(Episode5), - (leia)-[:APPEARS_IN]->(Episode6), - (leia)-[:APPEARS_IN]->(Episode7), - (motti)-[:APPEARS_IN]->(Episode4), - (tarkin)-[:APPEARS_IN]->(Episode4), - (han)-[:APPEARS_IN]->(Episode4), - (han)-[:APPEARS_IN]->(Episode5), - (han)-[:APPEARS_IN]->(Episode6), - (han)-[:APPEARS_IN]->(Episode7), - (dodonna)-[:APPEARS_IN]->(Episode4), - (gold_leader)-[:APPEARS_IN]->(Episode4), - (wedge)-[:APPEARS_IN]->(Episode4), - (wedge)-[:APPEARS_IN]->(Episode5), - (wedge)-[:APPEARS_IN]->(Episode6), - (red_leader)-[:APPEARS_IN]->(Episode4), - (red_ten)-[:APPEARS_IN]->(Episode4), - (gold_five)-[:APPEARS_IN]->(Episode4), - (rieekan)-[:APPEARS_IN]->(Episode5), - (derlin)-[:APPEARS_IN]->(Episode5), - (zev)-[:APPEARS_IN]->(Episode5), - (piett)-[:APPEARS_IN]->(Episode5), - (piett)-[:APPEARS_IN]->(Episode6), - (ozzel)-[:APPEARS_IN]->(Episode5), - (dack)-[:APPEARS_IN]->(Episode5), - (janson)-[:APPEARS_IN]->(Episode5), - (needa)-[:APPEARS_IN]->(Episode5), - (lando)-[:APPEARS_IN]->(Episode5), - (lando)-[:APPEARS_IN]->(Episode6), - (jerjerrod)-[:APPEARS_IN]->(Episode6), - (bib_fortuna)-[:APPEARS_IN]->(Episode6), - (boushh)-[:APPEARS_IN]->(Episode6), - (admiral_ackbar)-[:APPEARS_IN]->(Episode6), - (admiral_ackbar)-[:APPEARS_IN]->(Episode7), - (lor_san_tekka)-[:APPEARS_IN]->(Episode7), - (poe)-[:APPEARS_IN]->(Episode7), - (kylo_ren)-[:APPEARS_IN]->(Episode7), - (captain_phasma)-[:APPEARS_IN]->(Episode7), - (finn)-[:APPEARS_IN]->(Episode7), - (unkar_plutt)-[:APPEARS_IN]->(Episode7), - (rey)-[:APPEARS_IN]->(Episode7), - (general_hux)-[:APPEARS_IN]->(Episode7), - (lieutenant_mitaka)-[:APPEARS_IN]->(Episode7), - (bala_tik)-[:APPEARS_IN]->(Episode7), - (snoke)-[:APPEARS_IN]->(Episode7), - (maz)-[:APPEARS_IN]->(Episode7), - (snap)-[:APPEARS_IN]->(Episode7), - (admiral_statura)-[:APPEARS_IN]->(Episode7), - (yolo_ziff)-[:APPEARS_IN]->(Episode7), - (colonel_datoo)-[:APPEARS_IN]->(Episode7), - (ello_asty)-[:APPEARS_IN]->(Episode7), - (jess)-[:APPEARS_IN]->(Episode7), - (niv_lek)-[:APPEARS_IN]->(Episode7) ----- - -Let's look at some basic information from the database. The following query extracts -all the films that are included in the network. - -[source,cypher,role="runnable backend:graphgist"] ----- -MATCH (m:Movie) -RETURN m.name ----- - -//table - -It seems that the database correctly contains all the seven episodes of Star Wars. - - -== Simple network properties - -Now we can start comparing the individual episodes based on their network properties. Is the original -trilogy different from the prequels in terms of its social network? And how does The Force Awakens -compare to the rest? - -Let's start with looking at the number of characters in each of the episodes. The following -query extracts characters and returns their count aggregated by the movie that they appear in. - -[source,cypher,role="runnable editable backend:graphgist"] ----- -MATCH (m:Movie)<-[:APPEARS_IN]-(character) -RETURN m.name AS movie, count(*) AS characters -ORDER BY m.name; ----- - -//table - -We can immediately see some differences between the movies. The original trilogy (Episodes IV to VI) -has the smallest number of characters. On the other hand, Episode I: The Phantom Menace has the largest number -of characters, almost twice as many. - -How many interactions are there between the characters? In this query, we extract all the links between -two characters that both appear within the same movie and return their count for each movie. This is a -simplification because I'm assuming that if two characters have link between them, then they interact -in every movie where they both appear. - -[source,cypher,role="runnable editable backend:graphgist"] ----- -MATCH (m)<-[:APPEARS_IN]-(character)-[:SPEAKS_WITH]-(character2)-[:APPEARS_IN]->(m) -RETURN m.name AS movie, count(*) AS edges -ORDER BY m.name; ----- - -//table - -The results show a similar story, where the original trilogy has smaller number of links -between the characters and their social networks are smaller. This corresponds to the -tighter and more organized structure of the original films, which have smaller number of -characters that bind the story together more. - - -== Extracting social network relations - -We can also use the database to extract the social network for each of the Star Wars movies. -The following query extracts all the characters that appear in a specific episode and -all the interactions between them. I'm using the Episode VII -as an example: - -[source,cypher,role="runnable editable graph backend:graphgist"] ----- -MATCH network=(m)<-[:APPEARS_IN]-(character1)-[r]-(character2)-[:APPEARS_IN]->(m) -WHERE m.name='Episode VII: The Force Awakens' -RETURN character1, r, character2 ----- - -//graph_result - -We can see that there are parts of the network that correspond to the Dark side characters, -including Snoke, General Hux and others. There is also a cluster of nodes that represent -Resistance pilots, and who interact mainly with each other and with Poe. Let's explore the -network in more detail. - -== Importance of characters in the network - -A basic measure of centrality in a social network is the *degree centrality*. This is -simply the number of connections each node has in the network. -In our Star Wars network, this corresponds to the total number of scenes where each character speaks. -The following query extracts the number of `SPEAKS_WITH` relations for each character and returns -the top 10 results. - -[source,cypher,role="runnable editable backend:graphgist"] ----- -MATCH (ch1)-[:SPEAKS_WITH]-(ch2) -RETURN ch1.name AS name, count(*) AS degree -ORDER BY count(*) DESC LIMIT 10; ----- - -//table - -This result is strongly affected by the large social networks of the prequels. Anakin -comes out at the top as the person that speaks with the largest number of other characters. -And because of the prequels, even Jar Jar made it into the top 10. - -We can instead look at who has the largest degree within the individual films. This query -extracts the characters that speak to each other and appear within the same film, and counts -the number of such connections for each character. I'm using the orignal Episode IV: A New Hope -in the example. - -[source,cypher,role="runnable editable backend:graphgist"] ----- -MATCH (m)<-[:APPEARS_IN]-(ch1)-[:SPEAKS_WITH]-(ch2)-[:APPEARS_IN]->(m) -WHERE m.name='Episode IV: A New Hope' -RETURN ch1.name AS name, count(*) AS degree -ORDER BY count(*) DESC LIMIT 5; ----- - -//table - -Here, Luke Skywalker is the most central character, followed by Leia and the droids. - -We can also visualize the results and look at the specific interactions. -For example, the following query extracts all the -characters that interact with Luke Skywalker, together with the movies that they appear in. - -[source,cypher,role="runnable editable graph backend:graphgist"] ----- -MATCH path=(luke:Person {name: 'LUKE'})-[:SPEAKS_WITH]-(other)-[:APPEARS_IN]-(movie) -RETURN path ----- - -//graph_result - -Here we can see that some of the characters cluster around specific episodes (these are the -characters that appear only the specific episode). Other characters that interact with Luke -across several other episodes appear as more central nodes in the network. - -== Summary - -This GraphGist showed how to do simple social network analysis using the -Star Wars social network that I extracted from the film scripts. We looked at how to -extract and summarize sub-networks for individual episodes, and for specific characters. -Overall, this was my first experience with Neo4j and it was very easy to create the network and -extract interesting information from the database. diff --git a/preview-src/image-borders.adoc b/preview-src/image-borders.adoc deleted file mode 100644 index dc7b4ef0..00000000 --- a/preview-src/image-borders.adoc +++ /dev/null @@ -1,75 +0,0 @@ -= Image display options -:page-theme: docs -// :page-styles: image-border - - -[abstract] --- -Display images with border or box-shadow --- - -- set `:page-styles: image-border` or `:page-styles: image-shadow` in a playbook, _antora.yml_ or in a page header to add border or shadow to all pages in the docset, component, or page. -- set `[.border]` or `[.shadow]` for individual images -- combine border and shadow settings to apply both styles -- use `[.no-border]` or `[.no-shadow]` to override a global setting for a specific image - - -== Border - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. - ----- -[.border] -image:overview.png[] ----- - -[.border] -image:overview.png[] - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - - -== Shadow - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - ----- -[.shadow] -image:overview.png[] ----- - -[.shadow] -image:overview.png[] - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - -== Border and shadow - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - ----- -[.border.shadow] -image:overview.png[] ----- - -[.border.shadow] -image:overview.png[] - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - -== No styles - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - -image:overview.png[] - -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! \ No newline at end of file diff --git a/preview-src/index.adoc b/preview-src/index.adoc deleted file mode 100644 index b292e6b8..00000000 --- a/preview-src/index.adoc +++ /dev/null @@ -1,756 +0,0 @@ -= icon:graduation-cap[] Hardware and Software Requirements -Author Name -:idprefix: -:idseparator: - -:!example-caption: -:!table-caption: -:page-pagination: -:page-disabletracking: -// tag::theme[] -:page-theme: docs -// end::theme[] -// tag::search[] -:page-type: knowledgebase -:page-environment: macos -:page-programminglanguage: java -:page-neo4jversion: 3.5 -:page-product: NEOSEMANTICS -// end::search[] -// tag::meta[] -:description: This guide shows the different ways you can import data from a relational database to Neo4j. Completing this guide will give you the tools to choose how to import your relational data and transform it to the graph. -:keywords: one, two, three, four -// end::meta[] -// tag:discourse[] -// :page-comments: -// :page-topicid: 22863 -// end:discourse[] -:page-disabletracking: true -:page-newsletter: true -// tag::link[] -:page-ad-overlinelink: {aura_signup} -:page-ad-overline: Neo4j Aura -:page-ad-title: Follow Along and Learn While Doing -:page-ad-description: Free forever, no credit card required. -:page-ad-link: {aura_signup} -:page-ad-underlinerole: button -:page-ad-underline: Start on AuraDB -// :page-ad-image: https://s3.amazonaws.com/cdn.graphacademy.neo4j.com/tshirts/python-tshirt.jpg -// :page-ad-image: https://graphacademy.neo4j.com/courses/app-python/badge/ -// end::link[] -:page-deprecated-title: the Getting Started Manual -:page-deprecated-redirect: https://neo4j.com/docs/getting-started/current/ - -.Goals -[abstract] -{description} - -.Prerequisites -[abstract] -You should be familiar with link:/developer/get-started/graph-database[graph database] concepts and the link:/developer/get-started/graph-database#property-graph[property graph model]. -It is also helpful to know the differences between link:/developer/graph-db-vs-rdbms/[relational and graph concepts] and their link:/developer/relational-to-graph-modeling/[data models]. - -== Heading - -Lorem ipsum dolor sic est. - - -== Quotes - -[quote,Citation] -____ -Insert fantastically profound thought here -____ - - -[.procedures,%headers, cols="5,2,1"] -|=== -| Qualified Name | Type | Release - -| **apoc.agg.first** - -`apoc.agg.first(value)` - -returns first value - -| -+++ -Function -+++ -| -+++ -Full -+++ - -| link:#[apoc.import.csv icon:book[]] - -`apoc.import.csv(nodes, relationships, config)` - -imports nodes and relationships from the provided CSV files with given labels and types - -| -+++ -Procedure -+++ -| -+++ -Core -+++ - -|=== - -// tag::level[] -:level: Beginner -[role=expertise {level}] -{level} -// end::level[] - - - -[.discrete.ad] -== link:https://graphacademy.neo4j.com/[Learn with GraphAcademy^] - -image::https://graphacademy.neo4j.com/courses/app-python/badge/[float=left] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - - -== Section with Ads - -[.discrete.ad.left] -== link:https://graphacademy.neo4j.com/[Floated Left^] - -// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - -== Break out of Ad box - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - - -== Break out of box - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - - -[.discrete.ad.right] -== link:https://graphacademy.neo4j.com/[Floated Right^] - -// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] - -[.discrete] -=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] - -In this course, we walk through the steps to integrate Neo4j into your Python projects. -We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. - - -link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] -link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] - -== Break out again - -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - -== Tabs -// tag::tabs[] -[.tabs] - -.SH -[source,sh] -$ touch .env -$ cp .env .env.example -$ rm .env.example - -.Preview -[source,cypher] -CALL n10s.rdf.preview.fetch( - 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', - 'Turtle' -) - -.Stream -[source,cypher] -CALL n10s.rdf.stream.fetch( - 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', - 'Turtle' -) - -// end::tabs[] - -Then some content... - -These should change with the top ones - - -[.tabs] -.Preview -[source,cypher] ----- -// PREVIEW ----- - -.Stream -[source,cypher] ----- -// STREAM ----- - -But these should be independent: - -[.tabs] -// tag::source[] -[source,cypher] ----- -CALL n10s.rdf.preview.fetch( - 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', - 'Turtle' -) ----- -// end::source[] - -[source,js] -CALL n10s.rdf.stream.fetch( - 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', - 'Turtle' -) - -== queryresult - -.Query -[source, cypher] ----- -SHOW ALIASES FOR DATABASE YIELD * RETURN count(*) as count ----- - -.Result -[role="queryresult",options="header,footer",cols="1*, because it still has relationships. To delete this node, you must first delete its relationships. - - -++++ -
- -
-++++ - - -video::_D19h5s73Co[youtube] - -== Icons - Font Awesome 4.7 icon:frown-o[] - -icon:code-fork[] Projects - -icon:play-circle[] Play Circle - -icon:rss[] rss - -icon:github[] github - -icon:book[] book - -icon:user[] user - -icon:flask[] flask - - -== Driver Table - -[cols="3*"] -|=== -| Name -| icon:tag[] Version -| icon:user[] Authors - -| neo4j-driver -| 4.0.2 -| The Neo4j Team - -| https://www.npmjs.com/package/neo4j-driver[icon:gift[] Package] -| -| https://community.neo4j.com/c/drivers-stacks/javascript[Neo4j Online Community^] - -| link:/[icon:book[] Docs^] -| link:/docs/api/javascript-driver/current/[icon:code[] API] -| http://github.com/neo4j/neo4j-javascript-driver[icon:github[] Source] -|=== - - - -image:multirepo-ssg.svg[Multirepo SSG,200,float=right] -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. -Vis no velit audiam, sonet <> eum ne. -*Prompta eripuit* nec ad. -Integer diam enim, dignissim eget eros et, ultricies mattis odio. -Vestibulum consectetur nec urna a luctus. -Quisque pharetra tristique arcu fringilla dapibus. -Curabitur ut massa aliquam, cursus enim et, accumsan lectus. - -link:/developer/get-started/graph-database/[Learn More: What is a Graph Database?^, role="button feature-box_button"] - -[source,gram] -(neo4j:Neo4j {name: "Neo4j"}) -(neo4j)-[:INCLUDES]->(browser:Product {name: "Neo4j Browser"}) -(browser)-[:HAS]->(:Feature {name: "Cypher"}) -(browser)-[:HAS]->(:Feature {name: "Dev Tools"}) -(browser)-[:HAS]->(:Feature {name: "Visualization"}) -(neo4j)-[:CONNECTS_WITH]->(drivers:Drivers {name: "Drivers"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Java"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Javascript"}) -(drivers)-[:SUPPORTS]->(:Language {name: ".NET"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Python"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Go"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "PHP"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "Ruby"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "...and more"}) -(neo4j)-[:PROVIDES]->(:OpenSource {name: "Open Source"}) -(neo4j)-[:INCLUDES]->(integrations:Integrations {name: "Integrations"}) -(integrations)-[:PLUGS_INTO]->(tools:Tools {name: "Tools"}) -(integrations)-[:PLUGS_INTO]->(frameworks:Frameworks {name: "Frameworks"}) - -[.gram] -(neo4j:Neo4j {name: "Neo4j"}) -(neo4j)-[:INCLUDES]->(browser:Product {name: "Neo4j Browser"}) -(browser)-[:HAS]->(:Feature {name: "Cypher"}) -(browser)-[:HAS]->(:Feature {name: "Dev Tools"}) -(browser)-[:HAS]->(:Feature {name: "Visualization"}) -(neo4j)-[:CONNECTS_WITH]->(drivers:Drivers {name: "Drivers"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Java"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Javascript"}) -(drivers)-[:SUPPORTS]->(:Language {name: ".NET"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Python"}) -(drivers)-[:SUPPORTS]->(:Language {name: "Go"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "PHP"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "Ruby"}) -(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "...and more"}) -(neo4j)-[:PROVIDES]->(:OpenSource {name: "Open Source"}) -(neo4j)-[:INCLUDES]->(integrations:Integrations {name: "Integrations"}) -(integrations)-[:PLUGS_INTO]->(tools:Tools {name: "Tools"}) -(integrations)-[:PLUGS_INTO]->(frameworks:Frameworks {name: "Frameworks"}) - -== Cu solet - -Nominavi luptatum eos, an vim hinc philosophia intellegebat. -Lorem pertinacia `expetenda` et nec, [.underline]#wisi# illud [.line-through]#sonet# qui ea. -Eum an doctus <>. -Eu mea inani iriure. - -// tag::glossary_term[] -Open the <> folder and install <>. -// end::glossary_term[] - -Find out about the <> algorithm trait. The glossary text for the `Weighted` is quite long so it can be used to demonstrate the glossary term tooltip switching from being displayed above the term to below the term. - - -[source,xml] ----- - ----- - -[source, shell] ----- -line of code // <1> -line of code # <2> -line of code ;; <3> -line of code ----- -<1> A callout behind a line comment for C-style languages. -<2> A callout behind a line comment for Ruby, Python, Perl, etc. -<3> A callout behind a line comment for Clojure. -<4> A callout behind a line comment for XML or SGML languages like HTML. - -[source, shell, line-comment=%] ----- -line of code % <1> ----- -<1> A callout behind a custom line comment prefix (%). - -The next source block contains characters that should be copied and then pasted unescaped (ie `<` and `>`). - -[source,json] ----- -{ - "name": "module-name", - "version": "10.0.1", - "description": "An example module to illustrate the usage of package.json", - "author": "Author Name ", - "scripts": { - "test": "mocha", - "lint": "eslint" - } -} ----- - -Do something else with <>. - -.Example paragraph syntax -[source,asciidoc] ----- -.Optional title -[example] -This is an example paragraph. ----- - -.Optional title -[example] -This is an example paragraph. - -=== Some Code - -How about some code? - -[source,js] ----- -vfs - .src('js/vendor/*.js', { cwd: 'src', cwdbase: true, read: false }) - .pipe(tap((file) => { // <1> - file.contents = browserify(file.relative, { basedir: 'src', detectGlobals: false }).bundle() - })) - .pipe(buffer()) // <2> - .pipe(uglify()) - .pipe(gulp.dest('build')) ----- -<1> The tap function is used to wiretap the data in the pipe. -<2> Wrap each streaming file in a buffer so the files can be processed by uglify. -Uglify can only work with buffers, not streams. - -Cum dicat #putant# ne. -Est in <> homero principes, meis deleniti mediocrem ad has. -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. - - -[source,cypher] ----- -// Do some Periodic Commit -CALL apoc.periodic.iterate( - 'foo', - 'bar', - { - iterateList: true - } -) -YIELD map ----- - -[source,cypher] ----- -UNWIND range(0, 100) AS id -CREATE (n:Node {id: id, test: true, str: 'ing'}) -RETURN collect(n) AS ns ----- - -.Codeblock with role=noheader -[source,cypher,role=noheader] ----- -UNWIND range(0, 100) AS id -CREATE (n:Node {id: id, test: true, str: 'ing'}) -RETURN collect(n) AS ns ----- - -.Codeblock with role=nocopy -[source,cypher,role=nocopy] ----- -UNWIND range(0, 100) AS id -CREATE (n:Node {id: id, test: true, str: 'ing'}) -RETURN collect(n) AS ns ----- - -.Codeblock with role=nocopy noheader -[source,cypher,role=nocopy noheader] ----- -UNWIND range(0, 100) AS id -CREATE (n:Node {id: id, test: true, str: 'ing'}) -RETURN collect(n) AS ns ----- - -.Just some pre -.... -pom.xml -src/ - main/ - java/ - HelloWorld.java - test/ - java/ - HelloWorldTest.java -.... - -Select menu:File[Open Project] to open the project in your IDE. -Per ea btn:[Cancel] inimicus. -Ferri kbd:[F11] tacimates constituam sed ex, eu mea munere vituperata kbd:[Ctrl,T] constituam. - -.Sidebar Title -**** -Platonem complectitur mediocritatem ea eos. -Ei nonumy deseruisse ius. -Mel id omnes verear. - -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. -**** - -=== Liber recusabo - -No sea, at invenire voluptaria mnesarchum has. -Ex nam suas nemore dignissim, vel apeirian democritum et. -At ornatus splendide sed, phaedrum omittantur usu an, vix an noster voluptatibus. - -. potenti donec cubilia tincidunt -. etiam pulvinar inceptos velit quisque aptent himenaeos -. lacus volutpat semper porttitor aliquet ornare primis nulla enim - -Natum facilisis theophrastus an duo. -No sea, at invenire voluptaria mnesarchum has. - -* ultricies sociosqu tristique integer -* lacus volutpat semper porttitor aliquet ornare primis nulla enim -* etiam pulvinar inceptos velit quisque aptent himenaeos - -Eu sed antiopam gloriatur. -Ea mea agam graeci philosophia. - -* [ ] todo -* [x] done! - -Vis veri graeci legimus ad. - -sed:: -splendide sed - -mea:: -agam graeci - -At ornatus splendide sed. - -.Library dependencies -[#dependencies%autowidth] -|=== -|Library |Version - -|eslint -|^1.7.3 - -|eslint-config-gulp -|^2.0.0 - -|expect -|^1.20.2 - -|istanbul -|^0.4.3 - -|istanbul-coveralls -|^1.0.3 - -|jscs -|^2.3.5 -|=== - -Cum dicat putant ne. -Est in reque homero principes, meis deleniti mediocrem ad has. -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. - - -[discrete] -== Voluptua singulis - -Cum dicat putant ne. -Est in reque homero principes, meis deleniti mediocrem ad has. -Ex nam suas nemore dignissim, vel apeirian democritum et. - -.Antora is a multi-repo documentation site generator -image::multirepo-ssg.svg[Multirepo SSG,250] - -Make the switch today! - -[#english+中文] -== English + 中文 - -Altera atomorum his ex, has cu elitr melius propriae. -Eos suscipit scaevola at. - -[quote, 'Famous Person. Cum dicat putant ne.', 'Cum dicat putant ne. https://example.com[Famous Person Website]'] -____ -Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! -____ - -== Fin - -That's all, folks! - -== Second Level -Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. - -=== Third Level -Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. -Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! - - -==== Neovis.js - -This library was designed to combine JavaScript visualization and Neo4j in a seamless integration. -Connection to Neo4j is simple and straightforward, and because it is built with Neo4j’s property graph model in mind, the data format Neovis expects aligns with the database. -Customizing and coloring styles based on labels, properties, nodes, and relationships is defined in a single configuration object. -Neovis.js can be used without writing Cypher and with minimal JavaScript for integrating into your project. - -==== -[TIP] -icon:flask[size=2x] The Neovis library is one of our Neo4j Labs projects. -To learn more about Neo4j Labs, visit our https://neo4j.com/labs/[Labs page^]. -==== - -To maximize functionality and data analysis capabilities through visualization, you can also combine this library with the graph algorithms library in Neo4j to style the visualization to align with results of algorithms such as page rank, centrality, communities, and more. -Below, we see a graph visualization of Game Of Thrones character interactions rendered by neovis.js, and enhanced using Neo4j graph algorithms by applying link:/docs/graph-algorithms/current/algorithms/page-rank/[pagerank^] and link:/docs/graph-algorithms/current/algorithms/community/[community detection^] algorithms to the styling of the visualization. - -An advantage of enhancing graph visualization with these algorithms is that we can visually interpret the results of these algorithms. - -===== Neovis.js Resources -* Blog post: https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379[Neovis.js^] -* Download neovis.js: https://www.npmjs.com/package/neovis.js[npm package^] - -== Pad Headers - -=== Pad Subheader - -=== Pad Subheader - -== Pad Headers - -== Pad Headers - -== Pad Headers - -== Pad Headers - - -// tag::glossary[] -[discrete.glossary] -== Glossary - -[glossary] -[[NEO4J_HOME]]$NEO4J_HOME:: The directory in which you have installed Neo4j. This will contain a `bin/` folder which holds the `neo4j` executable, plus conf, data and plugins. -[[Weighted]]Weighted:: The algorithm supports configuration to set node and/or relationship properties to use as weights. These values can represent cost, time, capacity or some other domain-specific properties, specified via the nodeWeightProperty, nodeProperties and relationshipWeightProperty configuration parameters. The algorithm will by default consider each node and/or relationship as equally important. -+ -For more information, see the link:/ops-manual[Operations Manual^] -[[APOC]]APOC:: xref:apoc[APOC] is a library of procedures and functions that make your life as a Neo4j user easier. - -// end::glossary[] - -[[test-links]] -== Links - -*Normal text* - -. Normal text. -. Text with `Mono space` snippet. - - -*Text that link to www.example.com* - -. Text link:#test-links[anchor to test links] text text. -. Text link:www.example.com[www.example.com] text text. -. Text link:www.example.com[`mono space`] text text. -. Text `link:www.example.com[mono space]` text text. - - -*Text that link to page anchor* - -. Text <> text text. -. Text <> text text. -. Text <> text text. -. Text `<>` text text. - - -== skip-to-content links -Link to a section down the page: link:#skip-to-content[] - -++++++ diff --git a/preview-src/kb-article.adoc b/preview-src/kb-article.adoc deleted file mode 100644 index 1086fde4..00000000 --- a/preview-src/kb-article.adoc +++ /dev/null @@ -1,84 +0,0 @@ -= How to estimate initial memory configuration -:page-layout: kb-article -:page-theme: kb -:author: Dave Gordon -:neo4j-versions: 2.3,3.0 -:tags: heap, memory, jvm, page-cache, cache -:category: operations - -The initial and eventual memory configuration parameters can be a moving target, based on how your store changes in size and how your workload increases or changes over time. - -This guidance is meant for the initial configuration. - -In order to decide on an appropriate configuration, you need the following information: - -* Amount of physical memory on the machine hosting Neo4j. -* Estimates of the following: -** Number of nodes. -** Number of relationships. -** Average number of properties per node and per relationship. - -A fairly high-level rule of thumb is `Total Physical Memory = Heap + Page Cache + OS Memory`. - -Usually reserving 1-2GB for the OS is sufficient. The heap and page cache are detailed below. - -== First, we need to decide on a good heap size. - -A heap should not be overly large, as that can cause much longer Stop-the-World pauses when a full garbage collection (GC) cycle is needed. -It should also be big enough to allow enough memory for your workload. -On systems with a large amount of physical memory (>56GB), keeping the heap to 16GB and under typically works well. - -[source,cypher] ----- -MATCH (m:Movie) -OPTIONAL MATCH (m)<-[:WORKED_ON]-(a:Animator) -WITH m, a -WHERE m.releaseYear > 1999 AND a IS NOT NULL -RETURN m, collect(a) as animators ----- - -== Second, consider the page cache. - -This is where the store files will be mapped in main memory for quicker access. -The default page-cache size is 50% of the available memory. -A good rule of thumb is Store `size + expected growth + 10%`. -So, for a store that is 5GB in size, and you expect that to double in size in the next year, you would ideally allocate `5GB + 5GB + 1GB = 11GB`. - -[NOTE] -This last section is no longer relevant for Neo4j versions 2.3 and later. - -== Lastly, let's look at the object cache options. - -The object cache is where nodes, relationships, and other objects are mapped to main memory. -By default on Neo4j 2.2.x, this is set to High Performance Cache (hpc). -On small stores (~10GB or smaller), this performs well. -On larger stores, you will probably see better performance turning off the cache (set `cache_type=none`). - -If you are using the object cache and need to tune it further, consider starting with the `cache.memory_ratio` option. -This is on-heap, so it is the percentage of the heap to use for object cache. -The default is 50%, but you can increase this a bit (to as high as 65-70%), especially if the JVM is not using all of its heap consistently. - -== Install - -*Steps:* - -. Navigate to the NEO4J_HOME directory: -+ -[source,shell,role=noheader] ----- -$ cd /var/lib/neo4j/ ----- - -. Get the 3.0 software: -+ -[source,shell,role=noheader] ----- -$ wget http://www.neo4j.com/customer/download/neo4j-enterprise-3.0.4-unix.tar.gz ----- - -. Backup the existing Neo4j 2.3.7 install: -+ -[source,shell,role=noheader] ----- -$ ./neo4j-enterprise-2.3.7/bin/neo4j-backup -to /tmp/neo4j_2.3.7_backup -host 127.0.0.1 ----- diff --git a/preview-src/kb-index.adoc b/preview-src/kb-index.adoc deleted file mode 100644 index 5b2d3109..00000000 --- a/preview-src/kb-index.adoc +++ /dev/null @@ -1,6 +0,0 @@ -= Knowledge Base -// the content of this page will be automatically generated from the catalog -:page-layout: kb-index -:page-theme: kb -:page-component: kb -:page-slug: kb diff --git a/preview-src/labels.adoc b/preview-src/labels.adoc deleted file mode 100644 index db96d467..00000000 --- a/preview-src/labels.adoc +++ /dev/null @@ -1,223 +0,0 @@ -= Labels -:page-selector-label: Custom version label -// :page-selector-hide-label: true - - -== All the labels - -++++ -
- Default Label Color -
- -
- Current -
- -
- AuraDB Virtual Dedicated Cloud -
- -
- Enterprise Edition -
- -
- Enterprise -
- -
- Professional -
- -
- Enterprise Only -
- -
- Aura -
- -
- Recommended -
- -
- Default -
- -
- New -
- -
- Yes -
- -
- Renamed -
- -
- Changed -
- -
- Added -
- -
- Updated -
- -
- Not Available on Aura -
- -
- Removed -
- -
- No -
- -
- N / A -
- -
- Warning! -
- -
- Danger! -
- -
- Discontinued -
- -
- Deprecated -
- -
- Alpha -
- -
- Beta -
- -
- APOC Core -
- -
- Core -
- -
- APOC Full -
- -
- Full -
- -
- Function -
- -
- Procedure -
- -
- Beginner -
- -
- Free -
- -
- Windows -
- -
- Linux -
- -
- Unix -
- -
- Mac OS -
- -
- Syntax -
- -
- Functionality -
- -
- Cypher -
- -
- CORE -
- -
- READ_REPLICA -
- -
- SINGLE -
- -
- Labs -
- -++++ - -== Tables with labels! - - -++++ - - - ---- - - - - - - - - - - - - - - -
Table 44. dbms.cluster.protocols() Enterprise Edition

Description

-

Overview of installed protocols.

-
-
-

Note that this can only be executed on a cluster core member.

-

Signature

dbms.cluster.protocols() :: (orientation :: STRING, remoteAddress :: STRING, applicationProtocol :: STRING, applicationProtocolVersion :: INTEGER, modifierProtocols :: STRING)

Mode

READ

- -++++ \ No newline at end of file diff --git a/preview-src/labs.adoc b/preview-src/labs.adoc deleted file mode 100644 index 2ea8108b..00000000 --- a/preview-src/labs.adoc +++ /dev/null @@ -1,101 +0,0 @@ -= Neo4j Labs -:description: Incubating the next generation of graph developer tooling. GraphQL and GRANDstack, Algorithms, APOC, Kafka, ETL Tool, neovis.js, and more. -// tag::layout[] -:page-layout: landing -:page-theme: labs -// end::layout[] -// :page-herotitle: Neo4j Labs -// :page-herosubtitle: Incubating the Next Generation of Graph Developer Tooling -:page-toclevels: -1 -:page-disabletracking: - -[.hero] -== Neo4j Labs - -Incubating the Next Generation of + -Graph Developer Tooling - -[.buttons] -* <> -* <> -* <> - -[.secondary.leading] -== What is Neo4j Labs? - -Neo4j Labs is a collection of the latest innovations in graph technology. -These projects are designed and developed by the Neo4j team as a way to test functionality and extensions of our product offerings. -A project typically either graduates to being maintained as a formal Neo4j project or is deprecated with source made available publicly. - -These Labs are supported via the online community. -They are actively developed and maintained, but we don't provide any SLAs or guarantees around backwards compatibility and deprecation. - - -== Current Projects - -=== Graph Algorithms Library - -To enable large scale graph analytics and to support machine learning pipelines, we developed the link:https://neo4j.com/developer/graph-algorithms/[Neo4j Graph Algorithms^] library, which covers many widely used algorithms. -The library offers highly parallelized implementation that works well with large scale graphs. - -[#goals.incremental] -=== xref:grandstack:index.adoc[GraphQL and GRANDstack] -GraphQL has become a comprehensive stack for API development and consolidation. -Our link:https://neo4j.com/labs/grandstack-graphql[GRANDstack^] and Neo4j-GraphQL-js offerings combine the most common tools and frameworks: GraphQL, React, Apollo and Neo4j Database. - - -=== xref:apoc:index.adoc[Awesome Procedures on Cypher (APOC)] - -As the most comprehensive developer toolkit for Neo4j, the xref:apoc:index.adoc[APOC library] provides a wide range of procedures and functions that make your life as a Neo4j user easier. -APOC includes data integration, graph refactoring, data conversion, operational functionality and more. - - -=== xref:halin:index.adoc[Halin Monitoring App] - -The link:https://neo4j.com/labs/halin[Halin Monitoring App] allows you to monitor your Neo4j deployment and identify bottlenecks or incorrect configurations, with insights into currently running queries and workloads. -The app also provides access to metrics and logs. - - -=== xref:streams:index.adoc[Kafka Integration] - -Streaming event data is an integral part of most modern data architectures. -With xref:streams:index.adoc[Neo4j Kafka Integration] you can integrate Neo4j both as a sink or source into your setup. -The integration is available as a Kafka Connect plugin and Neo4j Server extension.. - - -=== xref:etl:index.adoc[ETL Tool] - -Having an easy way of loading data from relational databases into Neo4j is one of the first steps many users take. -The xref:etl:index.adoc[Neo4j-ETL Tool] makes this easy by inferring a graph model from the relational meta model that you can then adapt to fit your needs. -Given that transformation, this tool also handles the actual import for you. - -=== xref:neosemantics:index.adoc[Neosemantics] - -xref:neosemantics:index.adoc[Neosemantics] integrates RDF and Linked Data with Neo4j. -It allows to import a wide variety of RDF formats and to expose Neo4j property graphs as Linked Data. -Ontology and Inference are also partially supported. - - - -=== Other Active Projects - -* link:https://github.com/neo4j-contrib/neovis.js/[Neovis.js^], a graph visualization toolkit for the web -* link:https://github.com/neo4j-contrib/neo4j-spark-connector/[The Neo4j-Spark-Connector^], library to exchange graph data between Neo4j and Apache Spark - -[.secondary] -== Frequently Asked Questions - -=== Are these safe to use in production? -Current Neo4j Labs projects are being actively worked on by our engineers, and may be rough around the edges, with changing APIs, as they push the edge of the envelope. Therefore, we cannot provide official commercial support for these projects or guarantee longevity. However, some Neo4j customers and users still love the functionality of these projects and choose to continue using them in production environments. - -=== How do I contribute? -We welcome contributions for those labs which are open source projects. You'll find links to GitHub repositories - feel free to submit PRs. We've also created a discussion category for Labs on link:https://community.neo4j.com[community.neo4j.com^] - -=== Which Neo4j Labs projects have graduated? -The link:https://hub.docker.com/_/neo4j[Neo4j Docker containers] started off as a Labs project to explore how well Neo4j would run in a containerized environment. They quickly gained popularity and are heavily used by both Neo4j and customers, so we've graduated them to be officially part of the Neo4j release distribution. - -We've also had features originally implemented as plugins and extensions moved into the core product. This includes link:https://neo4j.com/graphconnect-2018/session/neo4j-spatial-mapping[spatial functionality^] and APOC link:https://neo4j.com/docs/operations-manual/3.5/reference/procedures/[meta graph^] plus link:https://neo4j.com/docs/operations-manual/current/performance/index-configuration/fulltext/[full text indexing^]. - -=== Which Neo4j Labs projects have been deprecated? -The MongoDB Doc Manager and Cassandra Connector have both been deprecated. The source is still available on GitHub, but we found most developers could accomplish similiar goals by using APOC, Kafka and other technologies. - diff --git a/preview-src/links.adoc b/preview-src/links.adoc deleted file mode 100644 index 72cb3862..00000000 --- a/preview-src/links.adoc +++ /dev/null @@ -1,39 +0,0 @@ -= Links -:nofooter: -:neo4j-docs-base-uri: https://neo4j.com/docs - -== angle brackets - -<> - - -== xref - -xref:labs.adoc[] - - -[[to-docs]] -== link to neo4j.com/docs - -internal: link:https://neo4j.com/docs[neo4j.com/docs] - -external: link:https://neo4j.com/docs[neo4j.com/docs^] - -attribute: link:{neo4j-docs-base-uri}[neo4j.com/docs] - -attribute (external): link:{neo4j-docs-base-uri}[neo4j.com/docs^] - - -== link to neo4j.com - -internal: link:https://neo4j.com[neo4j.com] - -external: link:https://neo4j.com[neo4j.com^] - - -== link to example.com - -internal: link:https://example.com[example.com] - -external: link:https://example.com[example.com^] - diff --git a/preview-src/lists.adoc b/preview-src/lists.adoc deleted file mode 100644 index 0d0a7239..00000000 --- a/preview-src/lists.adoc +++ /dev/null @@ -1,13 +0,0 @@ -= Lists - -== Bullet point - -. Example 1 -. Example 2 -. Example 2 - -== Numbered - -* Example 1 -* Example 2 -* Example 2 \ No newline at end of file diff --git a/preview-src/neo4j-gds-certify.adoc b/preview-src/neo4j-gds-certify.adoc deleted file mode 100644 index 4cfa965d..00000000 --- a/preview-src/neo4j-gds-certify.adoc +++ /dev/null @@ -1,65 +0,0 @@ -= Become Certified for Neo4j Graph Data Science -:page-layout: training-certification -:page-certification-id: rmq60244152a8a26 -:page-toclevels: -1 - -The Neo4j Graph Data Science Library enables data scientists to execute graph algorithms that operate on the nodes and relationships in a graph. - -== Become Certified in Neo4j Graph Data Science - -Now is the perfect time to show your employer, customers and colleagues that you are an expert in the Neo4j Graph Data Science Library. - -Take the Neo4j Graph Data Science Certification exam right now, and you’ll be done in 60 minutes or less. - -image::https://dist.neo4j.com/wp-content/uploads/20210212123424/Neo4j_GDS.png[width=350px] - -== Frequently Asked Questions - -How much does it cost to take the exam?:: -No cost – it’s completely free! - -What areas are tested in the exam?:: -The Neo4j Graph Data Science Certification exam tests you in the following areas: -+ -- General use of the Neo4j Graph Data Science Library. -- Graph Data Science workflow used during analysis. -- Using specific graph algorithms. - -How long is the exam?:: -The exam includes 40 questions in 60 minutes. - -What score do I need in order to pass?:: -You must score 80% or above in order to be certified. - -Can I retake the exam?:: -Yes, if you fail to achieve an 80% score, you can retake the certification exam later after learning a bit more about the Graph Data Science Library. Note that you can retake the exam after a 24-hour period. - -Will I get a certificate document?:: -Yes, you will get a certificate to print or save that indicates your achievement. - -Where can I learn the required skills?:: -Any of the following are great resources for learning the skills you need for the Neo4j Graph Data Science Certification: -+ --- -These free online training courses teach you how to use Cypher and Neo4j: - -. https://neo4j.com/graphacademy/training-overview-40/enrollment/[Overview of Neo4j 4.x] -. https://neo4j.com/graphacademy/training-querying-40/enrollment/[Querying with Cypher in Neo4j 4.x] -. https://neo4j.com/graphacademy/training-updating-40/enrollment/[Creating Nodes and Relationships in Neo4j 4.x] -. https://neo4j.com/graphacademy/training-best-practices-40/enrollment/[Using Indexes and Query Best Practices in Neo4j 4.x] -. https://neo4j.com/graphacademy/training-importing-data-40/enrollment/[Importing Data with Neo4j 4.x] - -These free online training courses teach you how to use the algorithms and workflow of the Neo4j Graph Data Science Library: - -- https://neo4j.com/graphacademy/training-iga-40/enrollment/[Introduction to Graph Algorithms in Neo4j 4.x] -- https://neo4j.com/graphacademy/training-gdsds-40/enrollment/[Using a Machine Learning Workflow for Link Prediction] -- https://neo4j.com/graphacademy/training-gdsaa-40/enrollment/[Applied Data Science for Web Applications] - -Here are other resources you can use to prepare for the certification exam: - -- https://neo4j.com/docs/graph-data-science/current/[Neo4j Graph Data Science Documentation] -- https://neo4j.com/developer/graph-data-science/[Neo4j Graph Data Science Developer Pages] -- https://neo4j.com/docs/cypher-manual/current/[The Neo4j Cypher Manual] --- - -If you have questions around the Neo4j Certification Program, please send us an email to certification@neo4j.com. diff --git a/preview-src/private-page.adoc b/preview-src/private-page.adoc deleted file mode 100644 index 573196c6..00000000 --- a/preview-src/private-page.adoc +++ /dev/null @@ -1,3 +0,0 @@ -= Private Page -:page-no-index: -:page-no-canonical: diff --git a/preview-src/promos-ad-include.adoc b/preview-src/promos-ad-include.adoc deleted file mode 100644 index 1cfa6c79..00000000 --- a/preview-src/promos-ad-include.adoc +++ /dev/null @@ -1,6 +0,0 @@ -: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 deleted file mode 100644 index 89e93e86..00000000 --- a/preview-src/promos-include.adoc +++ /dev/null @@ -1,4 +0,0 @@ -[.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 deleted file mode 100644 index b58e650d..00000000 --- a/preview-src/promos.adoc +++ /dev/null @@ -1,52 +0,0 @@ -= 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/security-docs.adoc b/preview-src/security-docs.adoc deleted file mode 100644 index aafe30b1..00000000 --- a/preview-src/security-docs.adoc +++ /dev/null @@ -1,143 +0,0 @@ -= Neo4j Security -:page-layout: docs-ndl -:page-role: security-docs hub -:page-theme: docs -:page-hide-nav-title: true -// :page-disablefeedback: true -:!toc: -:page-toclevels: -1 - -[.cards] -== Security documentation - -=== Cypher - -[.icon] -image:icons/ndl/deployment-options.svg[] - -[.list] -* link:{docs-home}/cypher-manual/current/clauses/load-csv/[Load CSV] + -* link:https://neo4j.com/developer/kb/protecting-against-cypher-injection/[Cypher injection] + -* link:https://neo4j.com/developer/kb/protecting-against-ssrf/[Server Side Request Forgery (SSRF)] - - -=== Database administration - -[.icon] -image:icons/ndl/deployment-options.svg[] - -[.list] -* link:{docs-home}/operations-manual/current/database-administration/[Database management] + -* link:{docs-home}/operations-manual/current/database-administration/aliases/manage-aliases-standard-databases/[Database alias management] + -* link:{docs-home}/operations-manual/current/tutorial/access-control/[Access control] + -* link:{docs-home}/operations-manual/current/authentication-authorization/[Authentication and authorization] + -* link:{docs-home}/operations-manual/current/security/[Network security] + -* link:{docs-home}/operations-manual/current/docker/security/[SSL encryption in a Neo4j Docker container] + -* link:{docs-home}/operations-manual/current/kubernetes/authentication-authorization/[Authentication and authorization using Helm charts] + -* link:{docs-home}/operations-manual/current/kubernetes/security/[Configuring SSL using Helm charts] - - -=== Neo4j Ops Manager - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:{docs-home}/ops-manager/current/installation/server/[Server installation] + -* link:{docs-home}/ops-manager/current/installation/self-signed-certificate/[Self-Signed Certificate Generation] + -* link:{docs-home}/ops-manager/current/installation/docker/[Docker server security] + -* link:{docs-home}/ops-manager/current/administration/security-manager/[Security manager] + - - -=== Neo4j Aura - -[.icon] -image:icons/ndl/deployment-options.svg[] - -[.list] -* link:{docs-home}/aura/platform/security/secure-connections/[Secure connections] + -* link:{docs-home}/aura/platform/security/secure-connections/#_network_access[Network access] + -* link:{docs-home}/aura/platform/security/secure-connections/#_private_endpoints[Private endpoints] + -* link:{docs-home}/aura/platform/security/secure-connections/#_supported_tls_cipher_suites[TLS cypher suites] + -* link:{docs-home}/aura/platform/security/single-sign-on/[Single Sign-On (SSO)] + -* link:{docs-home}/aura/platform/security/encryption/[Encryption] + -* link:{docs-home}/aura/platform/security/encryption/#_customer_managed_keys[Customer Managed Keys] - - -=== Neo4j Browser - -[.icon] -image:icons/ndl/icon-neo4j.svg[] - -[.list] -* link:{docs-home}/browser-manual/current/operations/dbms-connection/[DBMS encryption] + -* link:{docs-home}/browser-manual/current/operations/credentials-handling/[Browser credentials handling] + -* link:{docs-home}/browser-manual/current/operations/browser-sso/[Browser Single Sign-On] - - -=== Neo4j GraphQL - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:{docs-home}/graphql/current/authentication-and-authorization/[Authentication and Authorization] - - -=== Neo4j HTTP API - -[.icon] -image:icons/ndl/icon-import.svg[] - -[.list] -* link:{docs-home}/http-api/current/authentication-authorization/[Authentication and authorization] - - -=== Neo4j-OGM - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:{docs-home}/ogm-manual/current/reference/#reference:configuration:driver:tsl[Transport Layer Security (TLS/SSL)] + -* link:{docs-home}/ogm-manual/current/reference/#reference:configuration:driver:credentials[Credentials] - - -=== Neo4j Connectors - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:{docs-home}/spark/current/aura/#_connecting_to_auradb_from_spark_on_databricks[Connecting to AuraDB from Spark + -on Databricks] -* link:https://docs.spring.io/spring-data/neo4j/reference/auditing.html[Auditing] + -* link:https://docs.spring.io/spring-data/neo4j/reference/faq.html#faq.multidatabase[Multiple databases configuration] + -* link:https://docs.spring.io/spring-data/neo4j/reference/faq.html#faq.impersonation[User impersonation] -* link:https://dist.neo4j.org/Neo4j-BI-Connector-JDBC-1.0.10-docs.pdf?_ga=2.24062010.1448679670.1660555628-1448477576.1652358840[JDBC security and authentication] + -* link:https://dist.neo4j.org/Neo4j-BI-Connector-ODBC-1.0.1-docs.pdf?_ga=2.94333341.1448679670.1660555628-1448477576.1652358840[ODBC security and authentication] - - -=== Neo4j Labs - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:https://neo4j.com/labs/#_are_these_safe_to_use_in_production[Overview] + -* link:https://neo4j.com/labs/apoc/4.4/installation/#restricted[APOC installation restrictions] + -* link:https://neo4j.com/labs/apoc/4.4/config/[APOC configuration] + -* link:https://neo4j.com/labs/neo4j-helm/1.0.0/networking/[Neo4j-Helm networking and security] + -* link:https://neo4j.com/labs/neo4j-helm/1.0.0/configreference/[Neo4j-Helm configuration reference] - - -=== Neo4j Bloom - -[.icon] -image:icons/ndl/icon-library.svg[] - -[.list] -* link:{docs-home}/bloom-user-guide/current/about-bloom/#_security[Overview] + -* link:{docs-home}/bloom-user-guide/current/advanced-installation/[Advanced installation and configuration] + -* link:{docs-home}/bloom-user-guide/current/bloom-installation/installation-activation/#_bloom_server[Bloom server setup] + -* link:{docs-home}/bloom-user-guide/current/bloom-tutorial/gds-integration/#_using_gds_algorithms_in_bloom[Using GDS algorithms in Bloom] \ No newline at end of file diff --git a/preview-src/sidebar-headings-ad.adoc b/preview-src/sidebar-headings-ad.adoc deleted file mode 100644 index 7505928a..00000000 --- a/preview-src/sidebar-headings-ad.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Page with ad and subheadings -:page-ad-icon: mortarboard -:page-ad-title: Free, Hands-on training with Neo4j GraphAcademy -:page-ad-description: We're here to guide you on a fun and engaging journey to mastering Neo4j with free, hands-on courses. -:page-ad-link: https://graphacademy.neo4j.com/?ref=promo-generic -:page-ad-underline-role: button -:page-ad-underline: Enroll now - - -== Section 1 -This page has subheadings, so `toc-menu` is generated. - -== Section 2 -This page also has an ad, which should be displayed below the page contents. diff --git a/preview-src/sidebar-headings-no-ad.adoc b/preview-src/sidebar-headings-no-ad.adoc deleted file mode 100644 index f7534b1d..00000000 --- a/preview-src/sidebar-headings-no-ad.adoc +++ /dev/null @@ -1,8 +0,0 @@ -= Page with subheadings but no ad - - -== Section 1 -This page has subheadings, so page contents is displayed. - -== Section 2 -There is no ad for this page. diff --git a/preview-src/sidebar-no-headings-ad.adoc b/preview-src/sidebar-no-headings-ad.adoc deleted file mode 100644 index dd839d4f..00000000 --- a/preview-src/sidebar-no-headings-ad.adoc +++ /dev/null @@ -1,11 +0,0 @@ -= Page with ad and no subheadings -:page-ad-icon: mortarboard -:page-ad-title: Free, Hands-on training with Neo4j GraphAcademy -:page-ad-description: We're here to guide you on a fun and engaging journey to mastering Neo4j with free, hands-on courses. -:page-ad-link: https://graphacademy.neo4j.com/?ref=promo-generic -:page-ad-underline-role: button -:page-ad-underline: Enroll now - -This page has no subheadings. - -But we still want the `toc-ad` to be displayed. \ No newline at end of file diff --git a/preview-src/sidebar-no-headings-no-ad.adoc b/preview-src/sidebar-no-headings-no-ad.adoc deleted file mode 100644 index 6bfc72c7..00000000 --- a/preview-src/sidebar-no-headings-no-ad.adoc +++ /dev/null @@ -1,5 +0,0 @@ -= Page with no subheadings and no ad - -This page has no subheadings. - -It has no ad to display so there should be no `` in the HTML. \ No newline at end of file diff --git a/preview-src/tables-no-captions.adoc b/preview-src/tables-no-captions.adoc deleted file mode 100644 index 156b3e14..00000000 --- a/preview-src/tables-no-captions.adoc +++ /dev/null @@ -1,271 +0,0 @@ -= Tables -:nofooter: -:page-ogtitle: This page uses the page-ogtitle attribute to generate a custom title for SEO meta -:page-styles: hide-table-captions - -.No striping -// Alternative to stripes attributes is -// setting role "stripes-none" as [.stripes-none,cols="1,2"]. -[stripes=none,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.All rows -// Alternative to stripes attributes is -// setting role "stripes-all" as [.stripes-all,cols="1,2"]. -[stripes=all,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Odd rows -// Alternative to stripes attributes is -// setting role "stripes-odd" as [.stripes-odd,cols="1,2"]. -[stripes=odd,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Even rows (default) -// Alternative to stripes attributes is -// setting role "stripes-even" as [.stripes-even,cols="1,2"]. -[stripes=even,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Hover -[stripes=hover,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Table with top and bottom frame (topbot) -[frame="topbot"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with no frame (none) -[frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with only sides frame (sides) -[frame="sides"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with default frame (all) -[frame="all"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with no grid (none) -[grid="none", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only columns grid (cols) -[grid="cols", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only rows grid (rows) -[grid="rows", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with default rows and columns grid (all) -[grid="all", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -== Setup and Cypher Refresher - -[frame="none", cols="^.^,<.^"] -|=== -a|image::sandbox.png[Neo4j Sandbox,width=500,align=center] -a| -Neo4j Sandbox is a hosted Neo4j tool that allows you to run private instances of Neo4j without having to install Neo4j locally. You can choose Neo4j Sandbox usecases that come pre-loaded with datasets and your Neo4j Sandbox instances can be accessed over the internet, making them useful for building sample applications. While Neo4j Browser is the primary way to interact with Neo4j instances hosted by Neo4j Sandbox, for this course you will also connect your sandbox instance to a simple web application. -|=== - -== Breaking long text - -Long parameter, var, or option names shouldn't wrap - -.Results -[opts="header",cols="1,1,6"] -|=== -| Name | Type | Description -| nodes | int | The number of nodes considered. -| writeProperty | string | The property name written back to. -| createMillis | int | Milliseconds for loading data. -| computeMillis | int | Milliseconds for running the algorithm. -| writeMillis | int | Milliseconds for writing result data back. -| centralityDistribution | Map | Map containing min, max, mean as well as p50, p75, p90, p95, p99 and p999 percentile values of centrality values. -|=== - -In case a value or long string is used in a link but not formatted as code - -|=== -| text | link -| text | link:example.com[bolt.connections,bolt.messages_received,bolt.messages_started,dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt] -|=== - -The next table includes a large codeblock, which needs to wrap - -.metrics.filter -[cols="<1s,<4"] -|=== -|Description -a|Specifies which metrics should be enabled by using a comma separated list of globbing patterns. Only the metrics matching the filter will be enabled. For example '*check_point*,neo4j.page_cache.evictions' will enable any checkpoint metrics and the pagecache eviction metric. -|Valid values -a|metrics.filter, a ',' separated list with elements of type 'A simple globbing pattern that can use '*' and '?'.'. -|Default value -m|*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt,*causal_clustering.core.replication_fail,*check_point.duration,*check_point.total_time,*cypher.replan_events,*ids_in_use.node,*ids_in_use.property,*ids_in_use.relationship,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread* - -|=== - -== Table Text Wrap - -Tables showing word-break behavior - -=== Text, links, and inline code - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Table with better column widths: - -[opts="header",cols="2,1,1m,1,5"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Tables with `role=no-break`: - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -== table link target - -A section for table links to point to \ No newline at end of file diff --git a/preview-src/tables-no-toc.adoc b/preview-src/tables-no-toc.adoc deleted file mode 100644 index bb0c5d99..00000000 --- a/preview-src/tables-no-toc.adoc +++ /dev/null @@ -1,281 +0,0 @@ -= Tables with no in-page Contents -:nofooter: -:page-ogtitle: This page uses the page-ogtitle attribute to generate a custom title for SEO meta -:page-toclevels: -1 - -.No striping -// Alternative to stripes attributes is -// setting role "stripes-none" as [.stripes-none,cols="1,2"]. -[stripes=none,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.All rows -// Alternative to stripes attributes is -// setting role "stripes-all" as [.stripes-all,cols="1,2"]. -[stripes=all,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Odd rows -// Alternative to stripes attributes is -// setting role "stripes-odd" as [.stripes-odd,cols="1,2"]. -[stripes=odd,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Even rows (default) -// Alternative to stripes attributes is -// setting role "stripes-even" as [.stripes-even,cols="1,2"]. -[stripes=even,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Hover -[stripes=hover,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.No header -[cols="1,2"] -|=== -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Table with top and bottom frame (topbot) -[frame="topbot"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with no frame (none) -[frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with only sides frame (sides) -[frame="sides"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with default frame (all) -[frame="all"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with no grid (none) -[grid="none", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only columns grid (cols) -[grid="cols", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only rows grid (rows) -[grid="rows", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with default rows and columns grid (all) -[grid="all", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -== Setup and Cypher Refresher - -[frame="none", cols="^.^,<.^"] -|=== -a|image::sandbox.png[Neo4j Sandbox,width=500,align=center] -a| -Neo4j Sandbox is a hosted Neo4j tool that allows you to run private instances of Neo4j without having to install Neo4j locally. You can choose Neo4j Sandbox usecases that come pre-loaded with datasets and your Neo4j Sandbox instances can be accessed over the internet, making them useful for building sample applications. While Neo4j Browser is the primary way to interact with Neo4j instances hosted by Neo4j Sandbox, for this course you will also connect your sandbox instance to a simple web application. -|=== - -== Breaking long text - -Long parameter, var, or option names shouldn't wrap - -.Results -[opts="header",cols="1,1,6"] -|=== -| Name | Type | Description -| nodes | int | The number of nodes considered. -| writeProperty | string | The property name written back to. -| createMillis | int | Milliseconds for loading data. -| computeMillis | int | Milliseconds for running the algorithm. -| writeMillis | int | Milliseconds for writing result data back. -| centralityDistribution | Map | Map containing min, max, mean as well as p50, p75, p90, p95, p99 and p999 percentile values of centrality values. -|=== - -In case a value or long string is used in a link but not formatted as code - -|=== -| text | link -| text | link:example.com[bolt.connections,bolt.messages_received,bolt.messages_started,dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt] -|=== - -The next table includes a large codeblock, which needs to wrap - -.metrics.filter -[cols="<1s,<4"] -|=== -|Description -a|Specifies which metrics should be enabled by using a comma separated list of globbing patterns. Only the metrics matching the filter will be enabled. For example '*check_point*,neo4j.page_cache.evictions' will enable any checkpoint metrics and the pagecache eviction metric. -|Valid values -a|metrics.filter, a ',' separated list with elements of type 'A simple globbing pattern that can use '*' and '?'.'. -|Default value -m|*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt,*causal_clustering.core.replication_fail,*check_point.duration,*check_point.total_time,*cypher.replan_events,*ids_in_use.node,*ids_in_use.property,*ids_in_use.relationship,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread* - -|=== - -== Table Text Wrap - -Tables showing word-break behavior - -=== Text, links, and inline code - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Table with better column widths: - -[opts="header",cols="2,1,1m,1,5"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Tables with `role=no-break`: - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -== table link target - -A section for table links to point to \ No newline at end of file diff --git a/preview-src/tables.adoc b/preview-src/tables.adoc deleted file mode 100644 index d6de6b90..00000000 --- a/preview-src/tables.adoc +++ /dev/null @@ -1,285 +0,0 @@ -= Tables -:nofooter: -:page-theme: docs -:page-ogtitle: This page uses the page-ogtitle attribute to generate a custom title for SEO meta -// :page-edit-url-body: Custom raise an issue body text -// :page-edit-url-title: Custom raise an issue title text -:page-edit-url-uri: https://github.com/neo4j/docs-cypher/blob/dev/modules/ROOT/pages/queries/index.adoc -:page-custom-canonical: https://neo4j.com/docs/cypher-manual/current/clauses/where/ - -.No striping -// Alternative to stripes attributes is -// setting role "stripes-none" as [.stripes-none,cols="1,2"]. -[stripes=none,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.All rows -// Alternative to stripes attributes is -// setting role "stripes-all" as [.stripes-all,cols="1,2"]. -[stripes=all,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Odd rows -// Alternative to stripes attributes is -// setting role "stripes-odd" as [.stripes-odd,cols="1,2"]. -[stripes=odd,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Even rows (default) -// Alternative to stripes attributes is -// setting role "stripes-even" as [.stripes-even,cols="1,2"]. -[stripes=even,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Hover -[stripes=hover,cols="1,2"] -|=== -| Name | Description - -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.No header -[cols="1,2"] -|=== -| Asciidoctor -| *Awesome* way to write documentation - -| Micronaut -| Low resource usage and fast startup micro services -|=== - -.Table with top and bottom frame (topbot) -[frame="topbot"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with no frame (none) -[frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with only sides frame (sides) -[frame="sides"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - - -.Table with default frame (all) -[frame="all"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with no grid (none) -[grid="none", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only columns grid (cols) -[grid="cols", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with only rows grid (rows) -[grid="rows", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -.Table with default rows and columns grid (all) -[grid="all", frame="none"] -|=== -| Name | Description - -| Asciidoctor -| Awesome way to write documentation - -|=== - -== Setup and Cypher Refresher - -[frame="none", cols="^.^,<.^"] -|=== -a|image::sandbox.png[Neo4j Sandbox,width=500,align=center] -a| -Neo4j Sandbox is a hosted Neo4j tool that allows you to run private instances of Neo4j without having to install Neo4j locally. You can choose Neo4j Sandbox usecases that come pre-loaded with datasets and your Neo4j Sandbox instances can be accessed over the internet, making them useful for building sample applications. While Neo4j Browser is the primary way to interact with Neo4j instances hosted by Neo4j Sandbox, for this course you will also connect your sandbox instance to a simple web application. -|=== - -== Breaking long text - -Long parameter, var, or option names shouldn't wrap - -.Results -[opts="header",cols="1,1,6"] -|=== -| Name | Type | Description -| nodes | int | The number of nodes considered. -| writeProperty | string | The property name written back to. -| createMillis | int | Milliseconds for loading data. -| computeMillis | int | Milliseconds for running the algorithm. -| writeMillis | int | Milliseconds for writing result data back. -| centralityDistribution | Map | Map containing min, max, mean as well as p50, p75, p90, p95, p99 and p999 percentile values of centrality values. -|=== - -In case a value or long string is used in a link but not formatted as code - -|=== -| text | link -| text | link:example.com[bolt.connections,bolt.messages_received,bolt.messages_started,dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt] -|=== - -The next table includes a large codeblock, which needs to wrap - -.metrics.filter -[cols="<1s,<4"] -|=== -|Description -a|Specifies which metrics should be enabled by using a comma separated list of globbing patterns. Only the metrics matching the filter will be enabled. For example '*check_point*,neo4j.page_cache.evictions' will enable any checkpoint metrics and the pagecache eviction metric. -|Valid values -a|metrics.filter, a ',' separated list with elements of type 'A simple globbing pattern that can use '*' and '?'.'. -|Default value -m|*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*causal_clustering.core.is_leader,*causal_clustering.core.last_leader_message,*causal_clustering.core.replication_attempt,*causal_clustering.core.replication_fail,*check_point.duration,*check_point.total_time,*cypher.replan_events,*ids_in_use.node,*ids_in_use.property,*ids_in_use.relationship,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread* - -|=== - -== Table Text Wrap - -Tables showing word-break behavior - -=== Text, links, and inline code - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Table with better column widths: - -[opts="header",cols="2,1,1m,1,5"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -=== Tables with `role=no-break`: - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| <> | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| <> | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| <> | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `<>` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `<>` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -[role="no-break",opts="header",cols="1,1,1m,1,8"] -|=== -| Name | Type | Default | Optional | Description -| `nodeLabels` | List of String | ['*'] | yes | Filter the named graph using the given node labels. -| `relationshipTypes` | List of String | ['*'] | yes | Filter the named graph using the given relationship types. -| `concurrency` | Integer | 4 | yes | The number of concurrent threads used for running the algorithm. -|=== - -== table link target - -A section for table links to point to \ No newline at end of file diff --git a/preview-src/tiles.adoc b/preview-src/tiles.adoc deleted file mode 100644 index 9acf3f79..00000000 --- a/preview-src/tiles.adoc +++ /dev/null @@ -1,63 +0,0 @@ -= Tiles -:page-layout: tiles -:page-theme: docs -:!toc: - - -Welcome to the Neo4j Docs. -Voluptate minim eu irure sit ullamco ipsum consequat proident. - -link:/developer/get-started/graph-database/[Learn More: What is a Graph Database?^, role="button feature-box_button"] - -== Neo4j Database - -=== Getting Started - -Eiusmod culpa dolore minim veniam aute nisi consectetur. - -* link:./getting-started/current[HTML] -* link:[PDF] - -=== Operations Manual - -Culpa excepteur magna velit ad sit consectetur aute consectetur excepteur qui laborum labore. - -* link:./operations-manual/current[HTML] -* link:[PDF] - -=== Migration Guide - -Nostrud laboris excepteur enim eiusmod fugiat quis fugiat cupidatat fugiat adipisicing consequat ipsum. - -* link:./migration-guide/current[HTML] -* link:[PDF] - - -== Cypher - -=== Cypher Manual 4.0 - -Veniam amet dolor laboris enim. - -* link:./cypher-manual/current[HTML] -* link:[PDF] - -=== Cypher Refcard - -Labore dolore duis deserunt aliqua in pariatur sunt pariatur aliqua nisi pariatur. - -* link:./cypher-refcard/current[HTML] -* link:[PDF] - - -== Drivers & APIs - -=== Neo4j Drivers Manual - -Minim irure veniam eiusmod duis est cupidatat mollit ex ipsum quis minim. - -* link:./drivers-refcard/current[HTML] -* link:./drivers-refcard/current[Java] -* link:./drivers-refcard/current[Javascript] -* link:./drivers-refcard/current[.NET] -* link:./drivers-refcard/current[Python] \ No newline at end of file diff --git a/preview-src/training-enrollment-disabled.adoc b/preview-src/training-enrollment-disabled.adoc deleted file mode 100644 index d03b7b9e..00000000 --- a/preview-src/training-enrollment-disabled.adoc +++ /dev/null @@ -1,16 +0,0 @@ -= Introduction to Neo4j 4.0 [disabled] -:slug: introduction-to-neo4j-40 -:description: Learn about Graph Databases, Neo4j and Cypher – the Graph Query Language. -:page-slug: {slug} -:page-description: {description} -:page-layout: training-enrollment -:page-course-duration: 16 hrs -:page-illustration: https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/courseLogos/IntroductionToNeo4j-4.0.jpg -:page-course-name: 4.0-intro-neo4j -:page-disable-enrollment: - -image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/courseLogos/IntroductionToNeo4j-4.0_withTitle.jpg[] - -== About the Course - -This course is disabled! diff --git a/preview-src/training-enrollment.adoc b/preview-src/training-enrollment.adoc deleted file mode 100644 index 018f08db..00000000 --- a/preview-src/training-enrollment.adoc +++ /dev/null @@ -1,36 +0,0 @@ -= Introduction to Neo4j 4.0 -:slug: introduction-to-neo4j-40 -:description: Learn about Graph Databases, Neo4j and Cypher – the Graph Query Language. -:page-slug: {slug} -:page-description: {description} -:page-layout: training-enrollment -:page-course-duration: 16 hrs -:page-illustration: https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/courseLogos/IntroductionToNeo4j-4.0.jpg -:page-course-name: 4.0-intro-neo4j - -image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/courseLogos/IntroductionToNeo4j-4.0_withTitle.jpg[] - -== About the Course - -This online course is a collection of lessons and and hands-on exercises which help you build a good starting knowledge of the Neo4j 4.x DBMS. -It teaches the core functionality for accessing a Neo4j database. -You will learn the foundational knowledge required to start building applications with Neo4j, -including how to read and write data from and to the database using the Cypher language. - -== Prerequisites - -You need not have extensive programming experience to take this course. - -== Duration - -If you perform all of the hands-on exercises in this course, -it will take you two days to complete the course. - -== What you will learn - -* What is a Graph Database -* The Neo4j Graph Platform -* Cypher Queries -* Creating Nodes and Relationships in the Graph -* Indexes and Query Best Practices -* Importing Data diff --git a/preview-src/ui-model.yml b/preview-src/ui-model.yml index a8423926..428113cd 100644 --- a/preview-src/ui-model.yml +++ b/preview-src/ui-model.yml @@ -2,8 +2,7 @@ antoraVersion: '1.0.0' site: url: http://localhost:5252 title: Brand Docs - homeUrl: &home_url /xyz/4.1/index.html - theme: docs + homeUrl: &home_url /xyz/5.2/index.html components: - name: abc title: Project ABC @@ -19,26 +18,26 @@ site: latestVersion: *latest_version_abc - &component name: xyz - title: Project XYZ - url: /xyz/4.2/index.html + title: &component_title Project XYZ + url: /xyz/6.0/index.html versions: - &latest_version_xyz - url: /xyz/4.2/index.html - version: '4.2' - displayVersion: '4.2' + url: /xyz/6.0/index.html + version: '6.0' + displayVersion: '6.0' - &component_version - url: '/4.1' - version: '4.1' - displayVersion: '4.1' - title: 'Component title wraps onto a second line' - - url: '/4.0' - version: '4.0' - displayVersion: '4.0' - - url: '/3.5' - version: '3.5' - displayVersion: '3.5' + title: *component_title + url: '#' + version: '5.2' + displayVersion: '5.2' + - url: '#' + version: '5.1' + displayVersion: '5.1' + - url: '#' + version: '5.0' + displayVersion: '5.0' latestVersion: *latest_version_xyz - - name: 123 + - name: '123' title: Project 123 url: '#' versions: @@ -56,13 +55,14 @@ site: page: url: *home_url home: true - title: Brand’s Hardware & Software Requirements + title: Home component: *component componentVersion: *component_version - version: '4.1' - displayVersion: '4.1' + version: '5.2' + displayVersion: '5.2' module: ROOT - editUrl: http://example.com/project-xyz/blob/master/index.adoc + relativeSrcPath: index.adoc + editUrl: http://example.com/project-xyz/blob/main/index.adoc origin: private: false previous: @@ -78,432 +78,27 @@ page: url: '#' urlType: fragment - content: Brand’s Hardware & Software Requirements - url: /xyz/4.1/index.html + url: /xyz/5.2/index.html urlType: internal versions: - - version: '4.2' - displayVersion: '4.2' - url: '/4.2' - - version: '4.1' - displayVersion: '4.1' - url: '/4.1' - - version: '4.0' - displayVersion: '4.0' - url: '/4.0' - - version: '3.5' - displayVersion: '3.5' + - version: '6.0' + displayVersion: '6.0' + url: '#' + - version: '5.2' + displayVersion: '5.2' + url: '#' + - version: '5.1' + displayVersion: '5.1' + url: '#' + - version: '5.0' + displayVersion: '5.0' missing: true - url: '/3.5' + url: '#' navigation: - root: true - content: Project XYZ - url: '#' - urlType: fragment items: - - content: Quickstart - url: '#' - urlType: fragment - items: - - content: Brand’s Hardware & Software Requirements - url: /xyz/4.1/index.html - urlType: internal - - content: Cu Solet - url: '/xyz/4.1/index.html#cu-solet' - urlType: internal - - content: Docs Needle Home - url: docs-ndl.html - urlType: internal - module: ROOT - - content: Docs Hub - url: docs-hub.html - urlType: internal - module: ROOT - items: - - content: Explainer - url: docs-explainer.html - urlType: internal - module: ROOT - items: - - content: Liber Recusabo - url: '#liber-recusabo' - urlType: fragment - - content: Tiled Template - url: tiles.html - urlType: internal - - content: Labs Template - url: labs.html - urlType: internal - - content: Reference - a long title that also has child pages - module: ROOT - items: - - content: Keyboard Shortcuts - url: '#' - urlType: fragment - module: ROOT - - content: Importing and Exporting - url: '#' - urlType: fragment - - content: Some Code - url: '/xyz/4.1/index.html#some-code' - urlType: internal - - content: Level 2 title - items: - - content: Level 3 title - items: - - content: English + 中文 - url: '/xyz/4.1/index.html#english+中文' - urlType: internal - - content: Admonitions - url: admonitions.html - urlType: internal - - content: Page Banners - items: - - content: note - url: banner-note.html - urlType: internal - - content: warning - url: banner-warning.html - urlType: internal - - content: Sidebar - items: - - content: No headings, no ad - url: sidebar-no-headings-no-ad.html - urlType: internal - - content: No headings, with ad - url: sidebar-no-headings-ad.html - urlType: internal - - content: Headings, no ad - url: sidebar-headings-no-ad.html - urlType: internal - - content: Headings, with ad - url: sidebar-headings-ad.html - urlType: internal - - content: Labels - url: labels.html - urlType: internal - - content: Cypher Cheat Sheet - url: cheat-sheet.html - urlType: internal - - content: Cypher DELETE - url: cheat-sheet.html#delete - urlType: internal - - content: Drivers and APIs - url: drivers-apis.html - urlType: internal - - content: Developer Template - url: developer.html - urlType: internal - - content: Knowledge Base - url: kb-index.html - urlType: internal - - content: KB Article Template - url: kb-article.html - urlType: internal - - content: Training enrollement - url: training-enrollment.html - urlType: internal - - 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: Tables - url: tables.html - urlType: internal - - content: Tables (no toc) - url: tables-no-toc.html - urlType: internal - - content: Tables (No Captions) - url: tables-no-captions.html - urlType: internal - - content: Examples - url: example.html - urlType: internal - - content: Code blocks - url: code.html - urlType: internal - - content: Feedback disabled - url: feedback-disabled.html - urlType: internal - - content: Links - url: links.html - urlType: internal - - content: Docs roles - url: docs-roles.html - urlType: internal - - content: Image styles - url: image-borders.html - urlType: internal - - content: Deprecated - url: deprecated.html - urlType: internal - - content: Alpha - url: alpha.html - urlType: internal - - content: Beta - url: beta.html - urlType: internal - - content: Algorithms - url: algorithms.html - urlType: internal - - content: Bibliography - url: bibliography.html - urlType: internal - - content: Private Page - url: private-page.html - urlType: internal - - content: Drivers tabs - url: drivers-tabs.html - urlType: internal - - content: Edit & Run Cypher - url: edit-run-cypher.html - urlType: internal - - content: GraphGists - url: graph-gist-index.html - urlType: internal - - content: Reference - a long title that also has child pages + - content: Fundamentals items: - - content: Keyboard Shortcuts - url: '#' - urlType: fragment - - content: Importing and Exporting - url: '#' - urlType: fragment - - content: Some Code - url: '/xyz/4.1/index.html#some-code' + - content: Docs Remix + url: fundamentals.html urlType: internal - - content: Level 2 title - items: - - content: Level 3 title - items: - - content: English + 中文 - url: '/xyz/4.1/index.html#english+中文' - urlType: internal - - content: Star Wars Social Network - url: graph-gist-star-wars-social-network.html - urlType: internal - - content: First Steps with Cypher - url: first-steps-with-cypher.html - urlType: internal - - content: Category Pop Culture - url: graph-gist-category-pop-culture.html - urlType: internal - - 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 - - name: 'All' - class: 'all' - default: true - - name: 'Neo4j Community Edition' - class: 'neo4j-ce' - - name: 'Neo4j Enterprise Edition' - class: 'neo4j-ee' - - name: 'AuraDB Free' - class: 'aura-dbf' - - name: 'AuraDB Professional' - class: 'aura-dbp' - - name: 'AuraDB Virtual Dedicated Cloud' - class: 'aura-dbe' - - name: 'AuraDS Professional' - class: 'aura-dsp' - - name: 'AuraDS Enterprise' - class: 'aura-dse' - cheatsheet-labels: &cheatsheet-labels - - name: 'Deprecated' - class: 'deprecated' - label-only: true - - name: 'Configuration' - class: 'configuration' - label-only: true - cheatsheet-categories: &cheatsheet-categories - - name: 'Read' - class: 'read' - # default: true - - name: 'Write' - class: 'write' - - name: 'General' - class: 'general' - - name: 'Functions' - class: 'functions' - # - name: 'Configuration' - # class: 'configuration' - # label-only: true - # - name: 'Deprecated' - # class: 'deprecated' - # label-only: true - cheatsheet-personas: &cheatsheet-personas - industries: &industries - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/398/dbb/3b-/medium/noun_129319.png' - name: 'Sports and Recreation' - pub: - url: '#' - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/03e/fe4/b2-/medium/noun_144785.png' - name: 'Transportation and Logistics' - pub: - url: '#' - usecases: &usecases - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/c17/a61/68-/medium/noun_301197.png' - name: 'Data Analysis' - pub: - url: '#' - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/cbf/24f/11-/medium/noun_106914.png' - name: 'Graph Gist How-tos' - pub: - url: '#' - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/809/ef4/12-/medium/rook.png' - name: 'GraphGist Challenge Entries' - pub: - url: '#' - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/d23/998/76-/medium/noun_401.png' - name: 'General Business' - pub: - url: '#' - - imageUrl: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/de8/b13/4f-/medium/noun_253701.png?1457514437' - name: 'Pop Culture' - pub: - url: '/graph-gist-category-pop-culture.html' - star-wars-social-network-page: &star_wars_social_network_page - title: 'Exploring the Star Wars social network' - pub: - url: '/graph-gist-star-wars-social-network.html' - asciidoc: - attributes: - page-illustration: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/c31/9cd/38-/medium/c319cd38-52f9-4641-95e4-bd374f99f6e5.png' - page-author: Evelina Gabasova - page-industries: - - name: 'Education' - pub: - url: '#' - page-usecases: - - name: 'Pop Culture' - pub: - url: '/graph-gist-category-pop-culture.html' - first-steps-with-cypher: &first_steps_with_cypher - title: 'First Steps with Cypher' - pub: - url: '/first-steps-with-cypher.html' - asciidoc: - attributes: - page-illustration: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/8b4/f25/5a-/medium/8b4f255a-a843-4797-8741-3e435e7f4c0d.png' - page-author: Michael Hunger - attributes: - exploring-the-star-wars-social-network: - usecases: *usecases - industries: *industries - author: Evelina Gabasova - browserGuideUrl: 'https://guides.neo4j.com/graph-examples/exploring-the-star-wars-social-network/graph_guide' - pop-culture: - graphgist-pages: - - *star_wars_social_network_page - usecases: *usecases - industries: *industries - cheat-sheet: - cheatsheet-products: *cheatsheet-products - # cheatsheet-categories: *cheatsheet-categories - # cheatsheet-personas: *cheatsheet-personas - # cheatsheet-labels: *cheatsheet-labels - cheatsheet-product: 'Neo4j' - show-labels: true - - graphgists: - featured-pages: - - *first_steps_with_cypher - - *star_wars_social_network_page - - title: 'Bank Fraud Detection' - asciidoc: - attributes: - page-author: Kenny Bastani - page-illustration: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/477/3fc/f1-/medium/open-uri20151208-3-1s2nvy3?1457514688' - page-industries: - - name: 'Transportation and Logistics' - pub: - url: '#' - - name: 'Finance' - pub: - url: '#' - - name: 'Web & Social' - pub: - url: '#' - - name: 'Education' - pub: - url: '#' - page-usecases: - - name: 'Fraud Detection' - pub: - url: '#' - - title: 'Cypher Introduction - Social Movie Database' - asciidoc: - attributes: - page-author: Adam Cowley - page-industries: - - name: 'Transportation and Logistics' - pub: - url: '#' - - name: 'Science' - pub: - url: '#' - - name: 'Web & Social' - pub: - url: '#' - - name: 'Sports and Recreation' - pub: - url: '#' - - name: 'Education' - pub: - url: '#' - - name: 'Health Care' - pub: - url: '#' - page-usecases: - - name: 'Graph Gist How-tos' - pub: - url: '#' - - title: 'First Steps with Cypher' - asciidoc: - attributes: - page-author: Michael Hunger - page-illustration: 'https://graphgist-portal-production.s3.amazonaws.com/graph_starter/images/sources/8b4/f25/5a-/medium/8b4f255a-a843-4797-8741-3e435e7f4c0d.png' - page-industries: - - name: 'Transportation and Logistics' - pub: - url: '#' - - name: 'Finance' - pub: - url: '#' - - name: 'Retail' - pub: - url: '#' - - name: 'Comp Sci and Programming' - pub: - url: '#' - page-usecases: - - name: 'Graph Gist How-tos' - pub: - url: '#' - usecases: *usecases - industries: *industries - -asciidoc: - attributes: - theme: labs - # cdn: https://neo4j-appli-t0bbh89jwvia-895689428.us-east-1.elb.amazonaws.com/static/assets - 'page-disabletracking': true - disabletracking: true - breadcrumbs: - - name: Neo4j Labs - url: https://neo4j.com/labs/ - - name: Neosemantics - url: https://neo4j.com/labs/neosemantics - - name: Documentation - page-mixpanel: ef1696f0a9c88563894dcba2019a9bef - mixpanel: ef1696f0a9c88563894dcba2019a9bef diff --git a/src/css/docs-remix.css b/src/css/docs-remix.css new file mode 100644 index 00000000..06db9ba1 --- /dev/null +++ b/src/css/docs-remix.css @@ -0,0 +1,115 @@ +.docs-remix .body { + flex-wrap: wrap; +} + +.docs-remix .navbar a { + text-transform: uppercase; + font-weight: var(--body-font-weight-bold); + font-size: var(--toolbar-font-size); +} + +.docs-remix div.category-tabs { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + flex: 0 0 100%; + align-items: stretch; + background-color: var(--toolbar-background); + box-shadow: 0 1px 0 var(--toolbar-border-color); + position: sticky; + padding: 0 0 0 1.5rem; + top: var(--navbar-height); + height: var(--category-tabs-height); + z-index: 30; +} + +.docs-remix div.category-tabs ul { + margin: 0; + padding: 0; + display: flex; + gap: 1rem; + font-size: var(--toolbar-font-size); +} + +.docs-remix div.category-tabs ul li { + display: flex; + flex-direction: column; + justify-content: center; +} + +.docs-remix div.category-tabs ul li.is-active { + border-bottom: 2px solid var(--color-docs); + padding-top: 2px; +} + +.docs-remix div.category-tabs ul li a { + padding: 0.5rem; + border-radius: 0.5rem; + color: var(--color-docs); +} + +.docs-remix div.category-tabs ul li a:hover { + background-color: var(--toc_hover-background-color); +} + +.docs-remix .doc { + padding-top: 2rem; +} + +.docs-remix .toolbar { + position: relative; + top: unset; + background: var(--toolbar-background); + box-shadow: none; + margin: 0; + padding: 0; + font-size: var(--toolbar-font-size); + flex: 0 0 100%; +} + +.docs-remix .nav { + top: calc(var(--navbar-height) + var(--category-tabs-height)); +} + +.docs-remix .nav-container { + padding-top: 2rem; +} + +.docs-remix .nav-menu > .nav-list { + margin-top: 0; +} + +.docs-remix .page-header { + margin-bottom: 2rem; +} + +.docs-remix .breadcrumbs { + padding: 0; +} + +.docs-remix .breadcrumbs ul { + margin: 0; + padding: 0; +} + +.docs-remix .breadcrumbs ul a { + text-decoration: none; +} + +.docs-remix h1 { + margin: 0; + flex: 0 0 100%; +} + +body.docs-remix .header-label-container > div.labels.wrapped { + margin-bottom: 1rem; +} + +body.docs-remix main > .content { + margin-top: 0; +} + +.docs-remix .nav-panel-versions { + padding: 0; + margin: 0.5rem 0; +} diff --git a/src/css/site.css b/src/css/site.css index b86153f0..74897375 100644 --- a/src/css/site.css +++ b/src/css/site.css @@ -47,3 +47,4 @@ @import "newsletter.css"; @import "challenges.css"; @import "promo.css"; +@import "docs-remix.css"; diff --git a/src/css/vars.css b/src/css/vars.css index c978eb2e..f7c00e9c 100644 --- a/src/css/vars.css +++ b/src/css/vars.css @@ -187,9 +187,9 @@ --panel-border-color: rgba(var(--colors-neutral-20)); --scrollbar-thumb-color: rgba(var(--colors-neutral-15)); /* navbar */ - --navbar-background: rgba(var(--colors-neutral-80)); + --navbar-background: rgba(var(--colors-neutral-10)); --hero-fade: rgba(var(--colors-neutral-50)); - --navbar-font-color: rgba(var(--colors-neutral-15)); + --navbar-font-color: rgba(var(--colors-neutral-80)); --navbar-font-weight: 400; --navbar_hover-background: transparent; --navbar-button-background: var(--color-docs); @@ -210,7 +210,7 @@ --navbar-kb-border: var(--color-kb); /* nav */ - --nav-background: rgba(var(--colors-neutral-15)); + --nav-background: rgba(var(--colors-neutral-10)); --nav-border-color: rgba(var(--colors-neutral-20)); --nav-font-weight: 400; --nav_active-font-weight: 400; @@ -222,7 +222,7 @@ --nav-bullet-color: rgba(var(--colors-neutral-40)); /* toolbar */ - --toolbar-background: var(--panel-background); + --toolbar-background: rgba(var(--colors-neutral-10)); --toolbar-border-color: rgba(var(--colors-neutral-20)); --toolbar-font-color: rgba(var(--colors-neutral-70)); --toolbar-muted-color: rgba(var(--colors-neutral-50)); @@ -382,6 +382,9 @@ --alpha-beta-color: var(--color-black); --alpha-beta-background-color: rgba(var(--colors-marigold-40)); + /* toolbar */ + --toolbar-font-size: calc(16 / var(--rem-base) * 1rem); + /* labels and admonitions */ --label-title-font-size: calc(0.8 * var(--font-size-label)); /* set label font size from ndl */ @@ -396,6 +399,7 @@ --footer-link_hover-font-color: rgba(var(--colors-neutral-20)); /* dimensions and positioning */ + --category-tabs-height: calc(68 / var(--rem-base) * 1rem); --navbar-height: calc(68 / var(--rem-base) * 1rem); --toolbar-height: calc(45 / var(--rem-base) * 1rem); --banner-height: calc(45 / var(--rem-base) * 1rem); diff --git a/src/js/60-docs-roles.js b/src/js/60-docs-roles.js index 96debded..495bc2ab 100644 --- a/src/js/60-docs-roles.js +++ b/src/js/60-docs-roles.js @@ -2,7 +2,7 @@ import { createElement } from './modules/dom' import rolesData from './data/rolesData.json' function checkWrapped () { - const labelContainers = document.querySelectorAll('body.docs .header-label-container') + const labelContainers = document.querySelectorAll('body.docs-remix .header-label-container') for (const container of labelContainers) { var child = container.querySelector('.labels') var lineHeight = parseInt(window.getComputedStyle(container).lineHeight, 10) @@ -95,7 +95,7 @@ document.addEventListener('DOMContentLoaded', function () { // ignore inline labels const headings = ['H2', 'H3', 'H4', 'H5', 'H6', 'CAPTION'] - const roleDivs = document.querySelectorAll('body.docs *[class*="label--"]') + const roleDivs = document.querySelectorAll('body.docs-remix *[class*="label--"]') roleDivs.forEach(function (roleDiv) { var roles = roleDiv.classList diff --git a/src/layouts/center-align.hbs b/src/layouts/center-align.hbs deleted file mode 100644 index 37ac540b..00000000 --- a/src/layouts/center-align.hbs +++ /dev/null @@ -1,25 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
- -
- {{!-- toolbar for responsive nav --}} -{{> toolbar }} - -
-{{> article}} -
-
-
- - - -{{> footer}} - - diff --git a/src/layouts/cheat-sheet.hbs b/src/layouts/cheat-sheet.hbs deleted file mode 100644 index 5b9cb48b..00000000 --- a/src/layouts/cheat-sheet.hbs +++ /dev/null @@ -1,12 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - - -{{> header}} -{{> body}} -{{> footer}} - - diff --git a/src/layouts/docs-home.hbs b/src/layouts/docs-home.hbs deleted file mode 100644 index c0e06460..00000000 --- a/src/layouts/docs-home.hbs +++ /dev/null @@ -1,29 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-{{> nav}} -
- {{!-- toolbar for responsive nav --}} - - -
-{{> article}} -
-
-
- - - -{{> footer}} - - \ No newline at end of file diff --git a/src/layouts/docs-ndl.hbs b/src/layouts/docs-ndl.hbs deleted file mode 100644 index 104c31aa..00000000 --- a/src/layouts/docs-ndl.hbs +++ /dev/null @@ -1,25 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-{{> nav-ndl}} -
-{{#unless page.attributes.no-toolbar}}{{> toolbar}}{{/unless}} - -
-{{> article-ndl}} -{{> toc}} -
-
-
- - - -{{> footer}} - - diff --git a/src/layouts/graphgist-category.hbs b/src/layouts/graphgist-category.hbs deleted file mode 100644 index 07bc34fc..00000000 --- a/src/layouts/graphgist-category.hbs +++ /dev/null @@ -1,32 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} -{{> graphgists-header}} - -
-
-
-
-
- {{> breadcrumbs}} -

GraphGists tagged as {{page.attributes.category}}

-
    - {{#each page.attributes.graphgist-pages}} -
  • {{> graphgist-card }}
  • - {{/each}} -
-
-
-
-
-
- -{{> footer}} - - - - diff --git a/src/layouts/graphgist-index.hbs b/src/layouts/graphgist-index.hbs deleted file mode 100644 index f97f834c..00000000 --- a/src/layouts/graphgist-index.hbs +++ /dev/null @@ -1,79 +0,0 @@ - - - - - {{> head defaultPageTitle='Untitled'}} - - - -{{> header}} - - -
-
-
- {{> graphgists-header}} - -
-

Featured GraphGists

-
-
    - {{#each (take page.attributes.featured-pages 6)}} -
  • {{> graphgist-card }}
  • - {{/each}} -
-
-
- -
-

Explore By Use Case

-
-
    - {{#each page.attributes.use-cases}} -
  • - {{this.name}} - {{this.name}} -
  • - {{/each}} -
-
-
- -
-

Explore By Industry

-
-
    - {{#each page.attributes.industries}} -
  • - {{this.name}} - {{this.name}} -
  • - {{/each}} -
-
-
-
-

Create your own GraphGist

-
-
-

- We maintain that Graphs are everywhere. - Have you spotted a novel Graph use case somewhere, or would you like to share your own use case? - You can share your own GraphGist with the Neo4j Community now by visiting the - GraphGist Portal. -

-
- -
-
-
-
-
- -{{> footer}} - - diff --git a/src/layouts/graphgist.hbs b/src/layouts/graphgist.hbs deleted file mode 100644 index 55c1ff19..00000000 --- a/src/layouts/graphgist.hbs +++ /dev/null @@ -1,96 +0,0 @@ - - - - - {{> head defaultPageTitle='Untitled'}} - - - - - {{> header}} - {{> graphgists-header}} - -
-
-
-
-
- {{> breadcrumbs}} -

{{#with (or page.title page.attributes.title)}}{{{this}}}{{/with}}

- -
-
-
-
- {{#if (eq page.layout '404')}} -
-

If you arrived on this page by clicking on a link, please notify the owner of the site that the link is - broken. - If you typed the URL of this page manually, please double check that you entered the address correctly. -

-
- {{else}} - {{{page.contents}}} - {{/if}} - {{> comments}} - {{> feedback}} -
-
-
-
-
- - {{> footer}} - - - - diff --git a/src/layouts/kb-article.hbs b/src/layouts/kb-article.hbs deleted file mode 100644 index b1b9aef5..00000000 --- a/src/layouts/kb-article.hbs +++ /dev/null @@ -1,75 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - - -{{> header}} -{{> kb-header}} - -
-
-
-
-
- {{> breadcrumbs}} -

{{{or page.title 'Page Not Found'}}}

- -
-
-
-
- - {{#if (eq page.layout '404')}} -
-

If you arrived on this page by clicking on a link, please notify the owner of the site that the link is broken. - If you typed the URL of this page manually, please double check that you entered the address correctly.

-
- {{else}} - {{{page.contents}}} - {{/if}} - {{> comments}} - {{> feedback}} -
-
-
-
-
- -{{> footer}} - - - diff --git a/src/layouts/kb-category.hbs b/src/layouts/kb-category.hbs deleted file mode 100644 index 804562de..00000000 --- a/src/layouts/kb-category.hbs +++ /dev/null @@ -1,31 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} -{{> kb-header}} - -
-
-
-
-
- {{> breadcrumbs}} -

Articles tagged as {{page.attributes.category}}

- - {{#each (to-array page.attributes.category-pages)}} - {{> kb-card }} - {{/each}} -
-
-
-
-
- -{{> footer}} - - - - diff --git a/src/layouts/kb-index.hbs b/src/layouts/kb-index.hbs deleted file mode 100644 index cf2c03f1..00000000 --- a/src/layouts/kb-index.hbs +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {{> head defaultPageTitle='Untitled'}} - - - - {{> header}} - {{> kb-header}} - - {{{page.contents}}} - -
-
-
-
-

Promoted Articles

-
- {{#each (kb-promoted)}} -
-

{{{title}}}

- {{#with asciidoc.attributes.description}} -
- {{this}} -
- {{/with}} - -

Read more

- -
- {{#with @root.page.attributes.tags}} - {{#each (tokenize this)}} - {{this}} - {{/each}} - {{/with}} -
-
- {{/each}} -
-
- -
-

Browse By Category

-
- {{#each (kb-categories)}} -
-

{{name}}

- -
- {{/each}} -
-
-
-
-
- - {{> footer}} - - diff --git a/src/layouts/kb-tag.hbs b/src/layouts/kb-tag.hbs deleted file mode 100644 index d4b5c4af..00000000 --- a/src/layouts/kb-tag.hbs +++ /dev/null @@ -1,31 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} -{{> kb-header}} - -
-
-
-
-
- {{> breadcrumbs}} -

Articles tagged as {{page.attributes.tag}}

- - {{#each (to-array page.attributes.tag-pages)}} - {{> kb-card }} - {{/each}} -
-
-
-
-
- -{{> footer}} - - - - diff --git a/src/layouts/landing.hbs b/src/layouts/landing.hbs deleted file mode 100644 index 7610cfa4..00000000 --- a/src/layouts/landing.hbs +++ /dev/null @@ -1,35 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - -{{> header}} - - -{{#if page.attributes.herotitle }} -
-
-
- {{#with page.attributes.herotitle}} -

{{{this}}}

- {{/with}} - - {{#with page.attributes.herosubtitle}} -

{{ this }}

- {{/with}} -
-
-
-{{/if}} - -
-
- {{> article}} - {{> toc}} -
-
- -{{> footer}} - - diff --git a/src/layouts/remix.hbs b/src/layouts/remix.hbs new file mode 100644 index 00000000..400469d3 --- /dev/null +++ b/src/layouts/remix.hbs @@ -0,0 +1,12 @@ + + + +{{> head defaultPageTitle='Untitled'}} + + +{{> header}} +

asdjoasdjiajdoaisj

+{{> body}} +{{> footer}} + + diff --git a/src/layouts/tiles.hbs b/src/layouts/tiles.hbs deleted file mode 100644 index 0b9069d7..00000000 --- a/src/layouts/tiles.hbs +++ /dev/null @@ -1,18 +0,0 @@ - - - -{{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-
-{{> article}} -{{> toc}} -
-
- -{{> footer}} - - \ No newline at end of file diff --git a/src/layouts/training-certification.hbs b/src/layouts/training-certification.hbs deleted file mode 100644 index 4394fb2b..00000000 --- a/src/layouts/training-certification.hbs +++ /dev/null @@ -1,69 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-
-
- {{#with page.title}} -

{{{this}}}

- {{/with}} -
-
-
- -
-
-
-
-
- {{> breadcrumbs}} -

{{page.attributes.description}}

-
-
-
-
- {{{page.contents}}} -
-
-
-

-
-
-

Error while loading the data, please refresh the page.

-
-
-
-
-
-
-
-
- -
-
-
- Logout -
-
-
- Logout -
- Continue -
-
-
-
-
-
-
-
- -{{> footer}} - - - diff --git a/src/layouts/training-enrollment.hbs b/src/layouts/training-enrollment.hbs deleted file mode 100644 index e6c15f1d..00000000 --- a/src/layouts/training-enrollment.hbs +++ /dev/null @@ -1,70 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-
-
- {{#with page.title}} -

{{{this}}}

- {{/with}} -
-
-
- -
-
-
-
-
- {{> breadcrumbs}} -

{{page.attributes.description}}

-
-
-
-
- {{{page.contents}}} -
-
-
-

Error while loading the data, please refresh the page.

-
-
-
-
-
-
-
-
- -
-
-
- Logout -
-
-
- Logout -
- {{#with (training-course-index-page page.component.name)}} - Continue - {{/with}} -
-
-
-
-
-
-
-
- -{{> footer}} - - - diff --git a/src/layouts/training-index.hbs b/src/layouts/training-index.hbs deleted file mode 100644 index 42ebaf76..00000000 --- a/src/layouts/training-index.hbs +++ /dev/null @@ -1,63 +0,0 @@ - - - - {{> head defaultPageTitle='Untitled'}} - - -{{> header}} - -
-
-
- {{#with page.title}} -

{{{this}}}

- {{/with}} -
-
-
- -
-
- -
-
- -{{> footer}} - - - diff --git a/src/layouts/training.hbs b/src/layouts/training.hbs index 67cf33cb..31743637 100644 --- a/src/layouts/training.hbs +++ b/src/layouts/training.hbs @@ -8,4 +8,4 @@ {{> body}} {{> footer}} - + \ No newline at end of file diff --git a/src/partials/article-ndl.hbs b/src/partials/article-ndl.hbs index e07aff50..f8e1ecd6 100644 --- a/src/partials/article-ndl.hbs +++ b/src/partials/article-ndl.hbs @@ -29,7 +29,4 @@ If you typed the URL of this page manually, please double check that you entered {{/if}} {{> pagination}} {{> comments}} -{{#if (eq page.layout 'training')}} - {{> training-help}} -{{/if}} diff --git a/src/partials/article.hbs b/src/partials/article.hbs index 485e3249..a6a7300f 100644 --- a/src/partials/article.hbs +++ b/src/partials/article.hbs @@ -10,8 +10,12 @@ If you typed the URL of this page manually, please double check that you entered the address correctly.

{{else}} -
-

{{{ page.title }}}

+ {{#with (or page.attributes.labels page.labels)}} @@ -22,72 +26,7 @@ If you typed the URL of this page manually, please double check that you entered
{{/with}} -{{!-- --}} - - -{{#if page.attributes.deprecated-title}} -
- - - - - -
- - -
Important - page not maintained
-
-

- This page is no longer being maintained and its content may be out of date. - For the latest guidance, please visit - - {{{ page.attributes.deprecated-title }}} - . -

-
- -
-
-{{/if}} - {{{page.contents}}} -{{#if (ne page.attributes.certificate undefined)}} -
-

Certificate

-
-
-

- Certificate not available yet.
- Did you complete the quizzes at the end of each section? -

-
-
-

- Congratulations on completing the course!
- Your certificate should automatically download. If it does not, click here. -

-
-
-
-
-
- -
-
-{{/if}} -{{#if (ne page.attributes.quiz undefined)}} - -{{/if}} -{{/if}} {{> pagination}} -{{> comments}} -{{#if (eq page.layout 'training')}} - {{> training-help}} {{/if}} diff --git a/src/partials/body.hbs b/src/partials/body.hbs index 9ab52a65..f799eda8 100644 --- a/src/partials/body.hbs +++ b/src/partials/body.hbs @@ -1,5 +1,6 @@
+ {{> tab-row}} {{> nav}} {{> main}}
diff --git a/src/partials/footer-scripts.hbs b/src/partials/footer-scripts.hbs index 95c1c274..2550047e 100644 --- a/src/partials/footer-scripts.hbs +++ b/src/partials/footer-scripts.hbs @@ -5,9 +5,7 @@ --}} {{#with (assets-path page)}} - {{#if (or (eq @root.page.layout 'training-certification') (eq @root.page.layout 'training-enrollment') (eq @root.page.layout 'training'))}} - - {{/if}} + {{#if (and (eq @root.page.attributes.theme "cheat-sheet") @root.page.attributes.publish)}} diff --git a/src/partials/header-content.hbs b/src/partials/header-content.hbs index b5c841c8..6b733578 100644 --- a/src/partials/header-content.hbs +++ b/src/partials/header-content.hbs @@ -1,76 +1,13 @@
- {{#if (and page.attributes.banner page.attributes.banner-text)}} -
- {{#with page.attributes.banner-text}}{{{this}}}{{/with}} - {{#if page.attributes.banner-link}} - - {{#with (or page.attributes.banner-link-text page.attributes.banner-link)}}{{{this}}}{{/with}} - - {{/if}} -
- {{/if}} -
diff --git a/src/partials/header-end.hbs b/src/partials/header-end.hbs new file mode 100644 index 00000000..daeecdce --- /dev/null +++ b/src/partials/header-end.hbs @@ -0,0 +1,21 @@ + diff --git a/src/partials/main.hbs b/src/partials/main.hbs index 0b82c803..da28f86d 100644 --- a/src/partials/main.hbs +++ b/src/partials/main.hbs @@ -1,9 +1,6 @@
-{{#unless page.attributes.no-toolbar}}{{> toolbar}}{{/unless}} -
{{> article}} {{> toc}}
-
diff --git a/src/partials/nav-ndl.hbs b/src/partials/nav-ndl.hbs index 792effb6..25291adb 100644 --- a/src/partials/nav-ndl.hbs +++ b/src/partials/nav-ndl.hbs @@ -6,19 +6,6 @@ {{#with (or page.attributes.labels page.labels)}} diff --git a/src/partials/page-labels.hbs b/src/partials/page-labels.hbs new file mode 100644 index 00000000..d66d4724 --- /dev/null +++ b/src/partials/page-labels.hbs @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/partials/tab-row.hbs b/src/partials/tab-row.hbs index cecdc131..453d1a4e 100644 --- a/src/partials/tab-row.hbs +++ b/src/partials/tab-row.hbs @@ -1,12 +1,12 @@
\ No newline at end of file From 2b966603606bbb2c6d738520e77932fd2a7cf99d Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Fri, 7 Nov 2025 12:21:59 +0000 Subject: [PATCH 03/83] mixed nav poc --- src/css/docs-remix.css | 4 ++ src/helpers/json-parse.js | 15 +++++ src/helpers/json-stringify.js | 7 ++ src/helpers/json.js | 3 - src/helpers/nav-aggregate.js | 117 ++++++++++++++++++++++++++++++++++ src/js/01-nav.js | 6 +- src/js/site.js | 2 +- src/partials/nav-explore.hbs | 45 +++++++------ src/partials/nav-menu.hbs | 13 +++- src/partials/nav-ndl.hbs | 2 +- src/partials/nav-tree.hbs | 2 +- src/partials/nav.hbs | 10 +-- src/partials/tab-row.hbs | 11 ++-- 13 files changed, 188 insertions(+), 49 deletions(-) create mode 100644 src/helpers/json-parse.js create mode 100644 src/helpers/json-stringify.js delete mode 100644 src/helpers/json.js create mode 100644 src/helpers/nav-aggregate.js diff --git a/src/css/docs-remix.css b/src/css/docs-remix.css index e7ae137c..cd76548b 100644 --- a/src/css/docs-remix.css +++ b/src/css/docs-remix.css @@ -80,6 +80,10 @@ padding-top: 2rem; } +.docs-remix .nav-menu { + flex-grow: 0 +} + .docs-remix .nav-menu > .nav-list { margin-top: 0; } diff --git a/src/helpers/json-parse.js b/src/helpers/json-parse.js new file mode 100644 index 00000000..e57a2916 --- /dev/null +++ b/src/helpers/json-parse.js @@ -0,0 +1,15 @@ +'use strict' + +module.exports = (jsonString) => { + /** + * Parses a JSON string and returns the object. + */ + try { + return JSON.parse(jsonString) + } catch (e) { + console.log(jsonString) + console.warn('Failed to parse JSON string in Handlebars:', jsonString) + return {} + } + +} \ No newline at end of file diff --git a/src/helpers/json-stringify.js b/src/helpers/json-stringify.js new file mode 100644 index 00000000..502f0f60 --- /dev/null +++ b/src/helpers/json-stringify.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = (obj) => { + + return JSON.stringify(obj, null, 2) + +} diff --git a/src/helpers/json.js b/src/helpers/json.js deleted file mode 100644 index 0da6b6f1..00000000 --- a/src/helpers/json.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = (obj) => JSON.stringify(obj) diff --git a/src/helpers/nav-aggregate.js b/src/helpers/nav-aggregate.js new file mode 100644 index 00000000..2405a49c --- /dev/null +++ b/src/helpers/nav-aggregate.js @@ -0,0 +1,117 @@ +// const nav = [ +// {"items":[ +// {"content":"Get started"}, +// {"content":"What is a graph database","url":"/getting-started/graph-database/","urlType":"internal","pageTabs":"reference","tabIndex":20,"component": "getting-started"}, +// {"content":"Administration (Getting Started)"}, +// {"content":"Administration page Four","url":"/getting-started/administration-page-four/","urlType":"internal","pageTabs":"administration","tabIndex":20,"component": "getting-started"}, +// {"content":"Administration page Five","url":"/getting-started/administration-page-five/","urlType":"internal","pageTabs":"administration","tabIndex":20,"component": "getting-started"}, +// {"content":"Administration page Six","url":"/getting-started/administration-page-six/","urlType":"internal","pageTabs":"administration","tabIndex":20,"component": "getting-started"} +// ], +// "root":true, +// "order":0 +// }]; + +// const additionalNav = [ +// {"items":[ +// {"content":"Administration page One","items":[],"url":"/docs-combined/1.0/administration-page-one/","urlType":"internal","pageTabs":"administration","tabIndex":10,"component": "docs-combined"}, +// {"content":"Administration page Two","items":[],"url":"/docs-combined/1.0/administration-page-two/","urlType":"internal","pageTabs":"administration","tabIndex":10,"component": "docs-combined"}, +// {"content":"Administration page Three","items":[],"url":"/docs-combined/1.0/administration-page-three/","urlType":"internal","pageTabs":"administration","tabIndex":10,"component": "docs-combined"}, +// {"content":"Administration page Seven","items":[],"url":"/test-extra/4.0/administration-page-seven/","urlType":"internal","pageTabs":"administration","tabIndex":50,"component": "test-extra"} +// ], +// "root":true, +// "order":0 +// }]; + +// const additionalNav = [] + + +module.exports = (nav, additionalNav) => { + +// function combineNavs(nav, additionalNav) { + + // all the items in nav should have the same tabIndex value + // in additionalNav, there will be different tabIndex values + // I want to conbine nav and additionalNav into a single nav structure + // so that all items with the same tabIndex are grouped together + + // return additionalNav if nav is empty + if (!nav || !nav.length) { + return; + } + + // return nav if additionalNav is empty + if (!additionalNav || !additionalNav.length) { + return nav; + } + + additionalNav = JSON.parse(additionalNav); + + const tabIndexMap = new Map(); + + + // console.log('Original Nav:') + // console.log(JSON.stringify(nav)) + + + if (nav[0].items && nav[0].items.length) { + nav[0].items.forEach(item => { + // console.log('Item:') + // console.log(item) + + const tabIndex = item.tabIndex || 0; + if (!tabIndexMap.has(tabIndex)) { + tabIndexMap.set(tabIndex, []); + } + tabIndexMap.get(tabIndex).push(item); + }); + } + + // console.log('Additional Nav:') + // console.log(JSON.stringify(additionalNav)) + + if (additionalNav[0].items && additionalNav[0].items.length) { + additionalNav[0].items.forEach(item => { + // console.log('Item:') + // console.log(item) + + const tabIndex = item.tabIndex || 0; + if (!tabIndexMap.has(tabIndex)) { + tabIndexMap.set(tabIndex, []); + } + tabIndexMap.get(tabIndex).push(item); + }); + } + + + + + + // sort the tabindex map + const sortedTabIndices = Array.from(tabIndexMap.keys()).sort((a, b) => a - b); + + // console.log('sorted Tab Index Map:') + const sortedNavs = Array.from(tabIndexMap.entries()).sort((a, b) => a[0] - b[0]); + // console.log(JSON.stringify(sortedNavs, null, 2)) + + // turn sortedNavs into one nav object in the same format as the original nav + const combinedNav = [{ + items: [], + root: true, + order: 0 + }]; + + if (!sortedTabIndices.length) { + return nav; + } + + sortedTabIndices.forEach(tabIndex => { + const items = tabIndexMap.get(tabIndex); + combinedNav[0].items.push(...items); + }); + + // console.log('Combined Nav:') + // console.log(JSON.stringify(combinedNav, null, 2)) + + return combinedNav + +} \ No newline at end of file diff --git a/src/js/01-nav.js b/src/js/01-nav.js index fb7ecd78..c70ff111 100644 --- a/src/js/01-nav.js +++ b/src/js/01-nav.js @@ -62,9 +62,9 @@ const url = target.value - if (window.ga) { - window.ga('send', 'event', 'version-select', 'From: ' + current + ';To:' + next + ';') - } + // if (window.ga) { + // window.ga('send', 'event', 'version-select', 'From: ' + current + ';To:' + next + ';') + // } document.location.assign(url) }) diff --git a/src/js/site.js b/src/js/site.js index d9e3c1bf..cb526c51 100644 --- a/src/js/site.js +++ b/src/js/site.js @@ -6,7 +6,7 @@ import './05-mobile-navbar' import './06-code' import './07-runnable-code' import './08-tabs-block' -import './11-feedback' +// import './11-feedback' import './12-fragment-jumper' // import './13-search' import './14-external-links' diff --git a/src/partials/nav-explore.hbs b/src/partials/nav-explore.hbs index 90e6b1a0..1b14168b 100644 --- a/src/partials/nav-explore.hbs +++ b/src/partials/nav-explore.hbs @@ -1,23 +1,26 @@ -{{#if page.versions.[1]}} - From 4dd6dd1a175b3a4dd4e8a1058ccc44ff5f0e8249 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Thu, 22 May 2025 16:43:11 +0100 Subject: [PATCH 36/83] 0.34.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f4fc697..09e2bb81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 86bc2759..c8069567 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 21a2861380d72c6ecefd95657607135424d07adc Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 27 May 2025 12:30:54 +0100 Subject: [PATCH 37/83] fix cheat sheet toc (#330) A recent change to how the titles for Page Contents are generated created a bug in the Cheat Sheet where the titles were not displayed in the TOC, because the code was not correctly handling headings that contain links. We don't typically use links in headings in the docs (in fact it should possibly be a style guide recommendation to NOT use links in headings in other docs) but the cheat sheet makes extensive use of this to provide links to the relevant sections of the Cypher Manual. This PR fixes the issue. --- preview-src/ui-model.yml | 2 ++ src/js/02-on-this-page.js | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/preview-src/ui-model.yml b/preview-src/ui-model.yml index 6a626ce2..47314d47 100644 --- a/preview-src/ui-model.yml +++ b/preview-src/ui-model.yml @@ -309,6 +309,8 @@ page: class: 'aura-dbp' - name: 'AuraDB Virtual Dedicated Cloud' class: 'aura-dbe' + - name: 'AuraDB Business Critical' + class: 'aura-dbc' - name: 'AuraDS Professional' class: 'aura-dsp' - name: 'AuraDS Enterprise' diff --git a/src/js/02-on-this-page.js b/src/js/02-on-this-page.js index 08e47a32..8cf02ba4 100644 --- a/src/js/02-on-this-page.js +++ b/src/js/02-on-this-page.js @@ -30,8 +30,13 @@ var list = headings.reduce(function (accum, heading) { var link = document.createElement('a') var headingClone = heading.cloneNode(true) - headingClone.querySelectorAll('div, a').forEach(function (el) { el.remove() }) - link.innerHTML = headingClone.innerHTML + // console.log(headingClone) + headingClone.querySelectorAll('div, a.anchor').forEach(function (el) { el.remove() }) + if (headingClone.querySelector('a')) { + link.textContent = headingClone.textContent + } else { + link.innerHTML = headingClone.innerHTML + } links[(link.href = '#' + heading.id)] = link var listItem = document.createElement('li') listItem.dataset.level = parseInt(heading.nodeName.slice(1)) - 1 From 9617d5e1f268276bd4153ab321426184d9870648 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 27 May 2025 12:31:20 +0100 Subject: [PATCH 38/83] 0.34.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e2bb81..61775202 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index c8069567..00ecc63e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 7329df13410856279c3f8e223e679419e4338e02 Mon Sep 17 00:00:00 2001 From: Ed Reckers Date: Fri, 11 Jul 2025 08:41:28 -0700 Subject: [PATCH 39/83] Add Scarf Pixel with cookie consent to script bundle (#334) Co-authored-by: Mark Woulfe --- src/js/31-scarf-pixel.js | 10 ++++++++++ src/js/site.js | 1 + 2 files changed, 11 insertions(+) create mode 100644 src/js/31-scarf-pixel.js diff --git a/src/js/31-scarf-pixel.js b/src/js/31-scarf-pixel.js new file mode 100644 index 00000000..0639988c --- /dev/null +++ b/src/js/31-scarf-pixel.js @@ -0,0 +1,10 @@ +// This script is used to load a pixel for Scarf analytics, but only if the user has accepted marketing cookies +window.addEventListener('CookiebotOnAccept', function () { + if (Cookiebot.consent.marketing) { + var img = document.createElement('img') + img.src = 'https://static.neo4j.com/a.png?x-pxid=dae9b690-6a56-4889-a951-9d0207a18da6' + img.referrerPolicy = 'no-referrer-when-downgrade' + img.style.display = 'none' + document.body.appendChild(img) + } +}, false) diff --git a/src/js/site.js b/src/js/site.js index cb526c51..0b0a0343 100644 --- a/src/js/site.js +++ b/src/js/site.js @@ -19,6 +19,7 @@ import './24-graphacademy-certification' import './23-yelp-agreement' import './25-graphgist' // import './30-personalisation' +import './31-scarf-pixel' import './40-challenges' import './50-cheat-sheet-toggle' import './60-docs-roles' From 4ac314d931d2fd1855336db9546cfbf09517dcbe Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 14 Jul 2025 14:54:25 +0100 Subject: [PATCH 40/83] Allow js files that are not linted (#335) Not something we would want to use generally, but maybe we can allow an exception here. --- package.json | 2 +- src/js/{ => no-lint}/31-scarf-pixel.js | 0 src/js/site.js | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename src/js/{ => no-lint}/31-scarf-pixel.js (100%) diff --git a/package.json b/package.json index 00ecc63e..83cb3568 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "start": "LIVERELOAD=true gulp preview", "lint": "npm run lint:css && npm run lint:js", "lint:css": "stylelint \"src/css/**/*.css\"", - "lint:js": "eslint gulpfile.js \"gulp.d/**/*.js\" \"src/{helpers,js}/**/*.js\"", + "lint:js": "eslint gulpfile.js \"gulp.d/**/*.js\" \"src/{helpers,js}/**/*.js\" --ignore-pattern \"src/js/no-lint/**/*.js\"", "build": "gulp bundle" }, "dependencies": { diff --git a/src/js/31-scarf-pixel.js b/src/js/no-lint/31-scarf-pixel.js similarity index 100% rename from src/js/31-scarf-pixel.js rename to src/js/no-lint/31-scarf-pixel.js diff --git a/src/js/site.js b/src/js/site.js index 0b0a0343..cce4c567 100644 --- a/src/js/site.js +++ b/src/js/site.js @@ -19,7 +19,7 @@ import './24-graphacademy-certification' import './23-yelp-agreement' import './25-graphgist' // import './30-personalisation' -import './31-scarf-pixel' +import './no-lint/31-scarf-pixel' import './40-challenges' import './50-cheat-sheet-toggle' import './60-docs-roles' From 66c3c4bf4df03a463c637b52c37f7a3839b8165a Mon Sep 17 00:00:00 2001 From: Mark Woulfe Date: Mon, 14 Jul 2025 14:55:31 +0100 Subject: [PATCH 41/83] 0.34.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61775202..060c41a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 83cb3568..0cd178ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From ecd5ca86c5236ced285c5f51869076ae014e3566 Mon Sep 17 00:00:00 2001 From: Mark Woulfe <82045391+MarkWoulfeNeo4j@users.noreply.github.com> Date: Mon, 14 Jul 2025 17:29:31 +0100 Subject: [PATCH 42/83] Update README.adoc (#336) Improved accuracy of version release instructions in the README file --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 42dd5258..6c0c6fe8 100644 --- a/README.adoc +++ b/README.adoc @@ -61,10 +61,10 @@ See the `.github/workflows/release.yml` file for details. The release is performed when a tag is pushed. -. Use `npm version patch` or `npm version minor` to increase the version in the `package.json` file and create a tag for the new verrsion. +. Use `npm version patch` (i.e. 0.1.1 -> 0.1.2) or `npm version minor` (i.e. 0.1.1 -> 0.2.0) to increase the version in the `package.json` file and create a tag for the new version. Running these commands will make the changes AND create a commit. . Push the tag upstream: + - $ git push--tags upstream master + $ git push --tags origin master The UI bundle is published to S3. It is available from two URLs: From 5eb0b382ac66521991d1361e6bded2b4f3298f69 Mon Sep 17 00:00:00 2001 From: Stefano Ottolenghi Date: Mon, 21 Jul 2025 17:32:19 +0200 Subject: [PATCH 43/83] Make admonition title larger than text. (#337) Before before After after --- src/css/doc.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css/doc.css b/src/css/doc.css index 194b39f8..693d9fd1 100644 --- a/src/css/doc.css +++ b/src/css/doc.css @@ -794,7 +794,7 @@ body { .doc .admonitionblock .title { font-weight: bold; font-style: normal; - font-size: 0.8rem; + font-size: 0.9rem; } .doc .imageblock .title { From cc98029ece86bafeeb25c2013e743b30cddbe25e Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Thu, 24 Jul 2025 16:04:14 +0100 Subject: [PATCH 44/83] Add custom BNF highlighter: code, CSS, example usage (#338) --- preview-src/code.adoc | 240 +++++++++++++++++++++++++++++++++++++ src/css/highlight.css | 4 + src/js/vendor/highlight.js | 28 +++++ 3 files changed, 272 insertions(+) create mode 100644 preview-src/code.adoc diff --git a/preview-src/code.adoc b/preview-src/code.adoc new file mode 100644 index 00000000..6bb2cb65 --- /dev/null +++ b/preview-src/code.adoc @@ -0,0 +1,240 @@ += Code blocks + +== Copy Button + +The **Copy To Clipboard** button will appear on all code blocks: + + +[source,shell] +---- +Copy me! +Do something else +Callout # <1> +Callout # <2> +Callout tab # <3> +Comment # Just a regular comment after some code +---- + +<1> Callout +<2> Callout +<3> Callout after a tab + + + +[source,adoc] +---- +[source,adoc] +Copy me! +---- + +Unless you add `role=nocopy`: + +[source,adoc,role=nocopy] +---- +[source,adoc,role=nocopy] +Don't copy me! +---- + +== Reference lines (Callouts) + +You can add number bubbles to reference specific lines by appending `` to a line. It is advised to put them behind a line comment for the language the code is in. + +[source,ruby] +---- +require 'sinatra' <1> + +get '/hi' do <2> <3> + "Hello World!" +end +---- +<1> Library import +<2> URL mapping +<3> Response block + +[source] +---- +line of code // <1> +line of code # <2> +line of code ;; <3> +line of code +---- +<1> A callout behind a line comment for C-style languages. +<2> A callout behind a line comment for Ruby, Python, Perl, etc. +<3> A callout behind a line comment for Clojure. +<4> A callout behind a line comment for XML or SGML languages like HTML. + + +== Highlight lines + +Highlight one or more lines of code by adding e.g. `//mark-line` at the end of each of them. Use the line comment syntax for the language the block contains. + +[source, adoc] +---- +[source, java] +--- +var result = driver.executableQuery("MATCH (p:Person {name: $name})") + .withParameters(Map.of("name", "Alice")) //mark-line + .withConfig(QueryConfig.builder().withDatabase("neo4j").build()) + .execute(); +--- +---- + +[source, java] +---- +var result = driver.executableQuery("MATCH (p:Person {name: $name})") + .withParameters(Map.of("name", "Alice")) //mark-line + .withConfig(QueryConfig.builder().withDatabase("neo4j").build()) + .execute(); +---- + + +== Expand code block + +Code blocks longer than 15 lines (+5 of tolerance) are collapsed, unless you add `role=nocollapse` + +[source,adoc] +---- +[source,js] +... +---- + +[source,js] +---- + // Collapse/Expand long blocks + var codeMaxLines = 15 // lines + var codeTolerance = 5 // lines + var codeLineHeight = parseFloat(window.getComputedStyle( + document.getElementsByClassName('highlight')[0], null) + .getPropertyValue('line-height')) + var codeMaxHeight = codeLineHeight*codeMaxLines + var maskImage = 'linear-gradient(to bottom, black 0px, transparent ' + + (codeMaxHeight + 100) + 'px)' + + var codeBlockLinesNum = function (code) { + var paddingTop = parseFloat(window.getComputedStyle(code, null).getPropertyValue('padding-top')) + var paddingBottom = parseFloat(window.getComputedStyle(code, null).getPropertyValue('padding-bottom')) + var height = code.clientHeight-paddingTop-paddingBottom; + var lines = Math.ceil(height / codeLineHeight) + var hiddenLines = Math.ceil(lines - codeMaxLines) + return hiddenLines + } + + var expandCollapseBlock = function (e) { + e.preventDefault() + var showMore = e.target + var pre = showMore.parentNode + var code = pre.querySelector('code') + + if (pre.style.overflow === 'hidden') { + window.sessionStorage.setItem('scrollpos', window.scrollY) + pre.style.maxHeight = pre.scrollHeight + 'px' + pre.style.overflow = 'visible' + code.style.webkitMaskImage = '' + code.style.maskImage = '' + showMore.innerHTML = '↑' // show less + } else { + // Scoll back to where you where before expanding + var scrollpos = window.sessionStorage.getItem('scrollpos') + if (scrollpos) { + window.scrollTo({ + top: scrollpos, + behavior: 'auto', + }) + } + window.sessionStorage.removeItem('scrollpos') + + var hiddenLines = codeBlockLinesNum(code) + pre.style.maxHeight = codeMaxHeight + 'px' + pre.style.overflow = 'hidden' + code.style.webkitMaskImage = maskImage + code.style.maskImage = maskImage + showMore.innerHTML = '↓ View all (' + hiddenLines + ' lines more) ↓' + } + } + + // Collapse long blocks on load + var collapseCodeBlock = function (pre) { + var dotContent = pre.parentNode + var listingBlock = dotContent.parentNode + var code = pre.querySelector('code') + + if (!listingBlock.classList.contains('nocollapse') && + pre.offsetHeight > (codeMaxLines+codeTolerance)*codeLineHeight) { + pre.style.maxHeight = codeMaxHeight + 'px' + pre.style.overflow = 'hidden' + code.style.webkitMaskImage = maskImage + code.style.maskImage = maskImage + + var hiddenLines = codeBlockLinesNum(code) + var showMore = createElement('a', 'show-more') + showMore.innerHTML = '↓ View all (' + hiddenLines + ' lines more) ↓' + showMore.addEventListener('click', expandCollapseBlock) + pre.appendChild(showMore) + } + } + + // Apply collapseCodeBlock + document.querySelectorAll('.highlight') + .forEach(collapseCodeBlock) + +---- + +[source,adoc] +---- +[source,js,role=nocollapse] +... +---- + +[source,js,role=nocollapse] +---- +// Collapse/Expand long blocks +var codeBlockMaxHeight = 300 // px +var styleMaskImage = 'linear-gradient(to bottom, black 0px, transparent ' + (codeBlockMaxHeight+100) + 'px)' + +var expandCollapseBlock = function (e) { + e.preventDefault(); + var showMore = e.target + var pre = showMore.parentNode + var codeBlock = pre.querySelector('code') + + if (pre.st.style.webkitMaskImage = styleMaskImage + codeBlock.style.maskImage = styleMaskImage + showMore.innerHTML = '↓' // show more + //codeBlock.scrollIntoView({behavior: 'smooth'}) + } +} + if (pre.st.style.webkitMaskImage = styleMaskImage + codeBlock.style.maskImage = styleMaskImage + showMore.innerHTML = '↓' // show more + //codeBlock.scrollIntoView({behavior: 'smooth'}) + } +} +---- + +== BNF syntax example + +=== Single-line rules + +[source, gql-bnf] +---- + ::= "MATCH" + ::= [ "=" ] [ ] +---- + +=== Multi-line rules + +[source, gql-bnf] +---- + ::= + "MATCH" "{}" + + ::= + [ ] [ { "," }... ] [ ] + + ::= + "REPEATABLE" { "ELEMENT" [ "BINDINGS" ] | "ELEMENTS" } + | "DIFFERENT" { "RELATIONSHIP" [ "BINDINGS" ] | "RELATIONSHIPS" } + + ::= + [ "=" ] [ ] +---- \ No newline at end of file diff --git a/src/css/highlight.css b/src/css/highlight.css index 0ebdc97e..c3d32463 100644 --- a/src/css/highlight.css +++ b/src/css/highlight.css @@ -54,6 +54,10 @@ color: rgba(var(--colors-forest-40)); } +.hljs-operator { + color: rgba(var(--colors-neutral-50)); +} + .hljs-symbol, .hljs-bullet { color: var(--color-indigo-800); diff --git a/src/js/vendor/highlight.js b/src/js/vendor/highlight.js index 870e08e2..c0598438 100644 --- a/src/js/vendor/highlight.js +++ b/src/js/vendor/highlight.js @@ -128,6 +128,34 @@ ] } }) + // Custom flavor of BNF syntax defined in GQL standard docs + hljs.registerLanguage('gql-bnf', + function gql_bnf(hljs) { + return { + name: 'Custom BNF syntax for GQL', + contains: [ + { + // Use "attribute" for nonterminals as the included BNF/ABNF/EBNF do + className: 'attribute', + begin: // + }, + { + // It should be enough to treat syntax extension symbols just as simple operators. + // Symbols include: + // - Square brackets (optional elements) + // - Braces (element group) + // - Vertical bar (alternative operator) + // - Ellipsis (element repetition) + className: 'operator', + begin: /[[\]{}|]|\.\.\./ + }, + // Double quote-delimited strings + hljs.QUOTE_STRING_MODE, + hljs.C_LINE_COMMENT_MODE + ] + }; + }) hljs.highlightAll() // Apply line highlighting to lines marked with `// marked-line` From 0f4c59ca12a1533c85ea175dc9f50f0ed2f2755a Mon Sep 17 00:00:00 2001 From: Mark Woulfe <82045391+MarkWoulfeNeo4j@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:40:42 +0100 Subject: [PATCH 45/83] Added page query parameter to scarf tracking pixel (#339) --- src/js/no-lint/31-scarf-pixel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/no-lint/31-scarf-pixel.js b/src/js/no-lint/31-scarf-pixel.js index 0639988c..c0495461 100644 --- a/src/js/no-lint/31-scarf-pixel.js +++ b/src/js/no-lint/31-scarf-pixel.js @@ -2,7 +2,7 @@ window.addEventListener('CookiebotOnAccept', function () { if (Cookiebot.consent.marketing) { var img = document.createElement('img') - img.src = 'https://static.neo4j.com/a.png?x-pxid=dae9b690-6a56-4889-a951-9d0207a18da6' + img.src = 'https://static.neo4j.com/a.png?x-pxid=dae9b690-6a56-4889-a951-9d0207a18da6&page=' + encodeURIComponent(window.location.href) img.referrerPolicy = 'no-referrer-when-downgrade' img.style.display = 'none' document.body.appendChild(img) From a684b91ea44d6de5524cd4e19f926609c210670a Mon Sep 17 00:00:00 2001 From: MarkWoulfeNeo4j Date: Wed, 13 Aug 2025 15:44:08 +0100 Subject: [PATCH 46/83] 0.34.10 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 060c41a3..3e482ab8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 0cd178ee..19b46e56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From ee86298cfbfc949a825830a589d2c316b32e2c09 Mon Sep 17 00:00:00 2001 From: Jessica Wright <49636617+AlexicaWright@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:13:08 +0200 Subject: [PATCH 47/83] Browser take2 (#341) --- src/partials/navbar-end.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/partials/navbar-end.hbs b/src/partials/navbar-end.hbs index 640e48f1..b2314bc5 100644 --- a/src/partials/navbar-end.hbs +++ b/src/partials/navbar-end.hbs @@ -81,7 +81,7 @@ Neo4j Tools - + +{{!-- {{/with}} --}} \ No newline at end of file From 591707d800a2433bf3995c03294ca22b9faa4e30 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 8 Dec 2025 15:22:48 +0000 Subject: [PATCH 52/83] component selector visibility --- src/css/nav.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/css/nav.css b/src/css/nav.css index c9feea0b..84ba9bff 100644 --- a/src/css/nav.css +++ b/src/css/nav.css @@ -271,6 +271,10 @@ html.is-clipped--nav { max-height: calc(50% + var(--drawer-height)); } +.nav-panel-explore.is-active { + z-index: 1; +} + .nav-panel-explore .context { font-size: calc(15 / var(--rem-base) * 1rem); flex-shrink: 0; From be566d6605701854208a70965cca5a850dd6f92f Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 8 Dec 2025 15:23:08 +0000 Subject: [PATCH 53/83] linted --- src/helpers/fix-nav-path.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/helpers/fix-nav-path.js b/src/helpers/fix-nav-path.js index 44eaa211..88f22b92 100644 --- a/src/helpers/fix-nav-path.js +++ b/src/helpers/fix-nav-path.js @@ -1,8 +1,7 @@ 'use strict' module.exports = (url, page, { data: { root } }) => { - - const urlParts = url.split('/').filter(e => e) + const urlParts = url.split('/').filter((e) => e) console.log(urlParts) @@ -12,9 +11,8 @@ module.exports = (url, page, { data: { root } }) => { } const resolvedUrl = '/' + urlParts.join('/') - + console.log(resolvedUrl) - - return resolvedUrl - -} \ No newline at end of file + + return resolvedUrl +} From b9aa367667f48b077587efc928948aa5af65bc84 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 31 Mar 2025 16:10:55 +0100 Subject: [PATCH 54/83] 0.29.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c08e366..f5f8a454 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.29.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.29.7", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 14da4535..751cd722 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.29.7", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 4e30a988d322a540de061c7d30b52dc47329c5b4 Mon Sep 17 00:00:00 2001 From: Lidia Zuin <102308961+lidiazuin@users.noreply.github.com> Date: Wed, 2 Apr 2025 14:08:37 +0200 Subject: [PATCH 55/83] UX research page layout (#305) Reference https://www.figma.com/design/5aibTxQGAMllJ0Bc4gSMAI/UX-Research-page?node-id=1-1968&t=3yw3HyJ2ubWsvNe2-0 --- src/css/research.css | 4 ---- src/js/site.js | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/css/research.css b/src/css/research.css index 2f49ec8c..68a92561 100644 --- a/src/css/research.css +++ b/src/css/research.css @@ -25,10 +25,6 @@ body.research .nav-container { display: none; } -body.research .navbar { - display: none; -} - /* end of nav */ /* collapsible items */ diff --git a/src/js/site.js b/src/js/site.js index cce4c567..b60149e2 100644 --- a/src/js/site.js +++ b/src/js/site.js @@ -23,4 +23,4 @@ import './no-lint/31-scarf-pixel' import './40-challenges' import './50-cheat-sheet-toggle' import './60-docs-roles' -import './70-docs-ndl' +import './70-docs-ndl' \ No newline at end of file From 1768791269d45149a5dca2cc20b4ed453dbfd0c8 Mon Sep 17 00:00:00 2001 From: Lidia Zuin <102308961+lidiazuin@users.noreply.github.com> Date: Thu, 3 Apr 2025 10:23:01 +0200 Subject: [PATCH 56/83] Removing duplicate lines (#315) Complementary to https://github.com/neo4j-documentation/docs-ui/pull/305 --- src/js/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/site.js b/src/js/site.js index b60149e2..cce4c567 100644 --- a/src/js/site.js +++ b/src/js/site.js @@ -23,4 +23,4 @@ import './no-lint/31-scarf-pixel' import './40-challenges' import './50-cheat-sheet-toggle' import './60-docs-roles' -import './70-docs-ndl' \ No newline at end of file +import './70-docs-ndl' From 042bb3994a9d6df418862194a68f0cba5acb3606 Mon Sep 17 00:00:00 2001 From: lidiazuin Date: Thu, 3 Apr 2025 10:23:31 +0200 Subject: [PATCH 57/83] 0.30.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5f8a454..958e4198 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.29.7", + "version": "0.30.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.29.7", + "version": "0.30.0", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 751cd722..8904840d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.29.7", + "version": "0.30.0", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From b2fda22263bc2420ff738202deaea30b4a400257 Mon Sep 17 00:00:00 2001 From: lidiazuin Date: Thu, 3 Apr 2025 15:38:53 +0200 Subject: [PATCH 58/83] 0.31.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 958e4198..bc0881b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.30.0", + "version": "0.31.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.30.0", + "version": "0.31.0", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 8904840d..fa5c70b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.30.0", + "version": "0.31.0", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 56dcfa9f38103c64305d9f93c7c6993e16057d8c Mon Sep 17 00:00:00 2001 From: Lidia Zuin <102308961+lidiazuin@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:07:18 +0200 Subject: [PATCH 59/83] Removing top navbar from UX research page (#317) --- src/css/research.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/css/research.css b/src/css/research.css index 68a92561..2f49ec8c 100644 --- a/src/css/research.css +++ b/src/css/research.css @@ -25,6 +25,10 @@ body.research .nav-container { display: none; } +body.research .navbar { + display: none; +} + /* end of nav */ /* collapsible items */ From 77806840020e1eb2eb9fddbce62b4ef14149eaea Mon Sep 17 00:00:00 2001 From: lidiazuin Date: Fri, 4 Apr 2025 11:07:56 +0200 Subject: [PATCH 60/83] 0.32.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc0881b1..54bb8947 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.31.0", + "version": "0.32.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.31.0", + "version": "0.32.0", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index fa5c70b1..67ae6ff4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.31.0", + "version": "0.32.0", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From b8d4102f0ee5848424d6a01ede4e52418ad6ac2f Mon Sep 17 00:00:00 2001 From: lidiazuin Date: Thu, 10 Apr 2025 15:07:19 +0200 Subject: [PATCH 61/83] 0.33.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54bb8947..b0403fa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.32.0", + "version": "0.33.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.32.0", + "version": "0.33.0", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 67ae6ff4..802c4a40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.32.0", + "version": "0.33.0", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From d16ad6d6d3e9ba46d3ca70e6a8cc85dac537338a Mon Sep 17 00:00:00 2001 From: lidiazuin Date: Thu, 10 Apr 2025 15:26:32 +0200 Subject: [PATCH 62/83] 0.34.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0403fa1..4c5bbbc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.33.0", + "version": "0.34.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.33.0", + "version": "0.34.0", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 802c4a40..fdf54b40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.33.0", + "version": "0.34.0", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 40cdc900514010ea6d30cfcdc2fc2b81c25b52e3 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Thu, 10 Apr 2025 15:34:32 +0100 Subject: [PATCH 63/83] 0.34.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c5bbbc8..3b674472 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.0", + "version": "0.34.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.0", + "version": "0.34.1", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index fdf54b40..ce00cdec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.0", + "version": "0.34.1", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From ddcaa8afd6c41e63f36b4c190e64c2324e43a6b9 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Fri, 11 Apr 2025 13:28:29 +0100 Subject: [PATCH 64/83] 0.34.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b674472..7d5a1dec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.1", + "version": "0.34.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.1", + "version": "0.34.2", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index ce00cdec..e3dd3081 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.1", + "version": "0.34.2", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 5003f7966e17a16d072558a95458b8cafa31c4b9 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Fri, 11 Apr 2025 17:37:37 +0100 Subject: [PATCH 65/83] 0.34.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d5a1dec..21ededbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.2", + "version": "0.34.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.2", + "version": "0.34.3", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index e3dd3081..31e04086 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.2", + "version": "0.34.3", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From f31a1e4ff7d535d93dff88fbef639d88c08ca91f Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 22 Apr 2025 16:07:56 +0100 Subject: [PATCH 66/83] 0.34.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 21ededbf..cacda868 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.3", + "version": "0.34.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.3", + "version": "0.34.4", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 31e04086..e5e4004d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.3", + "version": "0.34.4", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From f1aa7e85caa053c1d0538a6e6e4f54d134d0d057 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Wed, 23 Apr 2025 10:43:16 +0100 Subject: [PATCH 67/83] 0.34.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index cacda868..7155d5d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.4", + "version": "0.34.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.4", + "version": "0.34.5", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index e5e4004d..9af37e11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.4", + "version": "0.34.5", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 674ef40864da7ea01852a660d402386991e50769 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Thu, 1 May 2025 15:58:37 +0100 Subject: [PATCH 68/83] 0.34.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7155d5d4..4f4fc697 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.5", + "version": "0.34.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.5", + "version": "0.34.6", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 9af37e11..8f30abb2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.5", + "version": "0.34.6", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From b86872514d3104e7146419175bede1496d77ab16 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Thu, 22 May 2025 16:43:11 +0100 Subject: [PATCH 69/83] 0.34.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f4fc697..09e2bb81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 8f30abb2..e08028bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.6", + "version": "0.34.7", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From f3990b768d95193f483e73726ffea76c778acd60 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 27 May 2025 12:31:20 +0100 Subject: [PATCH 70/83] 0.34.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e2bb81..61775202 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index e08028bc..83cb3568 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.7", + "version": "0.34.8", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 6e9524e2060f1586925ca0587870b2576929df3d Mon Sep 17 00:00:00 2001 From: Ed Reckers Date: Fri, 11 Jul 2025 08:41:28 -0700 Subject: [PATCH 71/83] Add Scarf Pixel with cookie consent to script bundle (#334) Co-authored-by: Mark Woulfe --- src/js/31-scarf-pixel.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/js/31-scarf-pixel.js diff --git a/src/js/31-scarf-pixel.js b/src/js/31-scarf-pixel.js new file mode 100644 index 00000000..0639988c --- /dev/null +++ b/src/js/31-scarf-pixel.js @@ -0,0 +1,10 @@ +// This script is used to load a pixel for Scarf analytics, but only if the user has accepted marketing cookies +window.addEventListener('CookiebotOnAccept', function () { + if (Cookiebot.consent.marketing) { + var img = document.createElement('img') + img.src = 'https://static.neo4j.com/a.png?x-pxid=dae9b690-6a56-4889-a951-9d0207a18da6' + img.referrerPolicy = 'no-referrer-when-downgrade' + img.style.display = 'none' + document.body.appendChild(img) + } +}, false) From 306b5df1ffb446eec67af0326cb334d05d91cadb Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 14 Jul 2025 14:54:25 +0100 Subject: [PATCH 72/83] Allow js files that are not linted (#335) Not something we would want to use generally, but maybe we can allow an exception here. --- src/js/31-scarf-pixel.js | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 src/js/31-scarf-pixel.js diff --git a/src/js/31-scarf-pixel.js b/src/js/31-scarf-pixel.js deleted file mode 100644 index 0639988c..00000000 --- a/src/js/31-scarf-pixel.js +++ /dev/null @@ -1,10 +0,0 @@ -// This script is used to load a pixel for Scarf analytics, but only if the user has accepted marketing cookies -window.addEventListener('CookiebotOnAccept', function () { - if (Cookiebot.consent.marketing) { - var img = document.createElement('img') - img.src = 'https://static.neo4j.com/a.png?x-pxid=dae9b690-6a56-4889-a951-9d0207a18da6' - img.referrerPolicy = 'no-referrer-when-downgrade' - img.style.display = 'none' - document.body.appendChild(img) - } -}, false) From 5b49ce6c38394681f55dcb6bd9a6ee216d64e557 Mon Sep 17 00:00:00 2001 From: Mark Woulfe Date: Mon, 14 Jul 2025 14:55:31 +0100 Subject: [PATCH 73/83] 0.34.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61775202..060c41a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 83cb3568..0cd178ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.8", + "version": "0.34.9", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From c68931c7fee63ab033af120b4d2177e6662560b0 Mon Sep 17 00:00:00 2001 From: MarkWoulfeNeo4j Date: Wed, 13 Aug 2025 15:44:08 +0100 Subject: [PATCH 74/83] 0.34.10 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 060c41a3..3e482ab8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 0cd178ee..19b46e56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.9", + "version": "0.34.10", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From a8d69f2b93e9404eee26811b509be2aa4d95eaf7 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 28 Oct 2025 14:07:10 +0000 Subject: [PATCH 75/83] 0.34.11 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e482ab8..9c08e366 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.10", + "version": "0.34.11", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.10", + "version": "0.34.11", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 19b46e56..14da4535 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.10", + "version": "0.34.11", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 412c6769bb96d03fa1735e467c9821d5583de707 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Wed, 19 Nov 2025 19:59:28 +0000 Subject: [PATCH 76/83] Fix version selector in responsive design (#345) When the nav is hidden by default at narrow page widths, you can view the nav by clicking an icon. When the nav is opened and visible you can click links in the nav to move between pages. However, the `onClick` events for the version selector do not work. I traced this to another event that was taking priority, which was that any click anywhere in the html triggered the nav to close. Anywhere except links to other pages, which always fire first. This PR modifies the showNav function so that the nav is hidden if you click outside the nav, but not in the nav. This means that the version selector can be used. Note that depending on the screen resolution it is not actually possible to click outside the nav, because the nav fills the display area. --------- Co-authored-by: Stefano Ottolenghi --- src/js/01-nav.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/01-nav.js b/src/js/01-nav.js index 6ee50911..18f4e30e 100644 --- a/src/js/01-nav.js +++ b/src/js/01-nav.js @@ -131,7 +131,7 @@ function showNav (e) { if (navToggle.classList.contains('is-active')) return hideNav(e) - var html = document.documentElement + var html = document.documentElement.querySelector('main.article') html.classList.add('is-clipped--nav') navToggle.classList.add('is-active') navContainer.classList.add('is-active') From 0d70e391adbbffd3df2431fbd15293b455cfca1e Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Fri, 5 Dec 2025 09:32:19 +0000 Subject: [PATCH 77/83] reinstate rotate the external link icon (#347) --- preview-src/index.adoc | 756 +++++++++++++++++++++++++++++++++++++++++ src/css/doc.css | 1 + 2 files changed, 757 insertions(+) create mode 100644 preview-src/index.adoc diff --git a/preview-src/index.adoc b/preview-src/index.adoc new file mode 100644 index 00000000..1f89aef8 --- /dev/null +++ b/preview-src/index.adoc @@ -0,0 +1,756 @@ += icon:graduation-cap[] Hardware and Software Requirements +Author Name +:idprefix: +:idseparator: - +:!example-caption: +:!table-caption: +:page-pagination: +:page-disabletracking: +// tag::theme[] +:page-theme: docs +// end::theme[] +// tag::search[] +:page-type: knowledgebase +:page-environment: macos +:page-programminglanguage: java +:page-neo4jversion: 3.5 +:page-product: NEOSEMANTICS +// end::search[] +// tag::meta[] +:description: This guide shows the different ways you can import data from a relational database to Neo4j. Completing this guide will give you the tools to choose how to import your relational data and transform it to the graph. +:keywords: one, two, three, four +// end::meta[] +// tag:discourse[] +// :page-comments: +// :page-topicid: 22863 +// end:discourse[] +:page-disabletracking: true +:page-newsletter: true +// tag::link[] +:page-ad-overlinelink: {aura_signup} +:page-ad-overline: Neo4j Aura +:page-ad-title: Follow Along and Learn While Doing +:page-ad-description: Free forever, no credit card required. +:page-ad-link: {aura_signup} +:page-ad-underlinerole: button +:page-ad-underline: Start on AuraDB +// :page-ad-image: https://s3.amazonaws.com/cdn.graphacademy.neo4j.com/tshirts/python-tshirt.jpg +// :page-ad-image: https://graphacademy.neo4j.com/courses/app-python/badge/ +// end::link[] +:page-deprecated-title: the Getting Started Manual +:page-deprecated-redirect: https://neo4j.com/docs/getting-started/current/ + +.Goals +[abstract] +{description} + +.Prerequisites +[abstract] +You should be familiar with link:/developer/get-started/graph-database[graph database] concepts and the link:/developer/get-started/graph-database#property-graph[property graph model]. +It is also helpful to know the differences between link:/developer/graph-db-vs-rdbms/[relational and graph concepts] and their link:/developer/relational-to-graph-modeling/[data models]. + +== Heading + +Lorem ipsum dolor sic est. + + +== Quotes + +[quote,Citation] +____ +Insert fantastically profound thought here +____ + + +[.procedures,%headers, cols="5,2,1"] +|=== +| Qualified Name | Type | Release + +| **apoc.agg.first** + +`apoc.agg.first(value)` + +returns first value + +| ++++ +Function ++++ +| ++++ +Full ++++ + +| link:#[apoc.import.csv icon:book[]] + +`apoc.import.csv(nodes, relationships, config)` + +imports nodes and relationships from the provided CSV files with given labels and types + +| ++++ +Procedure ++++ +| ++++ +Core ++++ + +|=== + +// tag::level[] +:level: Beginner +[role=expertise {level}] +{level} +// end::level[] + + + +[.discrete.ad] +== link:https://graphacademy.neo4j.com/[Learn with GraphAcademy^] + +image::https://graphacademy.neo4j.com/courses/app-python/badge/[float=left] + +[.discrete] +=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] + +In this course, we walk through the steps to integrate Neo4j into your Python projects. +We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. + +link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] +link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] + + +== Section with Ads + +[.discrete.ad.left] +== link:https://graphacademy.neo4j.com/[Floated Left^] + +// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] + +[.discrete] +=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] + +In this course, we walk through the steps to integrate Neo4j into your Python projects. +We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. + + +link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] +link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] + +== Break out of Ad box + +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. +Vis no velit audiam, sonet <> eum ne. +*Prompta eripuit* nec ad. +Integer diam enim, dignissim eget eros et, ultricies mattis odio. +Vestibulum consectetur nec urna a luctus. +Quisque pharetra tristique arcu fringilla dapibus. +Curabitur ut massa aliquam, cursus enim et, accumsan lectus. + + +== Break out of box + +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. +Vis no velit audiam, sonet <> eum ne. +*Prompta eripuit* nec ad. +Integer diam enim, dignissim eget eros et, ultricies mattis odio. +Vestibulum consectetur nec urna a luctus. +Quisque pharetra tristique arcu fringilla dapibus. +Curabitur ut massa aliquam, cursus enim et, accumsan lectus. +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. +Vis no velit audiam, sonet <> eum ne. +*Prompta eripuit* nec ad. +Integer diam enim, dignissim eget eros et, ultricies mattis odio. +Vestibulum consectetur nec urna a luctus. +Quisque pharetra tristique arcu fringilla dapibus. +Curabitur ut massa aliquam, cursus enim et, accumsan lectus. + + +[.discrete.ad.right] +== link:https://graphacademy.neo4j.com/[Floated Right^] + +// image::https://graphacademy.neo4j.com/courses/app-python/badge/[] + +[.discrete] +=== link:https://graphacademy.neo4j.com/courses/app-python/badge/[Building Neo4j Applications with Python^] + +In this course, we walk through the steps to integrate Neo4j into your Python projects. +We will follow the steps to create an instance of the Neo4j Python Driver, learn about sessions and transactions, and use that knowledge to build a REST API with Flask. + + +link:https://graphacademy.neo4j.com/courses/app-python/badge/[Learn more^,role=button] +link:https://graphacademy.neo4j.com/courses/app-python/badge/[or a less aggressive text link^] + +== Break out again + +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. +Vis no velit audiam, sonet <> eum ne. +*Prompta eripuit* nec ad. +Integer diam enim, dignissim eget eros et, ultricies mattis odio. +Vestibulum consectetur nec urna a luctus. +Quisque pharetra tristique arcu fringilla dapibus. +Curabitur ut massa aliquam, cursus enim et, accumsan lectus. + +== Tabs +// tag::tabs[] +[.tabs] + +.SH +[source,sh] +$ touch .env +$ cp .env .env.example +$ rm .env.example + +.Preview +[source,cypher] +CALL n10s.rdf.preview.fetch( + 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', + 'Turtle' +) + +.Stream +[source,cypher] +CALL n10s.rdf.stream.fetch( + 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', + 'Turtle' +) + +// end::tabs[] + +Then some content... + +These should change with the top ones + + +[.tabs] +.Preview +[source,cypher] +---- +// PREVIEW +---- + +.Stream +[source,cypher] +---- +// STREAM +---- + +But these should be independent: + +[.tabs] +// tag::source[] +[source,cypher] +---- +CALL n10s.rdf.preview.fetch( + 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', + 'Turtle' +) +---- +// end::source[] + +[source,js] +CALL n10s.rdf.stream.fetch( + 'https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/nsmntx.ttl', + 'Turtle' +) + +== queryresult + +.Query +[source, cypher] +---- +SHOW ALIASES FOR DATABASE YIELD * RETURN count(*) as count +---- + +.Result +[role="queryresult",options="header,footer",cols="1*, because it still has relationships. To delete this node, you must first delete its relationships. + + +++++ +
+ +
+++++ + + +video::_D19h5s73Co[youtube] + +== Icons - Font Awesome 4.7 icon:frown-o[] + +icon:code-fork[] Projects + +icon:play-circle[] Play Circle + +icon:rss[] rss + +icon:github[] github + +icon:book[] book + +icon:user[] user + +icon:flask[] flask + + +== Driver Table + +[cols="3*"] +|=== +| Name +| icon:tag[] Version +| icon:user[] Authors + +| neo4j-driver +| 4.0.2 +| The Neo4j Team + +| https://www.npmjs.com/package/neo4j-driver[icon:gift[] Package] +| +| https://community.neo4j.com/c/drivers-stacks/javascript[Neo4j Online Community^] + +| link:/[icon:book[] Docs^] +| link:/docs/api/javascript-driver/current/[icon:code[] API] +| http://github.com/neo4j/neo4j-javascript-driver[icon:github[] Source] +|=== + + + +image:multirepo-ssg.svg[Multirepo SSG,200,float=right] +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. +Vis no velit audiam, sonet <> eum ne. +*Prompta eripuit* nec ad. +Integer diam enim, dignissim eget eros et, ultricies mattis odio. +Vestibulum consectetur nec urna a luctus. +Quisque pharetra tristique arcu fringilla dapibus. +Curabitur ut massa aliquam, cursus enim et, accumsan lectus. + +link:/developer/get-started/graph-database/[Learn More: What is a Graph Database?^, role="button feature-box_button"] + +[source,gram] +(neo4j:Neo4j {name: "Neo4j"}) +(neo4j)-[:INCLUDES]->(browser:Product {name: "Neo4j Browser"}) +(browser)-[:HAS]->(:Feature {name: "Cypher"}) +(browser)-[:HAS]->(:Feature {name: "Dev Tools"}) +(browser)-[:HAS]->(:Feature {name: "Visualization"}) +(neo4j)-[:CONNECTS_WITH]->(drivers:Drivers {name: "Drivers"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Java"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Javascript"}) +(drivers)-[:SUPPORTS]->(:Language {name: ".NET"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Python"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Go"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "PHP"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "Ruby"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "...and more"}) +(neo4j)-[:PROVIDES]->(:OpenSource {name: "Open Source"}) +(neo4j)-[:INCLUDES]->(integrations:Integrations {name: "Integrations"}) +(integrations)-[:PLUGS_INTO]->(tools:Tools {name: "Tools"}) +(integrations)-[:PLUGS_INTO]->(frameworks:Frameworks {name: "Frameworks"}) + +[.gram] +(neo4j:Neo4j {name: "Neo4j"}) +(neo4j)-[:INCLUDES]->(browser:Product {name: "Neo4j Browser"}) +(browser)-[:HAS]->(:Feature {name: "Cypher"}) +(browser)-[:HAS]->(:Feature {name: "Dev Tools"}) +(browser)-[:HAS]->(:Feature {name: "Visualization"}) +(neo4j)-[:CONNECTS_WITH]->(drivers:Drivers {name: "Drivers"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Java"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Javascript"}) +(drivers)-[:SUPPORTS]->(:Language {name: ".NET"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Python"}) +(drivers)-[:SUPPORTS]->(:Language {name: "Go"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "PHP"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "Ruby"}) +(drivers)-[:SUPPORTS]->(:Language:Unofficial {name: "...and more"}) +(neo4j)-[:PROVIDES]->(:OpenSource {name: "Open Source"}) +(neo4j)-[:INCLUDES]->(integrations:Integrations {name: "Integrations"}) +(integrations)-[:PLUGS_INTO]->(tools:Tools {name: "Tools"}) +(integrations)-[:PLUGS_INTO]->(frameworks:Frameworks {name: "Frameworks"}) + +== Cu solet + +Nominavi luptatum eos, an vim hinc philosophia intellegebat. +Lorem pertinacia `expetenda` et nec, [.underline]#wisi# illud [.line-through]#sonet# qui ea. +Eum an doctus <>. +Eu mea inani iriure. + +// tag::glossary_term[] +Open the <> folder and install <>. +// end::glossary_term[] + +Find out about the <> algorithm trait. The glossary text for the `Weighted` is quite long so it can be used to demonstrate the glossary term tooltip switching from being displayed above the term to below the term. + + +[source,xml] +---- + +---- + +[source, shell] +---- +line of code // <1> +line of code # <2> +line of code ;; <3> +line of code +---- +<1> A callout behind a line comment for C-style languages. +<2> A callout behind a line comment for Ruby, Python, Perl, etc. +<3> A callout behind a line comment for Clojure. +<4> A callout behind a line comment for XML or SGML languages like HTML. + +[source, shell, line-comment=%] +---- +line of code % <1> +---- +<1> A callout behind a custom line comment prefix (%). + +The next source block contains characters that should be copied and then pasted unescaped (ie `<` and `>`). + +[source,json] +---- +{ + "name": "module-name", + "version": "10.0.1", + "description": "An example module to illustrate the usage of package.json", + "author": "Author Name ", + "scripts": { + "test": "mocha", + "lint": "eslint" + } +} +---- + +Do something else with <>. + +.Example paragraph syntax +[source,asciidoc] +---- +.Optional title +[example] +This is an example paragraph. +---- + +.Optional title +[example] +This is an example paragraph. + +=== Some Code + +How about some code? + +[source,js] +---- +vfs + .src('js/vendor/*.js', { cwd: 'src', cwdbase: true, read: false }) + .pipe(tap((file) => { // <1> + file.contents = browserify(file.relative, { basedir: 'src', detectGlobals: false }).bundle() + })) + .pipe(buffer()) // <2> + .pipe(uglify()) + .pipe(gulp.dest('build')) +---- +<1> The tap function is used to wiretap the data in the pipe. +<2> Wrap each streaming file in a buffer so the files can be processed by uglify. +Uglify can only work with buffers, not streams. + +Cum dicat #putant# ne. +Est in <> homero principes, meis deleniti mediocrem ad has. +Altera atomorum his ex, has cu elitr melius propriae. +Eos suscipit scaevola at. + + +[source,cypher] +---- +// Do some Periodic Commit +CALL apoc.periodic.iterate( + 'foo', + 'bar', + { + iterateList: true + } +) +YIELD map +---- + +[source,cypher] +---- +UNWIND range(0, 100) AS id +CREATE (n:Node {id: id, test: true, str: 'ing'}) +RETURN collect(n) AS ns +---- + +.Codeblock with role=noheader +[source,cypher,role=noheader] +---- +UNWIND range(0, 100) AS id +CREATE (n:Node {id: id, test: true, str: 'ing'}) +RETURN collect(n) AS ns +---- + +.Codeblock with role=nocopy +[source,cypher,role=nocopy] +---- +UNWIND range(0, 100) AS id +CREATE (n:Node {id: id, test: true, str: 'ing'}) +RETURN collect(n) AS ns +---- + +.Codeblock with role=nocopy noheader +[source,cypher,role=nocopy noheader] +---- +UNWIND range(0, 100) AS id +CREATE (n:Node {id: id, test: true, str: 'ing'}) +RETURN collect(n) AS ns +---- + +.Just some pre +.... +pom.xml +src/ + main/ + java/ + HelloWorld.java + test/ + java/ + HelloWorldTest.java +.... + +Select menu:File[Open Project] to open the project in your IDE. +Per ea btn:[Cancel] inimicus. +Ferri kbd:[F11] tacimates constituam sed ex, eu mea munere vituperata kbd:[Ctrl,T] constituam. + +.Sidebar Title +**** +Platonem complectitur mediocritatem ea eos. +Ei nonumy deseruisse ius. +Mel id omnes verear. + +Altera atomorum his ex, has cu elitr melius propriae. +Eos suscipit scaevola at. +**** + +=== Liber recusabo + +No sea, at invenire voluptaria mnesarchum has. +Ex nam suas nemore dignissim, vel apeirian democritum et. +At ornatus splendide sed, phaedrum omittantur usu an, vix an noster voluptatibus. + +. potenti donec cubilia tincidunt +. etiam pulvinar inceptos velit quisque aptent himenaeos +. lacus volutpat semper porttitor aliquet ornare primis nulla enim + +Natum facilisis theophrastus an duo. +No sea, at invenire voluptaria mnesarchum has. + +* ultricies sociosqu tristique integer +* lacus volutpat semper porttitor aliquet ornare primis nulla enim +* etiam pulvinar inceptos velit quisque aptent himenaeos + +Eu sed antiopam gloriatur. +Ea mea agam graeci philosophia. + +* [ ] todo +* [x] done! + +Vis veri graeci legimus ad. + +sed:: +splendide sed + +mea:: +agam graeci + +At ornatus splendide sed. + +.Library dependencies +[#dependencies%autowidth] +|=== +|Library |Version + +|eslint +|^1.7.3 + +|eslint-config-gulp +|^2.0.0 + +|expect +|^1.20.2 + +|istanbul +|^0.4.3 + +|istanbul-coveralls +|^1.0.3 + +|jscs +|^2.3.5 +|=== + +Cum dicat putant ne. +Est in reque homero principes, meis deleniti mediocrem ad has. +Altera atomorum his ex, has cu elitr melius propriae. +Eos suscipit scaevola at. + + +[discrete] +== Voluptua singulis + +Cum dicat putant ne. +Est in reque homero principes, meis deleniti mediocrem ad has. +Ex nam suas nemore dignissim, vel apeirian democritum et. + +.Antora is a multi-repo documentation site generator +image::multirepo-ssg.svg[Multirepo SSG,250] + +Make the switch today! + +[#english+中文] +== English + 中文 + +Altera atomorum his ex, has cu elitr melius propriae. +Eos suscipit scaevola at. + +[quote, 'Famous Person. Cum dicat putant ne.', 'Cum dicat putant ne. https://example.com[Famous Person Website]'] +____ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. +Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. +Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! +____ + +== Fin + +That's all, folks! + +== Second Level +Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. +Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! Lorem ipsum dolor sit amet, consectetur adipiscing elit. + +=== Third Level +Mauris eget leo nunc, nec tempus mi? Curabitur id nisl mi, ut vulputate urna. +Quisque porta facilisis tortor, vitae bibendum velit fringilla vitae! + + +==== Neovis.js + +This library was designed to combine JavaScript visualization and Neo4j in a seamless integration. +Connection to Neo4j is simple and straightforward, and because it is built with Neo4j’s property graph model in mind, the data format Neovis expects aligns with the database. +Customizing and coloring styles based on labels, properties, nodes, and relationships is defined in a single configuration object. +Neovis.js can be used without writing Cypher and with minimal JavaScript for integrating into your project. + +==== +[TIP] +icon:flask[size=2x] The Neovis library is one of our Neo4j Labs projects. +To learn more about Neo4j Labs, visit our https://neo4j.com/labs/[Labs page^]. +==== + +To maximize functionality and data analysis capabilities through visualization, you can also combine this library with the graph algorithms library in Neo4j to style the visualization to align with results of algorithms such as page rank, centrality, communities, and more. +Below, we see a graph visualization of Game Of Thrones character interactions rendered by neovis.js, and enhanced using Neo4j graph algorithms by applying link:/docs/graph-algorithms/current/algorithms/page-rank/[pagerank^] and link:/docs/graph-algorithms/current/algorithms/community/[community detection^] algorithms to the styling of the visualization. + +An advantage of enhancing graph visualization with these algorithms is that we can visually interpret the results of these algorithms. + +===== Neovis.js Resources +* Blog post: https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379[Neovis.js^] +* Download neovis.js: https://www.npmjs.com/package/neovis.js[npm package^] + +== Pad Headers + +=== Pad Subheader + +=== Pad Subheader + +== Pad Headers + +== Pad Headers + +== Pad Headers + +== Pad Headers + + +// tag::glossary[] +[discrete.glossary] +== Glossary + +[glossary] +[[NEO4J_HOME]]$NEO4J_HOME:: The directory in which you have installed Neo4j. This will contain a `bin/` folder which holds the `neo4j` executable, plus conf, data and plugins. +[[Weighted]]Weighted:: The algorithm supports configuration to set node and/or relationship properties to use as weights. These values can represent cost, time, capacity or some other domain-specific properties, specified via the nodeWeightProperty, nodeProperties and relationshipWeightProperty configuration parameters. The algorithm will by default consider each node and/or relationship as equally important. ++ +For more information, see the link:/ops-manual[Operations Manual^] +[[APOC]]APOC:: xref:apoc[APOC] is a library of procedures and functions that make your life as a Neo4j user easier. + +// end::glossary[] + +[[test-links]] +== Links + +*Normal text* + +. Normal text. +. Text with `Mono space` snippet. + + +*Text that link to www.example.com* + +. Text link:#test-links[anchor to test links] text text. +. Text link:https://www.example.com[www.example.com] text text. (note that link is marked as external because of `https://`) +. Text link:www.example.com[`mono space`] text text. Note that this link is not marked as external. +. Text `link:www.example.com[mono space]` text text. + + +*Text that link to page anchor* + +. Text <> text text. +. Text <> text text. +. Text <> text text. +. Text `<>` text text. + + +== skip-to-content links +Link to a section down the page: link:#skip-to-content[] + +++++++ diff --git a/src/css/doc.css b/src/css/doc.css index b8a9d47a..d4d19b66 100644 --- a/src/css/doc.css +++ b/src/css/doc.css @@ -1376,6 +1376,7 @@ body { display: inline-block; margin: 0 0.2rem; content: "→"; + transform: rotate(-45deg); color: var(--link-font-color); transition: all 0.2s linear; top: 0; From 3b4d0709ff73eae4f571e026bc03183538666678 Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Mon, 1 Dec 2025 15:24:35 +0000 Subject: [PATCH 78/83] 0.34.12 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c08e366..96f74d71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.34.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.34.12", "license": "MPL-2.0", "dependencies": { "@antora/cli": "^2.3.3", diff --git a/package.json b/package.json index 14da4535..47f136ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@neo4j/docs-ui", - "version": "0.34.11", + "version": "0.34.12", "description": "Produces the UI bundle for the Neo4j documentation site", "homepage": "https://github.com/neo4j-documentation/docs-ui", "license": "MPL-2.0", From 770090bbb62570d8e7fd6fa04eeb9dea9903848e Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Wed, 10 Dec 2025 14:57:57 +0000 Subject: [PATCH 79/83] Add aria-label to select elements (#346) --- src/partials/nav-cheat-sheet.hbs | 4 ++-- src/partials/nav-selectors.hbs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/partials/nav-cheat-sheet.hbs b/src/partials/nav-cheat-sheet.hbs index 4e998ba0..44c36230 100644 --- a/src/partials/nav-cheat-sheet.hbs +++ b/src/partials/nav-cheat-sheet.hbs @@ -1,7 +1,7 @@ {{#if (eq page.attributes.theme 'cheat-sheet') }}