jekyll-admin 0.8.1 → 0.11.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 +4 -4
- data/README.md +50 -7
- data/lib/jekyll-admin.rb +14 -13
- data/lib/jekyll-admin/apiable.rb +76 -14
- data/lib/jekyll-admin/data_file.rb +19 -16
- data/lib/jekyll-admin/directory.rb +25 -26
- data/lib/jekyll-admin/file_helper.rb +14 -1
- data/lib/jekyll-admin/path_helper.rb +10 -1
- data/lib/jekyll-admin/public/asset-manifest.json +27 -0
- data/lib/jekyll-admin/public/index.html +1 -12
- data/lib/jekyll-admin/public/precache-manifest.64226b0470ae7a98d28d6c8a80943541.js +78 -0
- data/lib/jekyll-admin/public/service-worker.js +39 -0
- data/lib/jekyll-admin/public/static/css/2.9311179f.chunk.css +2 -0
- data/lib/jekyll-admin/public/static/css/2.9311179f.chunk.css.map +1 -0
- data/lib/jekyll-admin/public/static/css/main.51bccafc.chunk.css +5 -0
- data/lib/jekyll-admin/public/static/css/main.51bccafc.chunk.css.map +1 -0
- data/lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js +3 -0
- data/lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js.LICENSE.txt +69 -0
- data/lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js.map +1 -0
- data/lib/jekyll-admin/public/static/js/main.2ce220f0.chunk.js +2 -0
- data/lib/jekyll-admin/public/static/js/main.2ce220f0.chunk.js.map +1 -0
- data/lib/jekyll-admin/public/static/js/runtime-main.e35fac22.js +2 -0
- data/lib/jekyll-admin/public/static/js/runtime-main.e35fac22.js.map +1 -0
- data/lib/jekyll-admin/public/{1dc35d25e61d819a9c357074014867ab.ttf → static/media/fontawesome-webfont.1dc35d25.ttf} +0 -0
- data/lib/jekyll-admin/public/{25a32416abee198dd821b0b17a198a8f.eot → static/media/fontawesome-webfont.25a32416.eot} +0 -0
- data/lib/jekyll-admin/public/{c8ddf1e5e5bf3682bc7bebf30f394148.woff → static/media/fontawesome-webfont.c8ddf1e5.woff} +0 -0
- data/lib/jekyll-admin/public/{d7c639084f684d66a1bc66855d193ed8.svg → static/media/fontawesome-webfont.d7c63908.svg} +0 -0
- data/lib/jekyll-admin/public/{e6cf7c6ec7c2d6f670ae9d762604cb0b.woff2 → static/media/fontawesome-webfont.e6cf7c6e.woff2} +0 -0
- data/lib/jekyll-admin/public/{55131026930a0cd4539d1e2fdb92722d.ttf → static/media/lato-bold.55131026.ttf} +0 -0
- data/lib/jekyll-admin/public/{059514c92565e4045da1a69525dd9ec0.ttf → static/media/lato-regular.059514c9.ttf} +0 -0
- data/lib/jekyll-admin/public/{a770b6797b68e3f8920e473eb824bac0.gif → static/media/loader-big.a770b679.gif} +0 -0
- data/lib/jekyll-admin/public/static/media/rw-widgets.12f0820c.woff +0 -0
- data/lib/jekyll-admin/public/{03945ac4fc7fdefc44bc110bf1ba2393.svg → static/media/rw-widgets.792dcd18.svg} +14 -8
- data/lib/jekyll-admin/public/{e44520ab9079ea7633bfa874bed5d21d.eot → static/media/rw-widgets.bc7c4a59.eot} +0 -0
- data/lib/jekyll-admin/public/{bfc14ac982326f7d0b1340e20d3e0c37.ttf → static/media/rw-widgets.eceddf47.ttf} +0 -0
- data/lib/jekyll-admin/server.rb +23 -16
- data/lib/jekyll-admin/server/{collection.rb → collections.rb} +12 -5
- data/lib/jekyll-admin/server/configuration.rb +9 -6
- data/lib/jekyll-admin/server/data.rb +4 -2
- data/lib/jekyll-admin/server/{draft.rb → drafts.rb} +11 -7
- data/lib/jekyll-admin/server/{page.rb → pages.rb} +24 -5
- data/lib/jekyll-admin/server/site_meta.rb +25 -0
- data/lib/jekyll-admin/server/static_files.rb +83 -0
- data/lib/jekyll-admin/static_server.rb +3 -1
- data/lib/jekyll-admin/urlable.rb +9 -1
- data/lib/jekyll-admin/version.rb +3 -1
- data/lib/jekyll/commands/serve.rb +14 -12
- metadata +60 -62
- data/lib/jekyll-admin/page_without_a_file.rb +0 -7
- data/lib/jekyll-admin/public/33a752211d05af6684e26ec63c2ed965.gif +0 -0
- data/lib/jekyll-admin/public/8b4968b70019a0551a72940c5a2020d3.png +0 -0
- data/lib/jekyll-admin/public/8ea28ca3bfdf27145068e81dd07a34c6.png +0 -0
- data/lib/jekyll-admin/public/99adb54b0f30c0758bb4cb9ed5b80aa8.woff +0 -0
- data/lib/jekyll-admin/public/bundle.js +0 -117
- data/lib/jekyll-admin/public/bundle.js.map +0 -1
- data/lib/jekyll-admin/public/styles.css +0 -5
- data/lib/jekyll-admin/public/styles.css.map +0 -1
- data/lib/jekyll-admin/server/static_file.rb +0 -61
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class Server < Sinatra::Base
|
|
3
5
|
namespace "/collections" do
|
|
@@ -23,8 +25,11 @@ module JekyllAdmin
|
|
|
23
25
|
put "/:collection_id/*?/?:path.:ext" do
|
|
24
26
|
ensure_collection
|
|
25
27
|
|
|
26
|
-
if
|
|
28
|
+
if new?
|
|
29
|
+
ensure_not_overwriting_existing_file
|
|
30
|
+
elsif renamed?
|
|
27
31
|
ensure_requested_file
|
|
32
|
+
ensure_not_overwriting_existing_file
|
|
28
33
|
delete_file_without_process path
|
|
29
34
|
end
|
|
30
35
|
|
|
@@ -66,13 +71,15 @@ module JekyllAdmin
|
|
|
66
71
|
end
|
|
67
72
|
|
|
68
73
|
def entries
|
|
74
|
+
collections_dir = site.config["collections_dir"]
|
|
75
|
+
collection_id, splats = params.values_at("collection_id", "splat")
|
|
69
76
|
args = {
|
|
70
|
-
:base => site.
|
|
71
|
-
:content_type =>
|
|
72
|
-
:splat =>
|
|
77
|
+
:base => site.in_source_dir(collections_dir, "_#{collection_id}"),
|
|
78
|
+
:content_type => collection_id,
|
|
79
|
+
:splat => splats&.first,
|
|
73
80
|
}
|
|
74
81
|
# get the directories inside the requested directory
|
|
75
|
-
directory = JekyllAdmin::Directory.new(directory_path, args)
|
|
82
|
+
directory = JekyllAdmin::Directory.new(directory_path, **args)
|
|
76
83
|
directories = directory.directories
|
|
77
84
|
# merge directories with the documents at the same level
|
|
78
85
|
directories.concat(directory_docs.sort_by(&:date).reverse)
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class Server < Sinatra::Base
|
|
3
5
|
namespace "/configuration" do
|
|
4
6
|
get do
|
|
5
|
-
json(
|
|
7
|
+
json(
|
|
6
8
|
:content => parsed_configuration,
|
|
7
|
-
:raw_content => raw_configuration
|
|
8
|
-
|
|
9
|
+
:raw_content => raw_configuration
|
|
10
|
+
)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
put do
|
|
@@ -16,14 +18,15 @@ module JekyllAdmin
|
|
|
16
18
|
private
|
|
17
19
|
|
|
18
20
|
def overrides
|
|
19
|
-
{
|
|
21
|
+
@overrides ||= {
|
|
20
22
|
"source" => sanitized_path("/"),
|
|
21
23
|
}
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
# Computed configuration, with updates and defaults
|
|
27
|
+
# Returns an instance of Jekyll::Configuration
|
|
25
28
|
def configuration
|
|
26
|
-
@configuration ||=
|
|
29
|
+
@configuration ||= site.config.merge(overrides)
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
# Configuration data, as read by Jekyll
|
|
@@ -35,7 +38,7 @@ module JekyllAdmin
|
|
|
35
38
|
def raw_configuration
|
|
36
39
|
File.read(
|
|
37
40
|
configuration_path,
|
|
38
|
-
Jekyll::Utils.merged_file_read_opts(site, {})
|
|
41
|
+
**Jekyll::Utils.merged_file_read_opts(site, {})
|
|
39
42
|
)
|
|
40
43
|
end
|
|
41
44
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class Server < Sinatra::Base
|
|
3
5
|
# supported extensions, in order of preference, for now, no .csv
|
|
@@ -47,12 +49,12 @@ module JekyllAdmin
|
|
|
47
49
|
|
|
48
50
|
def entries
|
|
49
51
|
args = {
|
|
50
|
-
:base =>
|
|
52
|
+
:base => site.in_source_dir(DataFile.data_dir),
|
|
51
53
|
:content_type => "data",
|
|
52
54
|
:splat => splats.first,
|
|
53
55
|
}
|
|
54
56
|
# get all directories inside the requested directory
|
|
55
|
-
directory = JekyllAdmin::Directory.new(directory_path, args)
|
|
57
|
+
directory = JekyllAdmin::Directory.new(directory_path, **args)
|
|
56
58
|
directories = directory.directories
|
|
57
59
|
|
|
58
60
|
# exclude root level directories which do not have data files
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class Server < Sinatra::Base
|
|
3
5
|
namespace "/drafts" do
|
|
@@ -14,8 +16,11 @@ module JekyllAdmin
|
|
|
14
16
|
put "/*?/?:path.:ext" do
|
|
15
17
|
ensure_html_content
|
|
16
18
|
|
|
17
|
-
if
|
|
19
|
+
if new?
|
|
20
|
+
ensure_not_overwriting_existing_file
|
|
21
|
+
elsif renamed?
|
|
18
22
|
ensure_requested_file
|
|
23
|
+
ensure_not_overwriting_existing_file
|
|
19
24
|
delete_file_without_process path
|
|
20
25
|
end
|
|
21
26
|
|
|
@@ -37,9 +42,7 @@ module JekyllAdmin
|
|
|
37
42
|
# file but reside in a separate directory, `<source_dir>/_drafts/`
|
|
38
43
|
def drafts
|
|
39
44
|
posts = site.collections.find { |l, _c| l == "posts" }
|
|
40
|
-
if posts
|
|
41
|
-
posts[1].docs.find_all { |d| d.output_ext == ".html" && d.draft? }
|
|
42
|
-
end
|
|
45
|
+
posts[1].docs.find_all { |d| d.output_ext == ".html" && d.draft? } if posts
|
|
43
46
|
end
|
|
44
47
|
|
|
45
48
|
# return drafts at the same level as directory
|
|
@@ -71,18 +74,19 @@ module JekyllAdmin
|
|
|
71
74
|
|
|
72
75
|
def ensure_html_content
|
|
73
76
|
return if html_content?
|
|
77
|
+
|
|
74
78
|
content_type :json
|
|
75
79
|
halt 422, json("error_message" => "Invalid file extension for drafts")
|
|
76
80
|
end
|
|
77
81
|
|
|
78
82
|
def entries
|
|
79
83
|
args = {
|
|
80
|
-
:base => site.
|
|
84
|
+
:base => site.in_source_dir("_drafts"),
|
|
81
85
|
:content_type => "drafts",
|
|
82
86
|
:splat => params["splat"].first,
|
|
83
87
|
}
|
|
84
88
|
# get the directories inside the requested directory
|
|
85
|
-
directory = JekyllAdmin::Directory.new(directory_path, args)
|
|
89
|
+
directory = JekyllAdmin::Directory.new(directory_path, **args)
|
|
86
90
|
directories = directory.directories
|
|
87
91
|
|
|
88
92
|
# exclude root level directories which do not have drafts
|
|
@@ -96,7 +100,7 @@ module JekyllAdmin
|
|
|
96
100
|
end
|
|
97
101
|
|
|
98
102
|
def html_content?
|
|
99
|
-
draft =
|
|
103
|
+
draft = Jekyll::PageWithoutAFile.new(
|
|
100
104
|
site,
|
|
101
105
|
site.source,
|
|
102
106
|
"_drafts",
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class Server < Sinatra::Base
|
|
3
5
|
namespace "/pages" do
|
|
@@ -14,13 +16,15 @@ module JekyllAdmin
|
|
|
14
16
|
put "/*?/?:path.:ext" do
|
|
15
17
|
ensure_html_content
|
|
16
18
|
|
|
17
|
-
if
|
|
19
|
+
if new?
|
|
20
|
+
ensure_not_overwriting_existing_file
|
|
21
|
+
elsif renamed?
|
|
18
22
|
ensure_requested_file
|
|
23
|
+
ensure_not_overwriting_existing_file
|
|
19
24
|
delete_file_without_process path
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
write_file write_path, page_body
|
|
23
|
-
|
|
24
28
|
json written_file.to_api(:include_content => true)
|
|
25
29
|
end
|
|
26
30
|
|
|
@@ -36,12 +40,13 @@ module JekyllAdmin
|
|
|
36
40
|
|
|
37
41
|
def ensure_html_content
|
|
38
42
|
return if html_content?
|
|
43
|
+
|
|
39
44
|
content_type :json
|
|
40
45
|
halt 422, json("error_message" => "Invalid file extension for pages")
|
|
41
46
|
end
|
|
42
47
|
|
|
43
48
|
def html_content?
|
|
44
|
-
page =
|
|
49
|
+
page = Jekyll::PageWithoutAFile.new(
|
|
45
50
|
site,
|
|
46
51
|
site.source,
|
|
47
52
|
"",
|
|
@@ -52,7 +57,21 @@ module JekyllAdmin
|
|
|
52
57
|
end
|
|
53
58
|
|
|
54
59
|
def pages
|
|
55
|
-
site.pages.select(
|
|
60
|
+
site.pages.select { |p| html_page_at_source?(p) }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Test if a given page is *physically located* within the source directory and outputs
|
|
64
|
+
# to an HTML file.
|
|
65
|
+
# We don't want *virtual pages* that are generated via plugins.
|
|
66
|
+
def html_page_at_source?(page)
|
|
67
|
+
return false unless page.html?
|
|
68
|
+
|
|
69
|
+
# If page is not an instance of a `Jekyll::Page` subclass, then it needs additional
|
|
70
|
+
# inspection.
|
|
71
|
+
# Can't use `is_a?(Jekyll::Page)` here because it returns true for subclass instances
|
|
72
|
+
return true if page.class == Jekyll::Page
|
|
73
|
+
|
|
74
|
+
File.exist?(site.in_source_dir(page.relative_path))
|
|
56
75
|
end
|
|
57
76
|
|
|
58
77
|
def directory_pages
|
|
@@ -73,7 +92,7 @@ module JekyllAdmin
|
|
|
73
92
|
:splat => params["splat"].first,
|
|
74
93
|
}
|
|
75
94
|
# get all directories inside the requested directory
|
|
76
|
-
directory = JekyllAdmin::Directory.new(directory_path, args)
|
|
95
|
+
directory = JekyllAdmin::Directory.new(directory_path, **args)
|
|
77
96
|
directories = directory.directories
|
|
78
97
|
|
|
79
98
|
# exclude root level directories which do not have pages
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JekyllAdmin
|
|
4
|
+
class Server < Sinatra::Base
|
|
5
|
+
# Jekyll::Site instance method names that return a Hash.
|
|
6
|
+
META_KEYS = [:categories, :layouts, :tags].freeze
|
|
7
|
+
private_constant :META_KEYS
|
|
8
|
+
|
|
9
|
+
namespace "/site_meta" do
|
|
10
|
+
get "/?" do
|
|
11
|
+
json site_meta
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
# Stash a Hash generated with pre-determined keys.
|
|
17
|
+
def site_meta
|
|
18
|
+
@site_meta ||= META_KEYS.zip(META_KEYS.map { |k| site.send(k).keys }).to_h
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Reset memoization of `#site_meta` when the site regenerates
|
|
22
|
+
Jekyll::Hooks.register(:site, :after_reset) { @site_meta = nil }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JekyllAdmin
|
|
4
|
+
class Server < Sinatra::Base
|
|
5
|
+
namespace "/static_files" do
|
|
6
|
+
# End-point to retrieve all static-files in site
|
|
7
|
+
get "/index" do
|
|
8
|
+
json site.static_files.map(&:to_api)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# End-point to retrieve individual directories that contain static-files
|
|
12
|
+
get "/?*" do
|
|
13
|
+
render_404 unless File.exist?(path)
|
|
14
|
+
|
|
15
|
+
if requested_file
|
|
16
|
+
json requested_file.to_api(:include_content => true)
|
|
17
|
+
else
|
|
18
|
+
json entries.map(&:to_api)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
put "/*" do
|
|
23
|
+
if renamed?
|
|
24
|
+
ensure_requested_file
|
|
25
|
+
delete_file_without_process path
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
write_file(write_path, static_file_body)
|
|
29
|
+
json written_file.to_api(:include_content => true)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
delete "/*" do
|
|
33
|
+
ensure_requested_file
|
|
34
|
+
delete_file path
|
|
35
|
+
content_type :json
|
|
36
|
+
status 200
|
|
37
|
+
halt
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
# returns relative path of root level directories that contain static files
|
|
43
|
+
def dirs_at_root
|
|
44
|
+
static_files.map do |file|
|
|
45
|
+
File.dirname(file.path.sub("#{site.source}/", "")).split("/")[0]
|
|
46
|
+
end.uniq
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def directory_files
|
|
50
|
+
static_files.find_all do |file|
|
|
51
|
+
sanitized_path(File.dirname(file.path)) == directory_path
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def entries
|
|
56
|
+
splat = params["splat"].first
|
|
57
|
+
args = {
|
|
58
|
+
:base => site.source,
|
|
59
|
+
:content_type => "static_files",
|
|
60
|
+
:splat => splat,
|
|
61
|
+
}
|
|
62
|
+
# get all directories inside the requested directory
|
|
63
|
+
directory = JekyllAdmin::Directory.new(directory_path, **args)
|
|
64
|
+
directories = directory.directories
|
|
65
|
+
|
|
66
|
+
# exclude root level directories which do not have static files
|
|
67
|
+
directories = directories.select { |d| dirs_at_root.include? d.name.to_s } if splat.empty?
|
|
68
|
+
directories.concat(directory_files)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def static_file_body
|
|
72
|
+
raw_content = request_payload["raw_content"]
|
|
73
|
+
return raw_content if raw_content.is_a?(String) && raw_content != ""
|
|
74
|
+
|
|
75
|
+
Base64.decode64 request_payload["encoded_content"].to_s
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def static_files
|
|
79
|
+
site.static_files.select { |f| f.path.start_with? site.source }
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
class StaticServer < Sinatra::Base
|
|
3
5
|
set :public_dir, File.expand_path("./public", File.dirname(__FILE__))
|
|
4
6
|
|
|
5
|
-
MUST_BUILD_MESSAGE = "Front end not yet built. Run `script/build` to build."
|
|
7
|
+
MUST_BUILD_MESSAGE = "Front end not yet built. Run `script/build` to build."
|
|
6
8
|
|
|
7
9
|
# Allow `/admin` and `/admin/`, and `/admin/*` to serve `/public/dist/index.html`
|
|
8
10
|
get "/*" do
|
data/lib/jekyll-admin/urlable.rb
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module JekyllAdmin
|
|
2
4
|
# Abstract module to be included in Convertible and Document to provide
|
|
3
5
|
# additional, URL-specific functionality without duplicating logic
|
|
4
6
|
module URLable
|
|
5
|
-
|
|
6
7
|
# Absolute URL to the HTTP(S) rendered/served representation of this resource
|
|
7
8
|
def http_url
|
|
8
9
|
return if is_a?(Jekyll::Collection) || is_a?(JekyllAdmin::DataFile)
|
|
9
10
|
return if is_a?(Jekyll::Document) && !collection.write?
|
|
11
|
+
|
|
10
12
|
@http_url ||= Addressable::URI.new(
|
|
11
13
|
:scheme => scheme, :host => host, :port => port,
|
|
12
14
|
:path => path_with_base(JekyllAdmin.site.config["baseurl"], url)
|
|
@@ -23,6 +25,7 @@ module JekyllAdmin
|
|
|
23
25
|
|
|
24
26
|
def entries_url
|
|
25
27
|
return unless is_a?(Jekyll::Collection)
|
|
28
|
+
|
|
26
29
|
"#{api_url}/entries"
|
|
27
30
|
end
|
|
28
31
|
|
|
@@ -30,6 +33,9 @@ module JekyllAdmin
|
|
|
30
33
|
|
|
31
34
|
# URL path relative to `_api/` to retreive the given resource via the API
|
|
32
35
|
# Note: we can't use a case statement here, because === doesn't like includes
|
|
36
|
+
#
|
|
37
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
38
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
|
33
39
|
def resource_path
|
|
34
40
|
if is_a?(Jekyll::Document) && draft?
|
|
35
41
|
"/#{relative_path.sub(%r!\A_!, "")}"
|
|
@@ -45,6 +51,8 @@ module JekyllAdmin
|
|
|
45
51
|
"/pages/#{relative_path}"
|
|
46
52
|
end
|
|
47
53
|
end
|
|
54
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
|
55
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
48
56
|
|
|
49
57
|
# URI.join doesn't like joining two relative paths, and File.join may join
|
|
50
58
|
# with `\` rather than with `/` on windows
|
data/lib/jekyll-admin/version.rb
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Jekyll
|
|
2
4
|
module Commands
|
|
3
5
|
class Serve < Command
|
|
4
6
|
class << self
|
|
7
|
+
private
|
|
8
|
+
|
|
5
9
|
def start_up_webrick(opts, destination)
|
|
6
|
-
if opts["livereload"]
|
|
7
|
-
@reload_reactor.start(opts)
|
|
8
|
-
end
|
|
10
|
+
@reload_reactor.start(opts) if opts["livereload"]
|
|
9
11
|
|
|
10
|
-
server = WEBrick::HTTPServer.new(webrick_opts(opts)).tap { |o| o.unmount("") }
|
|
11
|
-
server.mount(opts["baseurl"], Servlet, destination, file_handler_opts)
|
|
12
|
+
@server = WEBrick::HTTPServer.new(webrick_opts(opts)).tap { |o| o.unmount("") }
|
|
13
|
+
@server.mount(opts["baseurl"].to_s, Servlet, destination, file_handler_opts)
|
|
12
14
|
|
|
13
|
-
jekyll_admin_monkey_patch
|
|
15
|
+
jekyll_admin_monkey_patch
|
|
14
16
|
|
|
15
|
-
Jekyll.logger.info "Server address:", server_address(server, opts)
|
|
16
|
-
launch_browser server, opts if opts["open_url"]
|
|
17
|
-
boot_or_detach server, opts
|
|
17
|
+
Jekyll.logger.info "Server address:", server_address(@server, opts)
|
|
18
|
+
launch_browser @server, opts if opts["open_url"]
|
|
19
|
+
boot_or_detach @server, opts
|
|
18
20
|
end
|
|
19
21
|
|
|
20
|
-
def jekyll_admin_monkey_patch
|
|
21
|
-
server.mount "/admin", Rack::Handler::WEBrick, JekyllAdmin::StaticServer
|
|
22
|
-
server.mount "/_api", Rack::Handler::WEBrick, JekyllAdmin::Server
|
|
22
|
+
def jekyll_admin_monkey_patch
|
|
23
|
+
@server.mount "/admin", Rack::Handler::WEBrick, JekyllAdmin::StaticServer
|
|
24
|
+
@server.mount "/_api", Rack::Handler::WEBrick, JekyllAdmin::Server
|
|
23
25
|
Jekyll.logger.info "JekyllAdmin mode:", ENV["RACK_ENV"] || "production"
|
|
24
26
|
end
|
|
25
27
|
end
|
metadata
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-admin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mert Kahyaoğlu
|
|
8
8
|
- GitHub Open Source
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2020-12-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: jekyll
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- - "
|
|
18
|
+
- - ">="
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '3.7'
|
|
21
|
+
- - "<"
|
|
19
22
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '
|
|
23
|
+
version: '5.0'
|
|
21
24
|
type: :runtime
|
|
22
25
|
prerelease: false
|
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
27
|
requirements:
|
|
25
|
-
- - "
|
|
28
|
+
- - ">="
|
|
29
|
+
- !ruby/object:Gem::Version
|
|
30
|
+
version: '3.7'
|
|
31
|
+
- - "<"
|
|
26
32
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '
|
|
33
|
+
version: '5.0'
|
|
28
34
|
- !ruby/object:Gem::Dependency
|
|
29
35
|
name: sinatra
|
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -54,33 +60,33 @@ dependencies:
|
|
|
54
60
|
- !ruby/object:Gem::Version
|
|
55
61
|
version: '1.4'
|
|
56
62
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
63
|
+
name: bundler
|
|
58
64
|
requirement: !ruby/object:Gem::Requirement
|
|
59
65
|
requirements:
|
|
60
|
-
- - "
|
|
66
|
+
- - ">="
|
|
61
67
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '
|
|
63
|
-
type: :
|
|
68
|
+
version: '1.7'
|
|
69
|
+
type: :development
|
|
64
70
|
prerelease: false
|
|
65
71
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
72
|
requirements:
|
|
67
|
-
- - "
|
|
73
|
+
- - ">="
|
|
68
74
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '
|
|
75
|
+
version: '1.7'
|
|
70
76
|
- !ruby/object:Gem::Dependency
|
|
71
|
-
name:
|
|
77
|
+
name: gem-release
|
|
72
78
|
requirement: !ruby/object:Gem::Requirement
|
|
73
79
|
requirements:
|
|
74
80
|
- - "~>"
|
|
75
81
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '
|
|
82
|
+
version: '0.7'
|
|
77
83
|
type: :development
|
|
78
84
|
prerelease: false
|
|
79
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
86
|
requirements:
|
|
81
87
|
- - "~>"
|
|
82
88
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: '
|
|
89
|
+
version: '0.7'
|
|
84
90
|
- !ruby/object:Gem::Dependency
|
|
85
91
|
name: rake
|
|
86
92
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,19 +116,19 @@ dependencies:
|
|
|
110
116
|
- !ruby/object:Gem::Version
|
|
111
117
|
version: '3.4'
|
|
112
118
|
- !ruby/object:Gem::Dependency
|
|
113
|
-
name: rubocop
|
|
119
|
+
name: rubocop-jekyll
|
|
114
120
|
requirement: !ruby/object:Gem::Requirement
|
|
115
121
|
requirements:
|
|
116
122
|
- - "~>"
|
|
117
123
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: 0.
|
|
124
|
+
version: 0.10.0
|
|
119
125
|
type: :development
|
|
120
126
|
prerelease: false
|
|
121
127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
128
|
requirements:
|
|
123
129
|
- - "~>"
|
|
124
130
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: 0.
|
|
131
|
+
version: 0.10.0
|
|
126
132
|
- !ruby/object:Gem::Dependency
|
|
127
133
|
name: sinatra-cross_origin
|
|
128
134
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -137,20 +143,6 @@ dependencies:
|
|
|
137
143
|
- - "~>"
|
|
138
144
|
- !ruby/object:Gem::Version
|
|
139
145
|
version: '0.3'
|
|
140
|
-
- !ruby/object:Gem::Dependency
|
|
141
|
-
name: gem-release
|
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
|
143
|
-
requirements:
|
|
144
|
-
- - "~>"
|
|
145
|
-
- !ruby/object:Gem::Version
|
|
146
|
-
version: '0.7'
|
|
147
|
-
type: :development
|
|
148
|
-
prerelease: false
|
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
150
|
-
requirements:
|
|
151
|
-
- - "~>"
|
|
152
|
-
- !ruby/object:Gem::Version
|
|
153
|
-
version: '0.7'
|
|
154
146
|
description: Jekyll::Admin is a drop in administrative framework for Jekyll sites.
|
|
155
147
|
email:
|
|
156
148
|
- mertkahyaoglu93@gmail.com
|
|
@@ -166,36 +158,43 @@ files:
|
|
|
166
158
|
- lib/jekyll-admin/data_file.rb
|
|
167
159
|
- lib/jekyll-admin/directory.rb
|
|
168
160
|
- lib/jekyll-admin/file_helper.rb
|
|
169
|
-
- lib/jekyll-admin/page_without_a_file.rb
|
|
170
161
|
- lib/jekyll-admin/path_helper.rb
|
|
171
|
-
- lib/jekyll-admin/public/
|
|
172
|
-
- lib/jekyll-admin/public/059514c92565e4045da1a69525dd9ec0.ttf
|
|
173
|
-
- lib/jekyll-admin/public/1dc35d25e61d819a9c357074014867ab.ttf
|
|
174
|
-
- lib/jekyll-admin/public/25a32416abee198dd821b0b17a198a8f.eot
|
|
175
|
-
- lib/jekyll-admin/public/33a752211d05af6684e26ec63c2ed965.gif
|
|
176
|
-
- lib/jekyll-admin/public/55131026930a0cd4539d1e2fdb92722d.ttf
|
|
177
|
-
- lib/jekyll-admin/public/8b4968b70019a0551a72940c5a2020d3.png
|
|
178
|
-
- lib/jekyll-admin/public/8ea28ca3bfdf27145068e81dd07a34c6.png
|
|
179
|
-
- lib/jekyll-admin/public/99adb54b0f30c0758bb4cb9ed5b80aa8.woff
|
|
180
|
-
- lib/jekyll-admin/public/a770b6797b68e3f8920e473eb824bac0.gif
|
|
181
|
-
- lib/jekyll-admin/public/bfc14ac982326f7d0b1340e20d3e0c37.ttf
|
|
182
|
-
- lib/jekyll-admin/public/bundle.js
|
|
183
|
-
- lib/jekyll-admin/public/bundle.js.map
|
|
184
|
-
- lib/jekyll-admin/public/c8ddf1e5e5bf3682bc7bebf30f394148.woff
|
|
185
|
-
- lib/jekyll-admin/public/d7c639084f684d66a1bc66855d193ed8.svg
|
|
186
|
-
- lib/jekyll-admin/public/e44520ab9079ea7633bfa874bed5d21d.eot
|
|
187
|
-
- lib/jekyll-admin/public/e6cf7c6ec7c2d6f670ae9d762604cb0b.woff2
|
|
162
|
+
- lib/jekyll-admin/public/asset-manifest.json
|
|
188
163
|
- lib/jekyll-admin/public/favicon.ico
|
|
189
164
|
- lib/jekyll-admin/public/index.html
|
|
190
|
-
- lib/jekyll-admin/public/
|
|
191
|
-
- lib/jekyll-admin/public/
|
|
165
|
+
- lib/jekyll-admin/public/precache-manifest.64226b0470ae7a98d28d6c8a80943541.js
|
|
166
|
+
- lib/jekyll-admin/public/service-worker.js
|
|
167
|
+
- lib/jekyll-admin/public/static/css/2.9311179f.chunk.css
|
|
168
|
+
- lib/jekyll-admin/public/static/css/2.9311179f.chunk.css.map
|
|
169
|
+
- lib/jekyll-admin/public/static/css/main.51bccafc.chunk.css
|
|
170
|
+
- lib/jekyll-admin/public/static/css/main.51bccafc.chunk.css.map
|
|
171
|
+
- lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js
|
|
172
|
+
- lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js.LICENSE.txt
|
|
173
|
+
- lib/jekyll-admin/public/static/js/2.c4e847cc.chunk.js.map
|
|
174
|
+
- lib/jekyll-admin/public/static/js/main.2ce220f0.chunk.js
|
|
175
|
+
- lib/jekyll-admin/public/static/js/main.2ce220f0.chunk.js.map
|
|
176
|
+
- lib/jekyll-admin/public/static/js/runtime-main.e35fac22.js
|
|
177
|
+
- lib/jekyll-admin/public/static/js/runtime-main.e35fac22.js.map
|
|
178
|
+
- lib/jekyll-admin/public/static/media/fontawesome-webfont.1dc35d25.ttf
|
|
179
|
+
- lib/jekyll-admin/public/static/media/fontawesome-webfont.25a32416.eot
|
|
180
|
+
- lib/jekyll-admin/public/static/media/fontawesome-webfont.c8ddf1e5.woff
|
|
181
|
+
- lib/jekyll-admin/public/static/media/fontawesome-webfont.d7c63908.svg
|
|
182
|
+
- lib/jekyll-admin/public/static/media/fontawesome-webfont.e6cf7c6e.woff2
|
|
183
|
+
- lib/jekyll-admin/public/static/media/lato-bold.55131026.ttf
|
|
184
|
+
- lib/jekyll-admin/public/static/media/lato-regular.059514c9.ttf
|
|
185
|
+
- lib/jekyll-admin/public/static/media/loader-big.a770b679.gif
|
|
186
|
+
- lib/jekyll-admin/public/static/media/rw-widgets.12f0820c.woff
|
|
187
|
+
- lib/jekyll-admin/public/static/media/rw-widgets.792dcd18.svg
|
|
188
|
+
- lib/jekyll-admin/public/static/media/rw-widgets.bc7c4a59.eot
|
|
189
|
+
- lib/jekyll-admin/public/static/media/rw-widgets.eceddf47.ttf
|
|
192
190
|
- lib/jekyll-admin/server.rb
|
|
193
|
-
- lib/jekyll-admin/server/
|
|
191
|
+
- lib/jekyll-admin/server/collections.rb
|
|
194
192
|
- lib/jekyll-admin/server/configuration.rb
|
|
195
193
|
- lib/jekyll-admin/server/data.rb
|
|
196
|
-
- lib/jekyll-admin/server/
|
|
197
|
-
- lib/jekyll-admin/server/
|
|
198
|
-
- lib/jekyll-admin/server/
|
|
194
|
+
- lib/jekyll-admin/server/drafts.rb
|
|
195
|
+
- lib/jekyll-admin/server/pages.rb
|
|
196
|
+
- lib/jekyll-admin/server/site_meta.rb
|
|
197
|
+
- lib/jekyll-admin/server/static_files.rb
|
|
199
198
|
- lib/jekyll-admin/static_server.rb
|
|
200
199
|
- lib/jekyll-admin/urlable.rb
|
|
201
200
|
- lib/jekyll-admin/version.rb
|
|
@@ -205,7 +204,7 @@ licenses:
|
|
|
205
204
|
- MIT
|
|
206
205
|
metadata:
|
|
207
206
|
allowed_push_host: https://rubygems.org
|
|
208
|
-
post_install_message:
|
|
207
|
+
post_install_message:
|
|
209
208
|
rdoc_options: []
|
|
210
209
|
require_paths:
|
|
211
210
|
- lib
|
|
@@ -213,16 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
213
212
|
requirements:
|
|
214
213
|
- - ">="
|
|
215
214
|
- !ruby/object:Gem::Version
|
|
216
|
-
version:
|
|
215
|
+
version: 2.3.0
|
|
217
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
217
|
requirements:
|
|
219
218
|
- - ">="
|
|
220
219
|
- !ruby/object:Gem::Version
|
|
221
220
|
version: '0'
|
|
222
221
|
requirements: []
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
signing_key:
|
|
222
|
+
rubygems_version: 3.1.4
|
|
223
|
+
signing_key:
|
|
226
224
|
specification_version: 4
|
|
227
225
|
summary: wp-admin for Jekyll, but better
|
|
228
226
|
test_files: []
|