diff --git a/blog/2022-1-28-ivorysql-arrived/index.md b/blog/2022-1-28-ivorysql-arrived/index.md index 027cab4..a0bc46a 100644 --- a/blog/2022-1-28-ivorysql-arrived/index.md +++ b/blog/2022-1-28-ivorysql-arrived/index.md @@ -3,6 +3,8 @@ slug: IvorySQL title: IvorySQL Has Arrived authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-has-arrived.png tags: [IvorySQL, Welcome, Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/blog/2022-3-25-postgres-world-webinar/index.md b/blog/2022-3-25-postgres-world-webinar/index.md index 5f5fd69..579cb2c 100644 --- a/blog/2022-3-25-postgres-world-webinar/index.md +++ b/blog/2022-3-25-postgres-world-webinar/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Webinar +slug: ivorysql-pg-webinar title: PostgresWorld Webinar | A Deep Dive Into IvorySQL authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PostgresWorld-Webinar.png tags: [IvorySQL, PostgresWorld, Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/blog/2022-4-18-sv2022/index.md b/blog/2022-4-18-sv2022/index.md index 1176e49..89085b2 100644 --- a/blog/2022-4-18-sv2022/index.md +++ b/blog/2022-4-18-sv2022/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-sv +slug: ivorysql-pgconf-sv-2022 title: IvorySQL at PostgresConf SV 2022 authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PostgresConf-SV-2022.png tags: [IvorySQL,PostgresConf SV , Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/blog/2022-5-17-linux/index.md b/blog/2022-5-17-linux/index.md index 5ee8a9b..a3a7fca 100644 --- a/blog/2022-5-17-linux/index.md +++ b/blog/2022-5-17-linux/index.md @@ -1,12 +1,13 @@ --- -slug: IvorySQL-Linux +slug: ivorysql-linux title: Compiling and Installing IvorySQL on Linux authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Compiling-and-Installing-IvorySQL-on-Linux.png tags: [IvorySQL, Welcome,Linux, PostgreSQL, Join Us] --- - # Compiling and Installing IvorySQL on Linux IvorySQL can be built on Linux, OSX, Unix, and Windows platforms, and is basically the same as PostgreSQL compiled and installed. This article describes the steps for compiling source code on a Linux-based system. diff --git a/blog/2022-5-27-packages/index.md b/blog/2022-5-27-packages/index.md index 3c2ec28..bd1705a 100644 --- a/blog/2022-5-27-packages/index.md +++ b/blog/2022-5-27-packages/index.md @@ -1,7 +1,9 @@ --- -slug: IvorySQL-Packages +slug: ivorysql-packages title: Introduction to IvorySQL Packages authors: [Asif] +category: IvorySQL +image: img/blog/IvorySQL-packages.png tags: [IvorySQL, Oracle, Packages, PostgreSQL, Join Us] --- diff --git a/blog/2022-5-6-yum/index.md b/blog/2022-5-6-yum/index.md index 4f27ca4..48275fd 100644 --- a/blog/2022-5-6-yum/index.md +++ b/blog/2022-5-6-yum/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-YUM +slug: ivorysql-yum title: Install software through the YUM source authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Install-software-through-the-YUM-source.png tags: [IvorySQL, Welcome, YUM, PostgreSQL, Join Us] --- diff --git a/blog/2022-6-2-PGCon2022/index.md b/blog/2022-6-2-PGCon2022/index.md index 0709c03..24e0bef 100644 --- a/blog/2022-6-2-PGCon2022/index.md +++ b/blog/2022-6-2-PGCon2022/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-PGCon2022 +slug: ivorysql-pgcon2022 title: PGCon2022 meeting review | Technical explanation of IvorySQL project authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PGCon2022-meeting-review.png tags: [IvorySQL,PGCon2022, PostgreSQL, Join Us] --- diff --git a/blog/2024-11-27-ivorysql-high-availability/index.md b/blog/2024-11-27-ivorysql-high-availability/index.md index 65416ab..a65b5fd 100644 --- a/blog/2024-11-27-ivorysql-high-availability/index.md +++ b/blog/2024-11-27-ivorysql-high-availability/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-High Availability +slug: ivorysql-ha-zero-loss-logical-replication-slots title: IvorySQL High Availability—Zero Loss Logical Replication Slots authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-High-Availability.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, High Availability] --- diff --git a/blog/2024-12-05-ivorysql-external-storage-manager/index.md b/blog/2024-12-05-ivorysql-external-storage-manager/index.md index e5ac6b3..cba35e1 100644 --- a/blog/2024-12-05-ivorysql-external-storage-manager/index.md +++ b/blog/2024-12-05-ivorysql-external-storage-manager/index.md @@ -3,6 +3,8 @@ slug: ivorysql-external-storage-manager title: External Storage Manager in IvorySQL Database authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/External-Storage-Manager.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL] --- In general, a database storage system is divided into two parts: memory and external storage. Except for in-memory databases, data is eventually persisted, which means that it needs to be written from the memory buffer to the external storage. This article will discuss the external storage manager in IvorySQL. diff --git a/blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md b/blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md index 8175a6e..fce0df8 100644 --- a/blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md +++ b/blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md @@ -3,6 +3,8 @@ slug: ivorysql-upgrade-3.x-to-4.0 title: IvorySQL Upgrade Guide-A Smooth Transition from 3.x to 4.0 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/ivorysql-upgrade.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL] --- Recently, IvorySQL 4.0 was released, offering full support for PostgreSQL 17 and enhanced compatibility with Oracle. diff --git a/blog/2025-01-09-ivorysql-4.0-package/index.md b/blog/2025-01-09-ivorysql-4.0-package/index.md index 249b05b..0354743 100644 --- a/blog/2025-01-09-ivorysql-4.0-package/index.md +++ b/blog/2025-01-09-ivorysql-4.0-package/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Oracle Package +slug: ivorysql-oracle-package-compatibility title: IvorySQL 4.0-Design Insights into Oracle Package Compatibility Feature authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Oracle-Package-Compatibility.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Oracle Package, Package] --- diff --git a/blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md b/blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md index d1fe950..4bca5ed 100644 --- a/blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md +++ b/blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Logical Replication Slot +slug: ivorysql-logical-replication-slot title: Analysis of the Logical Replication Slot Synchronization Feature in IvorySQL v4 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Logical-Replication-Slot.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Logical Replication Slot] --- diff --git a/blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md b/blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md index 3aaa19e..4132408 100644 --- a/blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md +++ b/blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Incremental Backup and Merge Features +slug: ivorysql-incremental-backup-and-merge-features title: IvorySQL Incremental Backup and Merge Features authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Incremental-Backup.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Incremental Backup] --- diff --git a/blog/2025-05-27-ivorysql-wasm/index.md b/blog/2025-05-27-ivorysql-wasm/index.md index 11502cd..e0eba42 100644 --- a/blog/2025-05-27-ivorysql-wasm/index.md +++ b/blog/2025-05-27-ivorysql-wasm/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-WASM +slug: ivorysql-wasm title: IvorySQL-WASM, An Exploration Journey of Installation-Free Databases authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/ivorysql-wasm.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, WasmEdge] --- diff --git a/blog/2025-1-13-ivorysql-4.0-invisible-column/index.md b/blog/2025-1-13-ivorysql-4.0-invisible-column/index.md index 6b9b41e..a5bd88d 100644 --- a/blog/2025-1-13-ivorysql-4.0-invisible-column/index.md +++ b/blog/2025-1-13-ivorysql-4.0-invisible-column/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Invisible Column +slug: ivorysql-invisible-column title: Analysis of the Invisible Column Feature in IvorySQL 4.0 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Invisible-Column.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Invisible Column] --- diff --git a/docusaurus.config.js b/docusaurus.config.js index db6ca29..f7394e5 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,22 +1,17 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - const lightCodeTheme = require('prism-react-renderer/themes/github'); const darkCodeTheme = require('prism-react-renderer/themes/dracula'); /** @type {import('@docusaurus/types').Config} */ - const config = { title: 'IvorySQL', tagline: 'Open Source Oracle compatible PostgreSQL', url: 'https://ivorySQL.org', baseUrl: '/', - onBrokenLinks: 'warn', // 'throw', + onBrokenLinks: 'warn', favicon: 'img/favicon.ico', - organizationName: 'IvorySQL', // Usually your GitHub org/user name. - projectName: 'ivory-www', // Usually your repo name. + organizationName: 'IvorySQL', + projectName: 'ivory-www', customFields: { - // Put your custom environment here botId: process.env.BOT_ID, patToken: process.env.TOKEN }, @@ -25,11 +20,9 @@ const config = { onBrokenMarkdownLinks: 'warn', } }, - themes: [ [ '@easyops-cn/docusaurus-search-local', - /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */ ({ hashed: true, language: ['en', 'zh'], @@ -49,35 +42,31 @@ const config = { [ 'docusaurus-plugin-dotenv', { - path: "./.env", // The path to your environment variables. - safe: false, // If false ignore safe-mode, if true load './.env.example', if a string load that file as the sample - systemvars: true, // Set to true if you would rather load all system variables as well (useful for CI purposes) - silent: false, // If true, all warnings will be suppressed - expand: false, // Allows your variables to be "expanded" for reusability within your .env file - defaults: false, // Adds support for dotenv-defaults. If set to true, uses ./.env.defaults + path: "./.env", + safe: false, + systemvars: true, + silent: false, + expand: false, + defaults: false, } ] ], - presets: [ [ '@docusaurus/preset-classic', - /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { versions: { current: {label: 'Devel',}, }, sidebarPath: require.resolve('./sidebars.js'), -// editUrl: 'https://github.com/IvorySQL/Ivory-www/tree/main/docs', editCurrentVersion: false, }, blog: { - showReadingTime: true, - blogSidebarTitle: 'IvorySQL Blogs', + showReadingTime: false, + blogSidebarCount: 0, + postsPerPage: 100, onUntruncatedBlogPosts: 'warn', - // Please change this to your repo. -// editUrl: 'https://github.com/IvorySQL/Ivory-www/tree/main/blog/', }, theme: { customCss: require.resolve('./src/css/custom.css'), @@ -90,18 +79,14 @@ const config = { locales: ['en', 'zh-CN'], }, themeConfig: - - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ navbar: { style: 'dark', - title: 'IvorySQL', logo: { alt: 'IvorySQL Logo', src: 'img/ivory.png', }, - items: [ { to: '/blog', @@ -170,8 +155,6 @@ const config = { href: 'https://docs.IvorySQL.org', position: 'left' }, - - //Right Side Items { label: 'Community', to: '/community-page', @@ -184,7 +167,6 @@ const config = { items: [ { label: 'Roadmap', - //to: '/developers-page', to: '/roadmap-page', }, { @@ -273,8 +255,7 @@ const config = { theme: lightCodeTheme, darkTheme: darkCodeTheme, }, - }), }; -module.exports = config; +module.exports = config; \ No newline at end of file diff --git a/i18n/en/docusaurus-theme-classic/code.json b/i18n/en/docusaurus-theme-classic/code.json new file mode 100644 index 0000000..15d0b3f --- /dev/null +++ b/i18n/en/docusaurus-theme-classic/code.json @@ -0,0 +1,7 @@ +{ + "theme.blog.nav.all": "All Blogs", + "theme.blog.paginator.prev": "Previous", + "theme.blog.paginator.next": "Next", + "theme.blog.post.paginator.newerPost": "Newer Post", + "theme.blog.post.paginator.olderPost": "Older Post" +} \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-1-28-ivorysql-arrived/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-1-28-ivorysql-arrived/index.md index 9029ef1..ac78680 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-1-28-ivorysql-arrived/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-1-28-ivorysql-arrived/index.md @@ -1,8 +1,10 @@ --- slug: IvorySQL -title: IvorySQL已经来了 +title: IvorySQL 已经来了 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-has-arrived.png tags: [IvorySQL, Welcome, Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-3-25-postgres-world-webinar/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-3-25-postgres-world-webinar/index.md index df356c3..c89868f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-3-25-postgres-world-webinar/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-3-25-postgres-world-webinar/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Webinar +slug: ivorysql-pg-webinar title: PostgresWorld网络研讨会|IvorySQL的深度探讨 authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PostgresWorld-Webinar.png tags: [IvorySQL, PostgresWorld, Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-4-18-sv2022/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-4-18-sv2022/index.md index 7172970..5f15d32 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-4-18-sv2022/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-4-18-sv2022/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-sv +slug: ivorysql-pgconf-sv-2022 title: IvorySQL亮相于PostgresConf SV 2022 硅谷Postgres大会 authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PostgresConf-SV-2022.png tags: [IvorySQL,PostgresConf SV , Database, Oracle Compatible, PostgreSQL, Join Us] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-17-linux/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-17-linux/index.md index 4112fa3..ea80c78 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-17-linux/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-17-linux/index.md @@ -1,27 +1,18 @@ --- -slug: IvorySQL-Linux +slug: ivorysql-linux title: IvorySQL--Linux环境源码编译安装 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Compiling-and-Installing-IvorySQL-on-Linux.png tags: [IvorySQL, Linux,PostgreSQL,Join Us] --- - - - # Linux环境源码编译安装IvorySQL - - IvorySQL可以在Linux, OSX, Unix和Windows平台上构建,与PostgreSQL的编译安装基本上是一样的。本文对基于Linux的系统上编译源代码的步骤进行说明。 - - - - ## 一、准备工作 - - ### 1.1 获取 IvorySQL 源码 Windows或Linux,只要安装了git,都可以使用git下载: @@ -30,7 +21,6 @@ git clone https://github.com/IvorySQL/IvorySQL.git git clone https://gitee.com/IvorySQL/IvorySQL.git - 或者直接去github或gitee下载都可以: @@ -40,7 +30,6 @@ https://gitee.com/IvorySQL/IvorySQL github会有点慢,能用则用,不行就改用gitee。 - 截至本稿,IvorySQL的最新发布版本是1.2,于2022年2月28日发布。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-27-packages/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-27-packages/index.md index 6066c98..9766dbd 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-27-packages/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-27-packages/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Packages +slug: ivorysql-packages title: IvorySQL 功能点介绍--Package(包) authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-packages.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Oracle Package] --- # 概述 diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-6-yum/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-6-yum/index.md index 79429d9..a929bc9 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-6-yum/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-5-6-yum/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-YUM -title: IvorySQL--YUM源安装 +slug: ivorysql-yum +title: IvorySQL--YUM 源安装 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Install-software-through-the-YUM-source.png tags: [IvorySQL, YUM, PostgreSQL, Join Us] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-6-2-PGCon2022/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-6-2-PGCon2022/index.md index fdd2e5f..30a4f90 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-6-2-PGCon2022/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-6-2-PGCon2022/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-PGCon2022 +slug: ivorysql-pgcon2022 title: PGCon2022 会议回顾|IvorySQL 项目的技术讲解 authors: [official] authorTwitter: IvorySql +category: PostgreSQL +image: img/blog/PGCon2022-meeting-review.png tags: [IvorySQL, PGCon2022 , Database, Oracle Compatible, PostgreSQL] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2024-11-27-ivorysql-high-availability/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-11-27-ivorysql-high-availability/index.md index b6ec158..db8af85 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2024-11-27-ivorysql-high-availability/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-11-27-ivorysql-high-availability/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-High Availability +slug: ivorysql-ha-zero-loss-logical-replication-slots title: IvorySQL 高可用:逻辑复制槽零丢失 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-High-Availability.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, High Availability] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2024-12-05-ivorysql-external-storage-manager/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-12-05-ivorysql-external-storage-manager/index.md index 20f4b00..dfbc492 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2024-12-05-ivorysql-external-storage-manager/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2024-12-05-ivorysql-external-storage-manager/index.md @@ -3,6 +3,8 @@ slug: ivorysql-external-storage-manager title: IvorySQL 数据库中的外部存储管理器 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/External-Storage-Manager.png tags: [IvorySQL, Database, Storage Manager, PostgreSQL] --- 一般来说,数据库的存储系统分为内存和外存两个部分,而除了内存数据库之外,数据最终都是持久化存储的,持久化就要将数据从内存 buffer 落盘到外存,因此今天我们来聊聊 IvorySQL 中的外部存储管理器。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md index d9f0701..69c718f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-02-ivorysql-upgrade-3.x-to-4.0/index.md @@ -3,6 +3,8 @@ slug: ivorysql-upgrade-3.x-to-4.0 title: IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/ivorysql-upgrade.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL] --- 日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-09-ivorysql-4.0-package/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-09-ivorysql-4.0-package/index.md index b29ced9..a3454c0 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-09-ivorysql-4.0-package/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-01-09-ivorysql-4.0-package/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Oracle Package +slug: ivorysql-oracle-package-compatibility title: IvorySQL 4.0 之兼容 Oracle 包功能设计思路解读 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/Oracle-Package-Compatibility.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Oracle Package, Package, 包功能] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md index 0231194..b137f00 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-05-ivorysql-v4-logical-replication-slot/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Logical Replication Slot +slug: ivorysql-logical-replication-slot title: IvorySQL v4 逻辑复制槽同步功能解析 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Logical-Replication-Slot.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Logical Replication Slot, 逻辑复制槽] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md index eed2e0a..2f9cb79 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-03-20-ivorySQL-incremental-backup-and-merge-features/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Incremental Backup and Merge Features +slug: ivorysql-incremental-backup-and-merge-features title: IvorySQL 增量备份与合并增量备份功能解析 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Incremental-Backup.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Incremental Backup] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-05-27-ivorysql-wasm/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-05-27-ivorysql-wasm/index.md index 97592d9..e9060f7 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-05-27-ivorysql-wasm/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-05-27-ivorysql-wasm/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-WASM +slug: ivorysql-wasm title: IvorySQL-WASM:免安装的数据库探索之旅 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/ivorysql-wasm.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, WasmEdge] --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-1-13-ivorysql-4.0-invisible-column/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-1-13-ivorysql-4.0-invisible-column/index.md index 3fddef1..0e3017c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2025-1-13-ivorysql-4.0-invisible-column/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2025-1-13-ivorysql-4.0-invisible-column/index.md @@ -1,8 +1,10 @@ --- -slug: IvorySQL-Invisible Column +slug: ivorysql-invisible-column title: IvorySQL 4.0 之 Invisible Column 功能解析 authors: [official] authorTwitter: IvorySql +category: IvorySQL +image: img/blog/IvorySQL-Invisible-Column.png tags: [IvorySQL, Database, Oracle Compatible, PostgreSQL, Invisible Column, 不可见列] --- diff --git a/src/css/custom.css b/src/css/custom.css index 1e58c21..08ea47c 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,41 +1,141 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #4e89e8; - - --ifm-color-primary-dark: #31343a; - --ifm-color-primary-darker: #333538; - --ifm-color-primary-darkest: #26292d; - --ifm-color-primary-light: #3b4047; - --ifm-color-primary-lighter: #3e434b; - --ifm-color-primary-lightest: #464b55; - --ifm-code-font-size: 110%; - --ifm-background-surface-color: #f4f4f5; - --ifm-link-color:rgb(110, 95, 197); - - /* - --ifm-font-color-base: hsl(263, 48%, 87%); -*/ -} - -.docusaurus-highlight-code-line { - background-color: rgba(0, 0, 0, 0.1); - display: block; - margin: 0 calc(-1 * var(--ifm-pre-padding)); - padding: 0 var(--ifm-pre-padding); -} - -html[data-theme='dark'] .docusaurus-highlight-code-line { - background-color: rgba(0, 0, 0, 0.3); - --ifm-background-surface-color: #4d4848; -} -.navbar .navbar__items { - flex: auto; - color: white; - border: white; +.blog-post-list-page main > .container > .row > .col[class*='col--'] { + max-width: 100% !important; + flex: 0 0 100% !important; +} + +.category-nav-container { + display: flex; + gap: 30px; + margin: 10px 0 40px 0; + border-bottom: 1px solid #ebedf0; + padding-bottom: 15px; +} + +.category-nav-link { + font-weight: bold; + font-size: 1.1rem; + color: #444; + text-decoration: none; +} + +.active-link { + color: var(--ifm-color-primary) !important; + border-bottom: 2px solid var(--ifm-color-primary); +} + +.custom-horizontal-card { + display: flex !important; + flex-direction: row !important; + background: #fff; + border: 1px solid #e5e7eb; + border-radius: 12px; + margin-bottom: 30px !important; + height: 220px; + overflow: hidden; + box-shadow: 0 4px 12px rgba(0,0,0,0.05); +} + +.card-left-img { + flex: 0 0 350px !important; + background: #f0f2f5; + border-right: 1px solid #eee; +} + +.card-left-img img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.card-right-content { + flex: 1; + padding: 24px 30px !important; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.post-item-title { + margin: 0 0 10px 0; + font-size: 1.5rem; +} + +.post-item-title a { + color: var(--ifm-color-primary); + text-decoration: none; +} + +.post-item-date { + color: #666; + font-size: 0.9rem; + margin-bottom: auto; +} + +.post-item-tags { + display: flex; + width: 100%; +} + +.tags-list { + display: flex; + flex-wrap: wrap; + gap: 8px 12px; +} + +.tag-pill-static { + display: inline-flex; + align-items: center; + background: #f4f4f5; + color: #606266; + padding: 2px 12px; + border-radius: 4px; + font-size: 0.8rem; + border: 1px solid #e9e9eb; + white-space: nowrap; +} + +.blog-pagination-wrapper { + display: flex; + justify-content: center; + margin: 50px 0; + width: 100%; +} + +.custom-pagination { + display: flex; + align-items: center; + gap: 15px; +} + +.pagination-number-list { + display: flex; + list-style: none; + padding: 0; + margin: 0; + gap: 8px; +} + +.pagination-nav-item, .pagination-number-item { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 8px 16px; + border: 1px solid #e5e7eb; + border-radius: 6px; + color: #444; + text-decoration: none !important; + font-size: 0.9rem; + background: #fff; +} + +.pagination-number-item.active { + background: var(--ifm-color-primary); + color: #fff; + border-color: var(--ifm-color-primary); +} + +.pagination-nav-item.disabled { + color: #ccc; + border-color: #f3f4f6; + background: #fafafa; } \ No newline at end of file diff --git a/src/theme/BlogListPage/index.js b/src/theme/BlogListPage/index.js new file mode 100644 index 0000000..d85a1f9 --- /dev/null +++ b/src/theme/BlogListPage/index.js @@ -0,0 +1,39 @@ +import React from 'react'; +import clsx from 'clsx'; +import BlogLayout from '@theme/BlogLayout'; +import BlogPostItems from '@theme/BlogPostItems'; +import Link from '@docusaurus/Link'; +import { useLocation } from '@docusaurus/router'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; + +export default function BlogListPage(props) { + const {items, sidebar} = props; + const {i18n} = useDocusaurusContext(); + const isEn = i18n.currentLocale === 'en'; + + const location = useLocation(); + const query = new URLSearchParams(location.search); + const currentCat = query.get('cat'); + + const filteredItems = currentCat + ? (items || []).filter(item => item.content.frontMatter.category === currentCat) + : (items || []); + + return ( + +
+ + {isEn ? 'All Blogs' : '所有博客'} + + + IvorySQL + + + PostgreSQL + +
+ + +
+ ); +} \ No newline at end of file diff --git a/src/theme/BlogPostItem/Footer/ReadMoreLink/index.js b/src/theme/BlogPostItem/Footer/ReadMoreLink/index.js new file mode 100644 index 0000000..c249575 --- /dev/null +++ b/src/theme/BlogPostItem/Footer/ReadMoreLink/index.js @@ -0,0 +1,32 @@ +import React from 'react'; +import Translate, {translate} from '@docusaurus/Translate'; +import Link from '@docusaurus/Link'; +function ReadMoreLabel() { + return ( + + + Read more + + + ); +} +export default function BlogPostItemFooterReadMoreLink(props) { + const {blogPostTitle, ...linkProps} = props; + return ( + + + + ); +} diff --git a/src/theme/BlogPostItem/Footer/index.js b/src/theme/BlogPostItem/Footer/index.js new file mode 100644 index 0000000..277603f --- /dev/null +++ b/src/theme/BlogPostItem/Footer/index.js @@ -0,0 +1,33 @@ +import React from 'react'; +import {useBlogPost} from '@docusaurus/plugin-content-blog/client'; +import EditThisPage from '@theme/EditThisPage'; + +export default function BlogPostItemFooter() { + const {metadata, isBlogPostPage} = useBlogPost(); + const {tags, editUrl} = metadata; + + if (!isBlogPostPage) { + return null; + } + + return ( + + ); +} \ No newline at end of file diff --git a/src/theme/BlogPostItem/index.js b/src/theme/BlogPostItem/index.js new file mode 100644 index 0000000..03c3667 --- /dev/null +++ b/src/theme/BlogPostItem/index.js @@ -0,0 +1,56 @@ +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import BlogPostItemContainer from '@theme/BlogPostItem/Container'; +import BlogPostItemHeader from '@theme/BlogPostItem/Header'; +import BlogPostItemContent from '@theme/BlogPostItem/Content'; +import BlogPostItemFooter from '@theme/BlogPostItem/Footer'; +import {useBlogPost} from '@docusaurus/plugin-content-blog/client'; + +export default function BlogPostItem(props) { + const {children, className} = props; + const {metadata, isBlogPostPage} = useBlogPost(); + const {permalink, title, date, tags, frontMatter} = metadata; + + const rawImage = frontMatter.image || frontMatter.cover; + const image = useBaseUrl(rawImage); + + if (isBlogPostPage) { + return ( + + + {children} + + + ); + } + + return ( + +
+ + {image ? ( + {title} + ) : ( +
IvorySQL
+ )} + +
+ +
+

+ {title} +

+
{date.split('T')[0]}
+
+
+ {tags.map((tag) => ( + {tag.label} + ))} +
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/theme/BlogPostPaginator/index.js b/src/theme/BlogPostPaginator/index.js new file mode 100644 index 0000000..dee1c10 --- /dev/null +++ b/src/theme/BlogPostPaginator/index.js @@ -0,0 +1,27 @@ +import React from 'react'; +import PaginatorNavLink from '@theme/PaginatorNavLink'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; + +export default function BlogPostPaginator(props) { + const {nextItem, prevItem} = props; + const {i18n} = useDocusaurusContext(); + const isEn = i18n.currentLocale === 'en'; + + return ( + + ); +} \ No newline at end of file diff --git a/static/img/blog/Compiling-and-Installing-IvorySQL-on-Linux.png b/static/img/blog/Compiling-and-Installing-IvorySQL-on-Linux.png new file mode 100644 index 0000000..957bca2 Binary files /dev/null and b/static/img/blog/Compiling-and-Installing-IvorySQL-on-Linux.png differ diff --git a/static/img/blog/External-Storage-Manager.png b/static/img/blog/External-Storage-Manager.png new file mode 100644 index 0000000..454640a Binary files /dev/null and b/static/img/blog/External-Storage-Manager.png differ diff --git a/static/img/blog/Install-software-through-the-YUM-source.png b/static/img/blog/Install-software-through-the-YUM-source.png new file mode 100644 index 0000000..b958df4 Binary files /dev/null and b/static/img/blog/Install-software-through-the-YUM-source.png differ diff --git a/static/img/blog/IvorySQL-High-Availability.png b/static/img/blog/IvorySQL-High-Availability.png new file mode 100644 index 0000000..2451d8e Binary files /dev/null and b/static/img/blog/IvorySQL-High-Availability.png differ diff --git a/static/img/blog/IvorySQL-Incremental-Backup.png b/static/img/blog/IvorySQL-Incremental-Backup.png new file mode 100644 index 0000000..929fe04 Binary files /dev/null and b/static/img/blog/IvorySQL-Incremental-Backup.png differ diff --git a/static/img/blog/IvorySQL-Invisible-Column.png b/static/img/blog/IvorySQL-Invisible-Column.png new file mode 100644 index 0000000..8a2cb0d Binary files /dev/null and b/static/img/blog/IvorySQL-Invisible-Column.png differ diff --git a/static/img/blog/IvorySQL-Logical-Replication-Slot.png b/static/img/blog/IvorySQL-Logical-Replication-Slot.png new file mode 100644 index 0000000..17baa17 Binary files /dev/null and b/static/img/blog/IvorySQL-Logical-Replication-Slot.png differ diff --git a/static/img/blog/IvorySQL-has-arrived.png b/static/img/blog/IvorySQL-has-arrived.png new file mode 100644 index 0000000..9c555a9 Binary files /dev/null and b/static/img/blog/IvorySQL-has-arrived.png differ diff --git a/static/img/blog/IvorySQL-packages.png b/static/img/blog/IvorySQL-packages.png new file mode 100644 index 0000000..4a17b25 Binary files /dev/null and b/static/img/blog/IvorySQL-packages.png differ diff --git a/static/img/blog/Oracle-Package-Compatibility.png b/static/img/blog/Oracle-Package-Compatibility.png new file mode 100644 index 0000000..ae69b92 Binary files /dev/null and b/static/img/blog/Oracle-Package-Compatibility.png differ diff --git a/static/img/blog/PGCon2022-meeting-review.png b/static/img/blog/PGCon2022-meeting-review.png new file mode 100644 index 0000000..5dad6c8 Binary files /dev/null and b/static/img/blog/PGCon2022-meeting-review.png differ diff --git a/static/img/blog/PostgresConf-SV-2022.png b/static/img/blog/PostgresConf-SV-2022.png new file mode 100644 index 0000000..30be882 Binary files /dev/null and b/static/img/blog/PostgresConf-SV-2022.png differ diff --git a/static/img/blog/PostgresWorld-Webinar.png b/static/img/blog/PostgresWorld-Webinar.png new file mode 100644 index 0000000..31e202b Binary files /dev/null and b/static/img/blog/PostgresWorld-Webinar.png differ diff --git a/static/img/blog/ivorysql-upgrade.png b/static/img/blog/ivorysql-upgrade.png new file mode 100644 index 0000000..304e6ba Binary files /dev/null and b/static/img/blog/ivorysql-upgrade.png differ diff --git a/static/img/blog/ivorysql-wasm.png b/static/img/blog/ivorysql-wasm.png new file mode 100644 index 0000000..8db66b5 Binary files /dev/null and b/static/img/blog/ivorysql-wasm.png differ