Skip to content

Commit 6d5f2c7

Browse files
Merge pull request #61 from virtualguard101/dev
docs: update changelog
2 parents 1f80108 + 307b7e9 commit 6d5f2c7

3 files changed

Lines changed: 336 additions & 3 deletions

File tree

docs/.nav.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ nav:
99
- Recent Notes Insertion: usage/recent-notes.md
1010
- Command Line Interface: usage/cli.md
1111
- Asset Management: usage/asset-manager.md
12-
- Templating System: usage/templating.md
1312
- Network Graph Visualization: usage/network-graph.md
14-
- Exclusion: usage/exclusion.md
1513
- Configuration Options: usage/config.md
16-
- Some Security Considerations: usage/sec.md
1714

1815
- Contributing Guide:
1916
- contributing/contributing.md

docs/about/changelog.md

Lines changed: 329 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,339 @@
1+
---
2+
date: 2025-11-05 00:20:00
3+
title: Changelog
4+
permalink:
5+
publish: true
6+
---
7+
18
# Changelog
29

310
All notable changes to this project will be documented in this file.
411

512
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
613
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
714

15+
## 3.0.0 - 2025-11-04 (Architecture Simplification)
16+
17+
### Changed
18+
19+
- **[BREAKING] Major Architecture Refactoring**: Completely restructured project architecture from complex modular design to simplified flat structure (#60)
20+
21+
- **Core Philosophy Change**: From "feature-rich notebook manager" to "lightweight documentation plugin with note features"
22+
23+
- **Removed Modules** (deleted ~9,300 lines of code):
24+
25+
- `utils/assetps/`: Asset management subsystem (401 lines)
26+
27+
- `utils/dataps/`: Data models and frontmatter system (600+ lines)
28+
29+
- `utils/docsps/`: Document operations (creator, cleaner, mover, remover, initializer - 1,800+ lines)
30+
31+
- `utils/fileps/`: File I/O operations (105 lines)
32+
33+
- `utils/graphps/`: Graph processing utilities (106 lines)
34+
35+
- `utils/pathps/`: Path utilities (empty placeholder)
36+
37+
- `logger.py`: Custom logging module (50 lines)
38+
39+
- **New Simplified Structure**:
40+
41+
- Core modules moved to package root: `plugin.py`, `cli.py`, `config.py`, `graph.py`
42+
43+
- Minimal utilities: `utils/meta.py`, `utils/scanner.py`, `utils/cli/` (commands & common)
44+
45+
- Total source code: ~2,700 lines (vs. ~12,000 lines in v2.x)
46+
47+
- **Removed Features**:
48+
49+
- Asset management system (automatic asset directory creation/management)
50+
51+
- Template system (note templates with variable substitution)
52+
53+
- Note validation and initialization commands
54+
55+
- Advanced CLI commands: `init`, `validate`, `template`
56+
57+
- Frontmatter management system
58+
59+
- Complex file scanning and processing pipelines
60+
61+
- **Retained Core Features**:
62+
63+
- ✅ Recent notes display functionality
64+
65+
- ✅ Network graph visualization
66+
67+
- ✅ Basic CLI commands: `new`, `remove`, `move`, `clean`
68+
69+
- ✅ Git timestamp support
70+
71+
- ✅ Metadata extraction (title, date)
72+
73+
- **Benefits**:
74+
75+
-**Significantly Reduced Complexity**: Easier to understand, maintain, and extend
76+
77+
-**Faster Performance**: Less overhead from removed abstraction layers
78+
79+
-**Lower Maintenance Burden**: Fewer moving parts means fewer potential bugs
80+
81+
-**Clearer Purpose**: Focused on core documentation needs rather than comprehensive note management
82+
83+
-**Better Integration**: Simpler codebase integrates more naturally with MkDocs ecosystem
84+
85+
- **Configuration Simplification**: Dramatically reduced configuration options
86+
87+
- **Removed Options**:
88+
89+
- `assets_dir`: Asset management removed
90+
91+
- `notes_template`: Template system removed
92+
93+
- `cache_size`: Caching logic simplified
94+
95+
- `exclude_patterns`: File filtering simplified
96+
97+
- `use_git_timestamps`: Now always enabled by default
98+
99+
- `timestamp_zone`: Timezone handling simplified
100+
101+
- **Retained Options**:
102+
103+
- `enabled`: Plugin enable/disable toggle
104+
105+
- `notes_root`: Working directory (default: `docs`)
106+
107+
- `recent_notes_config`: Recent notes insertion settings
108+
109+
- `graph_config`: Network graph visualization settings
110+
111+
- **Impact**: Configuration now fits in 47 lines vs. 237 lines in v2.x
112+
113+
- **CLI Refactoring**: Streamlined command-line interface
114+
115+
- Migrated from complex `cli.py` (814 lines in v2.x) to modular structure:
116+
117+
- `cli.py`: Main CLI entry point (438 lines)
118+
119+
- `utils/cli/commands.py`: Command implementations (420 lines)
120+
121+
- `utils/cli/common.py`: Shared utilities (98 lines)
122+
123+
- **Removed Commands**:
124+
125+
- `init`: Note directory initialization (no longer needed)
126+
127+
- `validate`: Asset structure validation (asset system removed)
128+
129+
- `template`: Template management (template system removed)
130+
131+
- **Retained Commands** (with simplified implementations):
132+
133+
- `new`: Create new notes (no template/validation overhead)
134+
135+
- `remove` / `rm`: Delete notes (no asset cleanup complexity)
136+
137+
- `move` / `mv`: Move/rename notes (simplified path handling)
138+
139+
- `clean`: Clean orphaned resources (simplified cleanup logic)
140+
141+
- **Test Suite Reorganization**: Completely restructured test suite
142+
143+
- **Removed Test Files** (~4,900 lines):
144+
145+
- `tests/core/`: All core module tests (8 test files)
146+
147+
- `test_assets_manager.py` (618 lines)
148+
149+
- `test_file_manager.py` (319 lines)
150+
151+
- `test_frontmatter_manager.py` (435 lines)
152+
153+
- `test_graph_handler_simple.py` (163 lines)
154+
155+
- `test_note_cleaner.py` (480 lines)
156+
157+
- `test_note_creator.py` (372 lines)
158+
159+
- `test_note_initializer.py` (255 lines)
160+
161+
- `test_note_manager.py` (502 lines)
162+
163+
- `test_note_remover.py` (153 lines)
164+
165+
- **New Test Structure**:
166+
167+
- `test_cli_commands.py`: CLI command testing (453 lines)
168+
169+
- `test_cli_common.py`: CLI utility testing (202 lines)
170+
171+
- `test_cli_integration.py`: Integration testing (405 lines)
172+
173+
- `test_config.py`: Configuration testing (simplified to 397 lines)
174+
175+
- `test_plugin.py`: Plugin testing (simplified to 670 lines)
176+
177+
- `smoke_test.py`: Package smoke tests (refactored)
178+
179+
- `test_help.py`: Help system tests
180+
181+
- **Test Count**: Reduced from 227 tests to focused test suite on core functionality
182+
183+
- **Documentation Updates**: Comprehensive documentation reorganization
184+
185+
- **Removed Documentation**:
186+
187+
- `docs/usage/exclusion.md`: Exclusion patterns (42 lines)
188+
189+
- `docs/usage/sec.md`: Security features (24 lines)
190+
191+
- `docs/usage/templating.md`: Template system (75 lines)
192+
193+
- **Added Documentation**:
194+
195+
- `docs/usage/meta.md`: Metadata handling (8 lines)
196+
197+
- **Updated Documentation**:
198+
199+
- `docs/getting-started.md`: Simplified getting started guide
200+
201+
- `docs/usage/cli.md`: Updated CLI documentation
202+
203+
- `docs/usage/config.md`: Simplified configuration guide
204+
205+
- `docs/usage/network-graph.md`: Updated graph documentation
206+
207+
- `docs/usage/recent-notes.md`: Updated recent notes guide
208+
209+
- **Graph Module Restructuring**: Moved graph functionality to package root
210+
211+
- `utils/graphps/graph.py``graph.py` (now 74 lines vs. original implementation)
212+
213+
- `utils/graphps/handlers.py`: Removed (101 lines) - logic integrated into main module
214+
215+
- Static assets moved: `utils/graphps/static/``static/`
216+
217+
### Removed
218+
219+
- **Asset Management System**: Complete removal of automatic asset directory management
220+
221+
- Users now manage asset organization manually
222+
223+
- No more automatic asset path processing during build
224+
225+
- Removed asset catalog and tree structure validation
226+
227+
- **Template System**: Removed note template functionality
228+
229+
- No more template variables (`{{title}}`, `{{date}}`, etc.)
230+
231+
- No template validation or creation tools
232+
233+
- Users manage note templates manually if needed
234+
235+
- **Frontmatter Management**: Removed comprehensive frontmatter system
236+
237+
- No metadata registry or field validation
238+
239+
- No custom metadata field support
240+
241+
- Basic frontmatter parsing remains for title/date extraction
242+
243+
- **Advanced Validation**: Removed structure compliance checking
244+
245+
- No asset tree validation
246+
247+
- No note directory initialization
248+
249+
- Simplified file scanning without complex validation
250+
251+
### Fixed
252+
253+
- **Code Complexity**: Resolved over-engineering issues from v2.x architecture
254+
255+
- Removed unnecessary abstraction layers
256+
257+
- Eliminated redundant validation logic
258+
259+
- Simplified error handling and logging
260+
261+
- **Maintenance Burden**: Addressed difficulty in maintaining large codebase
262+
263+
- Reduced total lines of code by ~77% (12,000 → 2,700 lines)
264+
265+
- Eliminated 6,000+ lines of test code for removed features
266+
267+
- Simplified dependency tree and module interactions
268+
269+
### Migration Guide
270+
271+
For users upgrading from v2.x to v3.0.0:
272+
273+
1. **Configuration Changes**:
274+
275+
- Remove deprecated options: `assets_dir`, `notes_template`, `cache_size`, `exclude_patterns`, `use_git_timestamps`, `timestamp_zone`
276+
277+
- Keep only: `enabled`, `notes_root`, `recent_notes_config`, `graph_config`
278+
279+
2. **Asset Management**:
280+
281+
- Plugin no longer manages assets automatically
282+
283+
- Organize assets manually in your preferred structure
284+
285+
- Use standard MkDocs asset handling
286+
287+
3. **Template Usage**:
288+
289+
- Plugin no longer provides template system
290+
291+
- Create note templates manually if needed
292+
293+
- Use external tools for template management
294+
295+
4. **CLI Commands**:
296+
297+
- `mkdocs-note init`: No longer available (not needed)
298+
299+
- `mkdocs-note validate`: No longer available (validation removed)
300+
301+
- `mkdocs-note template`: No longer available (template system removed)
302+
303+
- Other commands (`new`, `remove`, `move`, `clean`) still available with simplified behavior
304+
305+
5. **Custom Integrations**:
306+
307+
- If you imported internal modules (e.g., `mkdocs_note.utils.assetps`), these no longer exist
308+
309+
- Update imports to use new structure: `mkdocs_note.utils.meta`, `mkdocs_note.utils.scanner`
310+
311+
### Technical Details
312+
313+
- **Code Statistics**:
314+
315+
- Files changed: 61 files
316+
317+
- Insertions: +2,702 lines
318+
319+
- Deletions: -9,329 lines
320+
321+
- Net reduction: -6,627 lines (-77% of v2.x codebase)
322+
323+
- **Dependency Updates**:
324+
325+
- Removed custom logging dependencies
326+
327+
- Simplified MkDocs integration
328+
329+
- **Performance Improvements**:
330+
331+
- Faster build times due to reduced processing overhead
332+
333+
- Lower memory footprint
334+
335+
- Simpler file scanning logic
336+
8337
## 2.1.5 - 2025-10-30
9338

10339
### Fixed

docs/contributing/architecture.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
date: 2025-11-05 00:25:00
3+
title: Architecture Overview
4+
permalink:
5+
publish: false
6+
---
7+
18
# Architecture Overview (v2.0.0+)
29

310
This document describes the complete architecture of the MkDocs-Note plugin in v2.0.0+, including modular refactoring, frontmatter metadata system, and co-located resource management.

0 commit comments

Comments
 (0)