all repos — bibel @ 01c758ad65f39049a6b57f85c0e09c74b5f1f1ea

Unnamed repository; edit this file 'description' to name the repository.

CHANGELOG.md (view raw)

  1# Changelog
  2
  3All notable changes to this project will be documented in this file.
  4
  5The format is based on [Keep a
  6Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
  7[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  8
  9## [Unreleased]
 10
 11## [1.3.0] - 2026-04-17
 12
 13### Added
 14
 15- **TOML configuration file** system with XDG Base Directory Specification
 16compliance
 17  - Configuration file location: `$XDG_CONFIG_HOME/bibel/config.toml` (default:
 18  `~/.config/bibel/config.toml`). macOS and Windows also supported.
 19  - Uses `xdg` for XDG compliance and `viper` for configuration management
 20- **Configuration generation**: `--generate-config` flag creates default
 21configuration file
 22- **Comprehensive TUI aesthetic configuration**:
 23  - `border_style`: "rounded", "double", "single", or "hidden"
 24  - `border_colour`: Custom hex colour for box borders
 25  - `header_colour`: Custom hex colour for header text
 26  - `text_colour`: Custom hex colour for verse content
 27  - `quit_colour`: Custom hex colour for quit message
 28  - `show_quit_message`: Boolean to show/hide "Press q to quit..." message
 29- **Formatter configuration**:
 30  - `header_format`: Customisable header template with variables: `{book}`,
 31  `{chapter}`, `{first_verse}`, `{second_verse}`
 32  - `use_colours`: Enable/disable ANSI colour output in formatted mode
 33- **Date progression configuration**:
 34  - `verses_per_day`: Customisable number of verses per day (default: 12)
 35- **Command-line override**: CLI flags (`--plain`, `--formatted`) override
 36configuration settings
 37- **Configuration validation**: Ensures valid output modes, border styles, and
 38positive verse counts
 39
 40### Changed
 41
 42- **Formatter behaviour**: `FormatHeader()` now reads `header_format` from
 43configuration instead of hardcoded format
 44- **TUI styling**: All aesthetic properties (colours, border style) now
 45configurable via TOML file
 46- **Date progression**: `NewDateProgressionWithConfig()` accepts custom
 47`verses_per_day` parameter
 48- **Application flow**: Configuration loaded before processing, with
 49command-line arguments taking precedence
 50- **Package structure**: Added `internal/config.go` for configuration
 51management
 52
 53## [1.2.0] - 2026-04-16
 54
 55### Added
 56
 57- **TUI framework** using `bubbletea` for interactive terminal user interface
 58- **Styled output** with `lipgloss` for terminal-adaptive colours and borders
 59- **Interactive mode**: Verse displayed in a rounded border box with "Press q
 60to quit..." message
 61- **Smart TTY detection**: Automatically falls back to formatted output in
 62non-interactive environments
 63- **Enhanced argument handling**: `-p/--plain` now outputs plain text without
 64TUI or formatting
 65- **New package structure**: `internal/tui/` containing TUI model and styling
 66components
 67
 68### Changed
 69
 70- **Program flow**: Default mode now launches interactive TUI when run in a
 71terminal
 72- **Plain mode behaviour**: `--plain` flag now outputs only verse text (no
 73header or TUI)
 74- **Terminal detection**: Non-TTY environments show formatted output with ANSI
 75colours
 76- **Dependencies**: Added `bubbletea` and `lipgloss` for TUI functionality
 77
 78## [1.1.0] - 2026-04-16
 79
 80### Added
 81
 82- Argument parsing using `go-arg` library
 83- `-p/--plain` flag to output plain text without chapter name or verse numbers
 84- Program description and help text
 85
 86## [1.0.0] - 2026-04-16
 87
 88### Added
 89
 90- Complete Go migration from original OCaml implementation
 91- Date-based Bible verse progression system
 92  - Calculates position based on day of year (1st January = Matthew 1:1-12)
 93  - Shows 12 verses per day, cycling through all four Gospels yearly
 94- ANSI color-coded output (green for book/chapter, yellow for verse range)
 95- Smart lookahead rule: extends to end of chapter if less than 12 verses remain
 96- Support for Polish "Nowa Biblia Gdańska" translation (`books/pol_nbg.json``)
 97- Complete test suite with edge case validation
 98- `README`` documentation with usage examples and algorithm explanation
 99
100### Changed
101
102- **BREAKING**: Changed from bookmark-based progression to date-based progression
103  - Previous versions used `bookmark.toml` to track reading position
104  - New version calculates position from current date
105  - Backward incompatible with bookmark-based usage
106- Restructured codebase with modular Go packages:
107  - `internal/loader.go`: JSON Bible data loading and indexing
108  - `internal/dateprogression.go`: Date-to-verse position calculation
109  - `internal/formatter.go`: ANSI color formatting and text extraction
110  - `internal/verse.go`: Data structures and constants
111  - `internal/bookmark.go`: Legacy bookmark support (unused in date-based mode)
112
113### Fixed
114
115- Proper handling of chapter and book boundaries
116- Correct modulo wrapping for yearly cycle (total 3779 Gospel verses)
117- Leap year support via Go's standard `time.YearDay()` function
118- Validation of verse ranges and error handling
119
120### Removed
121
122- OCaml implementation
123- Dependency on `bookmark.toml` file for progression
124- Regex-based verse parsing (replaced with JSON Bible data)
125
126## [0.1.0] - 2026-04-16
127
128### Added
129
130- Initial Go port of OCaml Bible verse utility
131- Bookmark-based progression system (TOML file)
132- Support for Polish "Nowa Biblia Gdańska" translation
133- Basic ANSI color formatting
134- Lookahead rule implementation
135
136### Changed
137
138- Rewritten from OCaml to Go programming language
139- Changed data format from custom to JSON
140- Improved error handling and validation