diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json
index a34673eb..bff2224d 100644
--- a/plugins/plugin-md-power/package.json
+++ b/plugins/plugin-md-power/package.json
@@ -40,7 +40,13 @@
"vuepress": "2.0.0-rc.15"
},
"dependencies": {
+ "@mdit/plugin-attrs": "^0.13.1",
+ "@mdit/plugin-footnote": "^0.13.1",
+ "@mdit/plugin-mark": "^0.13.1",
+ "@mdit/plugin-sub": "^0.13.1",
+ "@mdit/plugin-sup": "^0.13.1",
"@mdit/plugin-tab": "^0.13.1",
+ "@mdit/plugin-tasklist": "^0.13.1",
"@vuepress/helper": "2.0.0-rc.47",
"@vueuse/core": "^11.1.0",
"image-size": "^1.1.1",
diff --git a/plugins/plugin-md-power/src/node/container/align.ts b/plugins/plugin-md-power/src/node/container/align.ts
new file mode 100644
index 00000000..ec70fd41
--- /dev/null
+++ b/plugins/plugin-md-power/src/node/container/align.ts
@@ -0,0 +1,21 @@
+import type Token from 'markdown-it/lib/token.mjs'
+import type { Markdown } from 'vuepress/markdown'
+import container from 'markdown-it-container'
+
+const alignList = ['left', 'center', 'right', 'justify']
+
+export function alignPlugin(md: Markdown): void {
+ for (const name of alignList) {
+ md.use(container, name, {
+ validate: (info: string) => info.trim() === name,
+ render: (tokens: Token[], idx: number): string => {
+ if (tokens[idx].nesting === 1) {
+ return `
`
+ }
+ else {
+ return '
'
+ }
+ },
+ })
+ }
+}
diff --git a/plugins/plugin-md-power/src/node/container/index.ts b/plugins/plugin-md-power/src/node/container/index.ts
index 31c8b1fc..9b4ae23f 100644
--- a/plugins/plugin-md-power/src/node/container/index.ts
+++ b/plugins/plugin-md-power/src/node/container/index.ts
@@ -1,6 +1,7 @@
import type { App } from 'vuepress'
import type { Markdown } from 'vuepress/markdown'
import type { MarkdownPowerPluginOptions } from '../../shared/index.js'
+import { alignPlugin } from './align.js'
import { codeTabs } from './codeTabs.js'
import { fileTreePlugin } from './fileTree.js'
import { langReplPlugin } from './langRepl.js'
@@ -11,6 +12,8 @@ export async function containerPlugin(
md: Markdown,
options: MarkdownPowerPluginOptions,
) {
+ // ::: left / right / center / justify
+ alignPlugin(md)
// ::: tabs
tabs(md)
// ::: code-tabs
diff --git a/plugins/plugin-md-power/src/node/inline/index.ts b/plugins/plugin-md-power/src/node/inline/index.ts
index 312d66c6..536960b1 100644
--- a/plugins/plugin-md-power/src/node/inline/index.ts
+++ b/plugins/plugin-md-power/src/node/inline/index.ts
@@ -1,5 +1,11 @@
import type { Markdown } from 'vuepress/markdown'
import type { MarkdownPowerPluginOptions } from '../../shared/index.js'
+import { attrs } from '@mdit/plugin-attrs'
+import { footnote } from '@mdit/plugin-footnote'
+import { mark } from '@mdit/plugin-mark'
+import { sub } from '@mdit/plugin-sub'
+import { sup } from '@mdit/plugin-sup'
+import { tasklist } from '@mdit/plugin-tasklist'
import { iconsPlugin } from './icons.js'
import { plotPlugin } from './plot.js'
@@ -7,6 +13,13 @@ export function inlineSyntaxPlugin(
md: Markdown,
options: MarkdownPowerPluginOptions,
): void {
+ md.use(attrs)
+ md.use(mark)
+ md.use(sub)
+ md.use(sup)
+ md.use(footnote)
+ md.use(tasklist)
+
if (options.icons) {
// :[collect:name]:
md.use(iconsPlugin)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e9fdfb1e..900bbe65 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -156,9 +156,27 @@ importers:
plugins/plugin-md-power:
dependencies:
+ '@mdit/plugin-attrs':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
+ '@mdit/plugin-footnote':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
+ '@mdit/plugin-mark':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
+ '@mdit/plugin-sub':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
+ '@mdit/plugin-sup':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
'@mdit/plugin-tab':
specifier: ^0.13.1
version: 0.13.1(markdown-it@14.1.0)
+ '@mdit/plugin-tasklist':
+ specifier: ^0.13.1
+ version: 0.13.1(markdown-it@14.1.0)
'@vuepress/helper':
specifier: 2.0.0-rc.47
version: 2.0.0-rc.47(typescript@5.6.2)(vuepress@2.0.0-rc.15(@vuepress/bundler-vite@2.0.0-rc.15(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.79.3)(sass@1.79.3)(typescript@5.6.2)(yaml@2.5.1))(typescript@5.6.2)(vue@3.5.8(typescript@5.6.2)))
diff --git a/theme/src/client/components/VPDocFooter.vue b/theme/src/client/components/VPDocFooter.vue
index 89a83e3a..13b1faa6 100644
--- a/theme/src/client/components/VPDocFooter.vue
+++ b/theme/src/client/components/VPDocFooter.vue
@@ -87,7 +87,7 @@ const showFooter = computed(() => {