wikitxt 0.1.5 → 0.1.7

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: 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