playbook_ui 12.22.0 → 12.23.0.pre.alpha.movemarkdown708
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/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +1 -1
- data/app/pb_kits/playbook/pb_filter/filter.html.erb +16 -15
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +87 -83
- data/dist/playbook-rails.js +51 -0
- data/lib/playbook/pb_doc_helper.rb +1 -1
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook.rb +1 -2
- metadata +12 -43
- data/app/pb_kits/playbook/pb_docs/kit_api.html.erb +0 -311
- data/app/pb_kits/playbook/pb_docs/kit_api.rb +0 -149
- data/app/pb_kits/playbook/pb_docs/kit_example.html.erb +0 -74
- data/app/pb_kits/playbook/pb_docs/kit_example.rb +0 -71
- data/lib/playbook/markdown/helper.rb +0 -132
- data/lib/playbook/markdown.rb +0 -3
@@ -1,71 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# rubocop:disable Style/CaseLikeIf
|
4
|
-
|
5
|
-
module Playbook
|
6
|
-
module PbDocs
|
7
|
-
class KitExample < Playbook::KitBase
|
8
|
-
include Playbook::Markdown::Helper
|
9
|
-
|
10
|
-
prop :kit, type: Playbook::Props::String, required: true
|
11
|
-
prop :example_title, type: Playbook::Props::String, required: true
|
12
|
-
prop :example_key, type: Playbook::Props::String, required: true
|
13
|
-
prop :show_code, type: Playbook::Props::Boolean, default: true
|
14
|
-
prop :type, type: Playbook::Props::Enum, values: %w[rails react], default: "rails"
|
15
|
-
prop :dark, type: Playbook::Props::Boolean, default: false
|
16
|
-
|
17
|
-
def example
|
18
|
-
if type == "rails"
|
19
|
-
render inline: source
|
20
|
-
elsif type == "react"
|
21
|
-
react_component example_key.camelize, { dark: dark }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def description
|
26
|
-
@description ||= read_kit_file("docs", "_#{example_key}.md")
|
27
|
-
end
|
28
|
-
|
29
|
-
def highlighter
|
30
|
-
type.eql?("rails") ? "erb" : "react"
|
31
|
-
end
|
32
|
-
|
33
|
-
def source
|
34
|
-
@source ||= begin
|
35
|
-
extension = type == "react" ? "jsx" : "html.erb"
|
36
|
-
stringified_code = read_kit_file("docs", "_#{example_key}.#{extension}")
|
37
|
-
sanitize_code(stringified_code)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def tsx_source
|
42
|
-
read_kit_file("", "_#{example_key}.tsx")
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def sanitize_code(stringified_code)
|
48
|
-
stringified_code = stringified_code.gsub('"../.."', '"playbook-ui"')
|
49
|
-
.gsub('"../../"', '"playbook-ui"')
|
50
|
-
.gsub("'../../'", "'playbook-ui'")
|
51
|
-
.gsub("'../..'", "'playbook-ui'")
|
52
|
-
.gsub(%r{from "../.*}, "from 'playbook-ui'")
|
53
|
-
.gsub(%r{from '../.*}, "from 'playbook-ui'")
|
54
|
-
stringified_code = dark ? stringified_code.gsub("{...props}", "dark") : stringified_code.gsub(/\s*{...props}\s*\n/, "\n")
|
55
|
-
if stringified_code.include?("props: { ")
|
56
|
-
stringified_code = stringified_code.gsub("props: {", "props: {dark: true,") if type == "rails" && dark
|
57
|
-
elsif type == "rails" && dark
|
58
|
-
stringified_code = stringified_code.gsub("props: {", "props: {\n dark: true,")
|
59
|
-
end
|
60
|
-
stringified_code.gsub(" {...props}", "")
|
61
|
-
end
|
62
|
-
|
63
|
-
def read_kit_file(folder, *args)
|
64
|
-
path = ::Playbook.kit_path(kit, folder, *args)
|
65
|
-
path.exist? ? path.read : ""
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# rubocop:enable Style/CaseLikeIf
|
@@ -1,132 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "redcarpet"
|
4
|
-
require "rouge"
|
5
|
-
require "rouge/plugins/redcarpet"
|
6
|
-
require "action_view"
|
7
|
-
|
8
|
-
module Playbook
|
9
|
-
module Markdown
|
10
|
-
module Helper
|
11
|
-
def self.call(template, _source)
|
12
|
-
markdown(template.source)
|
13
|
-
end
|
14
|
-
|
15
|
-
def render_markdown(text)
|
16
|
-
# rubocop:disable Security/Eval
|
17
|
-
eval(Playbook::Markdown::Helper.markdown(text))
|
18
|
-
# rubocop:enable Security/Eval
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.markdown(text)
|
22
|
-
options = {
|
23
|
-
filter_html: false,
|
24
|
-
hard_wrap: true,
|
25
|
-
link_attributes: { rel: "nofollow", target: "_blank" },
|
26
|
-
space_after_headers: true,
|
27
|
-
fenced_code_blocks: true,
|
28
|
-
no_styles: false,
|
29
|
-
safe_links_only: true,
|
30
|
-
}
|
31
|
-
|
32
|
-
extensions = {
|
33
|
-
lax_spacing: true,
|
34
|
-
no_intra_emphasis: true,
|
35
|
-
autolink: true,
|
36
|
-
superscript: true,
|
37
|
-
fenced_code_blocks: true,
|
38
|
-
tables: true,
|
39
|
-
disable_indented_code_blocks: false,
|
40
|
-
strikethrough: true,
|
41
|
-
underline: true,
|
42
|
-
highlight: true,
|
43
|
-
footnotes: true,
|
44
|
-
with_toc_data: true,
|
45
|
-
}
|
46
|
-
|
47
|
-
renderer = HTMLBlockCode.new(options)
|
48
|
-
# toc_renderer = Redcarpet::Render::HTML_TOC.new(with_toc_data: true)
|
49
|
-
# @TOC = Redcarpet::Markdown.new(toc_renderer)
|
50
|
-
# puts "TOC: #{@TOC.inspect}"
|
51
|
-
markdown = Redcarpet::Markdown.new(renderer, extensions)
|
52
|
-
"#{markdown.render(text).inspect}.html_safe;"
|
53
|
-
end
|
54
|
-
|
55
|
-
def rouge(text, language)
|
56
|
-
formatter = Rouge::Formatters::HTML.new(scope: ".highlight")
|
57
|
-
lexer = Rouge::Lexer.find(language)
|
58
|
-
formatter.format(lexer.lex(text))
|
59
|
-
end
|
60
|
-
|
61
|
-
class HTML < Redcarpet::Render::HTML
|
62
|
-
include Rouge::Plugins::Redcarpet
|
63
|
-
end
|
64
|
-
|
65
|
-
def rouge_markdown(text)
|
66
|
-
render_options = {
|
67
|
-
filter_html: true,
|
68
|
-
hard_wrap: true,
|
69
|
-
link_attributes: { rel: "nofollow" },
|
70
|
-
}
|
71
|
-
renderer = HTML.new(render_options)
|
72
|
-
|
73
|
-
extensions = {
|
74
|
-
autolink: true,
|
75
|
-
fenced_code_blocks: true,
|
76
|
-
lax_spacing: true,
|
77
|
-
no_intra_emphasis: true,
|
78
|
-
strikethrough: true,
|
79
|
-
superscript: true,
|
80
|
-
}
|
81
|
-
markdown = Redcarpet::Markdown.new(renderer, extensions)
|
82
|
-
markdown.render(text)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
class HTMLWithPants < Redcarpet::Render::HTML
|
87
|
-
include Redcarpet::Render::SmartyPants
|
88
|
-
end
|
89
|
-
|
90
|
-
class HTML < Redcarpet::Render::HTML
|
91
|
-
include Rouge::Plugins::Redcarpet
|
92
|
-
end
|
93
|
-
|
94
|
-
class HTMLBlockCode < Redcarpet::Render::HTML
|
95
|
-
include ActionView::Helpers::AssetTagHelper
|
96
|
-
|
97
|
-
# def block_code(code, language)
|
98
|
-
# "\n.nf\n#{normal_text(rouge(code, language))}\n.fi\n"
|
99
|
-
# end
|
100
|
-
|
101
|
-
def table(header, body)
|
102
|
-
"<table class='pb_table table-sm table-responsive-collapse table-card table-collapse-sm'>" \
|
103
|
-
"<thead>#{header}</thead>" \
|
104
|
-
"<tbody>#{body}</tbody>" \
|
105
|
-
"</table>"
|
106
|
-
end
|
107
|
-
|
108
|
-
def header(title, level)
|
109
|
-
@headers ||= []
|
110
|
-
permalink = title.gsub(/\W+/, "-")
|
111
|
-
if @headers.include?(permalink)
|
112
|
-
permalink += "_1"
|
113
|
-
loop do
|
114
|
-
break unless @headers.include?(permalink)
|
115
|
-
|
116
|
-
permalink.gsub!(/_(\d+)$/, "_#{Regexp.last_match(1).to_i + 1}")
|
117
|
-
end
|
118
|
-
end
|
119
|
-
@headers << permalink
|
120
|
-
permalink_markup = %(<a name="#{permalink}" class="markdown-header-anchor" )
|
121
|
-
permalink_markup += %(href="##{permalink}"><span class="far fa-link markdown-header-anchor-icon"></span></a>)
|
122
|
-
%(\n<h#{level} id="#{permalink}">#{title} #{permalink_markup}</h#{level}>\n)
|
123
|
-
end
|
124
|
-
|
125
|
-
def image(link, title, alt_text)
|
126
|
-
return nil if link.nil?
|
127
|
-
|
128
|
-
%(<a href="#{link}" target="_blank">#{image_tag(link, title: title, alt: alt_text, class: 'imageloader lazyload')}</a>)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
data/lib/playbook/markdown.rb
DELETED