mkdocs-document-dates 0.1.0__py3-none-any.whl → 0.3.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- mkdocs_document_dates/plugin.py +14 -3
- mkdocs_document_dates-0.3.0.dist-info/METADATA +110 -0
- mkdocs_document_dates-0.3.0.dist-info/RECORD +8 -0
- mkdocs_document_dates-0.1.0.dist-info/METADATA +0 -110
- mkdocs_document_dates-0.1.0.dist-info/RECORD +0 -8
- {mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/LICENSE +0 -0
- {mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/WHEEL +0 -0
- {mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/entry_points.txt +0 -0
- {mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/top_level.txt +0 -0
mkdocs_document_dates/plugin.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
import platform
|
2
3
|
from datetime import datetime
|
3
4
|
from pathlib import Path
|
4
5
|
from mkdocs.plugins import BasePlugin
|
@@ -103,9 +104,20 @@ class DocumentDatesPlugin(BasePlugin):
|
|
103
104
|
# 检查 frontmatter 中的日期
|
104
105
|
meta = getattr(page, 'meta', {})
|
105
106
|
if 'created_date' in meta:
|
106
|
-
|
107
|
+
try:
|
108
|
+
date_str = str(meta['created_date']).strip("'\"") # 移除可能存在的引号
|
109
|
+
created = datetime.fromisoformat(date_str)
|
110
|
+
except (ValueError, TypeError):
|
111
|
+
# 如果解析失败,保持原有的文件系统日期
|
112
|
+
pass
|
113
|
+
|
107
114
|
if 'modified_date' in meta:
|
108
|
-
|
115
|
+
try:
|
116
|
+
date_str = str(meta['modified_date']).strip("'\"") # 移除可能存在的引号
|
117
|
+
modified = datetime.fromisoformat(date_str)
|
118
|
+
except (ValueError, TypeError):
|
119
|
+
# 如果解析失败,保持原有的文件系统日期
|
120
|
+
pass
|
109
121
|
|
110
122
|
# 格式化并插入日期信息
|
111
123
|
date_info = self.format_date_info(created, modified)
|
@@ -113,7 +125,6 @@ class DocumentDatesPlugin(BasePlugin):
|
|
113
125
|
|
114
126
|
def get_file_dates(self, file_path):
|
115
127
|
"""获取文件的创建时间和修改时间"""
|
116
|
-
import platform
|
117
128
|
|
118
129
|
stat = os.stat(file_path)
|
119
130
|
modified = datetime.fromtimestamp(stat.st_mtime)
|
@@ -0,0 +1,110 @@
|
|
1
|
+
Metadata-Version: 2.2
|
2
|
+
Name: mkdocs-document-dates
|
3
|
+
Version: 0.3.0
|
4
|
+
Summary: A MkDocs plugin for displaying accurate document creation and last modification dates.
|
5
|
+
Home-page: https://github.com/jaywhj/mkdocs-document-dates
|
6
|
+
Author: Aaron Wang
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
9
|
+
Classifier: Operating System :: OS Independent
|
10
|
+
Requires-Python: >=3.6
|
11
|
+
Description-Content-Type: text/markdown
|
12
|
+
License-File: LICENSE
|
13
|
+
Requires-Dist: mkdocs>=1.0.0
|
14
|
+
Dynamic: author
|
15
|
+
Dynamic: classifier
|
16
|
+
Dynamic: description
|
17
|
+
Dynamic: description-content-type
|
18
|
+
Dynamic: home-page
|
19
|
+
Dynamic: requires-dist
|
20
|
+
Dynamic: requires-python
|
21
|
+
Dynamic: summary
|
22
|
+
|
23
|
+
# mkdocs-document-dates
|
24
|
+
|
25
|
+
English | [简体中文](README_zh.md)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
A MkDocs plugin for displaying **accurate** document creation and last modification dates.
|
30
|
+
|
31
|
+
## Features
|
32
|
+
|
33
|
+
- Automatically displays document creation and last modification times
|
34
|
+
- Supports manual date specification in `Front Matter`
|
35
|
+
- No Git dependency, uses filesystem timestamps directly
|
36
|
+
- Cross-platform support (Windows, macOS, Linux)
|
37
|
+
- Configurable date and time formats
|
38
|
+
- Flexible display position (top or bottom)
|
39
|
+
- File exclusion rules support
|
40
|
+
- Material Design icons
|
41
|
+
- Elegant styling
|
42
|
+
- Lightweight with no extra dependencies
|
43
|
+
|
44
|
+
## Installation
|
45
|
+
|
46
|
+
```bash
|
47
|
+
pip install mkdocs-document-dates
|
48
|
+
```
|
49
|
+
|
50
|
+
## Configuration
|
51
|
+
|
52
|
+
Add the plugin to your mkdocs.yml:
|
53
|
+
|
54
|
+
```yaml
|
55
|
+
plugins:
|
56
|
+
- document-dates
|
57
|
+
```
|
58
|
+
|
59
|
+
Or, customize the configuration:
|
60
|
+
|
61
|
+
```yaml
|
62
|
+
plugins:
|
63
|
+
- document-dates:
|
64
|
+
date_format: '%Y-%m-%d' # Date format
|
65
|
+
show_time: false # Whether to show time
|
66
|
+
time_format: '%H:%M:%S' # Time format
|
67
|
+
position: bottom # Display position: top (after title) or bottom (end of document)
|
68
|
+
exclude: # List of file patterns to exclude
|
69
|
+
- "private/*" # Exclude all files in private directory
|
70
|
+
- "drafts/*.md" # Exclude all markdown files in drafts directory
|
71
|
+
- "temp.md" # Exclude specific file
|
72
|
+
- "*.tmp" # Exclude all files with .tmp extension
|
73
|
+
```
|
74
|
+
|
75
|
+
## Manual Date Specification
|
76
|
+
|
77
|
+
You can also manually specify the date of a Markdown document in its `Front Matter` :
|
78
|
+
|
79
|
+
```yaml
|
80
|
+
---
|
81
|
+
created_date: 2023-01-01
|
82
|
+
modified_date: 2023-12-31
|
83
|
+
---
|
84
|
+
|
85
|
+
# Document Title
|
86
|
+
```
|
87
|
+
|
88
|
+
## Configuration Options
|
89
|
+
|
90
|
+
- `date_format`: Date format (default: %Y-%m-%d)
|
91
|
+
- Supports all Python datetime format strings, examples: %Y-%m-%d, %b %d, %Y, etc.
|
92
|
+
- `show_time`: Whether to show time (default: false)
|
93
|
+
- true: Show both date and time
|
94
|
+
- false: Show date only
|
95
|
+
- `time_format`: Time format (default: %H:%M:%S)
|
96
|
+
- Only effective when show_time is true
|
97
|
+
- `position`: Display position (default: bottom)
|
98
|
+
- top: Display after the first heading
|
99
|
+
- bottom: Display at the end of document
|
100
|
+
- `exclude`: List of files to exclude (default: [])
|
101
|
+
- Supports glob patterns, example: ["private/*", "temp.md"]
|
102
|
+
|
103
|
+
## Notes
|
104
|
+
|
105
|
+
- Creation time behavior varies across operating systems:
|
106
|
+
- Windows: Uses file creation time
|
107
|
+
- macOS: Uses file creation time (birthtime)
|
108
|
+
- Linux: Uses modification time as creation time due to system limitations
|
109
|
+
- For accurate creation times, it's recommended to use Front Matter for manual specification
|
110
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
mkdocs_document_dates/__init__.py,sha256=yom7psmObebsZY0AwCN1PjlGUwPkny2r6NyzoO0cudg,58
|
2
|
+
mkdocs_document_dates/plugin.py,sha256=uxjid20k8O3PnOdCV0FMxnE6iLp_J3aPJ3RIsNQcUUE,5397
|
3
|
+
mkdocs_document_dates-0.3.0.dist-info/LICENSE,sha256=1YKfCs5WKSk-bON8a68WZE5to1B2klCrHBYiuaVCThM,514
|
4
|
+
mkdocs_document_dates-0.3.0.dist-info/METADATA,sha256=E2lIEIgHJ0Kw9ZaavKM-Fqrv-AIm9Gsz10nFsbuNb8o,3252
|
5
|
+
mkdocs_document_dates-0.3.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
6
|
+
mkdocs_document_dates-0.3.0.dist-info/entry_points.txt,sha256=gI-OFLGjDG6-oLEfyevl3Gwwj2GcqVFQeX3bvL1IF8o,83
|
7
|
+
mkdocs_document_dates-0.3.0.dist-info/top_level.txt,sha256=yWkKQdNuAJJVqUQ9uLa5xD4x_Gux4IfOUpy8Ryagdwc,22
|
8
|
+
mkdocs_document_dates-0.3.0.dist-info/RECORD,,
|
@@ -1,110 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.2
|
2
|
-
Name: mkdocs-document-dates
|
3
|
-
Version: 0.1.0
|
4
|
-
Summary: 一个用于显示文档创建日期和最后修改日期的 MkDocs 插件
|
5
|
-
Home-page: https://github.com/jaywhj/mkdocs-document-dates
|
6
|
-
Author: Aaron Wang
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
8
|
-
Classifier: License :: OSI Approved :: MIT License
|
9
|
-
Classifier: Operating System :: OS Independent
|
10
|
-
Requires-Python: >=3.6
|
11
|
-
Description-Content-Type: text/markdown
|
12
|
-
License-File: LICENSE
|
13
|
-
Requires-Dist: mkdocs>=1.0.0
|
14
|
-
Dynamic: author
|
15
|
-
Dynamic: classifier
|
16
|
-
Dynamic: description
|
17
|
-
Dynamic: description-content-type
|
18
|
-
Dynamic: home-page
|
19
|
-
Dynamic: requires-dist
|
20
|
-
Dynamic: requires-python
|
21
|
-
Dynamic: summary
|
22
|
-
|
23
|
-
# mkdocs-document-dates
|
24
|
-
|
25
|
-
[English](README_en.md) | 简体中文
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
一个用于显示准确的文档创建日期和最后修改日期的 MkDocs 插件。
|
30
|
-
|
31
|
-
## 特性
|
32
|
-
|
33
|
-
- 自动显示文档的创建时间和最后修改时间
|
34
|
-
- 支持在 `Front Matter` 中手动指定日期
|
35
|
-
- 不依赖 Git,直接使用文件系统的时间戳
|
36
|
-
- 跨平台支持(Windows、macOS、Linux)
|
37
|
-
- 可配置的日期和时间格式
|
38
|
-
- 灵活的显示位置(顶部或底部)
|
39
|
-
- 支持文件排除规则
|
40
|
-
- Material Design 风格的图标
|
41
|
-
- 优雅的样式设计
|
42
|
-
- 轻量级,无额外依赖
|
43
|
-
|
44
|
-
## 安装
|
45
|
-
|
46
|
-
```bash
|
47
|
-
pip install mkdocs-document-dates
|
48
|
-
```
|
49
|
-
|
50
|
-
## 配置
|
51
|
-
|
52
|
-
在你的 mkdocs.yml 中添加插件即可:
|
53
|
-
|
54
|
-
```yaml
|
55
|
-
plugins:
|
56
|
-
- document-dates
|
57
|
-
```
|
58
|
-
|
59
|
-
或者,你要自定义配置:
|
60
|
-
|
61
|
-
```yaml
|
62
|
-
plugins:
|
63
|
-
- document-dates:
|
64
|
-
date_format: '%Y-%m-%d' # 日期格式
|
65
|
-
show_time: false # 是否显示时间
|
66
|
-
time_format: '%H:%M:%S' # 时间格式
|
67
|
-
position: bottom # 显示位置:top(标题后)或 bottom(文档末尾)
|
68
|
-
exclude: # 排除的文件模式列表
|
69
|
-
- "private/*" # 排除 private 目录下的所有文件
|
70
|
-
- "drafts/*.md" # 排除 drafts 目录下的所有 markdown 文件
|
71
|
-
- "temp.md" # 排除特定文件
|
72
|
-
- "*.tmp" # 排除所有 .tmp 后缀的文件
|
73
|
-
```
|
74
|
-
|
75
|
-
## 手动指定日期
|
76
|
-
|
77
|
-
你也可以为 Markdown 文档手动指定日期,在 Markdown 文档的 `Front Matter` 中设置:
|
78
|
-
|
79
|
-
```yaml
|
80
|
-
---
|
81
|
-
created_date: '2023-01-01'
|
82
|
-
modified_date: '2023-12-31'
|
83
|
-
---
|
84
|
-
|
85
|
-
# 文档标题
|
86
|
-
```
|
87
|
-
|
88
|
-
## 配置选项
|
89
|
-
|
90
|
-
- date_format: 日期格式(默认:%Y-%m-%d)
|
91
|
-
- 支持所有 Python datetime 格式化字符串,例如:%Y年%m月%d日、%b %d, %Y 等
|
92
|
-
- show_time: 是否显示时间(默认:false)
|
93
|
-
- true: 同时显示日期和时间
|
94
|
-
- false: 仅显示日期
|
95
|
-
- time_format: 时间格式(默认:%H:%M:%S)
|
96
|
-
- 仅在 show_time 为 true 时生效
|
97
|
-
- position: 显示位置(默认:bottom)
|
98
|
-
- top: 在文档第一个标题后显示
|
99
|
-
- bottom: 在文档末尾显示
|
100
|
-
- exclude: 排除文件列表(默认:[])
|
101
|
-
- 支持 glob 模式,例如:["private/*", "temp.md"]
|
102
|
-
|
103
|
-
## 注意事项
|
104
|
-
|
105
|
-
- 创建时间在不同操作系统上的行为可能不同:
|
106
|
-
- Windows: 使用文件创建时间
|
107
|
-
- macOS: 使用文件创建时间(birthtime)
|
108
|
-
- Linux: 由于系统限制,使用修改时间作为创建时间
|
109
|
-
- 如果需要准确的创建时间,建议使用 Front Matter 手动指定
|
110
|
-
|
@@ -1,8 +0,0 @@
|
|
1
|
-
mkdocs_document_dates/__init__.py,sha256=yom7psmObebsZY0AwCN1PjlGUwPkny2r6NyzoO0cudg,58
|
2
|
-
mkdocs_document_dates/plugin.py,sha256=x5oFH2K54Wlr5DJUSKG6gl85tZ9HHrgjbnaksGuqkzc,4900
|
3
|
-
mkdocs_document_dates-0.1.0.dist-info/LICENSE,sha256=1YKfCs5WKSk-bON8a68WZE5to1B2klCrHBYiuaVCThM,514
|
4
|
-
mkdocs_document_dates-0.1.0.dist-info/METADATA,sha256=q-Eft96oExZ_ARZLhaNGy5uS_mR9Tsfk0yCTcosG1Jw,3193
|
5
|
-
mkdocs_document_dates-0.1.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
6
|
-
mkdocs_document_dates-0.1.0.dist-info/entry_points.txt,sha256=gI-OFLGjDG6-oLEfyevl3Gwwj2GcqVFQeX3bvL1IF8o,83
|
7
|
-
mkdocs_document_dates-0.1.0.dist-info/top_level.txt,sha256=yWkKQdNuAJJVqUQ9uLa5xD4x_Gux4IfOUpy8Ryagdwc,22
|
8
|
-
mkdocs_document_dates-0.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/entry_points.txt
RENAMED
File without changes
|
{mkdocs_document_dates-0.1.0.dist-info → mkdocs_document_dates-0.3.0.dist-info}/top_level.txt
RENAMED
File without changes
|