diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..1f57c5b
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,35 @@
+name: Build and Test
+
+on:
+ push:
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-24.04
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20.x'
+ cache: 'npm'
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Run type check
+ run: npm run typecheck
+
+ - name: Build documentation and check for warnings
+ run: |
+ npm run build 2>&1 | tee build.log
+ if grep -i "warning" build.log; then
+ echo " Build completed with warnings. Failing the build."
+ exit 1
+ else
+ echo " Build completed without warnings."
+ fi
diff --git a/.gitignore b/.gitignore
index b2d6de3..f8ab39d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,16 @@
# Dependencies
/node_modules
-# Production
+# Production (generated static files)
/build
# Generated files
.docusaurus
.cache-loader
+# IDE files
+.idea/
+
# Misc
.DS_Store
.env.local
diff --git a/14.x b/14.x
deleted file mode 100644
index ee09fac..0000000
--- a/14.x
+++ /dev/null
@@ -1 +0,0 @@
-v20.11.1
diff --git a/README.md b/README.md
index c1efff2..c537cfd 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,10 @@ The **text content** is written in the markdown format and the [docs](docs/) fol
Other resources:
-* **Images** are places in the [static/img/assets/](static/img/assets/) folder.
+* **Images** are placed in the [static/img/assets/](static/img/assets/) folder.
* The **main navigation** is located in the [sidebars.ts](sidebars.ts) file.
* The main **configuration** is done in the [docusaurus.config.ts](docusaurus.config.ts) file.
-* CSS styles are written in the [src/css/custom.css](src/css/custom.css) file.
+* Custom **CSS styles** to overwrite the theme's default are located in the [src/css/custom.css](src/css/custom.css) file.
Notes regarding image file names: only use lowercase and no spaces.
diff --git a/docs/README.mdx b/docs/README.mdx
index 76fdf55..b3343cd 100644
--- a/docs/README.mdx
+++ b/docs/README.mdx
@@ -36,7 +36,7 @@ This is the ObjectBox documentation for our C and C++ APIs. We strive to provide
Jobs: We're looking for a [C++ Developer](https://objectbox.io/jobs/objectbox-senior-c-plusplus-developer/) with a ❤️ for performant code
:::
-Are you ready use ObjectBox? These two pages will get you up to speed:
+Are you ready to use ObjectBox? These two pages will get you up to speed:
diff --git a/docs/fix_anchor_links.py b/docs/fix_anchor_links.py
index b75eadb..28415c7 100644
--- a/docs/fix_anchor_links.py
+++ b/docs/fix_anchor_links.py
@@ -207,7 +207,7 @@ def fix_anchor_in_url(url_with_anchor: str, all_headings: Dict[str, Dict[str, st
# C++ specific anchors
'cmake-support': 'cmake-integration',
'cmake-3.14': 'objectbox-library',
- 'reset-data-new-uid-on-a-property': 'reset-data-new-uid-on-a-property',
+ 'reset-data-new-uid-on-a-property': 'reset-data---new-uid-on-a-property',
'standalone': 'using-the-standalone-generator',
}
diff --git a/docs/generator.mdx b/docs/generator.mdx
index 14160fe..68f229a 100644
--- a/docs/generator.mdx
+++ b/docs/generator.mdx
@@ -36,9 +36,9 @@ This is the reference guide on the ObjectBox Generator, a build-time tool for Ob
For an intro to the generator, see also the [installation guide](installation#objectbox-generator) and [Generating Binding Code](getting-started#generating-binding-code).
:::
-When using ObjectBox within your project, you typically need two things: the runtime library and the the build-time ObjectBox Generator. The generator takes a data model (see [Entity Annotations](entity-annotations)) as input and generates `struct`s, a data model representation as code and additional glue code for a tight and fast integration of your individual data types and the ObjectBox API.
+When using ObjectBox within your project, you typically need two things: the runtime library and the build-time ObjectBox Generator. The generator takes a data model (see [Entity Annotations](entity-annotations)) as input and generates `struct`s, a data model representation as code and additional glue code for a tight and fast integration of your individual data types and the ObjectBox API.
-If you are using CMake, it's highly recommended to use the CMake integration of the ObjectBox Generator. For all other setups, triggering the generator in [standalone mode](generator#standalone) is also supported.
+If you are using CMake, it's highly recommended to use the CMake integration of the ObjectBox Generator. For all other setups, triggering the generator in [standalone mode](generator#using-the-standalone-generator) is also supported.
:::info
The ObjectBox Generator binary is currently not available for Linux/Windows ARM architectures (pull requests are welcome). The macOS as universal binary supports ARM64 and AMD64 architectures.
@@ -57,7 +57,7 @@ Once you have the ObjectBox runtime library set up via `FetchContent` (see [inst
find_package(ObjectBoxGenerator 4.0.0 REQUIRED)
```
-With that, the CMake funciton add\_obx\_schema is now available (see next section).
+With that, the CMake function add\_obx\_schema is now available (see next section).
### Add the schema with `add_obx_schema`
diff --git a/docs/getting-started.mdx b/docs/getting-started.mdx
index 36faa90..ebe6611 100644
--- a/docs/getting-started.mdx
+++ b/docs/getting-started.mdx
@@ -250,7 +250,7 @@ handle_error: // print error and clean up
If you've followed the installation instructions, you should be able to compile the example
-If you are using CMake, like shown in the [installation section](installation#cmake-3.14), just add the generated `tasklist.obx.cpp` file to the `myapp` target.
+If you are using CMake, like shown in the [installation section](installation#objectbox-library), just add the generated `tasklist.obx.cpp` file to the `myapp` target.
The `add_executable` call in the CMake file now looks like this:
diff --git a/docs/installation.mdx b/docs/installation.mdx
index 1a50550..4a7c5da 100644
--- a/docs/installation.mdx
+++ b/docs/installation.mdx
@@ -91,7 +91,7 @@ endif()
add_executable(myapp main.cpp)
target_link_libraries(myapp objectbox)
-```cmake
+```
If you want to integrate the ObjectBox-Generator via CMake (as an alternative to offline installation and pre-generation of C++ sources), use the following snippet:
```cmake
@@ -105,9 +105,8 @@ add_obx_schema(
INSOURCE # Opt-in: Generate in source directory
CXX_STANDARD 11 # Defaults to C++14 otherwise
)
-```cmake
-\
-If you want to use an ObjectBox Sync variant of the library, change the list line to:
+```
+If you want to use an ObjectBox Sync variant of the library, change the `target_link_libraries` to:
```cmake title="CMakeLists.txt"
target_link_libraries(myapp objectbox-sync)
diff --git a/docs/schema-changes.mdx b/docs/schema-changes.mdx
index decba8c..63b7f3b 100644
--- a/docs/schema-changes.mdx
+++ b/docs/schema-changes.mdx
@@ -75,7 +75,7 @@ uid annotation value must not be empty:
```
:::info
-Note how for a property, the output is slightly different. It's because you have two options, either renaming the property or resetting (clearing) it's stored data. See [Reset data - new UID on a property](schema-changes#reset-data-new-uid-on-a-property) for more details.
+Note how for a property, the output is slightly different. It's because you have two options, either renaming the property or resetting (clearing) it's stored data. See [Reset data - new UID on a property](schema-changes#reset-data---new-uid-on-a-property) for more details.
:::
**Step 3:** Apply the UID printed in the error message to your entity/property:
diff --git a/docs/store.mdx b/docs/store.mdx
index 42a1000..1d7714c 100644
--- a/docs/store.mdx
+++ b/docs/store.mdx
@@ -97,7 +97,7 @@ obx_store_open(opt);
Available since v0.21.0
:::
-You can use ObjectBox alsofor non-persistent in-memory databases. To create a memory-backed store, use the directory prefix "`memory:`" and pick a name for the database to address it, e.g. “memory:myApp”. Apart from the special prefix, it's using the same "directory" option call:
+You can use ObjectBox also for non-persistent in-memory databases. To create a memory-backed store, use the directory prefix "`memory:`" and pick a name for the database to address it, e.g. “memory:myApp”. Apart from the special prefix, it's using the same "directory" option call:
@@ -355,5 +355,3 @@ Once you created the store, it gives you access to several ways to interact with
* [**Box API**](getting-started#working-with-object-boxes)**:** easy to use object-based API with implicit transactions. It is used in combination with the ObjectBox Generator, which generates the source code for data and Box classes. Check the getting started track for examples.
* [**Query API**](queries)**:** In combination with the Box API, you can build powerful queries using the query builder. Once built, query instances can be executed multiple times to retrieve data.
* [**Explicit Transactions**](transactions)**:** Often it's a good idea to group several operations into a single "batch", or more precisely, one transaction. Batched transactions are not only faster, but also consider safe state changes for your data.
-
-
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index ffe5300..6e1845d 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -50,7 +50,7 @@ const config: Config = {
routeBasePath: '/', // serve docs at /
sidebarPath: require.resolve('./sidebars.ts'),
editUrl:
- 'https://github.com/objectbox/objectbox-c-cpp-docs/blob/main/website/',
+ 'https://github.com/objectbox/objectbox-c-cpp-docs/blob/main/',
},
// If you don't need a blog, you can disable it:
blog: false,
@@ -93,7 +93,7 @@ const config: Config = {
//target: '_self', // ← This prevents external link behavior
},
{
- href: 'https://docs.objectbox.io/sync',
+ href: 'https://sync.objectbox.io',
label: 'Data Sync Docs',
position: 'right',
// target: '_self', // ← This prevents external link behavior
@@ -105,12 +105,18 @@ const config: Config = {
//target: '_self', // ← This prevents external link behavior
},
{
- href: 'https://twitter.com/objectbox_io',
+ href: 'https://x.com/objectbox_io',
label: 'Follow us',
position: 'right',
//target: '_self', // ← This prevents external link behavior
},
-
+ {
+ href: 'https://github.com/objectbox/objectbox-c-cpp-docs',
+ label: 'GitHub (Docs)',
+ position: 'right',
+ //target: '_self', // ← This prevents external link behavior
+ },
+
],
},
copyright: `© ${new Date().getFullYear()} ObjectBox`,
diff --git a/src/css/custom.css b/src/css/custom.css
index e8d3096..91c3948 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -292,7 +292,7 @@ div[role="tabpanel"] {
border-top: 0px solid var(--objectbox-grey-border) !important;
border-bottom: 1px solid var(--objectbox-grey-border) !important;
border-radius: 0 0 6px 6px !important;
- /background-color: rgb(255, 255, 255) !important;
+ /*background-color: rgb(255, 255, 255) !important;*/
/*background-color: rgb(152, 231, 27) !important; /* DEBUG */
padding: 20px !important;
/*margin: 0 !important; we also tried margin-top, but this did not influence the missing line between the tab header and the actual tab*/
@@ -917,4 +917,3 @@ div[class*="docPage"] {
/* outline: 30px solid rgb(255, 98, 0) !important;*/
}
}
-