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
data/hyperlist.gemspec
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "hyperlist"
|
3
|
+
spec.version = "1.0.0"
|
4
|
+
spec.authors = ["Geir Isene"]
|
5
|
+
spec.email = ["g@isene.com"]
|
6
|
+
|
7
|
+
spec.summary = "A powerful Terminal User Interface for HyperList management"
|
8
|
+
spec.description = "HyperList is a Ruby TUI application for creating, editing, and managing hierarchical lists using the HyperList methodology. It features rich syntax highlighting, advanced folding, powerful navigation, full editing capabilities, checkbox support, and multiple export formats."
|
9
|
+
spec.homepage = "https://github.com/isene/HyperList"
|
10
|
+
spec.license = "Unlicense"
|
11
|
+
spec.required_ruby_version = ">= 3.0.0"
|
12
|
+
|
13
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
14
|
+
spec.metadata["source_code_uri"] = "https://github.com/isene/HyperList"
|
15
|
+
spec.metadata["documentation_uri"] = "https://isene.org/hyperlist/"
|
16
|
+
spec.metadata["changelog_uri"] = "https://github.com/isene/HyperList/blob/main/CHANGELOG.md"
|
17
|
+
|
18
|
+
# Specify which files should be added to the gem when it is released.
|
19
|
+
spec.files = Dir.chdir(__dir__) do
|
20
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
21
|
+
(File.expand_path(f) == __FILE__) ||
|
22
|
+
f.start_with?(*%w[test/ spec/ features/ .git .github .gitignore])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
spec.bindir = "."
|
27
|
+
spec.executables = ["hyperlist"]
|
28
|
+
spec.require_paths = ["."]
|
29
|
+
|
30
|
+
# Runtime dependencies
|
31
|
+
spec.add_runtime_dependency "rcurses", "~> 5.1"
|
32
|
+
|
33
|
+
# Development dependencies
|
34
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
35
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
36
|
+
end
|
data/sample.hl
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
HyperList Sample Document
|
2
|
+
Project Management #project
|
3
|
+
[ ] Planning Phase
|
4
|
+
[X] Define objectives
|
5
|
+
[X] Identify stakeholders
|
6
|
+
[O] Create timeline
|
7
|
+
[ ] Budget estimation
|
8
|
+
Research costs
|
9
|
+
Get quotes from vendors
|
10
|
+
[3] Review with finance team
|
11
|
+
Implementation
|
12
|
+
Development Tasks
|
13
|
+
[ ] Backend API
|
14
|
+
Authentication module
|
15
|
+
Database schema
|
16
|
+
REST endpoints
|
17
|
+
[ ] Frontend UI
|
18
|
+
Login page
|
19
|
+
Dashboard
|
20
|
+
Reports section
|
21
|
+
Testing
|
22
|
+
Unit tests
|
23
|
+
Integration tests
|
24
|
+
User acceptance testing
|
25
|
+
Documentation
|
26
|
+
Technical documentation
|
27
|
+
User manual
|
28
|
+
Training materials
|
29
|
+
Personal Tasks #personal
|
30
|
+
[X] Morning routine
|
31
|
+
[X] Exercise
|
32
|
+
[X] Breakfast
|
33
|
+
[X] Review calendar
|
34
|
+
[x] 2025-08-11 13.30: Review meeting notes
|
35
|
+
[ ] Shopping list
|
36
|
+
[5 liters] Milk
|
37
|
+
[2 packages] Butter
|
38
|
+
Vegetables
|
39
|
+
Tomatoes
|
40
|
+
Lettuce
|
41
|
+
Carrots
|
42
|
+
Learning goals
|
43
|
+
*Master* Ruby programming
|
44
|
+
Study /design patterns/
|
45
|
+
Practice _algorithms_
|
46
|
+
References and Links
|
47
|
+
<file:~/Documents/specs.pdf>
|
48
|
+
<https://example.com/documentation>
|
49
|
+
See also: <Project Management>
|
50
|
+
Previous version: <-10>
|
51
|
+
Complex Examples
|
52
|
+
2025-08-11 11.51: Meeting notes
|
53
|
+
State: System initialized
|
54
|
+
Transition: User login -> Dashboard
|
55
|
+
[2..5] Retry attempts allowed
|
56
|
+
[?] Optional configuration
|
57
|
+
; This is a comment
|
58
|
+
Setting A = value1
|
59
|
+
Setting B = value2
|
60
|
+
Examples with parentheses and quotes
|
61
|
+
Meeting (scheduled for 2pm)
|
62
|
+
Task "Review documentation" (high priority)
|
63
|
+
Note: 'This is important' (see reference)
|
64
|
+
Conditional examples with operators
|
65
|
+
AND: Complete all tests AND: Deploy to production
|
66
|
+
OR: Use Docker OR: Use Kubernetes
|
67
|
+
IF: Tests pass THEN: Deploy automatically
|
68
|
+
NOT: Include debug logs
|
69
|
+
WHEN: User logged in THEN: Show dashboard
|
70
|
+
UNLESS: Admin privileges THEN: Deny access
|
71
|
+
Multi-level nesting example
|
72
|
+
Level 1
|
73
|
+
Level 2
|
74
|
+
Level 3
|
75
|
+
Level 4
|
76
|
+
Level 5
|
77
|
+
Deep nesting test
|
78
|
+
Markdown-style formatting
|
79
|
+
*Bold text example*
|
80
|
+
/Italic text example/
|
81
|
+
_Underlined text example_
|
82
|
+
Combined: *bold and /italic/ together*
|
83
|
+
Hash tags: #important #urgent #review
|
data/screenshot_help.png
ADDED
Binary file
|
Binary file
|
data/test.hl
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
HyperList Ruby TUI Test Suite v1.0
|
2
|
+
About This Test Suite
|
3
|
+
Purpose: Test all features of the HyperList Ruby TUI application
|
4
|
+
Run with: ./hyperlist test.hl
|
5
|
+
Navigate through and test each feature systematically
|
6
|
+
|
7
|
+
SYNTAX HIGHLIGHTING & COLORS
|
8
|
+
Check: Property in red; Dates like 2025-08-12 should be red
|
9
|
+
AND: OR: IF: THEN: Operators should appear in blue
|
10
|
+
[?] Conditional checkboxes should be green
|
11
|
+
#hashtags should appear in yellow/orange
|
12
|
+
<references> should appear in magenta
|
13
|
+
(parentheses content) should be in cyan
|
14
|
+
"quoted strings" should be in bright cyan
|
15
|
+
*bold text* should appear bold
|
16
|
+
/italic text/ should appear italic
|
17
|
+
_underlined text_ should appear underlined
|
18
|
+
; Comments should be in cyan
|
19
|
+
Templates with = markers for filling
|
20
|
+
|
21
|
+
NAVIGATION TESTS
|
22
|
+
Basic Movement
|
23
|
+
j/↓ Move down through items
|
24
|
+
k/↑ Move up through items
|
25
|
+
h Go to parent item (move cursor here and press h)
|
26
|
+
l Go to first child (press l from parent)
|
27
|
+
g/Home Go to top of document
|
28
|
+
G/End Go to bottom of document
|
29
|
+
PgUp/PgDn Page up and down
|
30
|
+
Search
|
31
|
+
/ Search for text (try searching for "test")
|
32
|
+
n Jump to next search match
|
33
|
+
Marks and Jumps
|
34
|
+
ma Set mark 'a' at current position
|
35
|
+
'a Jump back to mark 'a'
|
36
|
+
'' Jump to previous position
|
37
|
+
R Jump to reference (place cursor on <NAVIGATION TESTS> and press R)
|
38
|
+
Template Navigation
|
39
|
+
First template =
|
40
|
+
Second template =
|
41
|
+
Third template =
|
42
|
+
Press N to jump to next template marker and edit
|
43
|
+
|
44
|
+
FOLDING TESTS
|
45
|
+
Space Toggle fold on this item
|
46
|
+
This child should hide/show when parent is folded
|
47
|
+
And this grandchild too
|
48
|
+
Even deeper nesting works
|
49
|
+
za Toggle all folds recursively
|
50
|
+
zo Open fold / zc Close fold
|
51
|
+
zR Open all folds / zM Close all folds
|
52
|
+
1-9 Expand to specific level (try pressing 2)
|
53
|
+
Level 2 item
|
54
|
+
Level 3 item
|
55
|
+
Level 4 item
|
56
|
+
Level 5 item
|
57
|
+
0 Multi-digit fold level (press 0 then 1 then 2 for level 12)
|
58
|
+
|
59
|
+
EDITING TESTS
|
60
|
+
Basic Editing
|
61
|
+
i/Enter Edit current line
|
62
|
+
o Insert new line below
|
63
|
+
O Insert new line above
|
64
|
+
a Insert child item
|
65
|
+
Delete Operations
|
66
|
+
D Delete and yank current line only
|
67
|
+
C-D Delete and yank item with all descendants
|
68
|
+
Copy/Paste
|
69
|
+
y Copy current line only
|
70
|
+
Y Copy item with descendants
|
71
|
+
p Paste yanked content
|
72
|
+
Undo/Redo
|
73
|
+
u Undo last change
|
74
|
+
r/C-R Redo undone change
|
75
|
+
. Repeat last action
|
76
|
+
Moving Items
|
77
|
+
S-UP/S-DOWN Move single item up/down
|
78
|
+
C-UP/C-DOWN Move item with descendants up/down
|
79
|
+
Indentation
|
80
|
+
Tab Indent item and children
|
81
|
+
S-Tab Unindent item and children
|
82
|
+
→ Indent item only
|
83
|
+
← Unindent item only
|
84
|
+
|
85
|
+
CHECKBOX TESTS
|
86
|
+
[ ] Press v to add/toggle checkbox
|
87
|
+
[X] Completed checkbox (green)
|
88
|
+
[O] In progress checkbox (bright green bold)
|
89
|
+
[-] Partial checkbox (dim green)
|
90
|
+
[?] Conditional checkbox (green)
|
91
|
+
[3] Numbered checkbox
|
92
|
+
[2025-08-12 14:30] Date checkbox
|
93
|
+
Press V to toggle with timestamp
|
94
|
+
|
95
|
+
SPECIAL FEATURES
|
96
|
+
Presentation Mode
|
97
|
+
Press P to enter presentation mode
|
98
|
+
Current item and ancestors shown, rest hidden
|
99
|
+
Press P again to exit
|
100
|
+
Underline Toggle
|
101
|
+
\u Toggle underlining of state/transition items
|
102
|
+
S: State items (descriptive)
|
103
|
+
T: Transition items (actions)
|
104
|
+
File Operations
|
105
|
+
F Open file reference (place cursor on file path)
|
106
|
+
<sample.hl> Try opening this reference with F
|
107
|
+
|
108
|
+
FILE COMMANDS
|
109
|
+
:w Save file
|
110
|
+
:q Quit (asks to save if modified)
|
111
|
+
:wq Save and quit
|
112
|
+
Q Force quit without saving
|
113
|
+
:e filename Open another file
|
114
|
+
:recent Show recent files
|
115
|
+
:export md Export to Markdown
|
116
|
+
:export html Export to HTML
|
117
|
+
:export txt Export to plain text
|
118
|
+
:graph Generate PNG graph visualization
|
119
|
+
:vsplit Split view vertically
|
120
|
+
ww Switch between split panes
|
121
|
+
:as on Enable autosave
|
122
|
+
:as off Disable autosave
|
123
|
+
:as 30 Set autosave interval to 30 seconds
|
124
|
+
|
125
|
+
ADVANCED TESTS
|
126
|
+
Complex Nesting
|
127
|
+
Parent 1
|
128
|
+
Child 1.1
|
129
|
+
Grandchild 1.1.1
|
130
|
+
Great-grandchild 1.1.1.1
|
131
|
+
Great-great-grandchild 1.1.1.1.1
|
132
|
+
Child 1.2
|
133
|
+
Grandchild 1.2.1
|
134
|
+
Grandchild 1.2.2
|
135
|
+
Parent 2
|
136
|
+
Child 2.1
|
137
|
+
Child 2.2
|
138
|
+
|
139
|
+
Mixed Formatting
|
140
|
+
Item with *bold* and /italic/ and _underline_
|
141
|
+
Item with #multiple #hash #tags
|
142
|
+
Item with <reference> and (parentheses) and "quotes"
|
143
|
+
AND: Operator with [X] checkbox and 2025-08-12: date
|
144
|
+
|
145
|
+
Long Lines
|
146
|
+
This is a very long line that should wrap properly in the terminal display and maintain proper indentation when it continues on the next visual line without breaking the hierarchical structure of the HyperList
|
147
|
+
|
148
|
+
Special Characters
|
149
|
+
Item with special chars: @#$%^&*(){}[]|\\:;"'<>,.?/
|
150
|
+
Unicode: ★ ☆ ♠ ♣ ♥ ♦ → ← ↑ ↓
|
151
|
+
Emojis: 😀 🎉 ✓ ✗ ⚠️ 📝
|
152
|
+
|
153
|
+
HELP SYSTEM
|
154
|
+
? Show help screen with key bindings
|
155
|
+
?? Show full documentation
|
156
|
+
Use UP/DOWN to scroll through help
|
157
|
+
Press any other key to exit help
|
158
|
+
|
159
|
+
TEST COMPLETION
|
160
|
+
[ ] All syntax highlighting verified
|
161
|
+
[ ] All navigation features tested
|
162
|
+
[ ] All folding operations work
|
163
|
+
[ ] All editing functions tested
|
164
|
+
[ ] Checkboxes functioning correctly
|
165
|
+
[ ] Special features operational
|
166
|
+
[ ] File commands working
|
167
|
+
[ ] Help system accessible
|
168
|
+
|
169
|
+
If all tests pass, the Ruby HyperList TUI is working correctly!
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hyperlist
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Geir Isene
|
8
|
+
autorequire:
|
9
|
+
bindir: "."
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-08-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rcurses
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '13.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '13.0'
|
55
|
+
description: HyperList is a Ruby TUI application for creating, editing, and managing
|
56
|
+
hierarchical lists using the HyperList methodology. It features rich syntax highlighting,
|
57
|
+
advanced folding, powerful navigation, full editing capabilities, checkbox support,
|
58
|
+
and multiple export formats.
|
59
|
+
email:
|
60
|
+
- g@isene.com
|
61
|
+
executables:
|
62
|
+
- hyperlist
|
63
|
+
extensions: []
|
64
|
+
extra_rdoc_files: []
|
65
|
+
files:
|
66
|
+
- "./hyperlist"
|
67
|
+
- CHANGELOG.md
|
68
|
+
- LICENSE
|
69
|
+
- README.md
|
70
|
+
- hyperlist
|
71
|
+
- hyperlist.gemspec
|
72
|
+
- sample.hl
|
73
|
+
- screenshot_help.png
|
74
|
+
- screenshot_sample.png
|
75
|
+
- test.hl
|
76
|
+
homepage: https://github.com/isene/HyperList
|
77
|
+
licenses:
|
78
|
+
- Unlicense
|
79
|
+
metadata:
|
80
|
+
homepage_uri: https://github.com/isene/HyperList
|
81
|
+
source_code_uri: https://github.com/isene/HyperList
|
82
|
+
documentation_uri: https://isene.org/hyperlist/
|
83
|
+
changelog_uri: https://github.com/isene/HyperList/blob/main/CHANGELOG.md
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- "."
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 3.0.0
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubygems_version: 3.4.20
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: A powerful Terminal User Interface for HyperList management
|
103
|
+
test_files: []
|