wikitxt 0.1.6 → 0.1.8

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: d8fad6d59c01705bbe4b224a2e2b0c8aeec33f5dc565764fe9a30b0eee2f3429
4
- data.tar.gz: 68e2f0f840d5d6b89d6ae308fb00205b8abaa3e95c6eb01e3905f4d02b6185d8
3
+ metadata.gz: 73eb1677244102056a2c0ce55f4b155dd93458e7cb323e838cf7a9c4f4d2b340
4
+ data.tar.gz: 77a2f7d698c476d522839228054216d9a223dc486cd6bc7f9b84683a6ddd574a
5
5
  SHA512:
6
- metadata.gz: 63363c50d0698f4445f56f25b8f022a900a23f42ad1d237ec01d2f6057c68cca4f7e77a5d043a319f722886d1a5e5105bf6c48a62084d409824e9d37a9d51f7f
7
- data.tar.gz: ad0569bc3741639ed7ce2eb4173b485c34e2ba790648b3d4b6d7f9afece0693041f4d248be12da97343145626125c4448a967959b472278bc156fcffeef23320
6
+ metadata.gz: 46496b95ccd05a44058ec74c1ee7190743921af27a4a9503ae664095b32741f3c9b1a1d0716873f4a88dee0c7bf92106c5b511f3cffa515cad98f830306be353
7
+ data.tar.gz: 85fb0547e9f9a990a0ec5f257bcaa2d4964fd18bc70c274c9c12f545ed5ba4b447219f19aa77ef53b025301c68d968df8341577cb8eaec74cc2b2fd42f90a90a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wikitxt (0.1.6)
4
+ wikitxt (0.1.8)
5
5
  rackup (~> 2.1)
6
6
  sinatra (~> 4.0)
7
7
  thor (~> 1.3)
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
@@ -30,7 +30,7 @@ module Wikitxt
30
30
  def to_html
31
31
  <<~HTML
32
32
  <div class="line">
33
- <div class="dot" style="margin-left: #{attrs[:indent] * 5}px;"></div>
33
+ <div style="margin-left: #{attrs[:indent] * 10}px;"></div>
34
34
  <div class="list">#{Parser::Inline.new(self).to_html}</div>
35
35
  </div>
36
36
  HTML
@@ -45,7 +45,7 @@ module Wikitxt
45
45
 
46
46
  class LinkNode < BaseNode
47
47
  def to_html
48
- " <a href=\"#{attrs[:url]}\">#{CGI.escapeHTML(attrs[:title])}</a> "
48
+ " <a href=\"#{attrs[:url]}\">#{!attrs[:title].empty? ? CGI.escapeHTML(attrs[:title]) : attrs[:url]}</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.6"
4
+ VERSION = "0.1.8"
5
5
  end
@@ -31,19 +31,12 @@
31
31
  min-height: 1rem;
32
32
  }
33
33
 
34
- .dot {
35
- width: 5px;
36
- height: 5px;
37
- background: #333;
38
- border-radius: 100%;
39
- }
40
-
41
34
  pre, code {
42
35
  background: #eee;
43
- }
44
-
45
- pre .dot, code .dot {
46
- background: none;
36
+ margin: 0;
37
+ width: 100%;
38
+ padding: 0.5rem;
39
+ box-sizing: border-box;
47
40
  }
48
41
 
49
42
  blockquote {
data/samples/Wikitxt.txt CHANGED
@@ -19,35 +19,10 @@ Absolute url is parsed as external link: #<https://example.com Example Domain>
19
19
 
20
20
  #woman.jpg
21
21
 
22
- やってること
23
- パラグラフ
24
- リスト
25
- リンク
26
- 画像
27
- やってないこと
28
- #装飾文字
29
- これはいらない気もする
30
- #コードブロック
31
- #引用
32
- #自動リンク
33
- コードスパンがないのでURLを生で書きたい時に困る
34
- コードブロックというかpreはは必要なのか
35
- というか #コードブロック の記法を作るくらいならpreタグを使うのとさほど変わらないのでは
36
-
37
- <code>
38
- class Hoge
39
- def initialize(fuga)
40
- @fuga = fuga
41
- end
22
+ ---
23
+ class Foo
24
+ def bar
25
+ p "bar"
42
26
  end
43
- </code>
44
-
45
- ↑preタグの中にもリストができてしまったので修正必要そう。
46
-
47
- インラインは良さそう: <pre>これはpreタグの中身です</pre>
48
-
49
- と思ったがpreタグは改行されるのか
50
-
51
- <blockquote>
52
- ホゲホゲ
53
- </blockquote>
27
+ end
28
+ ---
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikitxt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moeki Kawakami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-13 00:00:00.000000000 Z
11
+ date: 2024-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor