jackdaw 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.
data/lib/jackdaw.rb ADDED
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Jackdaw - Lightning-fast Ruby static site generator
5
+ #
6
+ # This is the main entry point for the Jackdaw gem. It loads all dependencies
7
+ # and internal modules in the correct order to ensure proper initialization.
8
+ #
9
+ # Philosophy:
10
+ # - Convention over configuration
11
+ # - Speed through parallel processing and incremental builds
12
+ # - Simplicity in structure and usage
13
+ #
14
+
15
+ # External dependencies
16
+ require 'fileutils' # File system operations
17
+ require 'date' # Date parsing for blog posts
18
+ require 'time' # Time formatting for feeds
19
+ require 'erb' # Template engine
20
+ require 'json' # JSON support for server
21
+ require 'listen' # File watching for development server
22
+ require 'kramdown' # Markdown parser
23
+ require 'kramdown-parser-gfm' # GitHub Flavored Markdown support
24
+ require 'rouge' # Syntax highlighting
25
+ require 'parallel' # Multi-threaded processing
26
+ require 'rack' # Web server framework
27
+ require 'rack/handler/puma' # Puma server adapter
28
+ require 'thor' # CLI framework
29
+
30
+ # Internal requires - order matters for dependencies
31
+ require_relative 'jackdaw/version'
32
+ require_relative 'jackdaw/project' # Project structure management
33
+ require_relative 'jackdaw/file_types' # Content, Template, and Asset file abstractions
34
+ require_relative 'jackdaw/scanner' # Directory scanning
35
+ require_relative 'jackdaw/seo_helpers' # SEO meta tag helpers (must be before renderer)
36
+ require_relative 'jackdaw/renderer' # ERB and Markdown rendering
37
+ require_relative 'jackdaw/feed_generator' # RSS/Atom feed generation
38
+ require_relative 'jackdaw/sitemap_generator' # Sitemap.xml generation
39
+ require_relative 'jackdaw/builder' # Build orchestration
40
+ require_relative 'jackdaw/watcher' # File watching
41
+ require_relative 'jackdaw/server' # Development server
42
+ require_relative 'jackdaw/cli_helpers' # Shared CLI utilities
43
+ require_relative 'jackdaw/commands/build' # Build command
44
+ require_relative 'jackdaw/commands/serve' # Serve command
45
+ require_relative 'jackdaw/commands/create' # Create command
46
+ require_relative 'jackdaw/commands/new' # New project command
47
+ require_relative 'jackdaw/commands/template' # Template management command
48
+ require_relative 'jackdaw/cli' # Main CLI entry point
49
+
50
+ # Main Jackdaw module
51
+ module Jackdaw
52
+ # Base error class for Jackdaw-specific exceptions
53
+ class Error < StandardError; end
54
+ end
data/sig/jackdaw.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Jackdaw
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,185 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jackdaw
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nigel Brookes-Thomas
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: kramdown
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.4'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.4'
26
+ - !ruby/object:Gem::Dependency
27
+ name: kramdown-parser-gfm
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.1'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.1'
40
+ - !ruby/object:Gem::Dependency
41
+ name: listen
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.9'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.9'
54
+ - !ruby/object:Gem::Dependency
55
+ name: parallel
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.24'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.24'
68
+ - !ruby/object:Gem::Dependency
69
+ name: puma
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '6.4'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '6.4'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rack
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rouge
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '4.2'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '4.2'
110
+ - !ruby/object:Gem::Dependency
111
+ name: thor
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.3'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.3'
124
+ description: Jackdaw is a minimal, fast static site generator that emphasizes speed,
125
+ incremental builds, and developer experience. Build 600 files in under 1 second
126
+ with parallel processing, live reload, and zero configuration required.
127
+ email:
128
+ - nigel@brookes-thomas.co.uk
129
+ executables:
130
+ - jackdaw
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".rubocop.yml"
135
+ - CHANGELOG.md
136
+ - README.md
137
+ - Rakefile
138
+ - TODO.md
139
+ - benchmark.rb
140
+ - exe/jackdaw
141
+ - lib/jackdaw.rb
142
+ - lib/jackdaw/builder.rb
143
+ - lib/jackdaw/cli.rb
144
+ - lib/jackdaw/cli_helpers.rb
145
+ - lib/jackdaw/commands/build.rb
146
+ - lib/jackdaw/commands/create.rb
147
+ - lib/jackdaw/commands/new.rb
148
+ - lib/jackdaw/commands/serve.rb
149
+ - lib/jackdaw/commands/template.rb
150
+ - lib/jackdaw/feed_generator.rb
151
+ - lib/jackdaw/file_types.rb
152
+ - lib/jackdaw/project.rb
153
+ - lib/jackdaw/renderer.rb
154
+ - lib/jackdaw/scanner.rb
155
+ - lib/jackdaw/seo_helpers.rb
156
+ - lib/jackdaw/server.rb
157
+ - lib/jackdaw/sitemap_generator.rb
158
+ - lib/jackdaw/version.rb
159
+ - lib/jackdaw/watcher.rb
160
+ - sig/jackdaw.rbs
161
+ homepage: https://github.com/BilyRuffian/jackdaw
162
+ licenses: []
163
+ metadata:
164
+ homepage_uri: https://github.com/BilyRuffian/jackdaw
165
+ source_code_uri: https://github.com/yourusername/jackdaw
166
+ changelog_uri: https://github.com/yourusername/jackdaw/blob/main/CHANGELOG.md
167
+ rubygems_mfa_required: 'true'
168
+ rdoc_options: []
169
+ require_paths:
170
+ - lib
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: 4.0.0
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ requirements: []
182
+ rubygems_version: 4.0.3
183
+ specification_version: 4
184
+ summary: Lightning-fast static site generator with convention over configuration
185
+ test_files: []