emd 0.3.1 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e66aeb72d6524a402d6ae0e0c358c242db505bd81454cec6b691b3389be9e0f
4
- data.tar.gz: 617d76dcac2415626e8741ec5d82bb9c2f605d9cb26913270319ec9c404931d6
3
+ metadata.gz: 1057ad153eab8a0f90c99e96bf865fe7c91c42b5dad62a85c9b0faea346182e1
4
+ data.tar.gz: 598ea55c1fda7b8b58ba6e3cd4f15925d6178b229bc7089c15384852474a9fb6
5
5
  SHA512:
6
- metadata.gz: 52048091556900764629114ec23a354eaecf2450ca1eeb93f3e523e753097eb73a1c3f6a0699a7df807d856ea6398f2907d97d4dbed47e8608863e02a31a5c50
7
- data.tar.gz: ea1ce9268f980bff0ca8067fc024a118eb0745fbaa16f13fa06fb2591490cc43c55b2a175285869154323f0d9739ab5f43da65668cd700757cf6fddbab89f47a
6
+ metadata.gz: 962543192bd7344fe0eed7b1321ed148f5983cf849e972c0fcc9eaf775a1b37a586fe0b5ab9a94828d90f1afe757c8eccd4a4a6114d4f9ee248dd7acdeb6b8e7
7
+ data.tar.gz: ab22746d9fa60ffd996cd07c24adadbcee89d01d254de75c394d4141327b5e81e4711c4e724ace98c5200653943f4123e1853a60663c03a70c6ee38fdf73a9c1
data/README.md CHANGED
@@ -23,18 +23,18 @@ bundle
23
23
 
24
24
  1. Create a `markdown.html.md` view at `app/view/home/markdown.html.md` and add the following Markdown code:
25
25
 
26
- ```markdown
27
- ## This is a sample Markdown code
28
- - [google](http://google.com)
29
- - [emd](https://github.com/ytbryan/emd/)
30
- ```
26
+ ```markdown
27
+ ## This is a sample Markdown code
28
+ - [google](http://google.com)
29
+ - [emd](https://github.com/ytbryan/emd/)
30
+ ```
31
31
 
32
32
  1. Generate a home controller using the following command `rails generate controller home`
33
33
 
34
34
  1. Add the following line to `route.rb`:
35
- ```
36
- get '/markdown', to: 'home#markdown'
37
- ```
35
+ ```
36
+ get '/markdown', to: 'home#markdown'
37
+ ```
38
38
  1. And finally, visit the Markdown view at [http://localhost:3000/markdown](http://localhost:3000/markdown)
39
39
 
40
40
 
@@ -42,20 +42,20 @@ bundle
42
42
 
43
43
  1. Create a `_component.html.md` partial at `app/view/home/_component.html.md`:
44
44
 
45
- ```markdown
46
- ### This is a component
45
+ ```markdown
46
+ ### This is a component
47
47
 
48
- - This is item 1
49
- - This is iiem 2
50
- - [This is a link to google] (http://google.com)
51
- ```
48
+ - This is item 1
49
+ - This is iiem 2
50
+ - [This is a link to google] (http://google.com)
51
+ ```
52
52
 
53
53
  1. Use this partial using `<%= render "component" %>` within any view like at `home/index.html.erb`
54
54
 
55
55
  1. Add the following line to `route.rb`:
56
- ```
57
- get '/home', to: 'home#index'
58
- ```
56
+ ```
57
+ get '/home', to: 'home#index'
58
+ ```
59
59
  1. And finally, visit the Rails view with Markdown partial at [http://localhost:3000/home](http://localhost:3000/home)
60
60
 
61
61
 
@@ -72,15 +72,56 @@ This will turn all the code block into:
72
72
 
73
73
  ```ruby
74
74
  ```ruby
75
- class Something
76
- end
75
+ class Something
76
+ end
77
77
  ```
78
78
  ```
79
79
 
80
80
  ```ruby
81
- class Something
82
- end
83
- ```
81
+ class Something
82
+ end
83
+ ```
84
+
85
+ Also, you can enable inline code highlighting by adding `code` style to your `index.css`
86
+
87
+ ```
88
+ code {
89
+ background-color: rgba(27,31,35,.1);
90
+ border-radius: 3px;
91
+ font-size: 85%;
92
+ margin: 0;
93
+ padding: .2em .4em;
94
+ }
95
+ ```
96
+
97
+ ### Enable number lines in your markdown's code block
98
+
99
+ To display number lines in your code block, add `emd.js` in `app/assets/javascripts/application.js`
100
+
101
+ ```javascript
102
+ //= require emd
103
+ //= require_tree .
104
+ ```
105
+
106
+ And add `emd.css` in `app/assets/stylesheets/application.css`
107
+
108
+ ```css
109
+ *= require emd
110
+ *= require_self
111
+ ```
112
+
113
+ ### Changing the color of the code block
114
+
115
+ To change the color of the code block, please use the following css selector:
116
+
117
+ ```css
118
+ div.code pre {
119
+ background-color: #fff;
120
+ }
121
+ ```
122
+
123
+ The default color is `#eee`
124
+
84
125
 
85
126
  ### Control which extensions Redcarpet uses
86
127
 
@@ -128,12 +169,14 @@ Special thanks to [these folks](http://stackoverflow.com/questions/4163560/how-c
128
169
  ## TODO
129
170
 
130
171
  - [x] Syntax highlighting
172
+ - [x] Number lines in code block
131
173
  - [ ] Tests
132
174
  - [ ] Scaffolders
133
175
  - [ ] Example repo
134
176
  - [ ] Add a copy button to the code block
135
177
 
136
178
 
179
+
137
180
  ## Benefits
138
181
 
139
182
  EMD uses a Rails engine and a simple initializer to initiate a markdown template handler with the help of Redcarpet and syntax highlighting from Coderay.
@@ -0,0 +1,12 @@
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ var pre = document.getElementsByTagName('pre'),
3
+ pl = pre.length;
4
+ for (var i = 0; i < pl; i++) {
5
+ pre[i].innerHTML = '<span class="line-number"></span>' + pre[i].innerHTML + '<span class="cl"></span>';
6
+ var num = pre[i].innerHTML.split(/\n/).length;
7
+ for (var j = 0; j < (num - 1); j++) {
8
+ var line_num = pre[i].getElementsByTagName('span')[0];
9
+ line_num.innerHTML += '<span>' + (j + 1) + '</span>';
10
+ }
11
+ }
12
+ })
@@ -0,0 +1,36 @@
1
+ pre {
2
+ display: block;
3
+ margin-top: 0;
4
+ margin-bottom: 1rem;
5
+ font-size: 0.7rem;
6
+ line-height: 1.4;
7
+ white-space: pre;
8
+ overflow: auto;
9
+ background-color:#eee;
10
+ border: 1px solid #ddd;
11
+ padding: .5rem;
12
+ max-height: 800px;
13
+ font-family: monospace;
14
+ code {
15
+ color: inherit;
16
+ background-color: transparent;
17
+ padding: 0;
18
+ display: block;
19
+ }
20
+ .line-number {
21
+ display: block;
22
+ float: left;
23
+ margin: 0 1em 0 -1em;
24
+ border-right: 1px solid #ddd;
25
+ text-align: right;
26
+ span {
27
+ display: block;
28
+ padding: 0 .5em 0 1em;
29
+ color: #ccc;
30
+ }
31
+ }
32
+ .cl {
33
+ display: block;
34
+ clear: both;
35
+ }
36
+ }
@@ -1,7 +1,7 @@
1
1
  class CodeRayify < Redcarpet::Render::HTML
2
2
  def block_code(code, language)
3
3
  if !Gem.loaded_specs.has_key?('coderay') || language == nil || language == ""
4
- %(<pre>#{code}</pre>)
4
+ %(<div class="CodeRay"><div class="code"><pre>#{code}</pre></div></div>)
5
5
  else
6
6
  CodeRay.scan(code, language).div
7
7
  end
@@ -13,10 +13,15 @@ module MarkdownTemplateHandler
13
13
  @erb ||= ActionView::Template.registered_template_handler(:erb)
14
14
  end
15
15
 
16
- def self.call(template)
17
- compiled_source = erb.call(template)
16
+ def self.call(template, source = nil)
17
+
18
+ compiled_source = if source
19
+ erb.call(template, source)
20
+ else
21
+ erb.call(template)
22
+ end
18
23
 
19
- %(Redcarpet::Markdown.new(CodeRayify.new(:filter_html => true,
24
+ %(Redcarpet::Markdown.new(CodeRayify.new(:filter_html => false,
20
25
  :hard_wrap => true),
21
26
  no_intra_emphasis: true,
22
27
  fenced_code_blocks: true,
data/lib/emd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Emd
2
- VERSION = "0.3.1"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Lim
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-18 00:00:00.000000000 Z
11
+ date: 2021-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redcarpet
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.4.0
19
+ version: 3.5.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.4.0
26
+ version: 3.5.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.1.2
61
+ version: 1.1.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.1.2
68
+ version: 1.1.3
69
69
  description: Embedded markdown template for Ruby on Rails
70
70
  email:
71
71
  - ytbryan@gmail.com
@@ -74,6 +74,8 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - README.md
77
+ - app/assets/javascripts/emd.js
78
+ - app/assets/stylesheets/emd.scss
77
79
  - app/helpers/emd_helper.rb
78
80
  - config/initializers/markdown_template_handler.rb
79
81
  - lib/emd.rb
@@ -101,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
103
  - !ruby/object:Gem::Version
102
104
  version: '0'
103
105
  requirements: []
104
- rubygems_version: 3.0.4
105
- signing_key:
106
+ rubygems_version: 3.1.2
107
+ signing_key:
106
108
  specification_version: 4
107
109
  summary: Markdown partial and .html.md on Rails View
108
110
  test_files: []