diff --git a/data/en/homepage.yml b/data/en/homepage.yml
index fe9ad825b0..be94c9ecc9 100644
--- a/data/en/homepage.yml
+++ b/data/en/homepage.yml
@@ -11,18 +11,6 @@ slider:
label: 'Join the community'
link: '/community/'
-################################# Banner #####################################
-banner:
- enable: true
- bg_image: ''
- title: ''
- content_banner:
- bold_text: 'Winding down of PMDK development!'
- text: 'Libraries and all related resources will continue to be available, but development and maintenance will be limited.'
- download_link:
- label: 'Read our blog post for more details and Q&A!'
- link: 'https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy/'
-
################################# Feature #####################################
feature:
enable: true
diff --git a/data/en/pmdk.yml b/data/en/pmdk.yml
index 9f390a0232..86d7c03065 100644
--- a/data/en/pmdk.yml
+++ b/data/en/pmdk.yml
@@ -9,11 +9,9 @@ slider:
################################# Banner #####################################
banner:
enable: true
- bg_image: ''
- title: ''
content_banner:
- bold_text: '
The PMDK repository on GitHub is the ultimate source from release 2.0!
'
- text: 'The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.'
+ bold_text: 'The [PMDK repository](https://github.com/pmem/pmdk/) on GitHub is the ultimate source of information on PMDK from release 2.0!'
+ text: 'For all questions and to submit eventual issues please follow to [that repository](https://github.com/pmem/pmdk/issues). The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.'
################################# Libraries Section #################################
libraries_section:
@@ -94,7 +92,7 @@ libraries_section_deprecated:
See the librpmem page for documentation and examples.
Note: librpmem is available only in the release 1.12.1 and before. It is no longer available on the master branch.
Note: This is a deprecated API and should not be used in production environments.
- Note: The alternative solution for accessing remote persistent memory is implemented by librpma (see above).
"
+ Note: The alternative solution for accessing remote persistent memory is implemented by librpma (see above).
"
library_item8:
title: 'libvmemcache'
content: "libvmemcache is an embeddable and lightweight in-memory caching solution. It’s designed to fully take advantage of large capacity memory, such as persistent memory with DAX, through memory mapping in an efficient and scalable way.
diff --git a/data/en/repoindex.yml b/data/en/repoindex.yml
index 20d89f1ea9..7753b83a2c 100644
--- a/data/en/repoindex.yml
+++ b/data/en/repoindex.yml
@@ -16,26 +16,18 @@ Discontinuation:
card_groups:
enable: true
cards:
- card1:
- title: "PMDK Repositories"
+ - title: "PMDK Repositories"
description: "The Persistent Memory Development Kit is a collection of libraries and tools. The source is spread across many repositories. Components are separated like this to help with the logistics of parallel development and asynchronous delivery."
tables:
- table1:
- title: "Components Focused on Persistence:"
+ - title: "Components Focused on Persistence:"
headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "pmdk"
- cell2:
- content: "PMDK Core C libraries and tools:
+ - cells:
+ - content: "pmdk"
+ - content: "PMDK Core C libraries and tools:
- libpmem
@@ -50,434 +42,229 @@ card_groups:
- Core PMDK C examples
- Web content for pmem.io/pmdk (in gh-pages branch)
"
- cell3:
- content: "pmem.io/pmdk"
- row2:
- cells:
- cell1:
- content: "valgrind"
- cell2:
- content: "Enhanced Valgrind containing the pmemcheck plugin"
- cell3:
- content: "pmem.io/valgrind"
- row3:
- cells:
- cell1:
- content: "rpma"
- cell2:
- content: "C library to simplify accessing persistent memory (PMem) on remote hosts over Remote Direct Memory Access (RDMA)"
- cell3:
- content: "pmem.io/rpma"
- row4:
- cells:
- cell1:
- content: "libpmemobj-cpp"
- cell2:
- content: "C++ bindings & containers for libpmemobj"
- cell3:
- content: "pmem.io/libpmemobj-cpp"
- row5:
- cells:
- cell1:
- content: "llpl"
- cell2:
- content: "Low-Level Persistence Library for Java"
- cell3:
- content: "pmem.io/java/llpl"
- row6:
- cells:
- cell1:
- content: "libpmemobj-js"
- cell2:
- content: "JavaScript bindings for libpmemobj"
- cell3:
- content: "-"
- row7:
- cells:
- cell1:
- content: "miniasync"
- cell2:
- content: "C low-level concurrency library for asynchronous functions"
- cell3:
- content: "pmem.io/miniasync"
- row8:
- cells:
- cell1:
- content: "pmemstream"
- cell2:
- content: "Logging data structure (with stream-like access to data)"
- cell3:
- content: "pmem.io/pmemstream"
- row9:
- cells:
- cell1:
- content: "pmemkv"
- cell2:
- content: "Transactional Key-Value Store: Top-Level C & C++ API"
- cell3:
- content: "pmem.io/pmemkv"
- rowA:
- cells:
- cell1:
- content: "pmemkv-bench"
- cell2:
- content: "Benchmarks for pmemkv"
- cell3:
- content: "-"
- rowA1:
- cells:
- cell1:
- content: "pmemkv-python"
- cell2:
- content: "Python bindings for pmemkv"
- cell3:
- content: "pmem.io/pmemkv-python"
- rowA2:
- cells:
- cell1:
- content: "pmemkv-java"
- cell2:
- content: "Java bindings for pmemkv"
- cell3:
- content: "pmem.io/pmemkv-java"
- rowA3:
- cells:
- cell1:
- content: "pmemkv-nodejs"
- cell2:
- content: "NodeJS bindings for pmemkv"
- cell3:
- content: "pmem.io/pmemkv-nodejs"
- rowA4:
- cells:
- cell1:
- content: "pmemkv-ruby"
- cell2:
- content: "Ruby bindings for pmemkv"
- cell3:
- content: "pmem.io/pmemkv-ruby"
- rowA5:
- cells:
- cell1:
- content: "pmdk-convert"
- cell2:
- content: "Conversion tool for PMDK pools"
- cell3:
- content: "pmdk-convert"
- table2:
- title: "Components Focused on Volatile Usages of pmem:"
- headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
- rows:
- row1:
- cells:
- cell1:
- content: "memkind"
- cell2:
- content: "General-purpose malloc/free-style library
(Actually lives outside the pmem GitHub org since it has a life outside of pmem as well)"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "vmemcache"
- cell2:
- content: "A buffer based LRU cache"
- cell3:
- content: "pmem.io/vmemcache"
- row3:
- cells:
- cell1:
- content: "vmem"
- cell2:
- content: "libvmem, the predecessor to libmemkind.
Maintenance-only -- use libmemkind for all new development."
- cell3:
- content: "pmem.io/vmem/libvmem"
- table3:
- title: "Experimental PMDK components (not yet ready for production use):"
+ - content: "pmem.io/pmdk"
+ - cells:
+ - content: "valgrind"
+ - content: "Enhanced Valgrind containing the pmemcheck plugin"
+ - content: "pmem.io/valgrind"
+ - cells:
+ - content: "rpma"
+ - content: "C library to simplify accessing persistent memory (PMem) on remote hosts over Remote Direct Memory Access (RDMA)"
+ - content: "pmem.io/rpma"
+ - cells:
+ - content: "libpmemobj-cpp"
+ - content: "C++ bindings & containers for libpmemobj"
+ - content: "pmem.io/libpmemobj-cpp"
+ - cells:
+ - content: "llpl"
+ - content: "Low-Level Persistence Library for Java"
+ - content: "pmem.io/java/llpl"
+ - cells:
+ - content: "libpmemobj-js"
+ - content: "JavaScript bindings for libpmemobj"
+ - content: "-"
+ - cells:
+ - content: "miniasync"
+ - content: "C low-level concurrency library for asynchronous functions"
+ - content: "pmem.io/miniasync"
+ - cells:
+ - content: "pmemstream"
+ - content: "Logging data structure (with stream-like access to data)"
+ - content: "pmem.io/pmemstream"
+ - cells:
+ - content: "pmemkv"
+ - content: "Transactional Key-Value Store: Top-Level C & C++ API"
+ - content: "pmem.io/pmemkv"
+ - cells:
+ - content: "pmemkv-bench"
+ - content: "Benchmarks for pmemkv"
+ - content: "-"
+ - cells:
+ - content: "pmemkv-python"
+ - content: "Python bindings for pmemkv"
+ - content: "pmem.io/pmemkv-python"
+ - cells:
+ - content: "pmemkv-java"
+ - content: "Java bindings for pmemkv"
+ - content: "pmem.io/pmemkv-java"
+ - cells:
+ - content: "pmemkv-nodejs"
+ - content: "NodeJS bindings for pmemkv"
+ - content: "pmem.io/pmemkv-nodejs"
+ - cells:
+ - content: "pmemkv-ruby"
+ - content: "Ruby bindings for pmemkv"
+ - content: "pmem.io/pmemkv-ruby"
+ - cells:
+ - content: "pmdk-convert"
+ - content: "Conversion tool for PMDK pools"
+ - content: "pmdk-convert"
+ - title: "Components Focused on Volatile Usages of pmem:"
headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "pcj"
- cell2:
- content: "Persistent Collections for Java"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "pmemfile"
- cell2:
- content: "Userspace implementation of file APIs using pmem"
- cell3:
- content: "-"
- row3:
- cells:
- cell1:
- content: "syscall_intercept"
- cell2:
- content: "Syscall intercepting library used by libpmemfile"
- cell3:
- content: "-"
- row4:
- cells:
- cell1:
- content: "vltrace"
- cell2:
- content: "Tool for tracing syscalls"
- cell3:
- content: "-"
- row5:
- cells:
- cell1:
- content: "pynvm"
- cell2:
- content: "Experimental prototype Python bindings for libpmemobj"
- cell3:
- content: "-"
- table4:
- title: "Other:"
+ - cells:
+ - content: "memkind"
+ - content: "General-purpose malloc/free-style library
(Actually lives outside the pmem GitHub org since it has a life outside of pmem as well)"
+ - content: "-"
+ - cells:
+ - content: "vmemcache"
+ - content: "A buffer based LRU cache"
+ - content: "pmem.io/vmemcache"
+ - cells:
+ - content: "vmem"
+ - content: "libvmem, the predecessor to libmemkind.
Maintenance-only -- use libmemkind for all new development."
+ - content: "pmem.io/vmem/libvmem"
+ - title: "Experimental PMDK components (not yet ready for production use):"
headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "dev-utils-kit"
- cell2:
- content: "Tools used for development of projects under pmem organization"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "autoflushtest"
- cell2:
- content: "Basic data integrity test for platforms with flush-on-fail CPU caches"
- cell3:
- content: "-"
- card2:
- title: "ndctl"
+ - cells:
+ - content: "pcj"
+ - content: "Persistent Collections for Java"
+ - content: "-"
+ - cells:
+ - content: "pmemfile"
+ - content: "Userspace implementation of file APIs using pmem"
+ - content: "-"
+ - cells:
+ - content: "syscall_intercept"
+ - content: "Syscall intercepting library used by libpmemfile"
+ - content: "-"
+ - cells:
+ - content: "vltrace"
+ - content: "Tool for tracing syscalls"
+ - content: "-"
+ - cells:
+ - content: "pynvm"
+ - content: "Experimental prototype Python bindings for libpmemobj"
+ - content: "-"
+ - title: "Other:"
+ headers:
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
+ rows:
+ - cells:
+ - content: "dev-utils-kit"
+ - content: "Tools used for development of projects under pmem organization"
+ - content: "-"
+ - cells:
+ - content: "autoflushtest"
+ - content: "Basic data integrity test for platforms with flush-on-fail CPU caches"
+ - content: "-"
+ - title: "ndctl"
description: "ndctl is the Linux utility for managing persistent memory."
tables:
- table1:
- headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - headers:
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "ndctl"
- cell2:
- content: "ndctl, daxctl, and related libraries"
- cell3:
- content: "pmem.io/ndctl"
- card3:
- title: "Web Content"
+ - cells:
+ - content: "ndctl"
+ - content: "ndctl, daxctl, and related libraries"
+ - content: "pmem.io/ndctl"
+ - title: "Web Content"
description: "The pmem.io website is implemented as static content on GitHub using Jekyll, GitHub-flavored MarkDown, and some tool-generated HTML here and there. Some sub-areas of the website live in the gh-pages branch of the corresponding repo (for example, pmdk and ndctl)."
tables:
- table1:
- headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - headers:
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "docs"
- cell2:
- content: "Persistent Memory Docbook"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "pmem.github.io"
- cell2:
- content: "Repo containing the pmem.io website (including blogs)"
- cell3:
- content: "-"
- row3:
- cells:
- cell1:
- content: "pmdk-examples"
- cell2:
- content: "PMDK examples and tutorials"
- cell3:
- content: "-"
- row4:
- cells:
- cell1:
- content: "book"
- cell2:
- content: "Examples used in the pmem Programming Book"
- cell3:
- content: "-"
- row5:
- cells:
- cell1:
- content: "knowledge-base"
- cell2:
- content: "Knowledge Base for pmem.io"
- cell3:
- content: "pmem.io/knowledgebase"
- card4:
- title: "pmem-aware Software"
+ - cells:
+ - content: "docs"
+ - content: "Persistent Memory Docbook"
+ - content: "-"
+ - cells:
+ - content: "pmem.github.io"
+ - content: "Repo containing the pmem.io website (including blogs)"
+ - content: "-"
+ - cells:
+ - content: "pmdk-examples"
+ - content: "PMDK examples and tutorials"
+ - content: "-"
+ - cells:
+ - content: "book"
+ - content: "Examples used in the pmem Programming Book"
+ - content: "-"
+ - cells:
+ - content: "knowledge-base"
+ - content: "Knowledge Base for pmem.io"
+ - content: "pmem.io/knowledgebase"
+ - title: "pmem-aware Software"
description: "These repos contain experimental versions of software modified to leverage persistent memory. Typically, when the features are mature and tested they become part of the upstream repo."
tables:
- table1:
- headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - headers:
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "pelikan"
- cell2:
- content: "Working tree for development of pmem-related features for Twitter's Pelikan"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "pmem-rocksdb"
- cell2:
- content: "RocksDB modified to use pmem"
- cell3:
- content: "-"
- row3:
- cells:
- cell1:
- content: "pmem-redis"
- cell2:
- content: "Redis, enhanced to use pmem"
- cell3:
- content: "-"
- row4:
- cells:
- cell1:
- content: "pmse"
- cell2:
- content: "MongoDB pmem Storage Engine Prototype"
- cell3:
- content: "-"
- row5:
- cells:
- cell1:
- content: "kvdk"
- cell2:
- content: "Reference code of key/value store design for pmem"
- cell3:
- content: "-"
- card5:
- title: "Inactive"
+ - cells:
+ - content: "pelikan"
+ - content: "Working tree for development of pmem-related features for Twitter's Pelikan"
+ - content: "-"
+ - cells:
+ - content: "pmem-rocksdb"
+ - content: "RocksDB modified to use pmem"
+ - content: "-"
+ - cells:
+ - content: "pmem-redis"
+ - content: "Redis, enhanced to use pmem"
+ - content: "-"
+ - cells:
+ - content: "pmse"
+ - content: "MongoDB pmem Storage Engine Prototype"
+ - content: "-"
+ - cells:
+ - content: "kvdk"
+ - content: "Reference code of key/value store design for pmem"
+ - content: "-"
+ - title: "Inactive"
description: "These repos are no longer under active development or use. We archive them here for reference."
tables:
- table1:
- headers:
- header1:
- content: "Repo Name"
- header2:
- content: "Description"
- header3:
- content: "Microsite"
+ - headers:
+ - content: "Repo Name"
+ - content: "Description"
+ - content: "Microsite"
rows:
- row1:
- cells:
- cell1:
- content: "linux-examples"
- cell2:
- content: "Original ideas"
- cell3:
- content: "-"
- row2:
- cells:
- cell1:
- content: "redis"
- cell2:
- content: "Initial pmem enhancements to Redis"
- cell3:
- content: "-"
- row3:
- cells:
- cell1:
- content: "rocksdb"
- cell2:
- content: "Initial pmem enhancements to RocksDB"
- cell3:
- content: "-"
- row4:
- cells:
- cell1:
- content: "libcxx"
- cell2:
- content: "Experimental pmem-aware libcxx"
- cell3:
- content: "-"
- row5:
- cells:
- cell1:
- content: "mpi-pmem-ext"
- cell2:
- content: "MPI Extensions for pmem"
- cell3:
- content: "-"
- row6:
- cells:
- cell1:
- content: "issues"
- cell2:
- content: "Archive of some old issues. No longer in-use."
- cell3:
- content: "-"
- row7:
- cells:
- cell1:
- content: "pmemkv-jni"
- cell2:
- content: "Java bindings via JNI for pmemkv"
- cell3:
- content: "-"
- row8:
- cells:
- cell1:
- content: "pmdk-tests"
- cell2:
- content: "Extended PMDK tests"
- cell3:
- content: "-"
+ - cells:
+ - content: "linux-examples"
+ - content: "Original ideas"
+ - content: "-"
+ - cells:
+ - content: "redis"
+ - content: "Initial pmem enhancements to Redis"
+ - content: "-"
+ - cells:
+ - content: "rocksdb"
+ - content: "Initial pmem enhancements to RocksDB"
+ - content: "-"
+ - cells:
+ - content: "libcxx"
+ - content: "Experimental pmem-aware libcxx"
+ - content: "-"
+ - cells:
+ - content: "mpi-pmem-ext"
+ - content: "MPI Extensions for pmem"
+ - content: "-"
+ - cells:
+ - content: "issues"
+ - content: "Archive of some old issues. No longer in-use."
+ - content: "-"
+ - cells:
+ - content: "pmemkv-jni"
+ - content: "Java bindings via JNI for pmemkv"
+ - content: "-"
+ - cells:
+ - content: "pmdk-tests"
+ - content: "Extended PMDK tests"
+ - content: "-"
################################# Disclaimer #################################
disclaimer:
diff --git a/themes/pmem-hugo/layouts/index.html b/themes/pmem-hugo/layouts/index.html
index a5e6eb9227..ff04dff0f3 100644
--- a/themes/pmem-hugo/layouts/index.html
+++ b/themes/pmem-hugo/layouts/index.html
@@ -4,9 +4,6 @@
{{- partial "content/slider.html" . -}}
-
- {{- partial "content/banner.html" . -}}
-
{{- partial "content/features.html" . -}}
diff --git a/themes/pmem-hugo/layouts/partials/content/banner.html b/themes/pmem-hugo/layouts/partials/content/banner.html
index 06a6ad080a..627d38a1ff 100644
--- a/themes/pmem-hugo/layouts/partials/content/banner.html
+++ b/themes/pmem-hugo/layouts/partials/content/banner.html
@@ -1,11 +1,9 @@
-{{ $data := index site.Data site.Language.Lang }} {{ if $data.homepage.banner.enable }} {{ with $data.homepage.banner }}
+{{ $data := index site.Data site.Language.Lang }} {{ if $data.pmdk.banner.enable }} {{ with $data.pmdk.banner }}
diff --git a/themes/pmem-hugo/layouts/pmdk/list.html b/themes/pmem-hugo/layouts/pmdk/list.html
index d62270c112..df26baeca1 100644
--- a/themes/pmem-hugo/layouts/pmdk/list.html
+++ b/themes/pmem-hugo/layouts/pmdk/list.html
@@ -13,17 +13,8 @@ {{ .title | markdownify }}
{{ end }} {{ end }}
-{{ $data := index site.Data site.Language.Lang }} {{ if $data.pmdk.banner.enable }} {{ with $data.pmdk.banner }}
-
-{{ end }} {{ end }}
+
+{{- partial "content/banner.html" . -}}
{{ $data := index site.Data site.Language.Lang }} {{ if $data.pmdk.libraries_section.enable }} {{ with $data.pmdk.libraries_section }}
@@ -48,9 +39,9 @@ {{ .title | markdownify }}
{{ $data := index site.Data site.Language.Lang }} {{ if $data.pmdk.libraries_section_deprecated.enable }} {{ with $data.pmdk.libraries_section_deprecated }}
-
+
-
+
{{ .title | markdownify }}
{{ .content | safeHTML }}
diff --git a/themes/pmem-hugo/layouts/pmdk/single.html b/themes/pmem-hugo/layouts/pmdk/single.html
index 6908f5719e..93b6a23c77 100644
--- a/themes/pmem-hugo/layouts/pmdk/single.html
+++ b/themes/pmem-hugo/layouts/pmdk/single.html
@@ -10,6 +10,9 @@
{{ .Params.header | markdownify }}
{{ end }}
+
+{{- partial "content/banner.html" . -}}
+
{{ $dc_title := strings.TrimSuffix " | pmdk" (.Params.title | lower) }}