From efa362f2f61532d40e83a9093e388a13e2e46619 Mon Sep 17 00:00:00 2001 From: robfrank Date: Thu, 12 Nov 2026 16:10:05 +0100 Subject: [PATCH 1/2] docs(seo): page titles, release version attribute, thin index pages From the 2026-11-12 SEO audit of docs.arcadedb.com. - Give the six chapter pages that rendered as "Untitled" a title and H1 (GraphQL, Gremlin, Java API, MongoDB QL, Redis, Studio). The heading is wrapped in ifdef::site-gen-antora[] where the included page already supplies it, so the PDF and single-page build do not get a duplicate. - Retitle the Cypher clauses page from "MATCH" to "Cypher Clauses Reference" and the Python tutorial to "ArcadeDB Python Quickstart", with a description that leads with the official arcadedb-driver. - Make one-word and duplicate titles specific (Docker, Kubernetes, Vector Search, SQL Reference, the Connecting from pages, ...) and drop the em dash from the driver page titles. - version.adoc is now the one place to set the release: migrate.sh syncs it into docs/antora.yml and generate-pdf-manual.py reads it. Bumped to 26.11.1, so the Docker, Maven and binary snippets show the current release. - Remove core-concepts/chapter, a 14-word duplicate of concepts/chapter that nothing linked to; 301 it to concepts/chapter. - Add an orientation paragraph to the How-To Guides landing page and say LSM_VECTOR instead of HNSW on the vector tutorial cards. Co-Authored-By: Claude Opus 5.5 --- docs/antora.yml | 4 +- pom.xml | 2 +- scripts/generate-pdf-manual.py | 13 ++++- scripts/migrate.sh | 4 +- scripts/sync-revnumber.py | 47 +++++++++++++++++++ scripts/templates/_redirects | 2 + scripts/templates/get-started.adoc | 2 +- scripts/templates/index.adoc | 2 +- src/main/asciidoc/concepts/vector-search.adoc | 2 +- src/main/asciidoc/core-concepts/chapter.adoc | 27 ----------- src/main/asciidoc/how-to/chapter.adoc | 4 ++ src/main/asciidoc/how-to/connectivity/c.adoc | 2 +- .../how-to/connectivity/drivers/go-grpc.adoc | 2 +- .../how-to/connectivity/drivers/go-http.adoc | 2 +- .../how-to/connectivity/drivers/js-grpc.adoc | 2 +- .../how-to/connectivity/drivers/js-http.adoc | 2 +- .../connectivity/drivers/python-grpc.adoc | 2 +- .../connectivity/drivers/python-http.adoc | 2 +- .../how-to/connectivity/http-csharp.adoc | 2 +- .../how-to/connectivity/http-elixir.adoc | 2 +- .../how-to/connectivity/python-embedded.adoc | 2 +- src/main/asciidoc/how-to/connectivity/r.adoc | 2 +- .../asciidoc/how-to/connectivity/ruby.adoc | 2 +- .../asciidoc/how-to/connectivity/rust.adoc | 2 +- .../asciidoc/how-to/operations/docker.adoc | 2 +- src/main/asciidoc/how-to/operations/ha.adoc | 2 +- .../how-to/operations/kubernetes.adoc | 2 +- .../asciidoc/reference/cypher/chapter.adoc | 3 -- .../reference/cypher/cypher-clauses.adoc | 4 ++ .../asciidoc/reference/graphql/chapter.adoc | 3 ++ .../asciidoc/reference/gremlin/chapter.adoc | 3 ++ .../asciidoc/reference/java-api/chapter.adoc | 2 + .../reference/java-api/java-schema.adoc | 2 +- .../reference/mongodb-ql/chapter.adoc | 3 ++ .../asciidoc/reference/mongodb-ql/mongo.adoc | 2 +- .../asciidoc/reference/redis-ql/chapter.adoc | 3 ++ .../asciidoc/reference/redis-ql/redis.adoc | 2 +- src/main/asciidoc/reference/sql/chapter.adoc | 2 +- .../asciidoc/reference/sql/sql-indexes.adoc | 2 +- .../reference/sql/sql-introduction.adoc | 2 +- .../reference/sql/sql-materialized-views.adoc | 2 +- src/main/asciidoc/tools/studio/chapter.adoc | 6 ++- .../asciidoc/tutorials/go-quickstart.adoc | 2 +- .../asciidoc/tutorials/java-tutorial.adoc | 2 +- .../asciidoc/tutorials/python-quickstart.adoc | 3 +- src/main/asciidoc/version.adoc | 2 +- 46 files changed, 126 insertions(+), 65 deletions(-) create mode 100644 scripts/sync-revnumber.py delete mode 100644 src/main/asciidoc/core-concepts/chapter.adoc diff --git a/docs/antora.yml b/docs/antora.yml index 65442fe87..dea4b14b0 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -6,7 +6,9 @@ nav: - modules/ROOT/nav-query.adoc asciidoc: attributes: - revnumber: '26.10.2' + # Synced from src/main/asciidoc/version.adoc by scripts/sync-revnumber.py + # (run by migrate.sh). Change the release there, not here. + revnumber: '26.11.1' project-name: 'ArcadeDB' site-url: 'https://docs.arcadedb.com' repo-url: 'https://github.com/ArcadeData/arcadedb' diff --git a/pom.xml b/pom.xml index 0f3b7c350..b3f11cee3 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.arcadedb arcadedb-doc - 26.10.2 + 26.11.1 war diff --git a/scripts/generate-pdf-manual.py b/scripts/generate-pdf-manual.py index 0ab99a468..8046384d3 100644 --- a/scripts/generate-pdf-manual.py +++ b/scripts/generate-pdf-manual.py @@ -23,6 +23,17 @@ PDF_DIR = REPO / "docs" / "pdf" PDF_PAGES = PDF_DIR / "pages" # stripped page copies for the PDF aggregator +VERSION_FILE = REPO / "src" / "main" / "asciidoc" / "version.adoc" + + +def read_revnumber() -> str: + """The current release, from version.adoc (the one place it is set).""" + m = re.search(r"^:revnumber:\s*(\S+)\s*$", VERSION_FILE.read_text(encoding="utf-8"), re.M) + if not m: + sys.exit(f"no :revnumber: line in {VERSION_FILE}") + return m.group(1) + + NAV_FILES = ["nav.adoc", "nav-query.adoc"] XREF_RE = re.compile(r"xref:([^\[\s#]+\.adoc)(?:#[^\[\s]+)?\[([^\]]*)\]") @@ -101,7 +112,7 @@ def main() -> int: out: list[str] = [ "= ArcadeDB Manual", - ":revnumber: 26.10.2", + f":revnumber: {read_revnumber()}", ":doctype: book", ":imagesdir: ../modules/ROOT/images", ":source-highlighter: rouge", diff --git a/scripts/migrate.sh b/scripts/migrate.sh index fa3efeda6..11037848c 100755 --- a/scripts/migrate.sh +++ b/scripts/migrate.sh @@ -26,7 +26,6 @@ echo "==> Copying .adoc tree from $SRC" cp -R "$SRC"/tutorials "$DEST_PAGES"/ cp -R "$SRC"/use-cases "$DEST_PAGES"/ cp -R "$SRC"/concepts "$DEST_PAGES"/ -cp -R "$SRC"/core-concepts "$DEST_PAGES"/ cp -R "$SRC"/how-to "$DEST_PAGES"/ cp -R "$SRC"/reference "$DEST_PAGES"/ cp -R "$SRC"/tools "$DEST_PAGES"/ @@ -69,6 +68,9 @@ python3 scripts/add-descriptions.py echo "==> Generating nav.adoc" python3 scripts/generate-nav.py +echo "==> Syncing revnumber into docs/antora.yml" +python3 scripts/sync-revnumber.py + echo "==> Generating PDF aggregator" python3 scripts/generate-pdf-manual.py diff --git a/scripts/sync-revnumber.py b/scripts/sync-revnumber.py new file mode 100644 index 000000000..8a939b847 --- /dev/null +++ b/scripts/sync-revnumber.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +""" +Copy the release number from src/main/asciidoc/version.adoc into the +`revnumber` attribute of docs/antora.yml. + +version.adoc is the one place to set the current ArcadeDB release. The +legacy single-page build includes it directly, generate-pdf-manual.py +reads it for the PDF, and this script feeds it to Antora, so install and +run snippets written as `{revnumber}` show the same release everywhere. + +Idempotent: rewrites antora.yml only when the value differs. +""" +from __future__ import annotations + +import re +import sys +from pathlib import Path + +REPO = Path(__file__).resolve().parents[1] +VERSION_FILE = REPO / "src" / "main" / "asciidoc" / "version.adoc" +ANTORA_YML = REPO / "docs" / "antora.yml" + +VERSION_RE = re.compile(r"^:revnumber:\s*(\S+)\s*$", re.M) +ANTORA_RE = re.compile(r"^(\s*revnumber:\s*)'[^']*'\s*$", re.M) + + +def read_revnumber() -> str: + m = VERSION_RE.search(VERSION_FILE.read_text(encoding="utf-8")) + if not m: + sys.exit(f"no :revnumber: line in {VERSION_FILE}") + return m.group(1) + + +def main() -> int: + rev = read_revnumber() + text = ANTORA_YML.read_text(encoding="utf-8") + if not ANTORA_RE.search(text): + sys.exit(f"no revnumber attribute in {ANTORA_YML}") + new = ANTORA_RE.sub(lambda m: f"{m.group(1)}'{rev}'", text, count=1) + if new != text: + ANTORA_YML.write_text(new, encoding="utf-8") + print(f"revnumber: {rev}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/templates/_redirects b/scripts/templates/_redirects index b7991539d..936f32624 100644 --- a/scripts/templates/_redirects +++ b/scripts/templates/_redirects @@ -8,6 +8,8 @@ # Pages that moved or were merged, still linked from outside and reported as # 404 by Google Search Console. Each old URL is listed with and without .html. /arcadedb/tools/studio /arcadedb/tools/studio/chapter 301 +/arcadedb/core-concepts/chapter /arcadedb/concepts/chapter 301 +/arcadedb/core-concepts/chapter.html /arcadedb/concepts/chapter 301 /arcadedb/tools/studio.html /arcadedb/tools/studio/chapter 301 /arcadedb/tools/studio/graph /arcadedb/tools/studio/query#studio-query-graph 301 /arcadedb/tools/studio/graph.html /arcadedb/tools/studio/query#studio-query-graph 301 diff --git a/scripts/templates/get-started.adoc b/scripts/templates/get-started.adoc index 805aaf334..e39cb851b 100644 --- a/scripts/templates/get-started.adoc +++ b/scripts/templates/get-started.adoc @@ -83,7 +83,7 @@ Vector search

Vector Search Tutorial

-

Build an HNSW index and run cosine-similarity queries for semantic search.

+

Build an LSM_VECTOR index and run cosine-similarity queries for semantic search.

Time series diff --git a/scripts/templates/index.adoc b/scripts/templates/index.adoc index addc78e99..17b476739 100644 --- a/scripts/templates/index.adoc +++ b/scripts/templates/index.adoc @@ -279,7 +279,7 @@ Step-by-step guides to learn ArcadeDB's data models, query languages, and driver Vectors & AI

Vector Search Tutorial

-

Build a semantic-search index with HNSW and run cosine-similarity queries.

+

Build an LSM_VECTOR semantic-search index and run cosine-similarity queries.

Time Series diff --git a/src/main/asciidoc/concepts/vector-search.adoc b/src/main/asciidoc/concepts/vector-search.adoc index 0e978098d..14174a6b6 100644 --- a/src/main/asciidoc/concepts/vector-search.adoc +++ b/src/main/asciidoc/concepts/vector-search.adoc @@ -1,6 +1,6 @@ [[vector-model]] [[vector-search-concepts]] -=== Vector +=== Vector Search ArcadeDB includes a native vector search engine for similarity-based retrieval of embeddings. Vector indexes are fully integrated into the SQL query engine and support ACID transactions, persistent storage, and automatic compaction. diff --git a/src/main/asciidoc/core-concepts/chapter.adoc b/src/main/asciidoc/core-concepts/chapter.adoc deleted file mode 100644 index b28ebfd3e..000000000 --- a/src/main/asciidoc/core-concepts/chapter.adoc +++ /dev/null @@ -1,27 +0,0 @@ -[[core-concepts]] -== Core Concepts -:description: ArcadeDB core concepts: records, buckets, transactions, inheritance, schema, indexes, full-text and geospatial search, materialized views, graphs, time series. - -include::basics.adoc[] - -include::transactions.adoc[] - -include::inheritance.adoc[] - -include::schema.adoc[] - -include::indexes.adoc[] - -include::full-text-index.adoc[] - -include::geospatial.adoc[] - -include::materialized-views.adoc[] - -include::graphs.adoc[] - -include::graph-olap.adoc[] - -include::timeseries.adoc[] - -include::databases.adoc[] diff --git a/src/main/asciidoc/how-to/chapter.adoc b/src/main/asciidoc/how-to/chapter.adoc index 669b63d6b..7ddbe03fe 100644 --- a/src/main/asciidoc/how-to/chapter.adoc +++ b/src/main/asciidoc/how-to/chapter.adoc @@ -2,6 +2,10 @@ == How-To Guides :description: ArcadeDB how-to guides: data modeling, BI and analytics integrations, server operations such as backup, HA and Kubernetes, and migrating data into ArcadeDB. +How-to guides are task-oriented recipes for an ArcadeDB you already have running. +Each one answers a single question, such as how to add a full-text index, plug in Grafana, back up a database, run a cluster on Kubernetes or import a Neo4j export, and links to the reference pages for every option it uses. +For a first walkthrough start with the tutorials, and for the ideas behind the steps read the concepts. + include::data-modeling/chapter.adoc[] include::integrations/chapter.adoc[] diff --git a/src/main/asciidoc/how-to/connectivity/c.adoc b/src/main/asciidoc/how-to/connectivity/c.adoc index bf3e60903..fca6f9725 100644 --- a/src/main/asciidoc/how-to/connectivity/c.adoc +++ b/src/main/asciidoc/how-to/connectivity/c.adoc @@ -1,5 +1,5 @@ [[http-api-c]] -==== C +==== Connecting from C :description: Connect to ArcadeDB from C using the PostgreSQL wire protocol with libpq to run SQL, or the HTTP/JSON API with libcurl and no driver. Sample code included. [TIP] diff --git a/src/main/asciidoc/how-to/connectivity/drivers/go-grpc.adoc b/src/main/asciidoc/how-to/connectivity/drivers/go-grpc.adoc index 37701a4dd..1cbe694a9 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/go-grpc.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/go-grpc.adoc @@ -1,5 +1,5 @@ [[driver-go-grpc]] -==== Go -- gRPC Driver +==== Go gRPC Driver `github.com/ArcadeData/arcadedb-drivers/go/arcadedbgrpc` is ArcadeDB's Go gRPC client, generated from the server's Protobuf contract. A small facade on top handles authentication, the streaming diff --git a/src/main/asciidoc/how-to/connectivity/drivers/go-http.adoc b/src/main/asciidoc/how-to/connectivity/drivers/go-http.adoc index bf0023ec6..84495a353 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/go-http.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/go-http.adoc @@ -1,5 +1,5 @@ [[driver-go-http]] -==== Go -- HTTP Driver +==== Go HTTP Driver `github.com/ArcadeData/arcadedb-drivers/go/arcadedb` is ArcadeDB's Go HTTP client, generated from the server's OpenAPI contract. A hand-written facade on top covers queries, commands, diff --git a/src/main/asciidoc/how-to/connectivity/drivers/js-grpc.adoc b/src/main/asciidoc/how-to/connectivity/drivers/js-grpc.adoc index 78c62b9d4..766a027e8 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/js-grpc.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/js-grpc.adoc @@ -1,5 +1,5 @@ [[driver-js-grpc]] -==== JavaScript / TypeScript -- gRPC Driver +==== JavaScript / TypeScript gRPC Driver `@arcadedb/driver-grpc` is ArcadeDB's TypeScript/JavaScript gRPC client, generated from the server's Protobuf contract. It wraps the generated https://connectrpc.com/[Connect] client in a diff --git a/src/main/asciidoc/how-to/connectivity/drivers/js-http.adoc b/src/main/asciidoc/how-to/connectivity/drivers/js-http.adoc index 97d1f73cf..34c279128 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/js-http.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/js-http.adoc @@ -1,5 +1,5 @@ [[driver-js-http]] -==== JavaScript / TypeScript -- HTTP Driver +==== JavaScript / TypeScript HTTP Driver `@arcadedb/driver` is ArcadeDB's TypeScript/JavaScript HTTP client, generated from the server's OpenAPI contract. diff --git a/src/main/asciidoc/how-to/connectivity/drivers/python-grpc.adoc b/src/main/asciidoc/how-to/connectivity/drivers/python-grpc.adoc index a69677bc4..6b225205d 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/python-grpc.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/python-grpc.adoc @@ -1,5 +1,5 @@ [[driver-python-grpc]] -==== Python -- gRPC Driver +==== Python gRPC Driver `arcadedb-driver-grpc` is ArcadeDB's Python gRPC client, generated from the server's Protobuf contract. It wraps the generated stub in a small facade for streaming queries, streaming inserts diff --git a/src/main/asciidoc/how-to/connectivity/drivers/python-http.adoc b/src/main/asciidoc/how-to/connectivity/drivers/python-http.adoc index 6b07fab0c..a2118e70a 100644 --- a/src/main/asciidoc/how-to/connectivity/drivers/python-http.adoc +++ b/src/main/asciidoc/how-to/connectivity/drivers/python-http.adoc @@ -1,5 +1,5 @@ [[driver-python-http]] -==== Python -- HTTP Driver +==== Python HTTP Driver `arcadedb-driver` is ArcadeDB's Python HTTP client, generated from the server's OpenAPI contract. It wraps queries, commands and transactions in a small facade over diff --git a/src/main/asciidoc/how-to/connectivity/http-csharp.adoc b/src/main/asciidoc/how-to/connectivity/http-csharp.adoc index 001fa3e88..94c41d131 100644 --- a/src/main/asciidoc/how-to/connectivity/http-csharp.adoc +++ b/src/main/asciidoc/how-to/connectivity/http-csharp.adoc @@ -1,5 +1,5 @@ [[http-api-csharp]] -==== C# +==== Connecting from C# :description: Connect to ArcadeDB from C# and .NET through the Neo4j BOLT driver, the Npgsql PostgreSQL driver, or the HTTP/JSON API with HttpClient. Sample code included. [TIP] diff --git a/src/main/asciidoc/how-to/connectivity/http-elixir.adoc b/src/main/asciidoc/how-to/connectivity/http-elixir.adoc index e0ce4a0a5..03eaf190c 100644 --- a/src/main/asciidoc/how-to/connectivity/http-elixir.adoc +++ b/src/main/asciidoc/how-to/connectivity/http-elixir.adoc @@ -1,5 +1,5 @@ [[http-api-elixir]] -==== Elixir +==== Connecting from Elixir :description: Connect to ArcadeDB from Elixir through the HTTP/JSON API: configure the HTTP client, then send SQL commands and queries with working sample code. [TIP] diff --git a/src/main/asciidoc/how-to/connectivity/python-embedded.adoc b/src/main/asciidoc/how-to/connectivity/python-embedded.adoc index dad0d5207..348f4de7d 100644 --- a/src/main/asciidoc/how-to/connectivity/python-embedded.adoc +++ b/src/main/asciidoc/how-to/connectivity/python-embedded.adoc @@ -1,5 +1,5 @@ [[python-embedded]] -==== Python -- Embedded Bindings +==== Python Embedded Bindings The embedded bindings run the ArcadeDB engine inside your Python process, so there is no network hop and no server to start. They ship as two packages, and both import as `arcadedb`: diff --git a/src/main/asciidoc/how-to/connectivity/r.adoc b/src/main/asciidoc/how-to/connectivity/r.adoc index c55ae479f..715344797 100644 --- a/src/main/asciidoc/how-to/connectivity/r.adoc +++ b/src/main/asciidoc/how-to/connectivity/r.adoc @@ -1,5 +1,5 @@ [[http-api-r]] -==== R +==== Connecting from R :description: Connect to ArcadeDB from R using the PostgreSQL wire protocol with RPostgres and DBI to run SQL, or the HTTP/JSON API with httr2. Sample code included. [TIP] diff --git a/src/main/asciidoc/how-to/connectivity/ruby.adoc b/src/main/asciidoc/how-to/connectivity/ruby.adoc index 439843516..03d850a3e 100644 --- a/src/main/asciidoc/how-to/connectivity/ruby.adoc +++ b/src/main/asciidoc/how-to/connectivity/ruby.adoc @@ -1,5 +1,5 @@ [[http-api-ruby]] -==== Ruby +==== Connecting from Ruby [TIP] ==== diff --git a/src/main/asciidoc/how-to/connectivity/rust.adoc b/src/main/asciidoc/how-to/connectivity/rust.adoc index a7dd9d1eb..83c325fcd 100644 --- a/src/main/asciidoc/how-to/connectivity/rust.adoc +++ b/src/main/asciidoc/how-to/connectivity/rust.adoc @@ -1,5 +1,5 @@ [[http-api-rust]] -==== Rust +==== Connecting from Rust :description: Connect to ArcadeDB from Rust with the neo4rs crate over Neo4j BOLT, the postgres crate over the PostgreSQL wire protocol, or reqwest over HTTP/JSON. [TIP] diff --git a/src/main/asciidoc/how-to/operations/docker.adoc b/src/main/asciidoc/how-to/operations/docker.adoc index 5017a3f13..c0d8aa58c 100644 --- a/src/main/asciidoc/how-to/operations/docker.adoc +++ b/src/main/asciidoc/how-to/operations/docker.adoc @@ -1,5 +1,5 @@ [[docker]] -==== Docker +==== Running ArcadeDB with Docker To run the ArcadeDB server with Docker, type this (replace with the root password you want to use): diff --git a/src/main/asciidoc/how-to/operations/ha.adoc b/src/main/asciidoc/how-to/operations/ha.adoc index 7188cbb27..9c821bc46 100644 --- a/src/main/asciidoc/how-to/operations/ha.adoc +++ b/src/main/asciidoc/how-to/operations/ha.adoc @@ -1,5 +1,5 @@ [[howto-high-availability]] -==== High Availability +==== Configuring High Availability ArcadeDB supports a High Availability (HA) mode where multiple servers share the same databases via Raft-based replication. All servers of a cluster serve the same set of databases. diff --git a/src/main/asciidoc/how-to/operations/kubernetes.adoc b/src/main/asciidoc/how-to/operations/kubernetes.adoc index 61f9ce8ba..08d7d508d 100644 --- a/src/main/asciidoc/how-to/operations/kubernetes.adoc +++ b/src/main/asciidoc/how-to/operations/kubernetes.adoc @@ -1,5 +1,5 @@ [[kubernetes]] -==== Kubernetes +==== Running ArcadeDB on Kubernetes ArcadeDB officially supports deployment on Kubernetes via the https://github.com/ArcadeData/arcadedb-helm[arcadedb-helm] chart, published at `https://helm.arcadedb.com/`. The chart deploys ArcadeDB as a `StatefulSet` and, when `replicaCount` is greater than 1, automatically configures a Raft-based <> cluster. diff --git a/src/main/asciidoc/reference/cypher/chapter.adoc b/src/main/asciidoc/reference/cypher/chapter.adoc index bd76227d6..cf8a9a881 100644 --- a/src/main/asciidoc/reference/cypher/chapter.adoc +++ b/src/main/asciidoc/reference/cypher/chapter.adoc @@ -69,9 +69,6 @@ include::cypher-gql-conformance.adoc[] include::cypher-tutorial.adoc[] -[[cypher-commands]] -==== Clauses Reference - include::cypher-clauses.adoc[] include::cypher-expressions.adoc[] diff --git a/src/main/asciidoc/reference/cypher/cypher-clauses.adoc b/src/main/asciidoc/reference/cypher/cypher-clauses.adoc index b1b3281cc..d4809b04c 100644 --- a/src/main/asciidoc/reference/cypher/cypher-clauses.adoc +++ b/src/main/asciidoc/reference/cypher/cypher-clauses.adoc @@ -1,3 +1,7 @@ +[[cypher-commands]] +==== Cypher Clauses Reference +:description: Cypher clauses in ArcadeDB: MATCH, OPTIONAL MATCH, WHERE, RETURN, WITH, CREATE, MERGE, SET, DELETE, UNWIND, CALL, ORDER BY and every other supported clause. + [[cypher-match]] ===== MATCH diff --git a/src/main/asciidoc/reference/graphql/chapter.adoc b/src/main/asciidoc/reference/graphql/chapter.adoc index d104f11e3..ad5b6c4bd 100644 --- a/src/main/asciidoc/reference/graphql/chapter.adoc +++ b/src/main/asciidoc/reference/graphql/chapter.adoc @@ -1,4 +1,7 @@ :description: Query ArcadeDB with GraphQL: the supported subset of the GraphQL specification, defining types, running queries over HTTP, and the arcadedb-graphql library. [[graphql-reference]] +ifdef::site-gen-antora[] +=== GraphQL Reference +endif::[] include::graphql.adoc[] diff --git a/src/main/asciidoc/reference/gremlin/chapter.adoc b/src/main/asciidoc/reference/gremlin/chapter.adoc index 80506658c..2bb505d11 100644 --- a/src/main/asciidoc/reference/gremlin/chapter.adoc +++ b/src/main/asciidoc/reference/gremlin/chapter.adoc @@ -1,4 +1,7 @@ :description: Run Apache TinkerPop Gremlin 3.7 queries on ArcadeDB, embedded through the arcadedb-gremlin library or remotely through the bundled Gremlin Server. [[gremlin-reference]] +ifdef::site-gen-antora[] +=== Gremlin Reference +endif::[] include::gremlin.adoc[] diff --git a/src/main/asciidoc/reference/java-api/chapter.adoc b/src/main/asciidoc/reference/java-api/chapter.adoc index 44a6114f5..5b09466fe 100644 --- a/src/main/asciidoc/reference/java-api/chapter.adoc +++ b/src/main/asciidoc/reference/java-api/chapter.adoc @@ -1,4 +1,6 @@ [[java-api-reference]] +=== Java API Reference +:description: ArcadeDB Java API reference: database and async APIs, schema, events, embedded documents, the Select API, batch importer, vectors, and the remote and gRPC clients. include::java-ref-database.adoc[] diff --git a/src/main/asciidoc/reference/java-api/java-schema.adoc b/src/main/asciidoc/reference/java-api/java-schema.adoc index c33040bcf..4910b1149 100644 --- a/src/main/asciidoc/reference/java-api/java-schema.adoc +++ b/src/main/asciidoc/reference/java-api/java-schema.adoc @@ -1,5 +1,5 @@ [[getschema]] -==== Schema +==== Java Schema API ArcadeDB can work in schema-less mode (like most of NoSQL DBMS), schema-full (like with RDBMS) or hybrid. The main API to manage the schema is the Schema interface you can obtain by calling the API <>: diff --git a/src/main/asciidoc/reference/mongodb-ql/chapter.adoc b/src/main/asciidoc/reference/mongodb-ql/chapter.adoc index a49c0e966..61ebcc154 100644 --- a/src/main/asciidoc/reference/mongodb-ql/chapter.adoc +++ b/src/main/asciidoc/reference/mongodb-ql/chapter.adoc @@ -1,4 +1,7 @@ :description: Use the MongoDB query language and wire protocol with ArcadeDB: enable the MongoDB plugin on the server, or add the arcadedb-mongodbw library when embedded. [[mongodb-ql-reference]] +ifdef::site-gen-antora[] +=== MongoDB Query Language Reference +endif::[] include::mongo.adoc[] diff --git a/src/main/asciidoc/reference/mongodb-ql/mongo.adoc b/src/main/asciidoc/reference/mongodb-ql/mongo.adoc index e52245fc5..734679942 100644 --- a/src/main/asciidoc/reference/mongodb-ql/mongo.adoc +++ b/src/main/asciidoc/reference/mongodb-ql/mongo.adoc @@ -1,5 +1,5 @@ [[mongodb-query-language]] -=== Mongo +=== MongoDB Query Language ArcadeDB provides support for both MongoDB Query Language and MongoDB protocol. diff --git a/src/main/asciidoc/reference/redis-ql/chapter.adoc b/src/main/asciidoc/reference/redis-ql/chapter.adoc index 0c14e26c9..d429504a6 100644 --- a/src/main/asciidoc/reference/redis-ql/chapter.adoc +++ b/src/main/asciidoc/reference/redis-ql/chapter.adoc @@ -1,4 +1,7 @@ :description: Talk to ArcadeDB over the Redis protocol: the supported subset of Redis commands, enabling the Redis plugin on the server, and the arcadedb-redisw library. [[redis-ql-reference]] +ifdef::site-gen-antora[] +=== Redis Protocol Reference +endif::[] include::redis.adoc[] diff --git a/src/main/asciidoc/reference/redis-ql/redis.adoc b/src/main/asciidoc/reference/redis-ql/redis.adoc index 16a7e7e7e..e7c943a4d 100644 --- a/src/main/asciidoc/reference/redis-ql/redis.adoc +++ b/src/main/asciidoc/reference/redis-ql/redis.adoc @@ -1,5 +1,5 @@ [[redis-query-language]] -=== Redis +=== Redis Protocol ArcadeDB Server supports a subset of the https://redis.io[Redis] protocol. Please open an issue or a discussion on GitHub to support more commands. diff --git a/src/main/asciidoc/reference/sql/chapter.adoc b/src/main/asciidoc/reference/sql/chapter.adoc index 13b6e808c..dd0a5db4b 100644 --- a/src/main/asciidoc/reference/sql/chapter.adoc +++ b/src/main/asciidoc/reference/sql/chapter.adoc @@ -1,5 +1,5 @@ [[sql]] -=== SQL +=== SQL Reference :description: ArcadeDB SQL reference: every command for querying, graph traversal, schema and database management, plus SQL functions, methods and APOC-compatible functions. *Overview Commands* diff --git a/src/main/asciidoc/reference/sql/sql-indexes.adoc b/src/main/asciidoc/reference/sql/sql-indexes.adoc index 2d5fd6f3f..d48b28036 100644 --- a/src/main/asciidoc/reference/sql/sql-indexes.adoc +++ b/src/main/asciidoc/reference/sql/sql-indexes.adoc @@ -1,5 +1,5 @@ [[sql-indexes]] -==== Indexes +==== SQL Indexes :description: Manage ArcadeDB indexes with SQL: CREATE INDEX for unique, non-unique, full-text and vector indexes, plus REBUILD INDEX, COMPACT INDEX and DROP INDEX. [[sql-create-index]] diff --git a/src/main/asciidoc/reference/sql/sql-introduction.adoc b/src/main/asciidoc/reference/sql/sql-introduction.adoc index 76e342215..71026a542 100644 --- a/src/main/asciidoc/reference/sql/sql-introduction.adoc +++ b/src/main/asciidoc/reference/sql/sql-introduction.adoc @@ -1,6 +1,6 @@ [[sql]] [[sql-introduction]] -==== SQL +==== SQL Introduction ArcadeDB speaks SQL as its primary query language, extended for graph traversal, full-text search, time series, and vector similarity. Nine out of ten developers can write their first ArcadeDB query without learning anything new -- the differences are covered in the <> section below. diff --git a/src/main/asciidoc/reference/sql/sql-materialized-views.adoc b/src/main/asciidoc/reference/sql/sql-materialized-views.adoc index c7970a28b..320c970d3 100644 --- a/src/main/asciidoc/reference/sql/sql-materialized-views.adoc +++ b/src/main/asciidoc/reference/sql/sql-materialized-views.adoc @@ -1,5 +1,5 @@ [[sql-materialized-views]] -==== Materialized Views +==== SQL Materialized Views [[sql-create-materialized-view]] ===== SQL - `CREATE MATERIALIZED VIEW` diff --git a/src/main/asciidoc/tools/studio/chapter.adoc b/src/main/asciidoc/tools/studio/chapter.adoc index 31280f84b..4ce004fa1 100644 --- a/src/main/asciidoc/tools/studio/chapter.adoc +++ b/src/main/asciidoc/tools/studio/chapter.adoc @@ -1,4 +1,8 @@ - +[[studio-reference]] +ifdef::site-gen-antora[] +=== ArcadeDB Studio +endif::[] +:description: ArcadeDB Studio, the web workbench bundled with the server: run queries, browse data, manage databases and time series, administer the server and profile queries. include::main.adoc[] include::query.adoc[] diff --git a/src/main/asciidoc/tutorials/go-quickstart.adoc b/src/main/asciidoc/tutorials/go-quickstart.adoc index 505a43a72..135b937c9 100644 --- a/src/main/asciidoc/tutorials/go-quickstart.adoc +++ b/src/main/asciidoc/tutorials/go-quickstart.adoc @@ -1,5 +1,5 @@ [[go-quickstart]] -=== Go +=== ArcadeDB Go Quickstart [TIP] ==== diff --git a/src/main/asciidoc/tutorials/java-tutorial.adoc b/src/main/asciidoc/tutorials/java-tutorial.adoc index 5b2679282..9ae45fa03 100644 --- a/src/main/asciidoc/tutorials/java-tutorial.adoc +++ b/src/main/asciidoc/tutorials/java-tutorial.adoc @@ -1,5 +1,5 @@ [[java-tutorial]] -=== Java +=== ArcadeDB Java Tutorial The Java API is the primary interface to ArcadeDB. Use it in **embedded** mode to run the database inside your JVM (no separate server process), or in **remote** mode to talk to a running ArcadeDB Server over HTTP. diff --git a/src/main/asciidoc/tutorials/python-quickstart.adoc b/src/main/asciidoc/tutorials/python-quickstart.adoc index 569cf8c96..f234c3a10 100644 --- a/src/main/asciidoc/tutorials/python-quickstart.adoc +++ b/src/main/asciidoc/tutorials/python-quickstart.adoc @@ -1,6 +1,7 @@ [[python-quickstart]] [[python]] -=== Python +=== ArcadeDB Python Quickstart +:description: ArcadeDB Python quickstart: install the official arcadedb-driver package, compare the gRPC, BOLT, PostgreSQL and embedded options, then build a graph and run vector search. [TIP] ==== diff --git a/src/main/asciidoc/version.adoc b/src/main/asciidoc/version.adoc index 01ad12fde..eaa62fbd1 100644 --- a/src/main/asciidoc/version.adoc +++ b/src/main/asciidoc/version.adoc @@ -1 +1 @@ -:revnumber: 26.10.1 +:revnumber: 26.11.1 From 59ed36924487a5fba19be83e1e16bd88eadd5a8e Mon Sep 17 00:00:00 2001 From: robfrank Date: Thu, 12 Nov 2026 16:13:32 +0100 Subject: [PATCH 2/2] docs(claude): note version.adoc as the single release source Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 443bbfc9c..2aa87356d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,6 +13,8 @@ Two outputs, one source tree: - **HTML site (production)** — `docs.arcadedb.com` is the Antora build. The Antora playbook reads from `docs/modules/ROOT/{pages,images}/`, which is **regenerated from `src/main/asciidoc/` on every CI run by `scripts/migrate.sh`** (it wipes and rebuilds the `docs/modules/ROOT/` tree). Deploy workflow: `.github/workflows/cloudflare-deploy.yml` — on every push to `main` it does `npm ci` → `bash scripts/migrate.sh` → `npm run build` → `wrangler pages deploy build/site` to the `arcadedb-docs` Cloudflare Pages project. - **PDF (production)** — `ArcadeDB-Manual.pdf` is built by `mvn` from `src/main/asciidoc/` directly. Workflow: `.github/workflows/pdf.yml`. +**Release number**: set the current ArcadeDB release once, in `src/main/asciidoc/version.adoc` (`:revnumber:`). The legacy build includes it, `generate-pdf-manual.py` reads it, and `scripts/sync-revnumber.py` (a `migrate.sh` step) copies it into `docs/antora.yml`. Write install and run snippets as `{revnumber}`; leave historical "since vX" notes as literals. + **Where to edit content**: `src/main/asciidoc/` is the only place to edit. CI runs `scripts/migrate.sh` automatically on push to `main`, so you do **not** need to run it by hand. Only run it locally if you want to preview the Antora site before pushing. The legacy single-page Asciidoctor HTML build (`mvn generate-resources` → `target/generated-docs/index.html`) still works and is useful for quick local previews of `src/main/asciidoc/` edits, but it is no longer deployed anywhere — `docs.arcadedb.com` is Antora.