markdown_record 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +63 -43
- data/app/helpers/markdown_record/application_helper.rb +23 -0
- data/app/helpers/markdown_record/controller_helpers.rb +1 -1
- data/app/helpers/markdown_record/view_helpers.rb +9 -3
- data/{lib → app/models}/markdown_record/base.rb +10 -0
- data/{lib → app/models}/markdown_record/content_fragment.rb +17 -2
- data/lib/generators/markdown_record_generator.rb +6 -0
- data/lib/markdown_record/configuration.rb +4 -0
- data/lib/markdown_record/file_sorting/base.rb +25 -0
- data/lib/markdown_record/file_sorting/date_sorter.rb +14 -0
- data/lib/markdown_record/file_sorting/sem_ver_sorter.rb +47 -0
- data/lib/markdown_record/{association.rb → models/association.rb} +20 -3
- data/lib/markdown_record/{associations.rb → models/associations.rb} +17 -9
- data/lib/markdown_record/{content_associations.rb → models/content_associations.rb} +4 -2
- data/lib/markdown_record/models/filtering.rb +13 -0
- data/lib/markdown_record/models/filters/array_filter.rb +11 -0
- data/lib/markdown_record/models/filters/base_filter.rb +35 -0
- data/lib/markdown_record/models/filters/hash_filter.rb +81 -0
- data/lib/markdown_record/models/filters/nil_filter.rb +11 -0
- data/lib/markdown_record/models/filters/range_filter.rb +11 -0
- data/lib/markdown_record/models/filters/regexp_filter.rb +11 -0
- data/lib/markdown_record/models/filters/symbol_filter.rb +14 -0
- data/lib/markdown_record/models/filters.rb +22 -0
- data/lib/markdown_record/models/model_inflator.rb +65 -0
- data/lib/markdown_record/path_utilities.rb +20 -11
- data/lib/markdown_record/rendering/content_dsl/attribute.rb +22 -0
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/directory_fragment.rb +3 -3
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/disable.rb +2 -2
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/enable.rb +2 -2
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/end_attribute.rb +3 -3
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/end_model.rb +3 -3
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/fragment.rb +3 -3
- data/lib/markdown_record/rendering/content_dsl/model.rb +22 -0
- data/lib/markdown_record/rendering/content_dsl/scope.rb +22 -0
- data/lib/markdown_record/{content_dsl → rendering/content_dsl}/use_layout.rb +3 -3
- data/lib/markdown_record/rendering/content_dsl.rb +45 -0
- data/lib/markdown_record/rendering/html_renderer.rb +22 -0
- data/lib/markdown_record/{indexer.rb → rendering/indexer.rb} +0 -10
- data/lib/markdown_record/rendering/json_renderer.rb +20 -0
- data/lib/markdown_record/rendering/nodes/html_base.rb +95 -0
- data/lib/markdown_record/rendering/nodes/html_directory.rb +51 -0
- data/lib/markdown_record/rendering/nodes/html_file.rb +48 -0
- data/lib/markdown_record/rendering/nodes/json_base.rb +55 -0
- data/lib/markdown_record/rendering/nodes/json_directory.rb +69 -0
- data/lib/markdown_record/rendering/nodes/json_file.rb +172 -0
- data/lib/markdown_record/{rendering.rb → rendering/rendering.rb} +1 -1
- data/lib/markdown_record/{validator.rb → rendering/validator.rb} +4 -4
- data/lib/markdown_record/version.rb +1 -1
- data/lib/markdown_record.rb +21 -14
- data/templates/demo/content/10_custom_models_and_associations.md.erb +27 -7
- data/templates/demo/content/11_controller_helpers.md.erb +2 -2
- data/templates/demo/content/12_configuration.md.erb +22 -3
- data/templates/demo/content/13_sandbox/1_foo.md +2 -1
- data/templates/demo/content/13_sandbox/2_sandbox_nested/1_bar.md +4 -1
- data/templates/demo/content/1_home.md.erb +30 -13
- data/templates/demo/content/2_installation.md.erb +61 -46
- data/templates/demo/content/3_rendering_basics.md.erb +3 -3
- data/templates/demo/content/4_content_dsl.md.erb +22 -11
- data/templates/demo/content/5_routes.md.erb +10 -7
- data/templates/demo/content/6_model_basics.md.erb +11 -11
- data/templates/demo/content/7_content_frags.md.erb +9 -6
- data/templates/demo/content/8_erb_syntax_and_view_helpers.md.erb +32 -11
- data/templates/demo/content/9_layouts.md.erb +3 -3
- data/templates/demo/layouts/_global_layout.html.erb +1 -0
- data/templates/demo/models/dsl_command.rb +6 -0
- data/templates/demo/models/section.rb +5 -0
- data/templates/render_content.thor +2 -1
- data/templates/tests/assets/images/ruby-logo.png +0 -0
- data/templates/tests/content/1_test_files_home.md.erb +31 -0
- data/templates/tests/content/2_content_dsl_tests/1_content_dsl.md.erb +162 -0
- data/templates/tests/content/2_content_dsl_tests/2_nested_directory/1_associations.md.erb +83 -0
- data/templates/tests/layouts/_concatenated_layout.html.erb +12 -0
- data/templates/tests/layouts/_custom_layout.html.erb +14 -0
- data/templates/tests/layouts/_file_layout.html.erb +15 -0
- data/templates/tests/layouts/_global_layout.html.erb +116 -0
- metadata +53 -34
- data/app/models/markdown_record/demo/dsl_command.rb +0 -10
- data/app/models/markdown_record/demo/section.rb +0 -9
- data/app/models/markdown_record/tests/child_model.rb +0 -15
- data/app/models/markdown_record/tests/fake_active_record_model.rb +0 -13
- data/app/models/markdown_record/tests/model.rb +0 -15
- data/app/models/markdown_record/tests/other_child_model.rb +0 -15
- data/lib/markdown_record/cli.rb +0 -54
- data/lib/markdown_record/content_dsl/attribute.rb +0 -22
- data/lib/markdown_record/content_dsl/model.rb +0 -23
- data/lib/markdown_record/content_dsl/render_format.rb +0 -22
- data/lib/markdown_record/content_dsl/render_strategy.rb +0 -22
- data/lib/markdown_record/content_dsl.rb +0 -37
- data/lib/markdown_record/html_renderer.rb +0 -194
- data/lib/markdown_record/json_renderer.rb +0 -270
- data/lib/markdown_record/model_inflator.rb +0 -107
- data/lib/markdown_record/routes_renderer.rb +0 -0
- /data/lib/markdown_record/{file_saver.rb → rendering/file_saver.rb} +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
require "thor"
|
2
2
|
|
3
3
|
class RenderContent < Thor
|
4
|
-
include MarkdownRecord::
|
4
|
+
include MarkdownRecord::RenderingHelpers
|
5
5
|
|
6
6
|
class_option :subdirectory, required: false, type: :string, aliases: :d, default: ""
|
7
7
|
class_option :save, type: :boolean, aliases: :s, default: false
|
@@ -11,6 +11,7 @@ class RenderContent < Thor
|
|
11
11
|
desc "html", "renders html content"
|
12
12
|
def html
|
13
13
|
return unless validate
|
14
|
+
|
14
15
|
lines = []
|
15
16
|
strategy_options = generate_render_strategy_options(options)
|
16
17
|
report_start(lines, strategy_options, "html")
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# Test Files Home
|
2
|
+
|
3
|
+
This file links to the other test files, and thus test the link helpers.
|
4
|
+
|
5
|
+
Here is a link to the Content DSL Test concatenated file:
|
6
|
+
|
7
|
+
<%= link_to_markdown_record(::MarkdownRecord::ContentFragment.find("content/content_dsl_tests"), "Content DSL Test File") %>
|
8
|
+
|
9
|
+
Here is a link to the associations file that uses `fragment.find_relative`:
|
10
|
+
|
11
|
+
<%= link_to_markdown_record(fragment.find_relative("content_dsl_tests/nested_directory/associations"), "Associations Test Files") %>
|
12
|
+
|
13
|
+
Here is a complete list of links to all the rendered test files (each item has a JSON and an HTML version), all of which use the routes described above:
|
14
|
+
|
15
|
+
<% ::MarkdownRecord::ContentFragment.all.each do |frag| %>
|
16
|
+
- <%= link_to_markdown_record(frag, frag.id) %><br>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% ::MarkdownRecord::ContentFragment.all.each do |frag| %>
|
20
|
+
- <%= link_to_markdown_record_html(frag, frag.html_route) %><br>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% ::MarkdownRecord::ContentFragment.all.each do |frag| %>
|
24
|
+
- <%= link_to_markdown_record_json(frag, frag.json_route) %><br>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
Here is an image generated using `image_tag` to verify that Rails tag helpers are working:
|
28
|
+
|
29
|
+
<%= image_tag("ruby-logo") %>
|
30
|
+
|
31
|
+
<!--model { "id": 1, "type": "tests/model", "string_field": "foo", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null, "hash_field": {} }-->
|
@@ -0,0 +1,162 @@
|
|
1
|
+
This file uses the following Content DSL Methods:
|
2
|
+
|
3
|
+
- `directory_fragment`
|
4
|
+
- `fragment`
|
5
|
+
- `use_layout`
|
6
|
+
- `scope`
|
7
|
+
- `model`
|
8
|
+
- `attribute` (using types: `html`, `md`, `int`, `float`, `string`)
|
9
|
+
- `end_attribute`
|
10
|
+
- `end_model`
|
11
|
+
- `disable`
|
12
|
+
- `enable`
|
13
|
+
|
14
|
+
This file should use the custom layout, which has a pink border.
|
15
|
+
|
16
|
+
```html
|
17
|
+
<!---use_layout:_custom_layout.html.erb-->
|
18
|
+
````
|
19
|
+
<!--use_layout:_custom_layout.html.erb-->
|
20
|
+
|
21
|
+
This file's directory content fragment is defined as so (the breadcrumb links should reflect the name field):
|
22
|
+
|
23
|
+
```html
|
24
|
+
<!---directory_fragment { "name": "Content DSL Tests", "parent_id": "content/test_files_home" } -->
|
25
|
+
````
|
26
|
+
<!--directory_fragment { "name": "Content DSL Tests", "parent_id": "content/test_files_home" } -->
|
27
|
+
|
28
|
+
This file's content fragment is defined as so:
|
29
|
+
|
30
|
+
```html
|
31
|
+
<!---fragment { "string_field": "foo", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null }-->
|
32
|
+
````
|
33
|
+
<!--fragment { "string_field": "foo", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null }-->
|
34
|
+
|
35
|
+
The models defined in this subdirectory and it's nested directories are all in an isolated scope, using the `scope` DSL method:
|
36
|
+
|
37
|
+
```html
|
38
|
+
<!---scope:v_0_1_3-->
|
39
|
+
````
|
40
|
+
<!--scope:v_0_1_3-->
|
41
|
+
|
42
|
+
The following MarkdownRecord::Tests::Model instances are defined:
|
43
|
+
|
44
|
+
```html
|
45
|
+
<!---model { "id": 1, "type": "tests/model", "string_field": "foo", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null, "hash_field": {} }-->
|
46
|
+
```
|
47
|
+
|
48
|
+
<!--model { "id": 1, "type": "tests/model", "string_field": "foo", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null, "hash_field": {} }-->
|
49
|
+
|
50
|
+
<% model = Tests::Model.find(1, "v_0_1_3")%>
|
51
|
+
Rendered: <% report = if model.present? %>
|
52
|
+
<span class="success">YES</span>
|
53
|
+
<% else %>
|
54
|
+
<span class="failure">NO</span>
|
55
|
+
<% end %>
|
56
|
+
|
57
|
+
----
|
58
|
+
|
59
|
+
```html
|
60
|
+
<!---model { "id": 2, "type": "tests/model", "string_field": "bar", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
61
|
+
```
|
62
|
+
|
63
|
+
<!--model { "id": 2, "type": "tests/model", "string_field": "bar", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
64
|
+
|
65
|
+
<% model = Tests::Model.find(2, "v_0_1_3")%>
|
66
|
+
Rendered: <% report = if model.present? %>
|
67
|
+
<span class="success">YES</span>
|
68
|
+
<% else %>
|
69
|
+
<span class="failure">NO</span>
|
70
|
+
<% end %>
|
71
|
+
|
72
|
+
----
|
73
|
+
|
74
|
+
The following attributes are defined:
|
75
|
+
|
76
|
+
```html
|
77
|
+
<!---attribute:html:test_html_attribute-->
|
78
|
+
<p>This is an html test attribute value for test model 2.</p>
|
79
|
+
<!---end_attribute-->
|
80
|
+
```
|
81
|
+
|
82
|
+
<!--attribute:html:test_html_attribute-->
|
83
|
+
<p>This is an html test attribute value for test model 2.</p>
|
84
|
+
<!--end_attribute-->
|
85
|
+
|
86
|
+
----
|
87
|
+
|
88
|
+
```html
|
89
|
+
<!---attribute:md:test_md_attribute-->
|
90
|
+
#### This is a markdown test attribute value for test model 2.
|
91
|
+
<!---end_attribute-->
|
92
|
+
```
|
93
|
+
|
94
|
+
<!--attribute:md:test_md_attribute-->
|
95
|
+
#### This is a markdown test attribute value for test model 2.
|
96
|
+
<!--end_attribute-->
|
97
|
+
|
98
|
+
----
|
99
|
+
|
100
|
+
```html
|
101
|
+
<!---attribute:int:test_int_attribute-->
|
102
|
+
999
|
103
|
+
<!---end_attribute-->
|
104
|
+
```
|
105
|
+
|
106
|
+
<!--attribute:int:test_int_attribute-->
|
107
|
+
999
|
108
|
+
<!--end_attribute-->
|
109
|
+
|
110
|
+
----
|
111
|
+
|
112
|
+
The following model should not be rendered:
|
113
|
+
|
114
|
+
```html
|
115
|
+
<!---disable-->
|
116
|
+
<!---model { "id": 3, "type": "tests/model", "string_field": "bar", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
117
|
+
<!---enable-->
|
118
|
+
```
|
119
|
+
|
120
|
+
<!--disable-->
|
121
|
+
<!--model { "id": 3, "type": "tests/model", "string_field": "bar", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
122
|
+
<!--enable-->
|
123
|
+
|
124
|
+
<% model = Tests::Model.find(3, scope)%>
|
125
|
+
Rendered: <% report = if model.present? %>
|
126
|
+
<span class="failure">YES</span>
|
127
|
+
<% else %>
|
128
|
+
<span class="success">NO</span>
|
129
|
+
<% end %>
|
130
|
+
|
131
|
+
----
|
132
|
+
|
133
|
+
More attributes:
|
134
|
+
|
135
|
+
```html
|
136
|
+
<!---attribute:float:test_float_attribute-->
|
137
|
+
96.3
|
138
|
+
<!---end_attribute-->
|
139
|
+
```
|
140
|
+
|
141
|
+
----
|
142
|
+
|
143
|
+
<!--attribute:float:test_float_attribute-->
|
144
|
+
96.3
|
145
|
+
<!--end_attribute-->
|
146
|
+
|
147
|
+
<!--end_model-->
|
148
|
+
|
149
|
+
This attribute should be on the first model, instead of the second one:
|
150
|
+
|
151
|
+
```html
|
152
|
+
<!---attribute:string:test_float_attribute-->
|
153
|
+
This is a string test attribute value for test model 1.
|
154
|
+
<!---end_attribute-->
|
155
|
+
```
|
156
|
+
|
157
|
+
<!--attribute:string:test_float_attribute-->
|
158
|
+
This is a string test attribute value for test model 1.
|
159
|
+
<!--end_attribute-->
|
160
|
+
|
161
|
+
<!--end_model-->
|
162
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
<!--directory_fragment { "author": "You", "name": "Sandbox", "parent_id": "content/content_dsl_tests/content_dsl" } -->
|
2
|
+
<!--use_layout:_custom_layout.html.erb-->
|
3
|
+
|
4
|
+
This file should use the custom layout, which has a pink border.
|
5
|
+
|
6
|
+
This file defines several Tests::ChildModel instances:
|
7
|
+
|
8
|
+
```html
|
9
|
+
<!---model { "id": 1, "type": "tests/child_model", "model_id": 1, "string_field": "hey", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null, "hash_field": {} }-->
|
10
|
+
```
|
11
|
+
|
12
|
+
<!--model { "id": 1, "type": "tests/child_model", "model_id": 1, "string_field": "hey", "int_field": 100, "float_field": 95.5, "bool_field": true, "date_field": "03/13/2023", "maybe_field": null, "hash_field": {} }-->
|
13
|
+
|
14
|
+
<% model = Tests::ChildModel.find(1, scope)%>
|
15
|
+
Rendered: <% report = if model.present? %>
|
16
|
+
<span class="success">YES</span>
|
17
|
+
<% else %>
|
18
|
+
<span class="failure">NO</span>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
----
|
22
|
+
|
23
|
+
```html
|
24
|
+
<!---model { "id": 2, "type": "tests/child_model", "model_id": 1, "string_field": "asdf", "int_field": 333, "float_field": 10.5, "bool_field": false, "date_field": "01/01/2000", "maybe_field": 7, "hash_field": {} }-->
|
25
|
+
```
|
26
|
+
|
27
|
+
<!--model { "id": 2, "type": "tests/child_model", "model_id": 1, "string_field": "asdf", "int_field": 333, "float_field": 10.5, "bool_field": false, "date_field": "01/01/2000", "maybe_field": 7, "hash_field": {} }-->
|
28
|
+
|
29
|
+
<% model = Tests::ChildModel.find(2, scope)%>
|
30
|
+
Rendered: <% report = if model.present? %>
|
31
|
+
<span class="success">YES</span>
|
32
|
+
<% else %>
|
33
|
+
<span class="failure">NO</span>
|
34
|
+
<% end %>
|
35
|
+
|
36
|
+
----
|
37
|
+
|
38
|
+
```html
|
39
|
+
<!---model { "id": 3, "type": "tests/child_model", "model_id": 2, "string_field": "qwert", "int_field": 42, "float_field": 1776, "bool_field": true, "date_field": "09/11/2001", "maybe_field": null, "hash_field": { "some_data": { "some_field": 555 }} }-->
|
40
|
+
```
|
41
|
+
|
42
|
+
<!--model { "id": 3, "type": "tests/child_model", "model_id": 2, "string_field": "qwert", "int_field": 42, "float_field": 1776, "bool_field": true, "date_field": "09/11/2001", "maybe_field": null, "hash_field": { "some_data": { "some_field": 555 }} }-->
|
43
|
+
|
44
|
+
<% model = Tests::ChildModel.find(3, scope)%>
|
45
|
+
Rendered: <% report = if model.present? %>
|
46
|
+
<span class="success">YES</span>
|
47
|
+
<% else %>
|
48
|
+
<span class="failure">NO</span>
|
49
|
+
<% end %>
|
50
|
+
|
51
|
+
----
|
52
|
+
|
53
|
+
```html
|
54
|
+
<!---model { "id": 4, "type": "tests/child_model", "model_id": 2, "string_field": "ho", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
55
|
+
```
|
56
|
+
|
57
|
+
<!--model { "id": 4, "type": "tests/child_model", "model_id": 2, "string_field": "ho", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
58
|
+
|
59
|
+
<% model = Tests::ChildModel.find(4, scope)%>
|
60
|
+
Rendered: <% report = if model.present? %>
|
61
|
+
<span class="success">YES</span>
|
62
|
+
<% else %>
|
63
|
+
<span class="failure">NO</span>
|
64
|
+
<% end %>
|
65
|
+
|
66
|
+
----
|
67
|
+
|
68
|
+
And one MarkdownRecord::Tests::OtherChildModels:
|
69
|
+
|
70
|
+
```html
|
71
|
+
<!---model { "id": 1, "type": "tests/other_child_model", "model_id": 2, "string_field": "ho", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
72
|
+
```
|
73
|
+
|
74
|
+
<!--model { "id": 1, "type": "tests/other_child_model", "model_id": 2, "string_field": "ho", "int_field": 42, "float_field": 99.9, "bool_field": false, "date_field": "12/25/2020", "maybe_field": 50, "hash_field": { "some_data": { "some_field": 999 }} }-->
|
75
|
+
|
76
|
+
<% model = Tests::OtherChildModel.find(1, scope)%>
|
77
|
+
Rendered: <% report = if model.present? %>
|
78
|
+
<span class="success">YES</span>
|
79
|
+
<% else %>
|
80
|
+
<span class="failure">NO</span>
|
81
|
+
<% end %>
|
82
|
+
|
83
|
+
----
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<style>
|
2
|
+
.concatenated{
|
3
|
+
border: 1px solid #a5d6ff;
|
4
|
+
padding: 10px;
|
5
|
+
}
|
6
|
+
</style>
|
7
|
+
|
8
|
+
<div class="concatenated">
|
9
|
+
<%= raw(html) %>
|
10
|
+
<%= raw("<!--#{subdirectory}/#{filename}-->") %>
|
11
|
+
<p class="rendered_at"><em>The above content was rendered from source files at: <%= link_to_markdown_record(fragment, fragment.id) %></em></p>
|
12
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<style>
|
2
|
+
.custom_layout_file {
|
3
|
+
padding: 10px;
|
4
|
+
border: 1px solid pink;
|
5
|
+
margin-bottom: 10px;
|
6
|
+
}
|
7
|
+
</style>
|
8
|
+
|
9
|
+
<div class="custom_layout_file">
|
10
|
+
<h3>Rendered Using a Custom Layout</h3>
|
11
|
+
<%= raw(html) %>
|
12
|
+
<%= raw("<!--#{subdirectory}/#{filename}-->") %>
|
13
|
+
<p class="rendered_at"><em>The above content was rendered from source files at: <%= link_to_markdown_record(fragment, fragment.id) %></em></p>
|
14
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<style>
|
2
|
+
|
3
|
+
.file {
|
4
|
+
padding: 10px;
|
5
|
+
border: 1px solid #cc4400;
|
6
|
+
margin-bottom: 10px;
|
7
|
+
}
|
8
|
+
|
9
|
+
</style>
|
10
|
+
|
11
|
+
<div class="file">
|
12
|
+
<%= raw(html) %>
|
13
|
+
<%= raw("<!--#{subdirectory}/#{filename}-->") %>
|
14
|
+
<p class="rendered_at"><em>The above content was rendered from source files at: <%= link_to_markdown_record(fragment, fragment.id) %></em></p>
|
15
|
+
</div>
|
@@ -0,0 +1,116 @@
|
|
1
|
+
<style>
|
2
|
+
body{
|
3
|
+
background-color: black;
|
4
|
+
padding: 10px;
|
5
|
+
}
|
6
|
+
|
7
|
+
code{
|
8
|
+
padding: 0.2em 0.4em;
|
9
|
+
margin: 0;
|
10
|
+
font-size: 85%;
|
11
|
+
white-space: break-spaces;
|
12
|
+
background-color: rgb(110 118 129 / 40%);
|
13
|
+
border-radius: 6px;
|
14
|
+
}
|
15
|
+
|
16
|
+
pre{
|
17
|
+
padding: 16px;
|
18
|
+
overflow: auto;
|
19
|
+
font-size: 85%;
|
20
|
+
line-height: 1.45;
|
21
|
+
color: #f2f2f2;
|
22
|
+
background-color: #161b22;
|
23
|
+
border-radius: 6px;
|
24
|
+
font-family: andale mono, monaco, monospace;
|
25
|
+
word-wrap: normal;
|
26
|
+
}
|
27
|
+
|
28
|
+
pre code{
|
29
|
+
color: inherit;
|
30
|
+
background-color: inherit;
|
31
|
+
font-family: inherit;
|
32
|
+
padding: 0px;
|
33
|
+
margin: 0;
|
34
|
+
font-size: inherit;
|
35
|
+
white-space: inherit;
|
36
|
+
background-color: inherit;
|
37
|
+
border-radius: 0px;
|
38
|
+
}
|
39
|
+
|
40
|
+
h1{
|
41
|
+
color: #6699ff;
|
42
|
+
}
|
43
|
+
|
44
|
+
h2{
|
45
|
+
color: #b3ccff;
|
46
|
+
}
|
47
|
+
|
48
|
+
h3{
|
49
|
+
color: #b3ccff;
|
50
|
+
}
|
51
|
+
|
52
|
+
h4{
|
53
|
+
color: #b3ccff;
|
54
|
+
}
|
55
|
+
|
56
|
+
a{
|
57
|
+
color: #33ffcc;
|
58
|
+
}
|
59
|
+
|
60
|
+
.container {
|
61
|
+
margin-bottom: 10px;
|
62
|
+
padding: 10px;
|
63
|
+
color: #f2f2f2;
|
64
|
+
background-color: #0d1117;
|
65
|
+
font-family: trebuchet ms;
|
66
|
+
font-size: 16px;
|
67
|
+
line-height: 1.5;
|
68
|
+
}
|
69
|
+
|
70
|
+
.rendered_at{
|
71
|
+
font-size: 12px;
|
72
|
+
}
|
73
|
+
|
74
|
+
.navigation ul{
|
75
|
+
padding: 0px;
|
76
|
+
}
|
77
|
+
|
78
|
+
.navigation li{
|
79
|
+
display: inline;
|
80
|
+
}
|
81
|
+
|
82
|
+
.success{
|
83
|
+
color: green;
|
84
|
+
}
|
85
|
+
|
86
|
+
.failure{
|
87
|
+
color: red;
|
88
|
+
}
|
89
|
+
</style>
|
90
|
+
|
91
|
+
<div class="container">
|
92
|
+
<div class="navigation">
|
93
|
+
<ul>
|
94
|
+
<li>Breadcrumbs: </li>
|
95
|
+
<% fragment.parents_from("content/test_files_home").each_with_index do |frag, index| %>
|
96
|
+
<% unless index == 0%>
|
97
|
+
<span class="breadcrumb_divider">/</span>
|
98
|
+
<% end %>
|
99
|
+
<li><%= link_to_markdown_record(frag)%></li>
|
100
|
+
<% end %>
|
101
|
+
</ul>
|
102
|
+
</div>
|
103
|
+
<%= raw(html) %>
|
104
|
+
<%= raw("<!--#{subdirectory}/#{filename}-->") %>
|
105
|
+
<div class="navigation">
|
106
|
+
<ul>
|
107
|
+
<li>Breadcrumbs: </li>
|
108
|
+
<% fragment.parents_from("content/test_files_home").each_with_index do |frag, index| %>
|
109
|
+
<% unless index == 0%>
|
110
|
+
<span class="breadcrumb_divider">/</span>
|
111
|
+
<% end %>
|
112
|
+
<li><%= link_to_markdown_record(frag)%></li>
|
113
|
+
<% end %>
|
114
|
+
</ul>
|
115
|
+
</div>
|
116
|
+
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryant Morrill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -171,48 +171,57 @@ files:
|
|
171
171
|
- app/helpers/markdown_record/application_helper.rb
|
172
172
|
- app/helpers/markdown_record/controller_helpers.rb
|
173
173
|
- app/helpers/markdown_record/view_helpers.rb
|
174
|
-
- app/models/markdown_record/
|
175
|
-
- app/models/markdown_record/
|
176
|
-
- app/models/markdown_record/tests/child_model.rb
|
177
|
-
- app/models/markdown_record/tests/fake_active_record_model.rb
|
178
|
-
- app/models/markdown_record/tests/model.rb
|
179
|
-
- app/models/markdown_record/tests/other_child_model.rb
|
174
|
+
- app/models/markdown_record/base.rb
|
175
|
+
- app/models/markdown_record/content_fragment.rb
|
180
176
|
- config/routes.rb
|
181
177
|
- lib/generators/markdown_record_generator.rb
|
182
178
|
- lib/markdown_record.rb
|
183
|
-
- lib/markdown_record/association.rb
|
184
|
-
- lib/markdown_record/associations.rb
|
185
|
-
- lib/markdown_record/base.rb
|
186
|
-
- lib/markdown_record/cli.rb
|
187
179
|
- lib/markdown_record/configuration.rb
|
188
|
-
- lib/markdown_record/content_associations.rb
|
189
|
-
- lib/markdown_record/content_dsl.rb
|
190
|
-
- lib/markdown_record/content_dsl/attribute.rb
|
191
|
-
- lib/markdown_record/content_dsl/directory_fragment.rb
|
192
|
-
- lib/markdown_record/content_dsl/disable.rb
|
193
|
-
- lib/markdown_record/content_dsl/enable.rb
|
194
|
-
- lib/markdown_record/content_dsl/end_attribute.rb
|
195
|
-
- lib/markdown_record/content_dsl/end_model.rb
|
196
|
-
- lib/markdown_record/content_dsl/fragment.rb
|
197
|
-
- lib/markdown_record/content_dsl/model.rb
|
198
|
-
- lib/markdown_record/content_dsl/render_format.rb
|
199
|
-
- lib/markdown_record/content_dsl/render_strategy.rb
|
200
|
-
- lib/markdown_record/content_dsl/use_layout.rb
|
201
|
-
- lib/markdown_record/content_fragment.rb
|
202
180
|
- lib/markdown_record/engine.rb
|
203
181
|
- lib/markdown_record/errors/base.rb
|
204
182
|
- lib/markdown_record/errors/duplicate_filename_error.rb
|
205
183
|
- lib/markdown_record/errors/duplicate_id_error.rb
|
206
184
|
- lib/markdown_record/errors/missing_parent_error.rb
|
207
|
-
- lib/markdown_record/
|
208
|
-
- lib/markdown_record/
|
209
|
-
- lib/markdown_record/
|
210
|
-
- lib/markdown_record/
|
211
|
-
- lib/markdown_record/
|
185
|
+
- lib/markdown_record/file_sorting/base.rb
|
186
|
+
- lib/markdown_record/file_sorting/date_sorter.rb
|
187
|
+
- lib/markdown_record/file_sorting/sem_ver_sorter.rb
|
188
|
+
- lib/markdown_record/models/association.rb
|
189
|
+
- lib/markdown_record/models/associations.rb
|
190
|
+
- lib/markdown_record/models/content_associations.rb
|
191
|
+
- lib/markdown_record/models/filtering.rb
|
192
|
+
- lib/markdown_record/models/filters.rb
|
193
|
+
- lib/markdown_record/models/filters/array_filter.rb
|
194
|
+
- lib/markdown_record/models/filters/base_filter.rb
|
195
|
+
- lib/markdown_record/models/filters/hash_filter.rb
|
196
|
+
- lib/markdown_record/models/filters/nil_filter.rb
|
197
|
+
- lib/markdown_record/models/filters/range_filter.rb
|
198
|
+
- lib/markdown_record/models/filters/regexp_filter.rb
|
199
|
+
- lib/markdown_record/models/filters/symbol_filter.rb
|
200
|
+
- lib/markdown_record/models/model_inflator.rb
|
212
201
|
- lib/markdown_record/path_utilities.rb
|
213
|
-
- lib/markdown_record/rendering.rb
|
214
|
-
- lib/markdown_record/
|
215
|
-
- lib/markdown_record/
|
202
|
+
- lib/markdown_record/rendering/content_dsl.rb
|
203
|
+
- lib/markdown_record/rendering/content_dsl/attribute.rb
|
204
|
+
- lib/markdown_record/rendering/content_dsl/directory_fragment.rb
|
205
|
+
- lib/markdown_record/rendering/content_dsl/disable.rb
|
206
|
+
- lib/markdown_record/rendering/content_dsl/enable.rb
|
207
|
+
- lib/markdown_record/rendering/content_dsl/end_attribute.rb
|
208
|
+
- lib/markdown_record/rendering/content_dsl/end_model.rb
|
209
|
+
- lib/markdown_record/rendering/content_dsl/fragment.rb
|
210
|
+
- lib/markdown_record/rendering/content_dsl/model.rb
|
211
|
+
- lib/markdown_record/rendering/content_dsl/scope.rb
|
212
|
+
- lib/markdown_record/rendering/content_dsl/use_layout.rb
|
213
|
+
- lib/markdown_record/rendering/file_saver.rb
|
214
|
+
- lib/markdown_record/rendering/html_renderer.rb
|
215
|
+
- lib/markdown_record/rendering/indexer.rb
|
216
|
+
- lib/markdown_record/rendering/json_renderer.rb
|
217
|
+
- lib/markdown_record/rendering/nodes/html_base.rb
|
218
|
+
- lib/markdown_record/rendering/nodes/html_directory.rb
|
219
|
+
- lib/markdown_record/rendering/nodes/html_file.rb
|
220
|
+
- lib/markdown_record/rendering/nodes/json_base.rb
|
221
|
+
- lib/markdown_record/rendering/nodes/json_directory.rb
|
222
|
+
- lib/markdown_record/rendering/nodes/json_file.rb
|
223
|
+
- lib/markdown_record/rendering/rendering.rb
|
224
|
+
- lib/markdown_record/rendering/validator.rb
|
216
225
|
- lib/markdown_record/version.rb
|
217
226
|
- templates/Thorfile
|
218
227
|
- templates/base/content/example_content.md
|
@@ -239,8 +248,18 @@ files:
|
|
239
248
|
- templates/demo/layouts/_custom_layout.html.erb
|
240
249
|
- templates/demo/layouts/_file_layout.html.erb
|
241
250
|
- templates/demo/layouts/_global_layout.html.erb
|
251
|
+
- templates/demo/models/dsl_command.rb
|
252
|
+
- templates/demo/models/section.rb
|
242
253
|
- templates/markdown_record_initializer.rb
|
243
254
|
- templates/render_content.thor
|
255
|
+
- templates/tests/assets/images/ruby-logo.png
|
256
|
+
- templates/tests/content/1_test_files_home.md.erb
|
257
|
+
- templates/tests/content/2_content_dsl_tests/1_content_dsl.md.erb
|
258
|
+
- templates/tests/content/2_content_dsl_tests/2_nested_directory/1_associations.md.erb
|
259
|
+
- templates/tests/layouts/_concatenated_layout.html.erb
|
260
|
+
- templates/tests/layouts/_custom_layout.html.erb
|
261
|
+
- templates/tests/layouts/_file_layout.html.erb
|
262
|
+
- templates/tests/layouts/_global_layout.html.erb
|
244
263
|
homepage: https://github.com/WriterZephos/markdown_record
|
245
264
|
licenses:
|
246
265
|
- MIT
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module MarkdownRecord
|
2
|
-
module Tests
|
3
|
-
class ChildModel < ::MarkdownRecord::Base
|
4
|
-
attribute :string_field
|
5
|
-
attribute :int_field
|
6
|
-
attribute :float_field
|
7
|
-
attribute :bool_field
|
8
|
-
attribute :date_field
|
9
|
-
attribute :maybe_field
|
10
|
-
attribute :hash_field
|
11
|
-
|
12
|
-
belongs_to_content :model
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module MarkdownRecord
|
2
|
-
module Tests
|
3
|
-
class FakeActiveRecordModel
|
4
|
-
include ::ActiveAttr::Model
|
5
|
-
include ::MarkdownRecord::ContentAssociations
|
6
|
-
attribute :model_ids
|
7
|
-
attribute :child_model_id
|
8
|
-
|
9
|
-
has_many_content :models
|
10
|
-
belongs_to_content :child_model
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module MarkdownRecord
|
2
|
-
module Tests
|
3
|
-
class Model < ::MarkdownRecord::Base
|
4
|
-
attribute :string_field
|
5
|
-
attribute :int_field
|
6
|
-
attribute :float_field
|
7
|
-
attribute :bool_field
|
8
|
-
attribute :date_field
|
9
|
-
attribute :maybe_field
|
10
|
-
attribute :hash_field
|
11
|
-
|
12
|
-
has_many_content :child_models
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|