ppz 0.0.1 → 0.0.6

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/asset/style/ppz.css +141 -0
  3. data/asset/style/ppz.styl +126 -0
  4. data/bin/common.rb +42 -0
  5. data/bin/doc.rb +17 -0
  6. data/bin/folder.rb +10 -0
  7. data/bin/ppz +12 -10
  8. data/lib/func/util.rb +19 -2
  9. data/lib/{object/model → model}/abstract/model.rb +16 -18
  10. data/lib/model/abstract/wrapper-model.rb +26 -0
  11. data/lib/model/comment/container.rb +7 -0
  12. data/lib/model/comment/item.rb +12 -0
  13. data/lib/{object/model → model}/common/escape.rb +1 -1
  14. data/lib/{object/model → model}/common/tag.rb +0 -0
  15. data/lib/model/list/item/abstract.rb +13 -0
  16. data/lib/model/list/item/unordered.rb +7 -0
  17. data/lib/model/list/wrapper/abstract.rb +12 -0
  18. data/lib/model/list/wrapper/unordered.rb +3 -0
  19. data/lib/model/p/index.rb +17 -0
  20. data/lib/model/section/abstract.rb +15 -0
  21. data/lib/model/section/leaf.rb +29 -0
  22. data/lib/model/section/root.rb +16 -0
  23. data/lib/model/special-block/container.rb +25 -0
  24. data/lib/model/special-block/item.rb +8 -0
  25. data/lib/{object/parser → parser}/common/context/abstract.rb +3 -5
  26. data/lib/parser/common/context/doc.rb +15 -0
  27. data/lib/parser/doc/abstract.rb +68 -0
  28. data/lib/{object/parser → parser}/doc/file.rb +1 -3
  29. data/lib/{object/parser → parser}/doc/string.rb +1 -3
  30. data/lib/parser/folder/index.rb +9 -0
  31. data/lib/parser/folder/model/abstract.rb +90 -0
  32. data/lib/parser/folder/model/file/abstract.rb +23 -0
  33. data/lib/parser/folder/model/file/other.rb +7 -0
  34. data/lib/parser/folder/model/file/ppz.rb +15 -0
  35. data/lib/parser/folder/model/folder.rb +93 -0
  36. data/lib/ppz.rb +26 -1
  37. metadata +34 -26
  38. data/bin/ppz-util.rb +0 -31
  39. data/lib/object/model/abstract/wrapper-model.rb +0 -21
  40. data/lib/object/model/common/tag.test.rb +0 -25
  41. data/lib/object/model/list/item/abstract.rb +0 -15
  42. data/lib/object/model/list/item/unordered.rb +0 -5
  43. data/lib/object/model/list/wrapper/abstract.rb +0 -7
  44. data/lib/object/model/list/wrapper/unordered.rb +0 -5
  45. data/lib/object/model/p/index.rb +0 -15
  46. data/lib/object/model/section/abstract.rb +0 -10
  47. data/lib/object/model/section/leaf.rb +0 -35
  48. data/lib/object/model/section/root.rb +0 -7
  49. data/lib/object/model/section/test.rb +0 -12
  50. data/lib/object/model/special-block/container.rb +0 -18
  51. data/lib/object/model/special-block/item.rb +0 -10
  52. data/lib/object/parser/common/context/doc.rb +0 -15
  53. data/lib/object/parser/doc/abstract.rb +0 -69
  54. data/lib/object/parser/doc/file.test.rb +0 -6
  55. data/lib/object/parser/folder/index.rb +0 -7
@@ -1,12 +0,0 @@
1
- require 'test/unit'
2
- require_relative './leaf'
3
- require_relative './root'
4
-
5
- root = RootSectionModel.new
6
- leaf1 = LeafSectionModel.new '一级标题'
7
- leaf2 = LeafSectionModel.new '第二个一级标题'
8
- leaf11 = LeafSectionModel.new '二级标题'
9
-
10
- root.append leaf1
11
- leaf1.append leaf11
12
- root.append leaf2
@@ -1,18 +0,0 @@
1
- require_relative '../abstract/wrapper-model'
2
-
3
- class SpecialContainerModel < AbstractWrapperModel
4
- REG_EXP = /^``` (.+)/
5
- def self.from_line line
6
- return nil unless match_data = REG_EXP.match(line)
7
- SpecialContainerModel.new $1
8
- end
9
-
10
- def initialize name
11
- @name = name
12
- super()
13
- end
14
-
15
- def to_html
16
- "<div class=\"special-block #{@name}\">#{super}</div>"
17
- end
18
- end
@@ -1,10 +0,0 @@
1
- require_relative '../abstract/model'
2
-
3
- class SpecialItemModel < AbstractModel
4
- def initialize line
5
- @line = line
6
- end
7
- def to_html
8
- "<div>#{@line}</div>"
9
- end
10
- end
@@ -1,15 +0,0 @@
1
- require_relative '../../../model/section/abstract'
2
- require_relative './abstract'
3
-
4
- class DocContext < AbstractContext
5
- def level
6
- @stack.reverse_each do |item|
7
- return item.level if item.is_a? AbstractSectionModel
8
- end
9
- throw '不应该到这里'
10
- end
11
-
12
- def pop_to_section
13
- pop_to AbstractSectionModel
14
- end
15
- end
@@ -1,69 +0,0 @@
1
- # 解析一个 .ppz 文档(可以是一个文件、字符串)
2
-
3
- require_relative '../common/context/doc'
4
- require_relative '../../model/section/leaf'
5
- require_relative '../../model/section/root'
6
- require_relative '../../model/p/index'
7
- require_relative '../../model/list/item/unordered'
8
- require_relative '../../model/list/wrapper/unordered'
9
- require_relative '../../model/special-block/container'
10
- require_relative '../../model/special-block/item'
11
-
12
- class AbstractDocParser
13
- def initialize
14
- @context = DocContext.new RootSectionModel.new
15
- end
16
-
17
- def get_model
18
- loop do
19
- line = readline
20
- break unless line != nil
21
- handle_line line
22
- end
23
- @context.root
24
- end
25
-
26
- private
27
- def handle_line line
28
- if @context.head.is_a? SpecialContainerModel
29
- # special-block
30
- if /^``` *$/.match line
31
- # special-block-end
32
- @context.pop
33
- return
34
- else
35
- # special-block-item
36
- target = SpecialItemModel.new line
37
- end
38
- elsif target = SpecialContainerModel.from_line(line)
39
- # special-block-container
40
- elsif target = LeafSectionModel.from_line(line)
41
- # section
42
- # 检查 level
43
- loop do
44
- break if @context.level < target.level
45
- @context.pop
46
- end
47
- elsif target = UnorderedListItemModel.from_line(line)
48
- # 列表
49
- unless @context.head.is_a? UnorderedListWrapperModel # 如果当前不在一个 无序列表 里
50
- wrapper = UnorderedListWrapperModel.new # 就整一个无序列表
51
- @context.pop_to_section # 找到最近的 section
52
- @context.head.append wrapper # 加入 wrapper
53
- @context.append wrapper # wrapper 入上下文栈
54
- end
55
- # p
56
- else
57
- @context.pop_to_section # 找到最近的 section
58
- target = PModel.new line
59
- end
60
-
61
- # 添加到父级 model
62
- @context.head.append target
63
-
64
- # 推入上下文
65
- if target.is_a? AbstractWrapperModel
66
- @context.append target
67
- end
68
- end
69
- end
@@ -1,6 +0,0 @@
1
- require_relative './file'
2
-
3
- target = FileDocParser.new __FILE__
4
-
5
- p target.readline;p target.readline;p target.readline;p target.readline;
6
- p target.readline;p target.readline;p target.readline;p target.readline;
@@ -1,7 +0,0 @@
1
- # 解析一个文件夹里的 .ppz 文件
2
-
3
- class FolderParser
4
- def initialize
5
- @context = Context.new
6
- end
7
- end