@@ -4,131 +4,133 @@ import type { PageBase, PageData, PageFrontmatter } from '@vuepress/shared'
4
4
/**
5
5
* Vuepress Page
6
6
*/
7
- export interface Page <
7
+ export type Page <
8
8
ExtraPageData extends Record < string , unknown > = Record < string , unknown > ,
9
9
ExtraPageFrontmatter extends Record < string , unknown > = Record <
10
10
string ,
11
11
unknown
12
12
> ,
13
- > extends PageBase < ExtraPageFrontmatter > {
14
- /**
15
- * Data of the page, which will be available in client code
16
- */
17
- data : PageData < ExtraPageData , ExtraPageFrontmatter >
18
-
19
- /**
20
- * Raw Content of the page
21
- */
22
- content : string
23
-
24
- /**
25
- * Rendered content of the page
26
- */
27
- contentRendered : string
28
-
29
- /**
30
- * Date of the page, in 'yyyy-MM-dd' format
31
- *
32
- * @example '2020-09-09'
33
- */
34
- date : string
35
-
36
- /**
37
- * Dependencies of the page
38
- */
39
- deps : string [ ]
40
-
41
- /**
42
- * Links of the page
43
- */
44
- links : MarkdownLink [ ]
45
-
46
- /**
47
- * Markdown env object of the page
48
- */
49
- markdownEnv : Record < string , unknown >
50
-
51
- /**
52
- * Path of the page that inferred from file path
53
- *
54
- * If the page does not come from a file, it would be `null`
55
- *
56
- * @example '/guide/index.html'
57
- */
58
- pathInferred : string | null
59
-
60
- /**
61
- * Locale path prefix of the page
62
- *
63
- * @example '/getting-started.html' -> '/'
64
- * @example '/en/getting-started.html' -> '/en/'
65
- * @example '/zh/getting-started.html' -> '/zh/'
66
- */
67
- pathLocale : string
68
-
69
- /**
70
- * Permalink of the page
71
- *
72
- * If the page does not have a permalink, it would be `null`
73
- */
74
- permalink : string | null
75
-
76
- /**
77
- * Custom data to be attached to route record
78
- */
79
- routeMeta : Record < string , unknown >
80
-
81
- /**
82
- * Extracted sfc blocks of the page
83
- */
84
- sfcBlocks : MarkdownSfcBlocks
85
-
86
- /**
87
- * Slug of the page
88
- */
89
- slug : string
90
-
91
- /**
92
- * Source file path
93
- *
94
- * If the page does not come from a file, it would be `null`
95
- */
96
- filePath : string | null
97
-
98
- /**
99
- * Source file path relative to source directory
100
- *
101
- * If the page does not come from a file, it would be `null`
102
- */
103
- filePathRelative : string | null
104
-
105
- /**
106
- * Chunk file path
107
- */
108
- chunkFilePath : string
109
-
110
- /**
111
- * Chunk file path relative to temp directory
112
- */
113
- chunkFilePathRelative : string
114
-
115
- /**
116
- * Chunk name
117
- *
118
- * This will only take effect in webpack
119
- */
120
- chunkName : string
121
-
122
- /**
123
- * Rendered html file path
124
- */
125
- htmlFilePath : string
126
-
127
- /**
128
- * Rendered html file path relative to dest directory
129
- */
130
- htmlFilePathRelative : string
131
- }
13
+ ExtraPageFields extends Record < string , unknown > = Record < string , unknown > ,
14
+ > = ExtraPageFields &
15
+ PageBase < ExtraPageFrontmatter > & {
16
+ /**
17
+ * Data of the page, which will be available in client code
18
+ */
19
+ data : PageData < ExtraPageData , ExtraPageFrontmatter >
20
+
21
+ /**
22
+ * Raw Content of the page
23
+ */
24
+ content : string
25
+
26
+ /**
27
+ * Rendered content of the page
28
+ */
29
+ contentRendered : string
30
+
31
+ /**
32
+ * Date of the page, in 'yyyy-MM-dd' format
33
+ *
34
+ * @example '2020-09-09'
35
+ */
36
+ date : string
37
+
38
+ /**
39
+ * Dependencies of the page
40
+ */
41
+ deps : string [ ]
42
+
43
+ /**
44
+ * Links of the page
45
+ */
46
+ links : MarkdownLink [ ]
47
+
48
+ /**
49
+ * Markdown env object of the page
50
+ */
51
+ markdownEnv : Record < string , unknown >
52
+
53
+ /**
54
+ * Path of the page that inferred from file path
55
+ *
56
+ * If the page does not come from a file, it would be `null`
57
+ *
58
+ * @example '/guide/index.html'
59
+ */
60
+ pathInferred : string | null
61
+
62
+ /**
63
+ * Locale path prefix of the page
64
+ *
65
+ * @example '/getting-started.html' -> '/'
66
+ * @example '/en/getting-started.html' -> '/en/'
67
+ * @example '/zh/getting-started.html' -> '/zh/'
68
+ */
69
+ pathLocale : string
70
+
71
+ /**
72
+ * Permalink of the page
73
+ *
74
+ * If the page does not have a permalink, it would be `null`
75
+ */
76
+ permalink : string | null
77
+
78
+ /**
79
+ * Custom data to be attached to route record
80
+ */
81
+ routeMeta : Record < string , unknown >
82
+
83
+ /**
84
+ * Extracted sfc blocks of the page
85
+ */
86
+ sfcBlocks : MarkdownSfcBlocks
87
+
88
+ /**
89
+ * Slug of the page
90
+ */
91
+ slug : string
92
+
93
+ /**
94
+ * Source file path
95
+ *
96
+ * If the page does not come from a file, it would be `null`
97
+ */
98
+ filePath : string | null
99
+
100
+ /**
101
+ * Source file path relative to source directory
102
+ *
103
+ * If the page does not come from a file, it would be `null`
104
+ */
105
+ filePathRelative : string | null
106
+
107
+ /**
108
+ * Chunk file path
109
+ */
110
+ chunkFilePath : string
111
+
112
+ /**
113
+ * Chunk file path relative to temp directory
114
+ */
115
+ chunkFilePathRelative : string
116
+
117
+ /**
118
+ * Chunk name
119
+ *
120
+ * This will only take effect in webpack
121
+ */
122
+ chunkName : string
123
+
124
+ /**
125
+ * Rendered html file path
126
+ */
127
+ htmlFilePath : string
128
+
129
+ /**
130
+ * Rendered html file path relative to dest directory
131
+ */
132
+ htmlFilePathRelative : string
133
+ }
132
134
133
135
/**
134
136
* Options to create vuepress page
0 commit comments