hyperlist 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +52 -0
- data/LICENSE +24 -0
- data/README.md +216 -0
- data/hyperlist +3874 -0
- data/hyperlist.gemspec +36 -0
- data/sample.hl +83 -0
- data/screenshot_help.png +0 -0
- data/screenshot_sample.png +0 -0
- data/test.hl +169 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 134e2668f610e62a6235ba3ca1a629237321a62b175454cf7b26d1f365e2a2e5
|
4
|
+
data.tar.gz: 1c82ce134d1ce3a91ced0cd0e041c7285721530cd7bd7c802d59b3a850b9a1d2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 60af0235c69750163718233ced6d74436fa3fbf5716ca2cfcc38f8c80bea242193131fe266b1aebaf47c9c95b517df881b0da443cc0a8f7d93c7af74f85cafa7
|
7
|
+
data.tar.gz: dd9f54b1f74513e947f5d9b89a72ff2abe1ccab6af3d4f1c5b607b6e366806b6fd4aca7b3c612b8f469d0bd57c023f1a7b53769f0befa8453575b46f70d84042
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to the HyperList Ruby TUI will be documented in this file.
|
4
|
+
|
5
|
+
## [1.0.0] - 2025-08-12
|
6
|
+
|
7
|
+
### Initial Release
|
8
|
+
|
9
|
+
#### Features
|
10
|
+
- Full HyperList syntax support with color highlighting
|
11
|
+
- Hierarchical list management with unlimited nesting
|
12
|
+
- Advanced folding system with multi-level support
|
13
|
+
- Powerful navigation including marks, jumps, and references
|
14
|
+
- Complete editing capabilities (insert, delete, move, copy, paste)
|
15
|
+
- Multiple checkbox types with completion tracking
|
16
|
+
- Template system with marker navigation
|
17
|
+
- Presentation mode for focused viewing
|
18
|
+
- Search functionality with highlighting
|
19
|
+
- Undo/redo support with repeat last action
|
20
|
+
- Split view for working with multiple lists
|
21
|
+
- Autosave functionality with configurable intervals
|
22
|
+
- Recent files list
|
23
|
+
|
24
|
+
#### Export Formats
|
25
|
+
- HTML with full syntax highlighting and responsive design
|
26
|
+
- Markdown (GitHub-flavored)
|
27
|
+
- Plain text
|
28
|
+
- PNG graph visualization (requires Graphviz)
|
29
|
+
|
30
|
+
#### Text Formatting
|
31
|
+
- Bold (*text*)
|
32
|
+
- Italic (/text/)
|
33
|
+
- Underline (_text_)
|
34
|
+
- References (<reference>)
|
35
|
+
- Hash tags (#tag)
|
36
|
+
- Comments (; comment)
|
37
|
+
- Date/time support
|
38
|
+
|
39
|
+
#### Keyboard Shortcuts
|
40
|
+
- Comprehensive vim-like key bindings
|
41
|
+
- Help system with full documentation
|
42
|
+
- Customizable through command mode
|
43
|
+
|
44
|
+
#### File Support
|
45
|
+
- Native .hl HyperList files
|
46
|
+
- Any text file can be edited as HyperList
|
47
|
+
- UTF-8 support with unicode and emoji
|
48
|
+
|
49
|
+
### Technical
|
50
|
+
- Built with Ruby 3.0+
|
51
|
+
- Uses rcurses for terminal UI
|
52
|
+
- Public Domain license
|
data/LICENSE
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
2
|
+
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
4
|
+
distribute this software, either in source code form or as a compiled
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
6
|
+
means.
|
7
|
+
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
9
|
+
of this software dedicate any and all copyright interest in the
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
11
|
+
of the public at large and to the detriment of our heirs and
|
12
|
+
successors. We intend this dedication to be an overt act of
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
14
|
+
software under copyright law.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
For more information, please refer to <https://unlicense.org>
|
data/README.md
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
# HyperList Ruby TUI
|
2
|
+
|
3
|
+
A powerful Terminal User Interface (TUI) application for creating, editing, and managing HyperLists - a methodology for describing anything in a hierarchical, structured format.
|
4
|
+
|
5
|
+
## What is HyperList?
|
6
|
+
|
7
|
+
HyperList is a universal methodology for describing anything - any state, item, pattern, action, process, transition, program, instruction set, etc. It can be used as an outliner, a todo list handler, a process design tool, a data modeler, or any other way you want to describe something.
|
8
|
+
|
9
|
+
Learn more about the HyperList methodology at: [https://isene.org/hyperlist/](https://isene.org/hyperlist/)
|
10
|
+
|
11
|
+
For historical context and the original VIM implementation, see: [hyperlist.vim](https://github.com/isene/hyperlist.vim)
|
12
|
+
|
13
|
+
## Features
|
14
|
+
|
15
|
+
### Core Functionality
|
16
|
+
- **Hierarchical Organization**: Create multi-level nested lists with unlimited depth
|
17
|
+
- **Rich Syntax Highlighting**: Color-coded elements for better readability
|
18
|
+
- Properties and dates in red
|
19
|
+
- Operators (AND, OR, IF, THEN) in blue
|
20
|
+
- Checkboxes in various shades of green
|
21
|
+
- References in magenta
|
22
|
+
- Hash tags in yellow/orange
|
23
|
+
- Comments in cyan
|
24
|
+
- **Advanced Folding**: Collapse and expand sections with multiple fold levels
|
25
|
+
- **Powerful Navigation**: Jump between items, references, and markers
|
26
|
+
- **Full Editing Capabilities**: Create, edit, delete, move, and reorganize items
|
27
|
+
- **Checkbox Support**: Multiple checkbox types with completion tracking
|
28
|
+
- **Template System**: Jump to and fill in template markers
|
29
|
+
- **Presentation Mode**: Focus on current item and ancestors only
|
30
|
+
|
31
|
+
### Text Formatting
|
32
|
+
- **Bold**: `*text*`
|
33
|
+
- **Italic**: `/text/`
|
34
|
+
- **Underline**: `_text_`
|
35
|
+
- **References**: `<reference name>` or `<file:/path/to/file>`
|
36
|
+
- **Hash tags**: `#tag`
|
37
|
+
- **Comments**: `; comment text`
|
38
|
+
- **Dates**: `2025-08-12` or `2025-08-12 14:30`
|
39
|
+
|
40
|
+
### Export Formats
|
41
|
+
- **HTML**: Full-featured HTML with syntax highlighting
|
42
|
+
- **Markdown**: GitHub-flavored Markdown
|
43
|
+
- **Plain Text**: Clean text output
|
44
|
+
- **PNG Graph**: Visual representation using Graphviz
|
45
|
+
|
46
|
+
### File Operations
|
47
|
+
- Multiple file support with recent files list
|
48
|
+
- Autosave functionality with configurable intervals
|
49
|
+
- Split view for working with multiple lists
|
50
|
+
|
51
|
+
## Installation
|
52
|
+
|
53
|
+
### Prerequisites
|
54
|
+
- Ruby 3.0 or higher
|
55
|
+
- rcurses gem: `gem install rcurses`
|
56
|
+
- Optional: Graphviz for PNG export (`apt-get install graphviz` or `brew install graphviz`)
|
57
|
+
|
58
|
+
### Install from RubyGems
|
59
|
+
```bash
|
60
|
+
gem install hyperlist
|
61
|
+
```
|
62
|
+
|
63
|
+
### Install from Source
|
64
|
+
```bash
|
65
|
+
git clone https://github.com/isene/HyperList.git
|
66
|
+
cd HyperList
|
67
|
+
chmod +x hyperlist
|
68
|
+
./hyperlist
|
69
|
+
```
|
70
|
+
|
71
|
+
## Usage
|
72
|
+
|
73
|
+
### Basic Usage
|
74
|
+
```bash
|
75
|
+
hyperlist # Start with empty document
|
76
|
+
hyperlist file.hl # Open existing HyperList file
|
77
|
+
hyperlist file.txt # Open any text file
|
78
|
+
```
|
79
|
+
|
80
|
+
### Key Bindings
|
81
|
+
|
82
|
+
#### Navigation
|
83
|
+
- `j/↓` - Move down
|
84
|
+
- `k/↑` - Move up
|
85
|
+
- `h` - Go to parent item
|
86
|
+
- `l` - Go to first child
|
87
|
+
- `g/Home` - Go to top
|
88
|
+
- `G/End` - Go to bottom
|
89
|
+
- `/` - Search
|
90
|
+
- `n` - Next search match
|
91
|
+
- `N` - Next template marker (=)
|
92
|
+
|
93
|
+
#### Editing
|
94
|
+
- `i/Enter` - Edit line
|
95
|
+
- `o` - Insert line below
|
96
|
+
- `O` - Insert line above
|
97
|
+
- `a` - Insert child item
|
98
|
+
- `D` - Delete and yank line
|
99
|
+
- `C-D` - Delete and yank item with descendants
|
100
|
+
- `y/Y` - Copy line/tree
|
101
|
+
- `p` - Paste
|
102
|
+
|
103
|
+
#### Folding
|
104
|
+
- `Space` - Toggle fold
|
105
|
+
- `za` - Toggle all folds
|
106
|
+
- `1-9` - Expand to level
|
107
|
+
- `0` - Multi-digit fold level
|
108
|
+
|
109
|
+
#### Features
|
110
|
+
- `v` - Toggle checkbox
|
111
|
+
- `V` - Toggle checkbox with timestamp
|
112
|
+
- `R` - Go to reference
|
113
|
+
- `F` - Open file reference
|
114
|
+
- `P` - Presentation mode
|
115
|
+
- `?` - Help screen
|
116
|
+
|
117
|
+
#### File Commands
|
118
|
+
- `:w` - Save
|
119
|
+
- `:q` - Quit
|
120
|
+
- `:wq` - Save and quit
|
121
|
+
- `:e file` - Open file
|
122
|
+
- `:export html` - Export to HTML
|
123
|
+
- `:export md` - Export to Markdown
|
124
|
+
- `:graph` - Export to PNG
|
125
|
+
|
126
|
+
## Examples
|
127
|
+
|
128
|
+
### Simple Todo List
|
129
|
+
```
|
130
|
+
Daily Tasks
|
131
|
+
[ ] Morning review
|
132
|
+
[ ] Check emails
|
133
|
+
[ ] Review calendar
|
134
|
+
[ ] Development work
|
135
|
+
[ ] Fix bug #123
|
136
|
+
[ ] Code review
|
137
|
+
[X] Lunch break
|
138
|
+
[ ] Afternoon tasks
|
139
|
+
```
|
140
|
+
|
141
|
+
### Project Structure
|
142
|
+
```
|
143
|
+
MyProject #project
|
144
|
+
Planning Phase
|
145
|
+
[X] Define objectives
|
146
|
+
[O] Identify stakeholders
|
147
|
+
[ ] Create timeline
|
148
|
+
Implementation
|
149
|
+
Backend Development
|
150
|
+
Authentication module
|
151
|
+
Database schema
|
152
|
+
REST endpoints
|
153
|
+
Frontend Development
|
154
|
+
Login page
|
155
|
+
Dashboard
|
156
|
+
Documentation
|
157
|
+
Technical docs
|
158
|
+
User manual
|
159
|
+
```
|
160
|
+
|
161
|
+
### Meeting Notes with References
|
162
|
+
```
|
163
|
+
Team Meeting 2025-08-12 14:00
|
164
|
+
Participants
|
165
|
+
John (PM)
|
166
|
+
Sarah (Dev)
|
167
|
+
Mike (Design)
|
168
|
+
Discussion Points
|
169
|
+
Sprint planning <Sprint-23>
|
170
|
+
Bug review <file:./bugs.hl>
|
171
|
+
Design updates
|
172
|
+
; Mike will share mockups
|
173
|
+
Action Items
|
174
|
+
[ ] John: Update roadmap
|
175
|
+
[ ] Sarah: Fix critical bugs
|
176
|
+
[ ] Mike: Finalize designs
|
177
|
+
```
|
178
|
+
|
179
|
+
## Configuration
|
180
|
+
|
181
|
+
The application stores configuration in `~/.hyperlist/`:
|
182
|
+
- `recent_files.txt` - List of recently opened files
|
183
|
+
- `marks.yml` - Saved marks across sessions
|
184
|
+
|
185
|
+
## Testing
|
186
|
+
|
187
|
+
Run the included test suite:
|
188
|
+
```bash
|
189
|
+
./hyperlist test.hl
|
190
|
+
```
|
191
|
+
|
192
|
+
Follow the instructions in the test file to verify all features are working correctly.
|
193
|
+
|
194
|
+
## Contributing
|
195
|
+
|
196
|
+
Contributions are welcome! Please feel free to submit issues and pull requests.
|
197
|
+
|
198
|
+
## License
|
199
|
+
|
200
|
+
This software is released into the **Public Domain**.
|
201
|
+
|
202
|
+
## Author
|
203
|
+
|
204
|
+
Created by Geir Isene - [https://isene.org](https://isene.org)
|
205
|
+
|
206
|
+
Based on the HyperList methodology and inspired by the original hyperlist.vim plugin.
|
207
|
+
|
208
|
+
## Acknowledgments
|
209
|
+
|
210
|
+
- The rcurses library for excellent terminal UI capabilities
|
211
|
+
- The Ruby community for a wonderful programming language
|
212
|
+
- All contributors and users of HyperList
|
213
|
+
|
214
|
+
---
|
215
|
+
|
216
|
+
For more information about HyperList, visit [https://isene.org/hyperlist/](https://isene.org/hyperlist/)
|