jekyll-potion 1.0.1
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/LICENSE +202 -0
- data/jekyll-potion.gemspec +17 -0
- data/lib/jekyll-potion/logger.rb +49 -0
- data/lib/jekyll-potion/models/favicon.rb +28 -0
- data/lib/jekyll-potion/models/page-potion.rb +86 -0
- data/lib/jekyll-potion/models/potion-page.rb +26 -0
- data/lib/jekyll-potion/models/potion-source-map-page.rb +15 -0
- data/lib/jekyll-potion/models/potion-static-file.rb +21 -0
- data/lib/jekyll-potion/potion.rb +136 -0
- data/lib/jekyll-potion/processor/base/jquery-3.6.0.min.js +2 -0
- data/lib/jekyll-potion/processor/base-template/code.js +40 -0
- data/lib/jekyll-potion/processor/base-template/navigation.js +43 -0
- data/lib/jekyll-potion/processor/base-template/tabs.js +38 -0
- data/lib/jekyll-potion/processor/header-template/header.js +31 -0
- data/lib/jekyll-potion/processor/make-base-javascript-processor.rb +59 -0
- data/lib/jekyll-potion/processor/make-date-processor.rb +30 -0
- data/lib/jekyll-potion/processor/make-empty-content-processor.rb +19 -0
- data/lib/jekyll-potion/processor/make-favicon-processor.rb +108 -0
- data/lib/jekyll-potion/processor/make-front-matter-processor.rb +21 -0
- data/lib/jekyll-potion/processor/make-header-link-processor.rb +103 -0
- data/lib/jekyll-potion/processor/make-navigation-processor.rb +55 -0
- data/lib/jekyll-potion/processor/make-og-tag-processor.rb +45 -0
- data/lib/jekyll-potion/processor/make-search-index-processor.rb +205 -0
- data/lib/jekyll-potion/processor/make-theme-processor.rb +197 -0
- data/lib/jekyll-potion/processor/make-title-processor.rb +53 -0
- data/lib/jekyll-potion/processor/rewrite-a-href-processor.rb +43 -0
- data/lib/jekyll-potion/processor/rewrite-img-processor.rb +42 -0
- data/lib/jekyll-potion/processor/search-template/search.js +123 -0
- data/lib/jekyll-potion/processor.rb +152 -0
- data/lib/jekyll-potion/site.rb +155 -0
- data/lib/jekyll-potion/tag.rb +176 -0
- data/lib/jekyll-potion/tags/alerts.rb +24 -0
- data/lib/jekyll-potion/tags/api.rb +105 -0
- data/lib/jekyll-potion/tags/code.rb +65 -0
- data/lib/jekyll-potion/tags/empty.rb +20 -0
- data/lib/jekyll-potion/tags/file.rb +22 -0
- data/lib/jekyll-potion/tags/link.rb +47 -0
- data/lib/jekyll-potion/tags/logo.rb +22 -0
- data/lib/jekyll-potion/tags/navigation.rb +35 -0
- data/lib/jekyll-potion/tags/pagination.rb +20 -0
- data/lib/jekyll-potion/tags/tabs.rb +62 -0
- data/lib/jekyll-potion/theme/proto/_includes/container.html +10 -0
- data/lib/jekyll-potion/theme/proto/_includes/head.html +4 -0
- data/lib/jekyll-potion/theme/proto/_includes/header.html +21 -0
- data/lib/jekyll-potion/theme/proto/_includes/image.html +5 -0
- data/lib/jekyll-potion/theme/proto/_includes/nav.html +3 -0
- data/lib/jekyll-potion/theme/proto/_includes/search.html +29 -0
- data/lib/jekyll-potion/theme/proto/_layouts/default.html +19 -0
- data/lib/jekyll-potion/theme/proto/_layouts/error.html +23 -0
- data/lib/jekyll-potion/theme/proto/_templates/alerts.liquid +4 -0
- data/lib/jekyll-potion/theme/proto/_templates/api.liquid +46 -0
- data/lib/jekyll-potion/theme/proto/_templates/api=description.liquid +3 -0
- data/lib/jekyll-potion/theme/proto/_templates/api=parameter.liquid +5 -0
- data/lib/jekyll-potion/theme/proto/_templates/api=response.liquid +7 -0
- data/lib/jekyll-potion/theme/proto/_templates/code.liquid +8 -0
- data/lib/jekyll-potion/theme/proto/_templates/empty.liquid +15 -0
- data/lib/jekyll-potion/theme/proto/_templates/file.liquid +8 -0
- data/lib/jekyll-potion/theme/proto/_templates/link.liquid +9 -0
- data/lib/jekyll-potion/theme/proto/_templates/logo.liquid +8 -0
- data/lib/jekyll-potion/theme/proto/_templates/navigation-page.liquid +14 -0
- data/lib/jekyll-potion/theme/proto/_templates/navigation.liquid +5 -0
- data/lib/jekyll-potion/theme/proto/_templates/pagination.liquid +30 -0
- data/lib/jekyll-potion/theme/proto/_templates/tabs.liquid +8 -0
- data/lib/jekyll-potion/theme/proto/_templates/tabs=content.liquid +5 -0
- data/lib/jekyll-potion/theme/proto/assets/css/main.scss +1254 -0
- data/lib/jekyll-potion/theme/proto/assets/css/syntax.css +80 -0
- data/lib/jekyll-potion/theme/proto/assets/js/jsrender.min.js +4 -0
- data/lib/jekyll-potion/theme/proto/assets/js/jsrender.min.js.map +1 -0
- data/lib/jekyll-potion/theme/proto/assets/js/main.js +237 -0
- data/lib/jekyll-potion/theme.rb +165 -0
- data/lib/jekyll-potion/util.rb +73 -0
- data/lib/jekyll-potion.rb +32 -0
- metadata +143 -0
@@ -0,0 +1,105 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class ApiTag < PotionBlock
|
6
|
+
|
7
|
+
QUERY_CATEGORY = "query"
|
8
|
+
BODY_CATEGORY = "body"
|
9
|
+
|
10
|
+
def initialize(tag_name, markup, options)
|
11
|
+
super
|
12
|
+
|
13
|
+
ensure_valid_attr("method", "path", "summary")
|
14
|
+
end
|
15
|
+
|
16
|
+
def blank?
|
17
|
+
false
|
18
|
+
end
|
19
|
+
|
20
|
+
def api_description(page_context)
|
21
|
+
output = []
|
22
|
+
@elements.select { |e| e.instance_of? ApiDescriptionTag }
|
23
|
+
.each { |e| output << e.render(page_context) }
|
24
|
+
output.join
|
25
|
+
end
|
26
|
+
|
27
|
+
def api_responses(page_context)
|
28
|
+
output = []
|
29
|
+
@elements.select { |e| e.instance_of? ApiResponseTag }
|
30
|
+
.each { |e| output << e.render(page_context) }
|
31
|
+
output.join
|
32
|
+
end
|
33
|
+
|
34
|
+
def render(page_context)
|
35
|
+
@params["description"] = api_description(page_context)
|
36
|
+
|
37
|
+
parameter_map = @elements.select { |e| e.instance_of? ApiParameterTag }
|
38
|
+
.group_by { |parameter| parameter.category }
|
39
|
+
.map { |category, parameters| [category, parameters.sort_by { |parameter| parameter.line_number }] }
|
40
|
+
.to_h
|
41
|
+
|
42
|
+
@params["query_parameters"] = parameter_map[QUERY_CATEGORY].map { |query_parameters| query_parameters.render(page_context) }
|
43
|
+
.join if parameter_map.has_key?(QUERY_CATEGORY)
|
44
|
+
|
45
|
+
@params["body_parameters"] = parameter_map[BODY_CATEGORY].map { |query_parameters| query_parameters.render(page_context) }
|
46
|
+
.join if parameter_map.has_key?(BODY_CATEGORY)
|
47
|
+
|
48
|
+
@params["responses"] = api_responses(page_context)
|
49
|
+
|
50
|
+
Potion[:theme].render_template(@template_name, @params)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class ApiDescriptionTag < Liquid::Block
|
55
|
+
include PotionBlockElement
|
56
|
+
|
57
|
+
def render(page_context)
|
58
|
+
@params["description"] = @body.render(page_context)
|
59
|
+
Potion[:theme].render_template(@template_name, @params)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class ApiParameterTag < Liquid::Block
|
64
|
+
include PotionBlockElement
|
65
|
+
|
66
|
+
def initialize(tag_name, markup, options)
|
67
|
+
super
|
68
|
+
|
69
|
+
ensure_valid_attr("name", "type", "category")
|
70
|
+
end
|
71
|
+
|
72
|
+
def category
|
73
|
+
@params["category"]
|
74
|
+
end
|
75
|
+
|
76
|
+
def render(page_context)
|
77
|
+
@params["description"] = @body.render(page_context)
|
78
|
+
Potion[:theme].render_template(@template_name, @params)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class ApiResponseTag < Liquid::Block
|
83
|
+
include PotionBlockElement
|
84
|
+
|
85
|
+
def initialize(tag_name, markup, options)
|
86
|
+
super
|
87
|
+
|
88
|
+
ensure_valid_attr("status")
|
89
|
+
end
|
90
|
+
|
91
|
+
def status
|
92
|
+
@params["status"]
|
93
|
+
end
|
94
|
+
|
95
|
+
def render(page_context)
|
96
|
+
@params["body"] = @body.render(page_context)
|
97
|
+
Potion[:theme].render_template(@template_name, @params)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
Jekyll::Potion::ApiTag.register_tag("description", Jekyll::Potion::ApiDescriptionTag)
|
103
|
+
Jekyll::Potion::ApiTag.register_tag("parameter", Jekyll::Potion::ApiParameterTag)
|
104
|
+
Jekyll::Potion::ApiTag.register_tag("response", Jekyll::Potion::ApiResponseTag)
|
105
|
+
Liquid::Template.register_tag("api", Jekyll::Potion::ApiTag)
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class CodeTag < Liquid::Block
|
6
|
+
CODE_BLOCK_START = Regexp.new(%r!\A`{3,}!im).freeze
|
7
|
+
CODE_BLOCK_END = Regexp.new(%r!`{3,}\z!im).freeze
|
8
|
+
|
9
|
+
CODE_BLOCK = Regexp.new(%r!\A`{3,}(.*)`{3,}\z!im).freeze
|
10
|
+
|
11
|
+
include PotionTag
|
12
|
+
|
13
|
+
def initialize(tag_name, markup, options)
|
14
|
+
@body = ""
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def parse(tokens)
|
19
|
+
block_open = false
|
20
|
+
|
21
|
+
while (token = tokens.shift)
|
22
|
+
strip_token = token.strip
|
23
|
+
|
24
|
+
if CODE_BLOCK.match?(strip_token)
|
25
|
+
@body << token
|
26
|
+
next
|
27
|
+
end
|
28
|
+
|
29
|
+
if not block_open and CODE_BLOCK_START.match?(strip_token)
|
30
|
+
block_open = true
|
31
|
+
end
|
32
|
+
|
33
|
+
if not block_open and strip_token == @end_tag_name
|
34
|
+
return
|
35
|
+
end
|
36
|
+
|
37
|
+
@body << token if block_open
|
38
|
+
|
39
|
+
if block_open and CODE_BLOCK_END.match?(strip_token)
|
40
|
+
block_open = false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
raise SyntaxError, parse_context.locale.t("errors.syntax.tag_never_closed", block_name: @end_tag_name) unless block_open
|
45
|
+
raise SyntaxError, "code block is not closed" if block_open
|
46
|
+
end
|
47
|
+
|
48
|
+
def nodelist
|
49
|
+
[@body]
|
50
|
+
end
|
51
|
+
|
52
|
+
def blank?
|
53
|
+
@body.empty?
|
54
|
+
end
|
55
|
+
|
56
|
+
def render(page_context)
|
57
|
+
@params["body"] = Potion[:site].markdown_convert(@body)
|
58
|
+
@params.merge!(Potion[:tags][:code])
|
59
|
+
|
60
|
+
Potion[:theme].render_template(@template_name, @params)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
Liquid::Template.register_tag("code", Jekyll::Potion::CodeTag)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class EmptyTag < Liquid::Tag
|
6
|
+
include PotionTag
|
7
|
+
|
8
|
+
def initialize(tag_name, markup, options)
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def render(page_context)
|
13
|
+
@params["potion"] = PagePotion.potion(page_context)
|
14
|
+
|
15
|
+
Potion[:theme].render_template(@template_name, @params)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Liquid::Template.register_tag("empty", Jekyll::Potion::EmptyTag)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class FileTag < Liquid::Tag
|
6
|
+
include PotionTag
|
7
|
+
|
8
|
+
def initialize(tag_name, markup, options)
|
9
|
+
super
|
10
|
+
ensure_valid_attr("src")
|
11
|
+
end
|
12
|
+
|
13
|
+
def render(page_context)
|
14
|
+
@params["src"] = Potion[:site].base_url(@params["src"])
|
15
|
+
@params["caption"] = @params["src"] unless @params.has_key?("caption")
|
16
|
+
|
17
|
+
Potion[:theme].render_template(@template_name, @params)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Liquid::Template.register_tag("file", Jekyll::Potion::FileTag)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class LinkTag < Liquid::Tag
|
6
|
+
require "net/http"
|
7
|
+
require "nokogiri"
|
8
|
+
|
9
|
+
include PotionTag
|
10
|
+
|
11
|
+
HTTP_SCHEME = %r!http(s)?://!im.freeze
|
12
|
+
|
13
|
+
def initialize(tag_name, markup, options)
|
14
|
+
super
|
15
|
+
ensure_valid_attr("url")
|
16
|
+
end
|
17
|
+
|
18
|
+
def render(page_context)
|
19
|
+
if @params["url"] =~ HTTP_SCHEME
|
20
|
+
begin
|
21
|
+
res = Net::HTTP.get_response URI(@params["url"])
|
22
|
+
raise RuntimeError, res.class.name unless res.is_a?(Net::HTTPSuccess)
|
23
|
+
html = Nokogiri::HTML.parse(res.body)
|
24
|
+
@params["title"] = html.title
|
25
|
+
@params["description"] = html.at("meta[name='description']")["content"] unless html.at("meta[name='description']").nil?
|
26
|
+
rescue => error
|
27
|
+
logger.warn("#{@params["url"]} is break.", error.message)
|
28
|
+
@params["title"] = @params["url"]
|
29
|
+
end
|
30
|
+
else
|
31
|
+
potion = PagePotion.potion(@params["url"])
|
32
|
+
|
33
|
+
unless potion.nil?
|
34
|
+
@params["title"] = potion.title
|
35
|
+
@params["description"] = potion.description
|
36
|
+
@params["url"] = potion.url
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
@params["title"] = @params["caption"] unless @params["caption"].nil? || @params["caption"].empty?
|
41
|
+
|
42
|
+
Potion[:theme].render_template(@template_name, @params)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
Liquid::Template.register_tag("link", Jekyll::Potion::LinkTag)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class LogoTag < Liquid::Tag
|
6
|
+
include PotionTag
|
7
|
+
|
8
|
+
def initialize(tag_name, markup, options)
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def render(page_context)
|
13
|
+
@params["index_url"] = Potion[:site].index_url
|
14
|
+
@params["site_icon"] = Potion[:site].base_url(Potion[:site][:icon]) unless Potion[:site].empty?(:icon)
|
15
|
+
@params["site_title"] = Potion[:site][:title]
|
16
|
+
|
17
|
+
Potion[:theme].render_template(@template_name, @params)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Liquid::Template.register_tag("logo", Jekyll::Potion::LogoTag)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class NavigationTag < Liquid::Tag
|
6
|
+
include PotionTag
|
7
|
+
|
8
|
+
POTION_KEY = "potion".freeze
|
9
|
+
|
10
|
+
DEFAULT_CONFIG = {
|
11
|
+
"active_class" => "active",
|
12
|
+
"fold_class" => "fold"
|
13
|
+
}
|
14
|
+
|
15
|
+
def initialize(tag_name, markup, options)
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def render(page_context)
|
20
|
+
if @template_name == @tag_name
|
21
|
+
Potion[:site].render_navigation(self)
|
22
|
+
else
|
23
|
+
@params[POTION_KEY] = page_context[POTION_KEY]
|
24
|
+
Potion[:theme].render_template(@template_name, @params)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def render_only_one(navigation)
|
29
|
+
@params["navigation"] = navigation
|
30
|
+
Potion[:theme].render_template(@template_name, @params)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Liquid::Template.register_tag("navigation", Jekyll::Potion::NavigationTag)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class PaginationTag < Liquid::Tag
|
6
|
+
include PotionTag
|
7
|
+
|
8
|
+
def initialize(tag_name, markup, options)
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def render(page_context)
|
13
|
+
@params["potion"] = PagePotion.potion(page_context)
|
14
|
+
|
15
|
+
Potion[:theme].render_template(@template_name, @params)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Liquid::Template.register_tag("pagination", Jekyll::Potion::PaginationTag)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright 2022 SK TELECOM CO., LTD.
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
4
|
+
module Jekyll::Potion
|
5
|
+
class TabsTag < PotionBlock
|
6
|
+
DEFAULT_CONFIG = {
|
7
|
+
"tabs_class" => "tabs",
|
8
|
+
"active_class" => "active"
|
9
|
+
}
|
10
|
+
|
11
|
+
def render_tab_content(page_context)
|
12
|
+
output = []
|
13
|
+
@elements.each { |e| output << e.render(page_context) }
|
14
|
+
output.join
|
15
|
+
end
|
16
|
+
|
17
|
+
def render(page_context)
|
18
|
+
@params["id"] = id
|
19
|
+
|
20
|
+
tabs = []
|
21
|
+
@elements.each_index { |i|
|
22
|
+
@elements[i].first = i == 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
@elements.each do |e|
|
26
|
+
tabs.push({ "title" => e.title, "id" => e.id, "first" => e.first })
|
27
|
+
end
|
28
|
+
|
29
|
+
@params["tabs"] = tabs
|
30
|
+
@params["contents"] = render_tab_content(page_context)
|
31
|
+
@params.merge!(Potion[:tags][:tabs])
|
32
|
+
|
33
|
+
Potion[:theme].render_template(@template_name, @params)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class TabContentTag < Liquid::Block
|
38
|
+
include PotionBlockElement
|
39
|
+
|
40
|
+
attr_accessor :first
|
41
|
+
|
42
|
+
def id_format
|
43
|
+
"tab-content-#{options.line_number}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def title
|
47
|
+
@params["title"]
|
48
|
+
end
|
49
|
+
|
50
|
+
def render(page_context)
|
51
|
+
@params["id"] = id
|
52
|
+
@params["first"] = first
|
53
|
+
@params["body"] = Potion[:site].markdown_convert(@body.render(page_context))
|
54
|
+
@params.merge!(Potion[:tags][:tabs])
|
55
|
+
|
56
|
+
Potion[:theme].render_template(@template_name, @params)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
Jekyll::Potion::TabsTag.register_tag("content", Jekyll::Potion::TabContentTag)
|
62
|
+
Liquid::Template.register_tag("tabs", Jekyll::Potion::TabsTag)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div class="header menu">
|
2
|
+
<div>
|
3
|
+
<div id="menu" class="menu-icon show_menu"></div>
|
4
|
+
</div>
|
5
|
+
</div>
|
6
|
+
<div class="header title">
|
7
|
+
{% logo %}
|
8
|
+
</div>
|
9
|
+
<div class="header search">
|
10
|
+
<div>
|
11
|
+
<div class="search-bar show_search">
|
12
|
+
<div class="search-icon"></div>
|
13
|
+
<div class="search_text">| 검색</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<div class="header search-s">
|
18
|
+
<div>
|
19
|
+
<div class="search-icon show_search"></div>
|
20
|
+
</div>
|
21
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<script type="text/x-jsrender" id="search_contents_tmpl">
|
2
|
+
{% raw %}
|
3
|
+
<div class="search-content">
|
4
|
+
<a href="{{:url}}">
|
5
|
+
<div class="bold">{{:title}}</div>
|
6
|
+
<div class="content">
|
7
|
+
{{for sentences}}
|
8
|
+
<p>{{:}}</p>
|
9
|
+
{{/for}}
|
10
|
+
</div>
|
11
|
+
</a>
|
12
|
+
</div>
|
13
|
+
{% endraw %}
|
14
|
+
</script>
|
15
|
+
<div id="modal_search_area" class="modal hide">
|
16
|
+
<div class="modal-wrapper">
|
17
|
+
<div class="modal-search">
|
18
|
+
<div class="search-area">
|
19
|
+
<input id="search_keyword" type="text" placeholder="최소 2자 이상의 검색어를 입력하신 후 Enter를 입력하세요.">
|
20
|
+
</div>
|
21
|
+
<div class="search-result-area">
|
22
|
+
<div class="search-container">
|
23
|
+
<div id="search_contents" class="search-contents">
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
{% include head.html %}
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<header>
|
8
|
+
{% include header.html %}
|
9
|
+
</header>
|
10
|
+
<nav>
|
11
|
+
{% include nav.html %}
|
12
|
+
</nav>
|
13
|
+
<main>
|
14
|
+
{% include container.html %}
|
15
|
+
</main>
|
16
|
+
{% include image.html %}
|
17
|
+
{% include search.html %}
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
{% include head.html %}
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<header>
|
8
|
+
{% include header.html %}
|
9
|
+
</header>
|
10
|
+
<nav>
|
11
|
+
{% include nav.html %}
|
12
|
+
</nav>
|
13
|
+
<main>
|
14
|
+
<div id="container" class="main-container">
|
15
|
+
<div class="content">
|
16
|
+
{{ content | markdownify }}
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</main>
|
20
|
+
{% include image.html %}
|
21
|
+
{% include search.html %}
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<div class="api">
|
2
|
+
<div class="header">
|
3
|
+
<div class="title">{{ summary }}</div>
|
4
|
+
</div>
|
5
|
+
<div class="description">
|
6
|
+
<div class="description-area">
|
7
|
+
<div class="api-description">
|
8
|
+
<div class="method"><label class="bold">{{ method | upcase }}</label></div>
|
9
|
+
<div class="url">
|
10
|
+
<label>{{ base_url }}</label>
|
11
|
+
<label class="gray">{{ path }}</label>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
{{ description }}
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<div class="content">
|
18
|
+
<div class="request-categories">
|
19
|
+
<div class="large">Parameters</div>
|
20
|
+
<div class="content">
|
21
|
+
{% if query_parameters %}
|
22
|
+
<div class="category">
|
23
|
+
<div class="title">Query</div>
|
24
|
+
<div class="parameters">
|
25
|
+
{{ query_parameters }}
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
{% endif %}
|
29
|
+
{% if body_parameters %}
|
30
|
+
<div class="category">
|
31
|
+
<div class="title">Body</div>
|
32
|
+
<div class="parameters">
|
33
|
+
{{ body_parameters }}
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
{% endif %}
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<div class="responses">
|
40
|
+
<div class="large">Responses</div>
|
41
|
+
<div class="content">
|
42
|
+
{{ responses }}
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</div>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="{{ code_class }}">
|
2
|
+
<div class="header">
|
3
|
+
<div class="title">{{ title }}</div>
|
4
|
+
<div class="copy" data-code-copy-target-id></div>
|
5
|
+
<div class="{{ success_class }}" data-skip-search-index>복사성공!</div>
|
6
|
+
</div>
|
7
|
+
<div class="body">{{ body }}</div>
|
8
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="block-row" data-skip-search-index>
|
2
|
+
{% for child in potion.children %}
|
3
|
+
<div>
|
4
|
+
<div class="block">
|
5
|
+
<a class="block-body" href="{{ child.url }}">
|
6
|
+
<div class="thumb document"></div>
|
7
|
+
<div class="content">
|
8
|
+
<div class="bold">{{ child.title }}</div>
|
9
|
+
<div class="small">{{ child.description }}</div>
|
10
|
+
</div>
|
11
|
+
</a>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
{% endfor %}
|
15
|
+
</div>
|