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.
- checksums.yaml +7 -0
- data/.rubocop.yml +32 -0
- data/CHANGELOG.md +82 -0
- data/README.md +467 -0
- data/Rakefile +8 -0
- data/TODO.md +167 -0
- data/benchmark.rb +235 -0
- data/exe/jackdaw +6 -0
- data/lib/jackdaw/builder.rb +206 -0
- data/lib/jackdaw/cli.rb +49 -0
- data/lib/jackdaw/cli_helpers.rb +33 -0
- data/lib/jackdaw/commands/build.rb +66 -0
- data/lib/jackdaw/commands/create.rb +111 -0
- data/lib/jackdaw/commands/new.rb +162 -0
- data/lib/jackdaw/commands/serve.rb +28 -0
- data/lib/jackdaw/commands/template.rb +60 -0
- data/lib/jackdaw/feed_generator.rb +113 -0
- data/lib/jackdaw/file_types.rb +171 -0
- data/lib/jackdaw/project.rb +80 -0
- data/lib/jackdaw/renderer.rb +154 -0
- data/lib/jackdaw/scanner.rb +44 -0
- data/lib/jackdaw/seo_helpers.rb +65 -0
- data/lib/jackdaw/server.rb +214 -0
- data/lib/jackdaw/sitemap_generator.rb +72 -0
- data/lib/jackdaw/version.rb +5 -0
- data/lib/jackdaw/watcher.rb +40 -0
- data/lib/jackdaw.rb +54 -0
- data/sig/jackdaw.rbs +4 -0
- metadata +185 -0
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
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: []
|