From 9e4eb8ac062c86259f891eb1e39ab3cca5d68e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:06:46 +0200 Subject: [PATCH 1/3] Cypher 25 only --- modules/ROOT/pages/clauses/filter.adoc | 2 +- modules/ROOT/pages/clauses/index.adoc | 4 +- modules/ROOT/pages/clauses/let.adoc | 2 +- modules/ROOT/pages/clauses/match.adoc | 2 +- modules/ROOT/pages/clauses/remove.adoc | 4 +- modules/ROOT/pages/clauses/with.adoc | 2 +- .../expressions/conditional-expressions.adoc | 2 +- modules/ROOT/pages/functions/index.adoc | 8 +- .../functions/mathematical-trigonometric.adoc | 8 +- .../ROOT/pages/introduction/cypher-neo4j.adoc | 2 +- modules/ROOT/pages/patterns/match-modes.adoc | 4 +- modules/ROOT/pages/patterns/reference.adoc | 2 +- .../composed-queries/combined-queries.adoc | 2 +- .../composed-queries/conditional-queries.adoc | 2 +- .../composed-queries/sequential-queries.adoc | 2 +- modules/ROOT/pages/queries/index.adoc | 4 +- .../ROOT/pages/subqueries/call-subquery.adoc | 2 +- modules/ROOT/pages/subqueries/collect.adoc | 2 +- modules/ROOT/pages/subqueries/count.adoc | 2 +- .../ROOT/pages/subqueries/existential.adoc | 2 +- package-lock.json | 232 ++++++++++++++++++ package.json | 1 + preview.yml | 4 + publish.yml | 4 + 24 files changed, 271 insertions(+), 30 deletions(-) diff --git a/modules/ROOT/pages/clauses/filter.adoc b/modules/ROOT/pages/clauses/filter.adoc index b51017673..7c8bc39f9 100644 --- a/modules/ROOT/pages/clauses/filter.adoc +++ b/modules/ROOT/pages/clauses/filter.adoc @@ -1,7 +1,7 @@ = FILTER :description: Information about Cypher's `FILTER` clause. :table-caption!: -:page-role: new-2025.06 +:page-role: new-neo4j-2025.06 cypher-25-only `FILTER` is used to add filters to queries, similar to Cypher's xref:clauses/where.adoc[`WHERE`]. Unlike `WHERE`, `FILTER` is not a subclause, which means it can be used independently of the xref:clauses/match.adoc[`MATCH`], xref:clauses/optional-match.adoc[`OPTIONAL MATCH`], and xref:clauses/with.adoc[`WITH`] clauses, but not within them. diff --git a/modules/ROOT/pages/clauses/index.adoc b/modules/ROOT/pages/clauses/index.adoc index d0930a5b9..a41036548 100644 --- a/modules/ROOT/pages/clauses/index.adoc +++ b/modules/ROOT/pages/clauses/index.adoc @@ -20,7 +20,7 @@ This set is refined and augmented by subsequent parts of the query. m| xref::clauses/filter.adoc[FILTER] | Adds filters to queries. -label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] m| xref::clauses/match.adoc[MATCH] | Specify the patterns to search for in the database. @@ -45,7 +45,7 @@ m| xref::clauses/finish.adoc[FINISH] m| xref::clauses/let.adoc[LET] | Binds values to variables. -label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] m| xref::clauses/return.adoc[RETURN ... [AS]] | Defines what to include in the query result set. diff --git a/modules/ROOT/pages/clauses/let.adoc b/modules/ROOT/pages/clauses/let.adoc index 3a6398f53..0c707f538 100644 --- a/modules/ROOT/pages/clauses/let.adoc +++ b/modules/ROOT/pages/clauses/let.adoc @@ -1,7 +1,7 @@ = LET :description: Information about Cypher's `LET` clause. :table-caption!: -:page-role: new-2025.06 +:page-role: new-neo4j-2025.06 cypher-25-only `LET` binds expressions to variables. For queries involving several chained expressions, it can be a more succinct and readable alternative to xref:clauses/with.adoc[`WITH`]. diff --git a/modules/ROOT/pages/clauses/match.adoc b/modules/ROOT/pages/clauses/match.adoc index ad6f5aba7..6304b38e3 100644 --- a/modules/ROOT/pages/clauses/match.adoc +++ b/modules/ROOT/pages/clauses/match.adoc @@ -494,7 +494,7 @@ RETURN actors.name AS actor, movieCount, collect(movies.title) AS movies <1> The `Person` and `Movie` nodes matched in this step are stored in variables, which are then passed on to the second row of the query. <2> The `movies` variable is implicitly imported by its occurrence in the `count()` function. The `WITH` clause explicitly imports the `actors` variable. -<3> An xref:clauses/order-by.adoc[`ORDER BY`] clause orders the results by `movieCount` in descending order, ensuring that the `Person` with the highest number of movies appears at the top, and xref:clauses/limit.adoc[`LIMIT] 1` ensures that all other `Person` nodes are discarded. +<3> An xref:clauses/order-by.adoc[`ORDER BY`] clause orders the results by `movieCount` in descending order, ensuring that the `Person` with the highest number of movies appears at the top, and xref:clauses/limit.adoc[`LIMIT`] `1` ensures that all other `Person` nodes are discarded. <4> The second `MATCH` clause finds all `Movie` nodes associated with the `Person` nodes currently bound to the `actors` variable. [NOTE] diff --git a/modules/ROOT/pages/clauses/remove.adoc b/modules/ROOT/pages/clauses/remove.adoc index dca91d959..066d6cd05 100644 --- a/modules/ROOT/pages/clauses/remove.adoc +++ b/modules/ROOT/pages/clauses/remove.adoc @@ -66,7 +66,7 @@ Properties set: 1 == Remove all properties `REMOVE` cannot be used to remove all existing properties from a node or relationship. -Instead, using xref::clauses/set.adoc#set-remove-properties-using-empty-map[`SET` with `=` and an empty map as the right operand] will clear all properties from the node or relationship. +Instead, using xref::clauses/set.adoc#set-remove-properties-using-empty-map[`SET`] with `=` and an empty map as the right operand will clear all properties from the node or relationship. [[dynamic-remove-property]] == Dynamically remove a property @@ -152,7 +152,7 @@ REMOVE n:$(label) RETURN n.name, labels(n) ---- -<1> xref:clauses/unwind.adoc[`UNWIND`] is used here to transform the list of labels from the xref:functions/list.adoc#functions-labels[`labels()]` function into separate rows, allowing subsequent operations to be performed on each label individually. +<1> xref:clauses/unwind.adoc[`UNWIND`] is used here to transform the list of labels from the xref:functions/list.adoc#functions-labels[`labels()`] function into separate rows, allowing subsequent operations to be performed on each label individually. .Result [role="queryresult",options="header,footer",cols="2*+`, `+<+`, `+>+`, `+<=+`, `+>=+` -* xref:expressions/predicates/comparison-operators.adoc[`IS [NOT] NULL`] +* xref:expressions/predicates/comparison-operators.adoc[`IS [NOT\] NULL`] * xref:expressions/predicates/type-predicate-expressions.adoc[Type predicate expressions]: `IS [NOT] TYPED ` (Note that the form `IS [NOT] :: ` is not accepted) * xref:expressions/predicates/string-operators.adoc[Normalization Predicate Expression]: `IS [NOT] NORMALIZED` * xref:expressions/predicates/string-operators.adoc[String Comparison Operators]: `STARTS WITH`, `ENDS WITH`, `=~` (regex matching) diff --git a/modules/ROOT/pages/functions/index.adoc b/modules/ROOT/pages/functions/index.adoc index c800083f3..4045981d0 100644 --- a/modules/ROOT/pages/functions/index.adoc +++ b/modules/ROOT/pages/functions/index.adoc @@ -313,7 +313,7 @@ All trigonometric functions operate on radians, unless otherwise specified. 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cosh[`cosh()`] | `cosh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cosine of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cot[`cot()`] | `cot(input :: FLOAT) :: FLOAT` @@ -322,7 +322,7 @@ label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-coth[`coth()`] | `coth(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cotangent of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-degrees[`degrees()`] | `degrees(input :: FLOAT) :: FLOAT` @@ -347,7 +347,7 @@ label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-sinh[`sinh()`] | `sinh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic sine of a `FLOAT`. - label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tan[`tan()`] | `tan(input :: FLOAT) :: FLOAT` @@ -356,7 +356,7 @@ label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tanh[`tanh()`] | `tanh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic tangent of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] +label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] |=== diff --git a/modules/ROOT/pages/functions/mathematical-trigonometric.adoc b/modules/ROOT/pages/functions/mathematical-trigonometric.adoc index 5eef50ec3..9a5c12049 100644 --- a/modules/ROOT/pages/functions/mathematical-trigonometric.adoc +++ b/modules/ROOT/pages/functions/mathematical-trigonometric.adoc @@ -234,7 +234,7 @@ The cosine of `0.5` is returned. ====== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[functions-cosh]] == cosh() @@ -327,7 +327,7 @@ The cotangent of `0.5` is returned. ====== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[functions-coth]] == coth() @@ -629,7 +629,7 @@ The sine of `0.5` is returned. ====== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[functions-sinh]] == sinh() @@ -723,7 +723,7 @@ The tangent of `0.5` is returned. -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[functions-tanh]] == tanh() diff --git a/modules/ROOT/pages/introduction/cypher-neo4j.adoc b/modules/ROOT/pages/introduction/cypher-neo4j.adoc index a424318eb..90b7dd14d 100644 --- a/modules/ROOT/pages/introduction/cypher-neo4j.adoc +++ b/modules/ROOT/pages/introduction/cypher-neo4j.adoc @@ -52,7 +52,7 @@ Only xref::planning-and-tuning/runtimes/concepts.adoc#runtimes-slotted-runtime[s [NOTE] The `system` database cannot be deleted. The default user database, `neo4j`, can be deleted. -If you want to delete it, first set another database as the default using the procedure link:{neo4j-docs-base-uri}/operations-manual/current/procedures/#procedure_dbms_setDefaultDatabase[`dbms.setDefaultDatabase]` (this must be done from the `system` database). +If you want to delete it, first set another database as the default using the procedure link:{neo4j-docs-base-uri}/operations-manual/current/procedures/#procedure_dbms_setDefaultDatabase[`dbms.setDefaultDatabase`] (this must be done from the `system` database). For more information, see the link:{neo4j-docs-base-uri}/operations-manual/current/clustering/databases/#cluster-default-database[Operations Manual -> Change the default database]. diff --git a/modules/ROOT/pages/patterns/match-modes.adoc b/modules/ROOT/pages/patterns/match-modes.adoc index 45383a142..956726d0c 100644 --- a/modules/ROOT/pages/patterns/match-modes.adoc +++ b/modules/ROOT/pages/patterns/match-modes.adoc @@ -9,7 +9,7 @@ Cypher supports two match modes: The same restriction does not hold for nodes, which may be re-traversed any number of times in a matched path. This is Cypher’s default match mode, applicable to most use cases. * xref:patterns/match-modes.adoc#repeatable-elements[`REPEATABLE ELEMENTS`]: no restrictions on how often nodes and relationships can be traversed in a match for a graph pattern. -This match mode is required in order for paths to be able to traverse a relationship more than once. label:new[Introduced in Neo4j 2025.06] +This match mode is required in order for paths to be able to traverse a relationship more than once. label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] [[example-graph]] == Example graph @@ -141,7 +141,7 @@ This reflects the conclusion of Euler’s Seven bridges of Königsberg problem: For more information about this match mode, see xref:patterns/reference.adoc#match-modes-rules-different-relationships[Syntax & semantics -> `DIFFERENT RELATIONSHIPS`]. -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[repeatable-elements]] == REPEATABLE ELEMENTS diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index a5009cfe8..50abbfe28 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1637,7 +1637,7 @@ MATCH ()-[r]->()-->(), ()-[r]-() A match mode specifies whether or not a relationship can be matched more than once when matching graph patterns. Cypher contains two match modes: * xref:patterns/reference.adoc#match-modes-rules-different-relationships[`DIFFERENT RELATIONSHIPS`] (default) -* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:new[Introduced in Neo4j 2025.06] +* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] [[match-modes-syntax]] === Syntax diff --git a/modules/ROOT/pages/queries/composed-queries/combined-queries.adoc b/modules/ROOT/pages/queries/composed-queries/combined-queries.adoc index a85b6ac76..32c488cef 100644 --- a/modules/ROOT/pages/queries/composed-queries/combined-queries.adoc +++ b/modules/ROOT/pages/queries/composed-queries/combined-queries.adoc @@ -164,7 +164,7 @@ ORDER BY count For more information, see xref:subqueries/call-subquery.adoc#call-post-union[`CALL` subqueries -> Post-union processing]. -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[combining-union-and-union-all]] == Combining UNION and UNION ALL diff --git a/modules/ROOT/pages/queries/composed-queries/conditional-queries.adoc b/modules/ROOT/pages/queries/composed-queries/conditional-queries.adoc index 00e9ad836..e804442fb 100644 --- a/modules/ROOT/pages/queries/composed-queries/conditional-queries.adoc +++ b/modules/ROOT/pages/queries/composed-queries/conditional-queries.adoc @@ -1,6 +1,6 @@ = Conditional queries (`WHEN`) :description: Information about how to use `WHEN` to construct conditional queries in Cypher. -:page-role: new-2025.06 +:page-role: new-neo4j-2025.06 cypher-25-only `WHEN`, together with `THEN` and `ELSE`, enables different branches of a query to execute based on certain conditions. In this way, it performs similar a control-flow mechanism to the `IF` statement in other programming languages. diff --git a/modules/ROOT/pages/queries/composed-queries/sequential-queries.adoc b/modules/ROOT/pages/queries/composed-queries/sequential-queries.adoc index 7a1265c13..227442929 100644 --- a/modules/ROOT/pages/queries/composed-queries/sequential-queries.adoc +++ b/modules/ROOT/pages/queries/composed-queries/sequential-queries.adoc @@ -1,7 +1,7 @@ = Sequential queries (`NEXT`) :description: Information about how to use `NEXT` to construct sequential queries in Cypher. :table-caption!: -:page-role: new-2025.06 +:page-role: new-neo4j-2025.06 cypher-25-only `NEXT` allows for linear composition of queries into a sequence of smaller, self-contained segments, passing the whole table of intermediate results from one segment to the next. diff --git a/modules/ROOT/pages/queries/index.adoc b/modules/ROOT/pages/queries/index.adoc index 85d6c36c5..1c02aafd0 100644 --- a/modules/ROOT/pages/queries/index.adoc +++ b/modules/ROOT/pages/queries/index.adoc @@ -9,6 +9,6 @@ It also explains how to select the version of Cypher in which queries are run, a * xref:queries/select-version.adoc[] label:new[Introduced in Neo4j 2025.06] * xref:queries/composed-queries/index.adoc[] ** xref:queries/composed-queries/combined-queries.adoc[] -** xref:queries/composed-queries/conditional-queries.adoc[] label:new[Introduced in Neo4j 2025.06] -** xref:queries/composed-queries/sequential-queries.adoc[] label:new[Introduced in Neo4j 2025.06] +** xref:queries/composed-queries/conditional-queries.adoc[] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +** xref:queries/composed-queries/sequential-queries.adoc[] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] diff --git a/modules/ROOT/pages/subqueries/call-subquery.adoc b/modules/ROOT/pages/subqueries/call-subquery.adoc index fda792899..5d95e45fb 100644 --- a/modules/ROOT/pages/subqueries/call-subquery.adoc +++ b/modules/ROOT/pages/subqueries/call-subquery.adoc @@ -492,7 +492,7 @@ Now all `Player` nodes, regardless of whether they have any `PLAYS_FOR` relation ==== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[conditional-call]] == Conditional `CALL` subqueries diff --git a/modules/ROOT/pages/subqueries/collect.adoc b/modules/ROOT/pages/subqueries/collect.adoc index 7344fc40a..16dac0693 100644 --- a/modules/ROOT/pages/subqueries/collect.adoc +++ b/modules/ROOT/pages/subqueries/collect.adoc @@ -74,7 +74,7 @@ RETURN person.name as name, COLLECT { 2+d|Rows: 3 |=== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[conditional-collect]] == Conditional `COLLECT` subquery diff --git a/modules/ROOT/pages/subqueries/count.adoc b/modules/ROOT/pages/subqueries/count.adoc index 1708df583..9e2aa74c3 100644 --- a/modules/ROOT/pages/subqueries/count.adoc +++ b/modules/ROOT/pages/subqueries/count.adoc @@ -71,7 +71,7 @@ RETURN person.name AS name 1+d|Rows: 1 |=== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[conditional-count]] == Conditional `COUNT` subquery diff --git a/modules/ROOT/pages/subqueries/existential.adoc b/modules/ROOT/pages/subqueries/existential.adoc index 1c675ca5b..0d404d695 100644 --- a/modules/ROOT/pages/subqueries/existential.adoc +++ b/modules/ROOT/pages/subqueries/existential.adoc @@ -73,7 +73,7 @@ RETURN person.name AS name 1+d|Rows: 1 |=== -[role=label--new-2025.06] +[role=label--new-Neo4j-2025.06 label--cypher-25-only] [[conditional-exists]] == Conditional `EXISTS` subqueries diff --git a/package-lock.json b/package-lock.json index fff7844bb..1202516b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.3", "@neo4j-antora/mark-terms": "1.1.0", + "@neo4j-antora/roles-labels": "^0.1.2", "@neo4j-documentation/macros": "^1.0.4", "@neo4j-documentation/remote-include": "^1.0.0", "asciidoctor-kroki": "^0.18.1" @@ -357,6 +358,15 @@ "resolved": "https://registry.npmjs.org/@neo4j-antora/mark-terms/-/mark-terms-1.1.0.tgz", "integrity": "sha512-Cd/ZxJa0gKIGQZCgIg0td2vSYeLz30/31fBxJNeOmDQzUPqduOYRVx/C7uK0y0SI38APBr11LyeDhyQIU0wtGw==" }, + "node_modules/@neo4j-antora/roles-labels": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@neo4j-antora/roles-labels/-/roles-labels-0.1.2.tgz", + "integrity": "sha512-ruMZvGRxD3WyFVK/GaAO7gmNnU9zHuzfSbRpCMFJTasv78qRInn1np6WmTHZPbqynBWD3uYkh4pzIutBdJ8WFg==", + "license": "MIT", + "dependencies": { + "node-html-parser": "^7.0.0" + } + }, "node_modules/@neo4j-documentation/macros": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@neo4j-documentation/macros/-/macros-1.0.4.tgz", @@ -601,6 +611,12 @@ "node": ">=18" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -855,6 +871,34 @@ "node": ">=0.8" } }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -926,6 +970,61 @@ "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -965,6 +1064,18 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -1384,6 +1495,15 @@ "node": ">= 0.4" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, "node_modules/help-me": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", @@ -1786,6 +1906,16 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/node-html-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", + "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "he": "1.2.0" + } + }, "node_modules/nodemon": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", @@ -1839,6 +1969,18 @@ "node": ">=0.10.0" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -3133,6 +3275,14 @@ "resolved": "https://registry.npmjs.org/@neo4j-antora/mark-terms/-/mark-terms-1.1.0.tgz", "integrity": "sha512-Cd/ZxJa0gKIGQZCgIg0td2vSYeLz30/31fBxJNeOmDQzUPqduOYRVx/C7uK0y0SI38APBr11LyeDhyQIU0wtGw==" }, + "@neo4j-antora/roles-labels": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@neo4j-antora/roles-labels/-/roles-labels-0.1.2.tgz", + "integrity": "sha512-ruMZvGRxD3WyFVK/GaAO7gmNnU9zHuzfSbRpCMFJTasv78qRInn1np6WmTHZPbqynBWD3uYkh4pzIutBdJ8WFg==", + "requires": { + "node-html-parser": "^7.0.0" + } + }, "@neo4j-documentation/macros": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@neo4j-documentation/macros/-/macros-1.0.4.tgz", @@ -3312,6 +3462,11 @@ "type-is": "^2.0.0" } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3479,6 +3634,23 @@ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, + "css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==" + }, "dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -3522,6 +3694,39 @@ "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, "dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -3552,6 +3757,11 @@ "once": "^1.4.0" } }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, "es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -3842,6 +4052,11 @@ "function-bind": "^1.1.2" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, "help-me": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", @@ -4115,6 +4330,15 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node-html-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", + "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "requires": { + "css-select": "^5.1.0", + "he": "1.2.0" + } + }, "nodemon": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", @@ -4148,6 +4372,14 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, "object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", diff --git a/package.json b/package.json index 80590fb7e..84f38b499 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@neo4j-antora/antora-page-roles": "^0.3.1", "@neo4j-antora/antora-table-footnotes": "^0.3.3", "@neo4j-antora/mark-terms": "1.1.0", + "@neo4j-antora/roles-labels": "^0.1.2", "@neo4j-documentation/macros": "^1.0.4", "@neo4j-documentation/remote-include": "^1.0.0", "asciidoctor-kroki": "^0.18.1" diff --git a/preview.yml b/preview.yml index 389d0ef01..38927ba19 100644 --- a/preview.yml +++ b/preview.yml @@ -22,6 +22,10 @@ ui: urls: html_extension_style: indexify +antora: + extensions: + - "@neo4j-antora/roles-labels" + asciidoc: extensions: - "@neo4j-documentation/remote-include" diff --git a/publish.yml b/publish.yml index 9da9ddb55..9bb6f80cc 100644 --- a/publish.yml +++ b/publish.yml @@ -22,6 +22,10 @@ ui: urls: html_extension_style: indexify +antora: + extensions: + - "@neo4j-antora/roles-labels" + asciidoc: extensions: - "@neo4j-documentation/remote-include" From 31e89f213c3b070d697fc5bd1e0a83104dcee0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:24:25 +0200 Subject: [PATCH 2/3] standardise order --- modules/ROOT/pages/clauses/index.adoc | 4 ++-- modules/ROOT/pages/functions/index.adoc | 8 ++++---- modules/ROOT/pages/patterns/match-modes.adoc | 2 +- modules/ROOT/pages/patterns/reference.adoc | 2 +- modules/ROOT/pages/queries/index.adoc | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/ROOT/pages/clauses/index.adoc b/modules/ROOT/pages/clauses/index.adoc index a41036548..cb62f13f4 100644 --- a/modules/ROOT/pages/clauses/index.adoc +++ b/modules/ROOT/pages/clauses/index.adoc @@ -20,7 +20,7 @@ This set is refined and augmented by subsequent parts of the query. m| xref::clauses/filter.adoc[FILTER] | Adds filters to queries. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] m| xref::clauses/match.adoc[MATCH] | Specify the patterns to search for in the database. @@ -45,7 +45,7 @@ m| xref::clauses/finish.adoc[FINISH] m| xref::clauses/let.adoc[LET] | Binds values to variables. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] + label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] m| xref::clauses/return.adoc[RETURN ... [AS]] | Defines what to include in the query result set. diff --git a/modules/ROOT/pages/functions/index.adoc b/modules/ROOT/pages/functions/index.adoc index 4045981d0..ebceeb6a7 100644 --- a/modules/ROOT/pages/functions/index.adoc +++ b/modules/ROOT/pages/functions/index.adoc @@ -313,7 +313,7 @@ All trigonometric functions operate on radians, unless otherwise specified. 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cosh[`cosh()`] | `cosh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cosine of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cot[`cot()`] | `cot(input :: FLOAT) :: FLOAT` @@ -322,7 +322,7 @@ label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-coth[`coth()`] | `coth(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cotangent of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-degrees[`degrees()`] | `degrees(input :: FLOAT) :: FLOAT` @@ -347,7 +347,7 @@ label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-sinh[`sinh()`] | `sinh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic sine of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tan[`tan()`] | `tan(input :: FLOAT) :: FLOAT` @@ -356,7 +356,7 @@ label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tanh[`tanh()`] | `tanh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic tangent of a `FLOAT`. -label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] |=== diff --git a/modules/ROOT/pages/patterns/match-modes.adoc b/modules/ROOT/pages/patterns/match-modes.adoc index 956726d0c..3dc9f1a88 100644 --- a/modules/ROOT/pages/patterns/match-modes.adoc +++ b/modules/ROOT/pages/patterns/match-modes.adoc @@ -9,7 +9,7 @@ Cypher supports two match modes: The same restriction does not hold for nodes, which may be re-traversed any number of times in a matched path. This is Cypher’s default match mode, applicable to most use cases. * xref:patterns/match-modes.adoc#repeatable-elements[`REPEATABLE ELEMENTS`]: no restrictions on how often nodes and relationships can be traversed in a match for a graph pattern. -This match mode is required in order for paths to be able to traverse a relationship more than once. label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +This match mode is required in order for paths to be able to traverse a relationship more than once. label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] [[example-graph]] == Example graph diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index 50abbfe28..6c35ef97b 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1637,7 +1637,7 @@ MATCH ()-[r]->()-->(), ()-[r]-() A match mode specifies whether or not a relationship can be matched more than once when matching graph patterns. Cypher contains two match modes: * xref:patterns/reference.adoc#match-modes-rules-different-relationships[`DIFFERENT RELATIONSHIPS`] (default) -* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] [[match-modes-syntax]] === Syntax diff --git a/modules/ROOT/pages/queries/index.adoc b/modules/ROOT/pages/queries/index.adoc index 1c02aafd0..dda8472f0 100644 --- a/modules/ROOT/pages/queries/index.adoc +++ b/modules/ROOT/pages/queries/index.adoc @@ -9,6 +9,6 @@ It also explains how to select the version of Cypher in which queries are run, a * xref:queries/select-version.adoc[] label:new[Introduced in Neo4j 2025.06] * xref:queries/composed-queries/index.adoc[] ** xref:queries/composed-queries/combined-queries.adoc[] -** xref:queries/composed-queries/conditional-queries.adoc[] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] -** xref:queries/composed-queries/sequential-queries.adoc[] label:new[Introduced in Neo4j 2025.06] label:cypher[Cypher 25 only] +** xref:queries/composed-queries/conditional-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +** xref:queries/composed-queries/sequential-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] From 8e628aa4fcfcc0f6691d36dcbd02cf251a4da1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Pryce-=C3=85klundh?= <112686610+JPryce-Aklundh@users.noreply.github.com> Date: Mon, 1 Sep 2025 09:08:20 +0200 Subject: [PATCH 3/3] clean up --- modules/ROOT/pages/functions/index.adoc | 8 ++++---- modules/ROOT/pages/patterns/match-modes.adoc | 2 +- modules/ROOT/pages/patterns/reference.adoc | 2 +- modules/ROOT/pages/queries/composed-queries/index.adoc | 4 ++-- modules/ROOT/pages/queries/index.adoc | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/ROOT/pages/functions/index.adoc b/modules/ROOT/pages/functions/index.adoc index ebceeb6a7..7ac0eb4c6 100644 --- a/modules/ROOT/pages/functions/index.adoc +++ b/modules/ROOT/pages/functions/index.adoc @@ -313,7 +313,7 @@ All trigonometric functions operate on radians, unless otherwise specified. 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cosh[`cosh()`] | `cosh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cosine of a `FLOAT`. -label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-cot[`cot()`] | `cot(input :: FLOAT) :: FLOAT` @@ -322,7 +322,7 @@ label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-coth[`coth()`] | `coth(input :: FLOAT) :: FLOAT` | Returns the hyperbolic cotangent of a `FLOAT`. -label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-degrees[`degrees()`] | `degrees(input :: FLOAT) :: FLOAT` @@ -347,7 +347,7 @@ label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-sinh[`sinh()`] | `sinh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic sine of a `FLOAT`. -label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tan[`tan()`] | `tan(input :: FLOAT) :: FLOAT` @@ -356,7 +356,7 @@ label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] 1.1+| xref::functions/mathematical-trigonometric.adoc#functions-tanh[`tanh()`] | `tanh(input :: FLOAT) :: FLOAT` | Returns the hyperbolic tangent of a `FLOAT`. -label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] |=== diff --git a/modules/ROOT/pages/patterns/match-modes.adoc b/modules/ROOT/pages/patterns/match-modes.adoc index 3dc9f1a88..2671a1d5f 100644 --- a/modules/ROOT/pages/patterns/match-modes.adoc +++ b/modules/ROOT/pages/patterns/match-modes.adoc @@ -9,7 +9,7 @@ Cypher supports two match modes: The same restriction does not hold for nodes, which may be re-traversed any number of times in a matched path. This is Cypher’s default match mode, applicable to most use cases. * xref:patterns/match-modes.adoc#repeatable-elements[`REPEATABLE ELEMENTS`]: no restrictions on how often nodes and relationships can be traversed in a match for a graph pattern. -This match mode is required in order for paths to be able to traverse a relationship more than once. label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +This match mode is required in order for paths to be able to traverse a relationship more than once. label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] [[example-graph]] == Example graph diff --git a/modules/ROOT/pages/patterns/reference.adoc b/modules/ROOT/pages/patterns/reference.adoc index 6c35ef97b..c4d358e3e 100644 --- a/modules/ROOT/pages/patterns/reference.adoc +++ b/modules/ROOT/pages/patterns/reference.adoc @@ -1637,7 +1637,7 @@ MATCH ()-[r]->()-->(), ()-[r]-() A match mode specifies whether or not a relationship can be matched more than once when matching graph patterns. Cypher contains two match modes: * xref:patterns/reference.adoc#match-modes-rules-different-relationships[`DIFFERENT RELATIONSHIPS`] (default) -* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +* xref:patterns/reference.adoc#match-modes-rules-repeatable-elements[`REPEATABLE ELEMENTS`] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] [[match-modes-syntax]] === Syntax diff --git a/modules/ROOT/pages/queries/composed-queries/index.adoc b/modules/ROOT/pages/queries/composed-queries/index.adoc index fc74dbb97..a6091fb48 100644 --- a/modules/ROOT/pages/queries/composed-queries/index.adoc +++ b/modules/ROOT/pages/queries/composed-queries/index.adoc @@ -10,5 +10,5 @@ As such, `UNION`, `WHEN`, and `NEXT` manage in different ways the execution flow For more information, see: * xref:queries/composed-queries/combined-queries.adoc[] -* xref:queries/composed-queries/conditional-queries.adoc[] label:new[Introduced in Neo4j 2025.06] -* xref:queries/composed-queries/sequential-queries.adoc[] label:new[Introduced in Neo4j 2025.06] +* xref:queries/composed-queries/conditional-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +* xref:queries/composed-queries/sequential-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] diff --git a/modules/ROOT/pages/queries/index.adoc b/modules/ROOT/pages/queries/index.adoc index dda8472f0..ad9ca3b1e 100644 --- a/modules/ROOT/pages/queries/index.adoc +++ b/modules/ROOT/pages/queries/index.adoc @@ -9,6 +9,6 @@ It also explains how to select the version of Cypher in which queries are run, a * xref:queries/select-version.adoc[] label:new[Introduced in Neo4j 2025.06] * xref:queries/composed-queries/index.adoc[] ** xref:queries/composed-queries/combined-queries.adoc[] -** xref:queries/composed-queries/conditional-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] -** xref:queries/composed-queries/sequential-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +** xref:queries/composed-queries/conditional-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06] +** xref:queries/composed-queries/sequential-queries.adoc[] label:cypher[Cypher 25 only] label:new[Introduced in Neo4j 2025.06]