A console-based journaling utility written in Go to help you quickly generate daily Markdown notes and publish them to a centralized index.
- π Create journal entries for today or specific dates
- π Auto-generate home index with links to all entries
- π¨ Beautiful terminal UI with colors and styling
- π Fast and lightweight - single binary with no dependencies
- π Smart date handling with validation
- π Duplicate prevention - won't overwrite existing entries
- π Comprehensive testing with benchmarks
# Clone and install globally
git clone https://github.com/nkostic/mydocs.git
cd mydocs
make build
make install-global
# Now use from anywhere
mydocs new
mydocs help# Build and install to your system PATH
make build
make install-globalNow you can use mydocs from anywhere:
mydocs new
mydocs publish
mydocs help# Install to $GOPATH/bin (requires Go environment)
make installMake sure $GOPATH/bin is in your PATH.
# Build locally
make buildThen use with ./mydocs
mydocs newmydocs new 2025-12-25mydocs publishmydocs versionmydocs helpmydocs/
βββ cmd/mydocs/ # Application entry point
β βββ main.go
βββ internal/ # Core application logic
β βββ create.go # Journal entry creation
β βββ create_test.go # Tests for create functionality
β βββ publish.go # Home index publishing
β βββ publish_test.go # Tests for publish functionality
β βββ styles.go # Terminal UI styling
β βββ version.go # Version information
βββ docs/ # Documentation
β βββ CODE_STANDARDS.MD # Development standards
β βββ INSTRUCTIONS.MD # Original project requirements
βββ .editorconfig # Editor configuration
βββ .gitignore # Git ignore rules
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT License
βββ Makefile # Build and development tasks
βββ README.md # This file
βββ go.mod # Go module definition
make help # Show available commands
make build # Build the binary
make run # Run the application
make test # Run tests
make bench # Run benchmarks
make lint # Run linter
make fmt # Format code
make vet # Run go vet
make clean # Remove built binary
make install # Install to GOPATH/binmake testmake bench# Create entry for today
mydocs new
# Create entry for Christmas
mydocs new 2025-12-25# Update home.md with all journal entries
mydocs publishThis will create a home.md file with links to all your journal entries, sorted by date (newest first).
The project includes comprehensive tests for all core functionality:
- Unit tests for entry creation
- Unit tests for home publishing
- Benchmarks for performance testing
- Table-driven tests following Go best practices
Run the tests with:
go test ./...We welcome contributions! This is an open source project.
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/mydocs.git - Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following our Code Standards
- Run tests:
make test - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request on GitHub
- Follow the Code Standards
- Read the full Contributing Guide
- Write tests for new features
- Use conventional commit messages
- Ensure all CI checks pass
# Install dependencies
go mod tidy
# Build the application
make build
# Run all tests
make test
# Check code quality
make lint && make vet && make fmt- Project Requirements - Original specifications
- Code Standards - Development guidelines
- Contributing Guide - How to contribute
- License - MIT License terms
This project is licensed under the MIT License - see the LICENSE file for details.
Nenad Kostic
This project follows the specifications in docs/INSTRUCTIONS.MD and docs/CODE_STANDARDS.MD.
Built with β€οΈ using: