Merge branch 'main' of https://gitbox.apache.org/repos/asf/openoffice-project into main
diff --git a/.gitignore b/.gitignore
index 18175d7..d9f7c7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,6 @@
 .DS_Store
 .history
 .idea
-*~
\ No newline at end of file
+*~
+pelican.auto.py
+site-generated
diff --git a/content/downloads.md b/content/downloads.md
index 3f7a653..212d0b6 100644
--- a/content/downloads.md
+++ b/content/downloads.md
@@ -7,50 +7,50 @@
 
 ## List of the current downloads ##
 
-***Current Version 4.1.10 (released on May 04, 2021)***
+***Current Version 4.1.11 (released on October 06, 2021)***
 
  * **Source**:
-    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.zip](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.sha512)]
-    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.sha512)]
-    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.sha512)]
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.zip](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.zip.sha512)]
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.gz.sha512)]
+    * [apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/source/apache-openoffice-4.1.11-bdb20b2a64-src.tar.bz2.sha512)]
 
  * **Binaries**:
     * [Downloads](https://www.openoffice.org/download/index.html)
 
  * **Software Development Kit (SDK)**:
-    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.sha512)]
-    * [Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe)
-      [[asc](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.asc)]
-      [[sha256](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.sha256)]
-      [[sha512](https://downloads.apache.org/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_MacOS_x86-64_install_en-US.dmg.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe)
+      [[asc](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.asc)]
+      [[sha256](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha256)]
+      [[sha512](https://downloads.apache.org/openoffice/4.1.11/binaries/SDK/Apache_OpenOffice-SDK_4.1.11_Win_x86_install_en-US.exe.sha512)]
 
 **Note**
 All downloads can be verified using the Apache OpenOffice code signing [KEYS](https://downloads.apache.org/openoffice/KEYS).<br>
@@ -62,6 +62,51 @@
 
 ## Release Archives ##
 
+***Apache OpenOffice 4.1.10 (released on May 04, 2021)***
+
+ * **Source**:
+    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.zip](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.zip.sha512)]
+    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.gz.sha512)]
+    * [apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/source/apache-openoffice-4.1.10-b1cdbd2c1b-src.tar.bz2.sha512)]
+
+ * **Binaries**:
+    * [Downloads](https://www.openoffice.org/download/index.html)
+
+ * **Software Development Kit (SDK)**:
+    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86-64_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-deb_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Linux_x86_install-rpm_en-US.tar.gz.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_MacOS_x86-64_install_en-US.dmg.sha512)]
+    * [Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe)
+      [[asc](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.asc)]
+      [[sha256](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.sha256)]
+      [[sha512](https://archive.apache.org/dist/openoffice/4.1.10/binaries/SDK/Apache_OpenOffice-SDK_4.1.10_Win_x86_install_en-US.exe.sha512)]
+
 ***Apache OpenOffice 4.1.9 (released on February 07, 2021)***
 
  * **Source**:
diff --git a/content/index.md b/content/index.md
index 7df1fe8..3012e33 100644
--- a/content/index.md
+++ b/content/index.md
@@ -16,6 +16,12 @@
 
 ## Announcements
 
+*2021-10-06 -- [Apache OpenOffice][1] 4.1.11 is released!*
+
+- [Download Source and SDK](/downloads.html)
+- [Download Binaries](https://www.openoffice.org/download/)
+- [Release Notes](https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.11+Release+Notes)
+
 *2021-05-04 -- [Apache OpenOffice][1] 4.1.10 is released!*
 
 - [Download Source and SDK](/downloads.html)
diff --git a/content/orientation/decision-making.md b/content/orientation/decision-making.md
index 435437b..917b616 100644
--- a/content/orientation/decision-making.md
+++ b/content/orientation/decision-making.md
@@ -59,7 +59,7 @@
 
    2. In most cases proposals are decided by consensus, based on community discussions. Only in rare cases, and in a small number of pre-defined administrative questions, do we resort to a formal counting of votes. The places where we require voting are: voting to release, voting in a new Committer or PMC Member, Voting in a new PMC Chair. That's it. Generally speaking, voting on any other topic is avoided in favor of consensus building. With voting there are winners and losers. With consensus everyone wins.
 
-   3. Another aspect of decision making in an Apache project is the "veto". Every Committer has the ability to "veto" a change, for technical reasons, provided he explains the technical reasons for the veto, describes an alternative approach, and offers to help implement the alternative approach. Vetos are quite rare.
+   3. Another aspect of decision making in an Apache project is the "veto". Every Committer has the ability to "veto" a change, for technical reasons, provided they explain the technical reasons for the veto, describes an alternative approach, and offers to help implement the alternative approach. Vetos are quite rare.
 
    4. There is one disorder of community decision making that is common enough to warrant a colorful name: [bikeshedding](http://bikeshed.com/). Follow the link and read more about this topic.
 
diff --git a/content/orientation/intro-doc.md b/content/orientation/intro-doc.md
index b6f14e3..836d094 100644
--- a/content/orientation/intro-doc.md
+++ b/content/orientation/intro-doc.md
@@ -68,7 +68,7 @@
 
 1. Subscribe to our Documentation mailing list by sending an email to [doc-subscribe@openoffice.apache.org](mailto:doc-subscribe@openoffice.apache.org).
 1. Sign up for an account on our MWiki by sending an e-mail with your preferred user name and e-mail address to the [Documentation mailing list](mailto:doc@openoffice.apache.org?subject=Requesting%20MWiki%20Account)
-1. Sign up for an account on [our CWiki](https://cwiki.apache.org/confluence/display/OOOUSERS/Wiki+Home) (Why do we have two wikis? It is a long story...)**Note:** **After creation the account must be whitelisted by sending a request with the account name to the [Documentation mailing list](mailto:doc@openoffice.apache.org?subject=Whitelist%20CWiki%20Account)**
+1. Sign up for an account on [our CWiki](https://cwiki.apache.org/confluence/display/OOOUSERS/Wiki+Home) (Why do we have two wikis? It is a long story...)**Note:** **After creation the account must be allowed by sending a request with the account name to the [Documentation mailing list](mailto:doc@openoffice.apache.org?subject=Allow%20CWiki%20Account)**
 1. Add your name to our [Directory of Volunteers](https://cwiki.apache.org/confluence/display/OOOUSERS/Directory+of+Volunteers) and
 [Documentation Volunteers](https://cwiki.apache.org/confluence/display/OOOUSERS/Documentation+Volunteers) pages.
 1. Send an email to the [Documentation mailing list](mailto:doc@openoffice.apache.org?subject=New%20Doc%20Volunteer) and introduce yourself.
diff --git a/content/orientation/intro-qa.md b/content/orientation/intro-qa.md
index 968bcb2..53ec3e1 100644
--- a/content/orientation/intro-qa.md
+++ b/content/orientation/intro-qa.md
@@ -174,7 +174,7 @@
 
 ## Easy QA Task: Test Case Authoring
 
-This is a more advanced topic, but after mastery of the above two steps, and learning to "think like a bug", you will be ready for this.
+This is a more advanced topic, but with the above two steps, and learning to "think like a bug", you will be ready for this.
 
 After some practice on test case execution, now you can start writing new test cases.
 
diff --git a/content/source.md b/content/source.md
index a864134..dec2673 100644
--- a/content/source.md
+++ b/content/source.md
@@ -32,7 +32,7 @@
 
 ### Source archive of the latest release
 
-An archive of the source for the latest release can be obtainted from the Apache Software Foundation repository:
+An archive of the source for the latest release can be obtained from the Apache Software Foundation repository:
 [https://archive.apache.org/dist/openoffice](https://archive.apache.org/dist/openoffice/)
 
 
@@ -62,7 +62,7 @@
 Install the RPM pack with --prefix="some new AOO directory" option.
 * Windows: Use the custom install option, and choose a new directory location for the
 AOO developer install.
-* Mac: create a new folder for AOO developer install. Download the ".dmg" file there, and install
+* Mac: Create a new folder for AOO developer install. Download the ".dmg" file there, and install
 to the new directory.
 
 
diff --git a/pelicanconf.py b/pelicanconf.py
deleted file mode 100644
index 695d6d5..0000000
--- a/pelicanconf.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*- #
-
-from __future__ import unicode_literals
-from datetime import date
-
-import sys
-import os
-
-AUTHOR = u'OpenOffice Community'
-SITENAME = 'Apache OpenOffice'
-SITEURL = 'https://openoffice.apache.org/'
-SITEDOMAIN = 'openoffice.apache.org'
-SITEDESC = 'The official developer website of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base.'
-SITEKEYS = 'OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Developer, Project, Website, Official, Writer, Calc, Impress, Draw, Base, ODF, Open Document Format'
-SITELOGO = 'https://openoffice.apache.org/images/AOO4_website_logo.png'
-CURRENTYEAR = date.today().year
-
-PATH = 'content'
-
-TIMEZONE = 'UTC'
-
-DEFAULT_DATE = 'fs'
-DEFAULT_LANG = u'en'
-
-# Save pages using full directory preservation
-PAGE_PATHS = [ '.' ]
-STATIC_PATHS = [ '.' ]
-PATH_METADATA= '(?P<path_no_ext>.*)\..*'
-PAGE_SAVE_AS= '{path_no_ext}.html'
-PAGE_URL= '{path_no_ext}.html'
-PAGE_TRANSLATION_ID = None
-# SLUGIFY_SOURCE = 'basename'
-# PAGE_SAVE_AS = '{slug}.html'
-
-# We don't use articles, but we don't want pelican to think
-# that content/ contains articles.
-ARTICLE_PATHS = [ 'articles' ]
-
-# Disable these pages
-ARCHIVES_SAVE_AS = ''
-ARTICLE_SAVE_AS = ''
-AUTHORS_SAVE_AS = ''
-CATEGORIES_SAVE_AS = ''
-INDEX_SAVE_AS = ''
-TAGS_SAVE_AS = ''
-
-# Feed generation is usually not desired when developing
-FEED_ALL_ATOM = None
-CATEGORY_FEED_ATOM = None
-TRANSLATION_FEED_ATOM = None
-AUTHOR_FEED_ATOM = None
-AUTHOR_FEED_RSS = None
-
-# Configure the asfgenid plugin                                                                                                                                                                                    
-ASF_GENID = {
-    'unsafe_tags': True,
-    'metadata': False,
-    'elements': True,
-    'headings': True,
-    'headings_re': '^h[1-4]',
-    'permalinks': True,
-    'toc': True,
-    'toc_headers': '^h[1-6]',
-    'tables': True,
-    'debug': False
-}
-
-# TOC Generator
-THEME = 'theme/openoffice'
-PLUGIN_PATHS = ['./theme/plugins']
-PLUGINS = ['asfgenid', 'pelican-gfm']
-
-# Unused links
-LINKS = ( )
-SOCIAL = ( )
-
-# Blogroll
-#LINKS = (('Pelican', 'https://getpelican.com/'),
-#         ('Python.org', 'https://www.python.org/'),
-#         ('Jinja2', 'https://palletsprojects.com/p/jinja/'),
-#         ('You can modify those links in your config file', '#'),)
-
-# Social widget
-#SOCIAL = (('You can add links in your config file', '#'),
-#          ('Another social link', '#'),)
-
-DEFAULT_PAGINATION = False
-
-# Uncomment following line if you want document-relative URLs when developing
-#RELATIVE_URLS = True
-
diff --git a/theme/plugins/asfgenid.py b/theme/plugins/asfgenid.py
deleted file mode 100644
index 35c776e..0000000
--- a/theme/plugins/asfgenid.py
+++ /dev/null
@@ -1,389 +0,0 @@
-'''
-asfgenid
-===================================
-Generates HeadingIDs, ElementID, and PermaLinks
-First find all specified IDs and classes. Assure unique ID and permalink
-Next find all headings missing IDs. Assure unique ID and permalink
-Generates a Table of Content
-'''
-
-# from __future__ import unicode_literals
-
-import sys
-import traceback
-import re
-import unicodedata
-
-from bs4 import BeautifulSoup, Comment
-
-import pelican.contents
-import pelican.plugins.signals
-
-'''
-Based on
-https://github.com/waylan/Python-Markdown/blob/master/markdown/extensions/headerid.py
-Which is BSD licensed, but is very much rewritten.
-'''
-
-ASF_GENID = {
-    'unsafe_tags': True,        # fix script, style, and iframe html that gfm filters as unsafe
-    'metadata': True,           # {{ metadata }} inclusion of data in the html.
-    'elements': True,	        # {#id} and {.class} annotations.
-    'headings': True,	        # add slugified id to headings missing id. Can be overridden by page metadata.
-    'headings_re': r'^h[1-6]',  # regex for which headings to check.
-    'permalinks': True,	        # add permalinks to elements and headings when id is added.
-    'toc': True,  	        # check for [TOC] and add Table of Content if present.
-    'toc_headers': r'h[1-6]',   # regex for which headings to include in the [TOC]
-    'tables': True,	        # add class="table" for tables missing class.
-    'debug': False
-}
-
-# Fixup tuples for HTML that GFM makes into text.
-FIXUP_UNSAFE = [
-    (re.compile(r'&lt;script'), '<script'),
-    (re.compile(r'&lt;/script'), '</script'),
-    (re.compile(r'&lt;style'), '<style'),
-    (re.compile(r'&lt;/style'), '</style'),
-    (re.compile(r'&lt;iframe'), '<iframe'),
-    (re.compile(r'&lt;/iframe'), '</iframe')
-]
-
-# Find {{ metadata }} inclusions
-METADATA_RE = re.compile(r'{{\s*(?P<meta>[-_:a-zA-Z0-9]+)\s*}}')
-
-# Find {#id} or {.class} elementid annotations
-ELEMENTID_RE = re.compile(r'(?:[ \t]*[{\[][ \t]*(?P<type>[#.])(?P<id>[-._:a-zA-Z0-9 ]+)[}\]])(\n|$)')
-
-# ID duplicates match
-IDCOUNT_RE = re.compile(r'^(.*)_([0-9]+)$')
-
-# For permalinks
-LINK_CHAR = '¶'
-
-# strip permalink chars from headings for ToC
-PARA_MAP = {
-    ord(LINK_CHAR): None
-}
-
-# Find table tags - to check for ones without class attribute.
-TABLE_RE = re.compile(r'^table')
-
-
-# An item in a Table of Contents - from toc.py
-class HtmlTreeNode(object):
-    def __init__(self, parent, header, level, id):
-        self.children = []
-        self.parent = parent
-        self.header = header
-        self.level = level
-        self.id = id
-
-    def add(self, new_header):
-        new_level = new_header.name
-        new_string = new_header.string
-        new_id = new_header.attrs.get('id')
-
-        if not new_string:
-            new_string = new_header.find_all(
-                text=lambda t: not isinstance(t, Comment),
-                recursive=True)
-            new_string = ''.join(new_string)
-        new_string = new_string.translate(PARA_MAP)
-
-        if self.level < new_level:
-            new_node = HtmlTreeNode(self, new_string, new_level, new_id)
-            self.children += [new_node]
-            return new_node, new_header
-        elif self.level == new_level:
-            new_node = HtmlTreeNode(self.parent, new_string, new_level, new_id)
-            self.parent.children += [new_node]
-            return new_node, new_header
-        elif self.level > new_level:
-            return self.parent.add(new_header)
-
-    def __str__(self):
-        ret = ''
-        if self.parent:
-            ret = "<a class='toc-href' href='#{0}' title='{1}'>{1}</a>".format(
-                self.id, self.header)
-
-        if self.children:
-            ret += "<ul>{}</ul>".format('{}' * len(self.children)).format(
-                *self.children)
-
-        if self.parent:
-            ret = "<li>{}</li>".format(ret)
-
-        if not self.parent:
-            ret = "<div id='toc'>{}</div>".format(ret)
-
-        return ret
-
-
-# assure configuration
-def init_default_config(pelican):
-    from pelican.settings import DEFAULT_CONFIG
-
-    DEFAULT_CONFIG.setdefault('ASF_GENID', ASF_GENID)
-    if(pelican):
-        pelican.settings.setdefault('ASF_GENID', ASF_GENID)
-
-
-# from Apache CMS markdown/extensions/headerid.py - slugify in the same way as the Apache CMS
-def slugify(value, separator):
-    """ Slugify a string, to make it URL friendly. """
-    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
-    value = re.sub('[^\\w\\s-]', '', value.decode('ascii')).strip().lower()
-    return re.sub('[%s\\s]+' % separator, separator, value)
-
-
-# Ensure an id is unique in a set of ids. Append '_1', '_2'... if not
-def unique(id, ids):
-    while id in ids or not id:
-        m = IDCOUNT_RE.match(id)
-        print(f'id="{id}" is a duplicate')
-        if m:
-            id = '%s_%d' % (m.group(1), int(m.group(2)) + 1)
-        else:
-            id = '%s_%d' % (id, 1)
-    ids.add(id)
-    return id
-
-
-# append a permalink
-def permalink(soup, mod_element):
-    new_tag = soup.new_tag('a', href='#' + mod_element['id'])
-    new_tag['class'] = 'headerlink'
-    new_tag['title'] = 'Permalink'
-    new_tag.string = LINK_CHAR
-    mod_element.append(new_tag)
-
-
-# fixup cmark content - note that this may be too hungry. It may need to occur later and skipped in codeblock and pre tags.
-def fixup_content(content):
-    text = content._content
-    modified = False
-    # Find messed up html
-    for regex, replace in FIXUP_UNSAFE:
-        m = regex.search(text)
-        if m:
-            modified = True
-            text = re.sub(regex, replace, text)
-    if modified:
-        content._content = text
-
-
-# expand metadata found in {{ key }}
-def expand_metadata(tag, metadata):
-    this_string = str(tag.string)
-    m = 1
-    modified = False
-    while m:
-        m = METADATA_RE.search(this_string)
-        if m:
-            this_data = m.group(1).strip()
-            format_string = '{{{0}}}'.format(this_data)
-            try:
-                new_string = format_string.format(**metadata)
-                print(f'{{{{{m.group(1)}}}}} -> {new_string}')
-            except Exception:
-                # the data expression was not found
-                print(f'{{{{{m.group(1)}}}}} is not found')
-                new_string = format_string
-            # replace the first pattern with the new_string
-            this_string = re.sub(METADATA_RE, new_string, this_string, count=1)
-            modified = True
-    if modified:
-        tag.string.replace_with(this_string)
-
-
-# do elementid transformation for {#id} and {.class} attribute annotations.
-def elementid_transform(ids, soup, tag, permalinks, perma_set, debug):
-    tagnav = tag.parent
-    this_string = str(tag.string)
-    if debug:
-        print(f'name = {tagnav.name}, string = {this_string}')
-    if tagnav.name not in ['[document]', 'code', 'pre']:
-        m = ELEMENTID_RE.search(tag.string)
-        if m:
-            # this replacement could be better it truncates and likely drops additional annotations
-            tag.string.replace_with(this_string[:m.start()])
-            if m.group('type') == '#':
-                # id attribute annotation
-                tagnav['id'] = unique(m.group('id'), ids)
-                if permalinks:
-                    permalink(soup, tagnav)
-                    unique(tagnav['id'], perma_set)
-                if debug:
-                    print(f'# insertion {tagnav}')
-            else:
-                # class attribute annotation (regex only recognizes the two types)
-                tagnav['class'] = m.group('id')
-                if debug:
-                    print(f'Class {tag.name} : {tagnav["class"]}')
-
-
-# generate id for a heading
-def headingid_transform(ids, soup, tag, permalinks, perma_set):
-    new_string = tag.string
-    if not new_string:
-        # roll up strings if no immediate string
-        new_string = tag.find_all(
-            text=lambda t: not isinstance(t, Comment),
-            recursive=True)
-        new_string = ''.join(new_string)
-
-    # don't have an id create it from text
-    new_id = slugify(new_string, '-')
-    tag['id'] = unique(new_id, ids)
-    if permalinks:
-        permalink(soup, tag)
-        # inform if there is a duplicate permalink
-        unique(tag['id'], perma_set)
-
-
-# generate table of contents from headings after [TOC] content
-def generate_toc(content, tags, title, toc_headers):
-    settoc = False
-    tree = node = HtmlTreeNode(None, title, 'h0', '')
-    # find the last [TOC]
-    taglast = tags[0]
-    for tag in tags:
-        taglast = tag
-    # find all headings after the final [TOC]
-    heading_re = re.compile(toc_headers)
-    for header in taglast.findAllNext(heading_re):
-        # we have heading content for the ToC
-        settoc = True
-        # add the heading.
-        node, _new_header = node.add(header)
-    # convert the ToC to Beautiful Soup
-    tree_soup = ''
-    if settoc:
-        print('  ToC')
-        # convert the HtmlTreeNode into Beautiful Soup
-        tree_string = '{}'.format(tree)
-        tree_soup = BeautifulSoup(tree_string, 'html.parser')
-        # Make the ToC available to the theme's template
-        content.toc = tree_soup.decode(formatter='html')
-    # replace the first [TOC] with the generated table of contents
-    for tag in tags:
-        tag.replaceWith(tree_soup)
-        # replace additional [TOC] with nothing
-        tree_soup = ''
-
-
-# add the asfdata metadata into GFM content.
-def add_data(content):
-    """ Mix in ASF data as metadata """
-
-    # if the reader is 'asf' then the asf metadata is already in place during asfreader plugin.
-    if content.metadata.get('reader') != 'asf':
-        asf_metadata = content.settings.get('ASF_DATA', { }).get('metadata')
-        if asf_metadata:
-            content.metadata.update(asf_metadata)
-
-
-# main worker transforming the html
-def generate_id(content):
-    if isinstance(content, pelican.contents.Static):
-        return
-
-    # get plugin settings
-    asf_genid = content.settings['ASF_GENID']
-    # asf_headings setting may be overridden
-    asf_headings = content.metadata.get('asf_headings', str(asf_genid['headings']))
-
-    # show active plugins
-    if asf_genid['debug']:
-        print('asfgenid:\nshow plugins in case one is processing before this one')
-        for name in content.settings['PLUGINS']:
-            print(f'plugin: {name}')
-
-    # track the id tags
-    ids = set()
-    # track permalinks
-    permalinks = set()
-
-    # step 1 - fixup html that cmark marks unsafe - move to later?
-    if asf_genid['unsafe_tags']:
-        fixup_content(content)
-
-    # step 2 - prepare for genid processes
-    # parse html content into BeautifulSoup4
-    soup = BeautifulSoup(content._content, 'html.parser')
-    # page title
-    title = content.metadata.get('title', 'Title')
-    # assure relative source path is in the metadata
-    content.metadata['relative_source_path'] = content.relative_source_path
-    # display output path and title
-    print(f'{content.relative_source_path} - {title}')
-    # enhance metadata if done by asfreader
-    add_data(content)
-
-    # step 3 - metadata expansion
-    if asf_genid['metadata']:
-        if asf_genid['debug']:
-            print(f'metadata expansion: {content.relative_source_path}')
-        for tag in soup.findAll(string=METADATA_RE):
-            expand_metadata(tag, content.metadata)
-
-    # step 4 - find all id attributes already present
-    for tag in soup.findAll(id=True):
-        unique(tag['id'], ids)
-        # don't change existing ids
-
-    # step 5 - find all {#id} and {.class} text and assign attributes
-    if asf_genid['elements']:
-        if asf_genid['debug']:
-            print(f'elementid: {content.relative_source_path}')
-        for tag in soup.findAll(string=ELEMENTID_RE):
-            elementid_transform(ids, soup, tag, asf_genid['permalinks'], permalinks, asf_genid['debug'])
-
-    # step 6 - find all headings w/o ids already present or assigned with {#id} text
-    if asf_headings == 'True':
-        if asf_genid['debug']:
-            print(f'headings: {content.relative_source_path}')
-        # Find heading tags
-        HEADING_RE = re.compile(asf_genid['headings_re'])
-        for tag in soup.findAll(HEADING_RE, id=False):
-            headingid_transform(ids, soup, tag, asf_genid['permalinks'], permalinks)
-
-    # step 7 - find all tables without class
-    if asf_genid['tables']:
-        if asf_genid['debug']:
-            print(f'tables: {content.relative_source_path}')
-        for tag in soup.findAll(TABLE_RE, _class=False):
-            tag['class'] = 'table'
-
-    # step 8 - find TOC tag and generate Table of Contents
-    if asf_genid['toc']:
-        tags = soup('p', text='[TOC]')
-        if tags:
-            generate_toc(content, tags, title, asf_genid['toc_headers'])
-
-    # step 9 - reset the html content
-    content._content = soup.decode(formatter='html')
-
-    # step 10 - output all of the permalinks created
-    for tag in permalinks:
-        print(f'    #{tag}')
-
-
-def tb_connect(pel_ob):
-    """Print any exception, before Pelican chews it into nothingness."""
-    try:
-        generate_id(pel_ob)
-    except Exception:
-        print('-----', file=sys.stderr)
-        print('FATAL: %s' % (pel_ob.relative_source_path), file=sys.stderr)
-        traceback.print_exc()
-        # if we have errors in this module then we want to quit to avoid erasing the site
-        sys.exit(4)
-
-
-def register():
-    pelican.plugins.signals.initialized.connect(init_default_config)
-
-
-pelican.plugins.signals.content_object_init.connect(tb_connect)