wikitxt 0.1.5 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47a7f8a4f7884dc145db8acf0da6b5fd903557d7f159ebd52f58caf61e562973
4
- data.tar.gz: 9d1ee801e37d098694d897352c320009d88024c13c57d75c13d593ca4eaddf75
3
+ metadata.gz: 2d7d36aaac23a1d7ba85f0c1b966722702fb988545fa7f4f1550eb0bfad2423e
4
+ data.tar.gz: 141d7bdcfe59efb10c1f3be0295c370fc9aaefbb94dd973cadb7968d76c13971
5
5
  SHA512:
6
- metadata.gz: d44e3f321afc81084d90310da0b2a538b31db20c32a88113934dfb644844e4626b4e4307813292a756e92570330dea6c77626114386043e08e2dba59fc6aa4e5
7
- data.tar.gz: ebcaf7464d7ee0405c03eb6372b522bcfa74a790872c45189fd8a410b85625bd5d18ec2f56e4ce63ace5bc73f272c670a6aec0e00f686930ddd9629447b80ae9
6
+ metadata.gz: 0ad58a00cd43a4ded7bb066000774095e39eb52eba0a5fdd5ee1827868868a7e830efc836d7afaaedc04c0db59b22615e4c604b13a8de71b77a5b25dbdb29319
7
+ data.tar.gz: 9b014e93d894663b6ac222361cd01b0906c84666f207917185a190a5cb10477c0a40e292af7f9b8daef6b11cba102309df414639c43c188f8fcd4194ef2db9b5
data/Gemfile.lock CHANGED
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wikitxt (0.1.5)
4
+ wikitxt (0.1.7)
5
5
  rackup (~> 2.1)
6
- rerun (~> 0.14)
7
6
  sinatra (~> 4.0)
8
7
  thor (~> 1.3)
9
8
 
@@ -55,8 +54,6 @@ GEM
55
54
  rb-fsevent (0.11.2)
56
55
  rb-inotify (0.10.1)
57
56
  ffi (~> 1.0)
58
- rerun (0.14.0)
59
- listen (~> 3.0)
60
57
  rspec (3.13.0)
61
58
  rspec-core (~> 3.13.0)
62
59
  rspec-expectations (~> 3.13.0)
data/README.md CHANGED
@@ -80,6 +80,18 @@ External Images:
80
80
  #<https://example.com/image.png Example Image>
81
81
  ```
82
82
 
83
+ Pre Blocks:
84
+
85
+ ```
86
+ ---
87
+ class Foo
88
+ def bar
89
+ p "bar"
90
+ end
91
+ end
92
+ ---
93
+ ```
94
+
83
95
  ## Usage
84
96
 
85
97
  ### Render HTML
@@ -123,6 +135,14 @@ Access to http://localhost:4567 .
123
135
  $ wikitxt build wiki
124
136
  ```
125
137
 
138
+ ### Search references
139
+
140
+ Install [ripgrep (rg)](https://github.com/BurntSushi/ripgrep)
141
+
142
+ ```
143
+ $ rg "#RDB" .
144
+ ```
145
+
126
146
  ## Development
127
147
 
128
148
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/wikitxt/node.rb CHANGED
@@ -39,13 +39,13 @@ module Wikitxt
39
39
 
40
40
  class TextNode < BaseNode
41
41
  def to_html
42
- "<span>#{attrs[:text]}</span>"
42
+ "<span>#{CGI.escapeHTML(attrs[:text])}</span>"
43
43
  end
44
44
  end
45
45
 
46
46
  class LinkNode < BaseNode
47
47
  def to_html
48
- " <a href=\"#{attrs[:url]}\">#{attrs[:title]}</a> "
48
+ " <a href=\"#{attrs[:url]}\">#{CGI.escapeHTML(attrs[:title])}</a> "
49
49
  end
50
50
  end
51
51
 
@@ -54,4 +54,32 @@ module Wikitxt
54
54
  "<img src=\"#{attrs[:url]}\" title=\"#{attrs[:title]}\" />"
55
55
  end
56
56
  end
57
+
58
+ class CodeNode < BaseNode
59
+ def to_html
60
+ <<~HTML
61
+ <div class="line">
62
+ <code><pre>#{CGI.escapeHTML(attrs[:text])}</pre></code>
63
+ </div>
64
+ HTML
65
+ end
66
+ end
67
+
68
+ class PreStartNode < BaseNode
69
+ def to_html
70
+ "<pre>"
71
+ end
72
+ end
73
+
74
+ class PreEndNode < BaseNode
75
+ def to_html
76
+ "</pre>\n"
77
+ end
78
+ end
79
+
80
+ class PreNode < BaseNode
81
+ def to_html
82
+ CGI.escapeHTML(attrs[:text])
83
+ end
84
+ end
57
85
  end
@@ -11,8 +11,21 @@ module Wikitxt
11
11
 
12
12
  def body
13
13
  b = BodyNode.new
14
+ in_pre = false
14
15
 
15
16
  text.lines.each do |line|
17
+ if line == "---\n"
18
+ node = !in_pre ? PreStartNode.new : PreEndNode.new
19
+ b.children << node
20
+ in_pre = !in_pre
21
+ next
22
+ end
23
+
24
+ if in_pre
25
+ b.children << PreNode.new(text: line)
26
+ next
27
+ end
28
+
16
29
  if match = line.match(/^(?<indent> {2,})(?<text>.*)$/)
17
30
  b.children << ListNode.new(text: match[:text], indent: match[:indent].length - 2)
18
31
  next
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wikitxt
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
@@ -7,6 +7,7 @@
7
7
  body {
8
8
  background: #ddd;
9
9
  padding: 1rem;
10
+ word-break: break-all;
10
11
  }
11
12
 
12
13
  .content {
@@ -37,6 +38,19 @@
37
38
  border-radius: 100%;
38
39
  }
39
40
 
41
+ pre, code {
42
+ background: #eee;
43
+ margin: 0;
44
+ width: 100%;
45
+ padding: 0.5rem;
46
+ box-sizing: border-box;
47
+ }
48
+
49
+ blockquote {
50
+ background: #eee;
51
+ font-style: italic;
52
+ }
53
+
40
54
  img {
41
55
  max-width: 100%;
42
56
  }
data/samples/Wikitxt.txt CHANGED
@@ -18,3 +18,11 @@ In summary, it's like this:
18
18
  Absolute url is parsed as external link: #<https://example.com Example Domain>
19
19
 
20
20
  #woman.jpg
21
+
22
+ ---
23
+ class Foo
24
+ def bar
25
+ p "bar"
26
+ end
27
+ end
28
+ ---
data/wikitxt.gemspec CHANGED
@@ -28,7 +28,6 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency "thor", "~> 1.3"
30
30
  spec.add_dependency "sinatra", "~> 4.0"
31
- spec.add_dependency "rerun", "~> 0.14"
32
31
  spec.add_dependency "rackup", "~> 2.1"
33
32
 
34
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikitxt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moeki Kawakami
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rerun
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.14'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.14'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rackup
57
43
  requirement: !ruby/object:Gem::Requirement