scribo 1.0.39 → 1.0.40

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/Gemfile.lock ADDED
@@ -0,0 +1,397 @@
1
+ GIT
2
+ remote: git@github.com:entdec/keypath-ruby.git
3
+ revision: c2ce9a5038c48504a113e26defecaf80f6c82bf2
4
+ branch: master
5
+ specs:
6
+ key_path (1.2.0)
7
+ activesupport (>= 4.0)
8
+
9
+ PATH
10
+ remote: .
11
+ specs:
12
+ scribo (1.0.38)
13
+ ancestry
14
+ babel-transpiler (~> 0.7)
15
+ down (~> 5.2)
16
+ importmap-rails
17
+ kaminari
18
+ key_path
19
+ liquidum (~> 1)
20
+ mime-types
21
+ mimemagic
22
+ pg
23
+ rails (> 7)
24
+ rouge (~> 3)
25
+ rubyzip (> 1.1)
26
+ slim-rails (~> 3)
27
+ stimulus-rails
28
+ tailwindcss-rails
29
+ turbo-rails
30
+
31
+ GEM
32
+ remote: https://rubygems.org/
33
+ specs:
34
+ actioncable (7.1.3.2)
35
+ actionpack (= 7.1.3.2)
36
+ activesupport (= 7.1.3.2)
37
+ nio4r (~> 2.0)
38
+ websocket-driver (>= 0.6.1)
39
+ zeitwerk (~> 2.6)
40
+ actionmailbox (7.1.3.2)
41
+ actionpack (= 7.1.3.2)
42
+ activejob (= 7.1.3.2)
43
+ activerecord (= 7.1.3.2)
44
+ activestorage (= 7.1.3.2)
45
+ activesupport (= 7.1.3.2)
46
+ mail (>= 2.7.1)
47
+ net-imap
48
+ net-pop
49
+ net-smtp
50
+ actionmailer (7.1.3.2)
51
+ actionpack (= 7.1.3.2)
52
+ actionview (= 7.1.3.2)
53
+ activejob (= 7.1.3.2)
54
+ activesupport (= 7.1.3.2)
55
+ mail (~> 2.5, >= 2.5.4)
56
+ net-imap
57
+ net-pop
58
+ net-smtp
59
+ rails-dom-testing (~> 2.2)
60
+ actionpack (7.1.3.2)
61
+ actionview (= 7.1.3.2)
62
+ activesupport (= 7.1.3.2)
63
+ nokogiri (>= 1.8.5)
64
+ racc
65
+ rack (>= 2.2.4)
66
+ rack-session (>= 1.0.1)
67
+ rack-test (>= 0.6.3)
68
+ rails-dom-testing (~> 2.2)
69
+ rails-html-sanitizer (~> 1.6)
70
+ actiontext (7.1.3.2)
71
+ actionpack (= 7.1.3.2)
72
+ activerecord (= 7.1.3.2)
73
+ activestorage (= 7.1.3.2)
74
+ activesupport (= 7.1.3.2)
75
+ globalid (>= 0.6.0)
76
+ nokogiri (>= 1.8.5)
77
+ actionview (7.1.3.2)
78
+ activesupport (= 7.1.3.2)
79
+ builder (~> 3.1)
80
+ erubi (~> 1.11)
81
+ rails-dom-testing (~> 2.2)
82
+ rails-html-sanitizer (~> 1.6)
83
+ activejob (7.1.3.2)
84
+ activesupport (= 7.1.3.2)
85
+ globalid (>= 0.3.6)
86
+ activemodel (7.1.3.2)
87
+ activesupport (= 7.1.3.2)
88
+ activerecord (7.1.3.2)
89
+ activemodel (= 7.1.3.2)
90
+ activesupport (= 7.1.3.2)
91
+ timeout (>= 0.4.0)
92
+ activestorage (7.1.3.2)
93
+ actionpack (= 7.1.3.2)
94
+ activejob (= 7.1.3.2)
95
+ activerecord (= 7.1.3.2)
96
+ activesupport (= 7.1.3.2)
97
+ marcel (~> 1.0)
98
+ activesupport (7.1.3.2)
99
+ base64
100
+ bigdecimal
101
+ concurrent-ruby (~> 1.0, >= 1.0.2)
102
+ connection_pool (>= 2.2.5)
103
+ drb
104
+ i18n (>= 1.6, < 2)
105
+ minitest (>= 5.1)
106
+ mutex_m
107
+ tzinfo (~> 2.0)
108
+ addressable (2.8.6)
109
+ public_suffix (>= 2.0.2, < 6.0)
110
+ ancestry (4.3.3)
111
+ activerecord (>= 5.2.6)
112
+ ansi (1.5.0)
113
+ ast (2.4.2)
114
+ auxilium (3.0.24)
115
+ actionpack (> 5.1)
116
+ activemodel (> 5.1)
117
+ activesupport (> 5.1)
118
+ pundit (> 2)
119
+ responders (> 3)
120
+ rolify (> 5)
121
+ babel-source (5.8.35)
122
+ babel-transpiler (0.7.0)
123
+ babel-source (>= 4.0, < 6)
124
+ execjs (~> 2.0)
125
+ base64 (0.2.0)
126
+ bigdecimal (3.1.6)
127
+ builder (3.2.4)
128
+ byebug (11.1.3)
129
+ capybara (3.40.0)
130
+ addressable
131
+ matrix
132
+ mini_mime (>= 0.1.3)
133
+ nokogiri (~> 1.11)
134
+ rack (>= 1.6.0)
135
+ rack-test (>= 0.6.3)
136
+ regexp_parser (>= 1.5, < 3.0)
137
+ xpath (~> 3.2)
138
+ coderay (1.1.3)
139
+ concurrent-ruby (1.2.3)
140
+ connection_pool (2.4.1)
141
+ crass (1.0.6)
142
+ cuprite (0.15)
143
+ capybara (~> 3.0)
144
+ ferrum (~> 0.14.0)
145
+ date (3.3.4)
146
+ down (5.4.1)
147
+ addressable (~> 2.8)
148
+ drb (2.2.1)
149
+ erubi (1.12.0)
150
+ execjs (2.9.1)
151
+ ferrum (0.14)
152
+ addressable (~> 2.5)
153
+ concurrent-ruby (~> 1.1)
154
+ webrick (~> 1.7)
155
+ websocket-driver (>= 0.6, < 0.8)
156
+ ffi (1.16.3)
157
+ globalid (1.2.1)
158
+ activesupport (>= 6.1)
159
+ i18n (1.14.1)
160
+ concurrent-ruby (~> 1.0)
161
+ importmap-rails (2.0.1)
162
+ actionpack (>= 6.0.0)
163
+ activesupport (>= 6.0.0)
164
+ railties (>= 6.0.0)
165
+ io-console (0.7.2)
166
+ irb (1.11.2)
167
+ rdoc
168
+ reline (>= 0.4.2)
169
+ jbuilder (2.11.5)
170
+ actionview (>= 5.0.0)
171
+ activesupport (>= 5.0.0)
172
+ json (2.7.1)
173
+ kaminari (1.2.2)
174
+ activesupport (>= 4.1.0)
175
+ kaminari-actionview (= 1.2.2)
176
+ kaminari-activerecord (= 1.2.2)
177
+ kaminari-core (= 1.2.2)
178
+ kaminari-actionview (1.2.2)
179
+ actionview
180
+ kaminari-core (= 1.2.2)
181
+ kaminari-activerecord (1.2.2)
182
+ activerecord
183
+ kaminari-core (= 1.2.2)
184
+ kaminari-core (1.2.2)
185
+ kramdown (2.4.0)
186
+ rexml
187
+ kramdown-parser-gfm (1.1.0)
188
+ kramdown (~> 2.0)
189
+ language_server-protocol (3.17.0.3)
190
+ liquid (5.1.0)
191
+ liquidum (1.0.17)
192
+ addressable (~> 2)
193
+ babel-transpiler (~> 0.7)
194
+ i18n (~> 1.8)
195
+ kramdown (~> 2.1)
196
+ kramdown-parser-gfm (~> 1.0)
197
+ liquid (= 5.1.0)
198
+ parslet
199
+ pg
200
+ rails (>= 5.2)
201
+ sassc (~> 2.2)
202
+ slim-rails (~> 3.2.0)
203
+ loofah (2.22.0)
204
+ crass (~> 1.0.2)
205
+ nokogiri (>= 1.12.0)
206
+ mail (2.8.1)
207
+ mini_mime (>= 0.1.1)
208
+ net-imap
209
+ net-pop
210
+ net-smtp
211
+ marcel (1.0.4)
212
+ matrix (0.4.2)
213
+ method_source (1.0.0)
214
+ mime-types (3.5.2)
215
+ mime-types-data (~> 3.2015)
216
+ mime-types-data (3.2024.0206)
217
+ mimemagic (0.4.3)
218
+ nokogiri (~> 1)
219
+ rake
220
+ mini_mime (1.1.5)
221
+ mini_portile2 (2.8.5)
222
+ minitest (5.22.2)
223
+ minitest-reporters (1.6.1)
224
+ ansi
225
+ builder
226
+ minitest (>= 5.0)
227
+ ruby-progressbar
228
+ mutex_m (0.2.0)
229
+ net-imap (0.4.10)
230
+ date
231
+ net-protocol
232
+ net-pop (0.1.2)
233
+ net-protocol
234
+ net-protocol (0.2.2)
235
+ timeout
236
+ net-smtp (0.4.0.1)
237
+ net-protocol
238
+ nio4r (2.7.0)
239
+ nokogiri (1.16.2)
240
+ mini_portile2 (~> 2.8.2)
241
+ racc (~> 1.4)
242
+ parallel (1.24.0)
243
+ parser (3.3.0.5)
244
+ ast (~> 2.4.1)
245
+ racc
246
+ parslet (2.0.0)
247
+ pg (1.5.6)
248
+ pry (0.14.2)
249
+ coderay (~> 1.1)
250
+ method_source (~> 1.0)
251
+ pry-byebug (3.10.1)
252
+ byebug (~> 11.0)
253
+ pry (>= 0.13, < 0.15)
254
+ pry-rails (0.3.9)
255
+ pry (>= 0.10.4)
256
+ psych (5.1.2)
257
+ stringio
258
+ public_suffix (5.0.4)
259
+ puma (6.4.2)
260
+ nio4r (~> 2.0)
261
+ pundit (2.3.1)
262
+ activesupport (>= 3.0.0)
263
+ racc (1.7.3)
264
+ rack (3.0.9.1)
265
+ rack-session (2.0.0)
266
+ rack (>= 3.0.0)
267
+ rack-test (2.1.0)
268
+ rack (>= 1.3)
269
+ rackup (2.1.0)
270
+ rack (>= 3)
271
+ webrick (~> 1.8)
272
+ rails (7.1.3.2)
273
+ actioncable (= 7.1.3.2)
274
+ actionmailbox (= 7.1.3.2)
275
+ actionmailer (= 7.1.3.2)
276
+ actionpack (= 7.1.3.2)
277
+ actiontext (= 7.1.3.2)
278
+ actionview (= 7.1.3.2)
279
+ activejob (= 7.1.3.2)
280
+ activemodel (= 7.1.3.2)
281
+ activerecord (= 7.1.3.2)
282
+ activestorage (= 7.1.3.2)
283
+ activesupport (= 7.1.3.2)
284
+ bundler (>= 1.15.0)
285
+ railties (= 7.1.3.2)
286
+ rails-dom-testing (2.2.0)
287
+ activesupport (>= 5.0.0)
288
+ minitest
289
+ nokogiri (>= 1.6)
290
+ rails-html-sanitizer (1.6.0)
291
+ loofah (~> 2.21)
292
+ nokogiri (~> 1.14)
293
+ railties (7.1.3.2)
294
+ actionpack (= 7.1.3.2)
295
+ activesupport (= 7.1.3.2)
296
+ irb
297
+ rackup (>= 1.0.0)
298
+ rake (>= 12.2)
299
+ thor (~> 1.0, >= 1.2.2)
300
+ zeitwerk (~> 2.6)
301
+ rainbow (3.1.1)
302
+ rake (13.1.0)
303
+ rdoc (6.6.2)
304
+ psych (>= 4.0.0)
305
+ regexp_parser (2.9.0)
306
+ reline (0.4.3)
307
+ io-console (~> 0.5)
308
+ responders (3.1.1)
309
+ actionpack (>= 5.2)
310
+ railties (>= 5.2)
311
+ rexml (3.2.6)
312
+ rolify (6.0.1)
313
+ rouge (3.30.0)
314
+ rubocop (1.61.0)
315
+ json (~> 2.3)
316
+ language_server-protocol (>= 3.17.0)
317
+ parallel (~> 1.10)
318
+ parser (>= 3.3.0.2)
319
+ rainbow (>= 2.2.2, < 4.0)
320
+ regexp_parser (>= 1.8, < 3.0)
321
+ rexml (>= 3.2.5, < 4.0)
322
+ rubocop-ast (>= 1.30.0, < 2.0)
323
+ ruby-progressbar (~> 1.7)
324
+ unicode-display_width (>= 2.4.0, < 3.0)
325
+ rubocop-ast (1.31.1)
326
+ parser (>= 3.3.0.4)
327
+ ruby-progressbar (1.13.0)
328
+ rubyzip (2.3.2)
329
+ sassc (2.4.0)
330
+ ffi (~> 1.9)
331
+ selenium-webdriver (4.18.1)
332
+ base64 (~> 0.2)
333
+ rexml (~> 3.2, >= 3.2.5)
334
+ rubyzip (>= 1.2.2, < 3.0)
335
+ websocket (~> 1.0)
336
+ signum (0.3.12)
337
+ pg
338
+ rails (> 6.0)
339
+ state_machines-activemodel
340
+ slim (4.1.0)
341
+ temple (>= 0.7.6, < 0.9)
342
+ tilt (>= 2.0.6, < 2.1)
343
+ slim-rails (3.2.0)
344
+ actionpack (>= 3.1)
345
+ railties (>= 3.1)
346
+ slim (>= 3.0, < 5.0)
347
+ state_machines (0.6.0)
348
+ state_machines-activemodel (0.9.0)
349
+ activemodel (>= 6.0)
350
+ state_machines (>= 0.6.0)
351
+ stimulus-rails (1.3.3)
352
+ railties (>= 6.0.0)
353
+ stringio (3.1.0)
354
+ tailwindcss-rails (2.3.0)
355
+ railties (>= 6.0.0)
356
+ temple (0.8.2)
357
+ thor (1.3.1)
358
+ tilt (2.0.11)
359
+ timeout (0.4.1)
360
+ turbo-rails (2.0.4)
361
+ actionpack (>= 6.0.0)
362
+ activejob (>= 6.0.0)
363
+ railties (>= 6.0.0)
364
+ tzinfo (2.0.6)
365
+ concurrent-ruby (~> 1.0)
366
+ unicode-display_width (2.5.0)
367
+ webrick (1.8.1)
368
+ websocket (1.2.10)
369
+ websocket-driver (0.7.6)
370
+ websocket-extensions (>= 0.1.0)
371
+ websocket-extensions (0.1.5)
372
+ xpath (3.2.0)
373
+ nokogiri (~> 1.8)
374
+ zeitwerk (2.6.13)
375
+
376
+ PLATFORMS
377
+ ruby
378
+
379
+ DEPENDENCIES
380
+ auxilium (~> 3.0)
381
+ capybara
382
+ cuprite
383
+ jbuilder
384
+ key_path!
385
+ minitest (~> 5.11)
386
+ minitest-reporters (~> 1.1)
387
+ pry
388
+ pry-byebug (~> 3)
389
+ pry-rails
390
+ puma
391
+ rubocop
392
+ scribo!
393
+ selenium-webdriver
394
+ signum
395
+
396
+ BUNDLED WITH
397
+ 2.1.4
data/TODO.md ADDED
@@ -0,0 +1,32 @@
1
+ # TODO
2
+
3
+ ## General
4
+
5
+ - Feature: Controller, view and path overrides
6
+ Allow users to override controllers and views (like devise), describe how this should be done.
7
+ This to enable admin pages with authentication, or regular content with authentication.
8
+ Or specific admin page requirements.
9
+
10
+ ## Site/Content
11
+
12
+ - Front-matter defaults - https://jekyllrb.com/docs/configuration/front-matter-defaults/
13
+ - Versioned content
14
+
15
+ ## Liquid
16
+
17
+ - Local tags
18
+ Local tags (https://github.com/Shopify/liquid/pull/590) - a way to make tags only available for certain templates
19
+ ie include should not be available for messages.
20
+ - Mail tag
21
+
22
+ ## Jekyll compatibility
23
+
24
+ - Check filters from Jekyll: https://github.com/jekyll/jekyll/blob/c9b84e2b354067e61cf9878f27665c5c1c02481c/lib/jekyll/filters.rb
25
+
26
+ ## IDE
27
+
28
+ - Allow for multiple tabs and open editors
29
+ - Search for content
30
+ - Use localstorage for changes to prevent loss
31
+ - Allow export, preview from IDE
32
+ - Allow to go back to sites index
File without changes
data/bin/importmap ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative "../test/dummy/config/application"
4
+ require "importmap/commands"
data/bin/rails ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails gems
3
+ # installed from the root of your application.
4
+
5
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
6
+ ENGINE_PATH = File.expand_path('../../lib/scribo/engine', __FILE__)
7
+ APP_PATH = File.expand_path('../../test/dummy/config/application', __FILE__)
8
+
9
+ # Set up gems listed in the Gemfile.
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
11
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
12
+
13
+ require 'rails/all'
14
+ require 'rails/engine/commands'
data/bin/rake ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rake", "rake")
data/bin/rubocop ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rubocop", "rubocop")
data/cli/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ lib/
2
+ scribo
data/cli/scribo.cr ADDED
@@ -0,0 +1,103 @@
1
+ require "compress/zip"
2
+ require "admiral"
3
+ require "yaml"
4
+ require "http/client"
5
+
6
+ class Scribo
7
+ def initialize
8
+ end
9
+
10
+ def zip_and_upload
11
+ if !config["endpoint"]? || config["api_key"]?
12
+ puts "Please configure an endpoint and api_key in your _config.yml:\n\n"
13
+ puts "cli:\n endpoint: https://example.com/\n api_key: someapikey"
14
+ exit
15
+ end
16
+
17
+ zip_file_name = "#{File.basename(Dir.current)}.zip"
18
+ tempfile = File.tempfile(zip_file_name)
19
+ File.open(tempfile.path, "w") do |file|
20
+ Compress::Zip::Writer.open(file) do |zip|
21
+
22
+ Dir.glob("**/*").each do |file_name|
23
+ next if File.directory?(file_name)
24
+ zip.add file_name, File.open(file_name)
25
+ end
26
+ end
27
+ end
28
+
29
+ io = IO::Memory.new
30
+ builder = HTTP::FormData::Builder.new(io, "aA47")
31
+ builder.file("files[]", File.open(tempfile.path), HTTP::FormData::FileMetadata.new(filename: zip_file_name))
32
+ builder.finish
33
+
34
+ response = HTTP::Client.post(import_url, headers: HTTP::Headers{"User-Agent" => "Scribo"}, body: io.to_s)
35
+
36
+ tempfile.delete
37
+ end
38
+
39
+ def init_example(name)
40
+ if Dir.exists?(name)
41
+ puts "A folder #{name} already exists, move this out of the way first."
42
+ exit
43
+ end
44
+
45
+ Dir.mkdir_p("#{name}/assets/images")
46
+ Dir.mkdir_p("#{name}/assets/fonts")
47
+ Dir.mkdir_p("#{name}/assets/style")
48
+ Dir.mkdir_p("#{name}/_layouts")
49
+ File.open("#{name}/_config.yml", "w") do |file|
50
+ file.puts "# General configuration\ntitle: #{name}\nbaseurl: /#{name}\n\n# Scribo command line utility related\n\ncli:\n endpoint: https://example.com/scribo\n api_key: someapikey"
51
+ end
52
+ File.open("#{name}/index.md", "w") do |file|
53
+ file.puts "---\nlayout: default\n---\n# Welcome to #{name}\nYou can find the contents of this page in index.md"
54
+ end
55
+ File.open("#{name}/_layouts/default.html", "w") do |file|
56
+ file.puts %(<!DOCTYPE html>\n<html>\n<head>\n <title></title>\n <meta name="viewport" content="width=device-width, initial-scale=1">\n<body>\n {{content}}\n</body>\n</html>)
57
+ end
58
+ end
59
+
60
+ # private
61
+
62
+ def config
63
+ config = YAML.parse(File.read("_config.yml"))
64
+ config = config["cli"]
65
+ end
66
+
67
+ def import_url
68
+ "#{config["endpoint"]}/api/sites/import"
69
+ end
70
+ end
71
+
72
+ class ScriboCommand < Admiral::Command
73
+ define_help description: "Scribo command line utility"
74
+
75
+ class PublishCommand < Admiral::Command
76
+ def run
77
+ Scribo.new.zip_and_upload
78
+ end
79
+ end
80
+
81
+ class InitCommand < Admiral::Command
82
+ define_help description: "Initializes a new site"
83
+ define_argument name, required: true
84
+
85
+ def run
86
+ Scribo.new.init_example(arguments.name)
87
+ end
88
+ end
89
+
90
+ register_sub_command publish : PublishCommand, description: "Uploads the current site"
91
+ register_sub_command init : InitCommand, description: "Creates a new site"
92
+
93
+ def run
94
+ puts help
95
+
96
+ if !File.exists?("_config.yml")
97
+ puts "\nNo _config.yml found, are you in the correct folder?"
98
+ exit
99
+ end
100
+ end
101
+ end
102
+
103
+ ScriboCommand.run
data/cli/shard.lock ADDED
@@ -0,0 +1,6 @@
1
+ version: 2.0
2
+ shards:
3
+ admiral:
4
+ git: https://github.com/jwaldrip/admiral.cr.git
5
+ version: 1.11.2
6
+
data/cli/shard.yml ADDED
@@ -0,0 +1,18 @@
1
+ name: cli
2
+ version: 0.1.0
3
+
4
+ authors:
5
+ - Tom de Grunt <tom@degrunt.nl>
6
+
7
+ description: |
8
+ Scribo CLI utility
9
+
10
+ dependencies:
11
+ admiral:
12
+ github: jwaldrip/admiral.cr
13
+
14
+ # development_dependencies:
15
+ # webmock:
16
+ # github: manastech/webmock.cr
17
+
18
+ license: MIT
data/docs/content.md ADDED
@@ -0,0 +1,33 @@
1
+ # Content
2
+
3
+ To keep the CMS easy to use and not have to much impact on your existing database,
4
+ all content is kept in one model: `Content`.
5
+ The field 'kind' is used to make a distinction between text-based content (text) and binary content (assets).
6
+
7
+ ## Content
8
+ Text based content (kind: text) is meant for things like:
9
+ - Text (text/plain)
10
+ - HTML (text/html)
11
+ - JavaScript
12
+ - Stylesheets
13
+ - JSON
14
+ - XML
15
+
16
+ Text based content is always going through the liquid templating processor.
17
+
18
+ ### Path
19
+
20
+ All content has a path, and is directly available through a url or path. You can also make it not directly available by using an underscore in the path.
21
+
22
+ ## Assets
23
+ Binary content (kind: assets) is meant for things like:
24
+ - Images
25
+ - Audio
26
+ - Video
27
+ - Documents (Word, Excel, Powerpoint, PDF's)
28
+ - Fonts
29
+ - Others (fe zip)
30
+ - Everything else
31
+
32
+ Assets will always be served in the same way they are stored in the database.
33
+
data/docs/editor.png ADDED
Binary file