htot_conv 0.3.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +135 -135
  3. data/.travis.yml +12 -12
  4. data/Gemfile +4 -4
  5. data/LICENSE.txt +21 -21
  6. data/README.md +46 -138
  7. data/Rakefile +10 -10
  8. data/bin/console +14 -14
  9. data/bin/setup +8 -8
  10. data/docs/image/output_xlsx_type0.png +0 -0
  11. data/docs/image/output_xlsx_type1.png +0 -0
  12. data/docs/image/output_xlsx_type1_outline_rows_yes.png +0 -0
  13. data/docs/image/output_xlsx_type2.png +0 -0
  14. data/docs/image/output_xlsx_type2_integrate_cells_colspan.png +0 -0
  15. data/docs/image/output_xlsx_type2_outline_rows_yes.png +0 -0
  16. data/docs/image/output_xlsx_type3.png +0 -0
  17. data/docs/image/output_xlsx_type3_integrate_cells_both.png +0 -0
  18. data/docs/image/output_xlsx_type4.png +0 -0
  19. data/docs/image/output_xlsx_type4_integrate_cells_both.png +0 -0
  20. data/docs/image/output_xlsx_type5.png +0 -0
  21. data/docs/image/output_xlsx_type5_integrate_cells_colspan.png +0 -0
  22. data/docs/index.md +88 -0
  23. data/exe/htot_conv +8 -8
  24. data/htot_conv.gemspec +37 -37
  25. data/lib/htot_conv.rb +20 -20
  26. data/lib/htot_conv/cli.rb +174 -174
  27. data/lib/htot_conv/generator.rb +30 -30
  28. data/lib/htot_conv/generator/base.rb +34 -35
  29. data/lib/htot_conv/generator/xlsx_type0.rb +36 -24
  30. data/lib/htot_conv/generator/xlsx_type1.rb +57 -69
  31. data/lib/htot_conv/generator/xlsx_type2.rb +100 -104
  32. data/lib/htot_conv/generator/xlsx_type3.rb +99 -85
  33. data/lib/htot_conv/generator/xlsx_type4.rb +109 -84
  34. data/lib/htot_conv/generator/xlsx_type5.rb +75 -62
  35. data/lib/htot_conv/outline.rb +176 -176
  36. data/lib/htot_conv/parser.rb +27 -27
  37. data/lib/htot_conv/parser/base.rb +15 -15
  38. data/lib/htot_conv/parser/dir_tree.rb +54 -54
  39. data/lib/htot_conv/parser/html_list.rb +71 -71
  40. data/lib/htot_conv/parser/opml.rb +70 -70
  41. data/lib/htot_conv/parser/simple_text.rb +70 -70
  42. data/lib/htot_conv/util.rb +13 -13
  43. data/lib/htot_conv/version.rb +4 -4
  44. metadata +19 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41302c076b82a9a5ee719c4cd7a7fba90a002a95
4
- data.tar.gz: 76a20b7736754743c79ba11f849afbb306f2f89f
3
+ metadata.gz: 82aa21a70b04d057c215d61118c86979a1ecbbf1
4
+ data.tar.gz: 4e6a5c0134486792ac5b008feb7c10726d9883c5
5
5
  SHA512:
6
- metadata.gz: bd0d0624882261155d8ef62c251ac742cac779a2f0645a30cb0e5b319aaa6dd505c3fe4432001e4ece5b1358f6fd47d1e2e87de4f1473d44fd7331af4dfb97fc
7
- data.tar.gz: 06c0e3936b8debe10372cb719ed4186ba1813672fed7ee5f53b862ddc12aa072ec2b45a06e55a990850ffd91bb44735040f215d1307b5f3f9b48cb7e94685cb5
6
+ metadata.gz: cd4a0afbc095573d0ff9a1b4f3d928308f40ed865708bffdf467f767ec4d80b4f640bb29b5542f3319242f79b06e16c1dfc0515d2d1496d36fa8072cd77126ae
7
+ data.tar.gz: 93c995abaee53bdb8a428c05bd57c57e48dc936ebd5a93bf7c5b04e6541b70f10c67d287dfc434d9d0ee2ff0f94d23bb244729b453cfe8f09fdcf76f4fe7815d
data/.gitignore CHANGED
@@ -1,135 +1,135 @@
1
-
2
- # Created by https://www.gitignore.io/api/vim,emacs,ruby
3
-
4
- ### Emacs ###
5
- # -*- mode: gitignore; -*-
6
- *~
7
- \#*\#
8
- /.emacs.desktop
9
- /.emacs.desktop.lock
10
- *.elc
11
- auto-save-list
12
- tramp
13
- .\#*
14
-
15
- # Org-mode
16
- .org-id-locations
17
- *_archive
18
-
19
- # flymake-mode
20
- *_flymake.*
21
-
22
- # eshell files
23
- /eshell/history
24
- /eshell/lastdir
25
-
26
- # elpa packages
27
- /elpa/
28
-
29
- # reftex files
30
- *.rel
31
-
32
- # AUCTeX auto folder
33
- /auto/
34
-
35
- # cask packages
36
- .cask/
37
- dist/
38
-
39
- # Flycheck
40
- flycheck_*.el
41
-
42
- # server auth directory
43
- /server/
44
-
45
- # projectiles files
46
- .projectile
47
- projectile-bookmarks.eld
48
-
49
- # directory configuration
50
- .dir-locals.el
51
-
52
- # saveplace
53
- places
54
-
55
- # url cache
56
- url/cache/
57
-
58
- # cedet
59
- ede-projects.el
60
-
61
- # smex
62
- smex-items
63
-
64
- # company-statistics
65
- company-statistics-cache.el
66
-
67
- # anaconda-mode
68
- anaconda-mode/
69
-
70
- ### Ruby ###
71
- *.gem
72
- *.rbc
73
- /.config
74
- /coverage/
75
- /InstalledFiles
76
- /pkg/
77
- /spec/reports/
78
- /spec/examples.txt
79
- /test/tmp/
80
- /test/version_tmp/
81
- /tmp/
82
-
83
- # Used by dotenv library to load environment variables.
84
- # .env
85
-
86
- ## Specific to RubyMotion:
87
- .dat*
88
- .repl_history
89
- build/
90
- *.bridgesupport
91
- build-iPhoneOS/
92
- build-iPhoneSimulator/
93
-
94
- ## Specific to RubyMotion (use of CocoaPods):
95
- #
96
- # We recommend against adding the Pods directory to your .gitignore. However
97
- # you should judge for yourself, the pros and cons are mentioned at:
98
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
99
- #
100
- # vendor/Pods/
101
-
102
- ## Documentation cache and generated files:
103
- /.yardoc/
104
- /_yardoc/
105
- /doc/
106
- /rdoc/
107
-
108
- ## Environment normalization:
109
- /.bundle/
110
- /vendor/bundle
111
- /lib/bundler/man/
112
-
113
- # for a library or gem, you might want to ignore these files since the code is
114
- # intended to run in multiple environments; otherwise, check them in:
115
- Gemfile.lock
116
- # .ruby-version
117
- # .ruby-gemset
118
-
119
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
120
- .rvmrc
121
-
122
- ### Vim ###
123
- # swap
124
- [._]*.s[a-v][a-z]
125
- [._]*.sw[a-p]
126
- [._]s[a-v][a-z]
127
- [._]sw[a-p]
128
- # session
129
- Session.vim
130
- # temporary
131
- .netrwhist
132
- # auto-generated tag files
133
- tags
134
-
135
- # End of https://www.gitignore.io/api/vim,emacs,ruby
1
+
2
+ # Created by https://www.gitignore.io/api/vim,emacs,ruby
3
+
4
+ ### Emacs ###
5
+ # -*- mode: gitignore; -*-
6
+ *~
7
+ \#*\#
8
+ /.emacs.desktop
9
+ /.emacs.desktop.lock
10
+ *.elc
11
+ auto-save-list
12
+ tramp
13
+ .\#*
14
+
15
+ # Org-mode
16
+ .org-id-locations
17
+ *_archive
18
+
19
+ # flymake-mode
20
+ *_flymake.*
21
+
22
+ # eshell files
23
+ /eshell/history
24
+ /eshell/lastdir
25
+
26
+ # elpa packages
27
+ /elpa/
28
+
29
+ # reftex files
30
+ *.rel
31
+
32
+ # AUCTeX auto folder
33
+ /auto/
34
+
35
+ # cask packages
36
+ .cask/
37
+ dist/
38
+
39
+ # Flycheck
40
+ flycheck_*.el
41
+
42
+ # server auth directory
43
+ /server/
44
+
45
+ # projectiles files
46
+ .projectile
47
+ projectile-bookmarks.eld
48
+
49
+ # directory configuration
50
+ .dir-locals.el
51
+
52
+ # saveplace
53
+ places
54
+
55
+ # url cache
56
+ url/cache/
57
+
58
+ # cedet
59
+ ede-projects.el
60
+
61
+ # smex
62
+ smex-items
63
+
64
+ # company-statistics
65
+ company-statistics-cache.el
66
+
67
+ # anaconda-mode
68
+ anaconda-mode/
69
+
70
+ ### Ruby ###
71
+ *.gem
72
+ *.rbc
73
+ /.config
74
+ /coverage/
75
+ /InstalledFiles
76
+ /pkg/
77
+ /spec/reports/
78
+ /spec/examples.txt
79
+ /test/tmp/
80
+ /test/version_tmp/
81
+ /tmp/
82
+
83
+ # Used by dotenv library to load environment variables.
84
+ # .env
85
+
86
+ ## Specific to RubyMotion:
87
+ .dat*
88
+ .repl_history
89
+ build/
90
+ *.bridgesupport
91
+ build-iPhoneOS/
92
+ build-iPhoneSimulator/
93
+
94
+ ## Specific to RubyMotion (use of CocoaPods):
95
+ #
96
+ # We recommend against adding the Pods directory to your .gitignore. However
97
+ # you should judge for yourself, the pros and cons are mentioned at:
98
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
99
+ #
100
+ # vendor/Pods/
101
+
102
+ ## Documentation cache and generated files:
103
+ /.yardoc/
104
+ /_yardoc/
105
+ /doc/
106
+ /rdoc/
107
+
108
+ ## Environment normalization:
109
+ /.bundle/
110
+ /vendor/bundle
111
+ /lib/bundler/man/
112
+
113
+ # for a library or gem, you might want to ignore these files since the code is
114
+ # intended to run in multiple environments; otherwise, check them in:
115
+ Gemfile.lock
116
+ # .ruby-version
117
+ # .ruby-gemset
118
+
119
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
120
+ .rvmrc
121
+
122
+ ### Vim ###
123
+ # swap
124
+ [._]*.s[a-v][a-z]
125
+ [._]*.sw[a-p]
126
+ [._]s[a-v][a-z]
127
+ [._]sw[a-p]
128
+ # session
129
+ Session.vim
130
+ # temporary
131
+ .netrwhist
132
+ # auto-generated tag files
133
+ tags
134
+
135
+ # End of https://www.gitignore.io/api/vim,emacs,ruby
data/.travis.yml CHANGED
@@ -1,12 +1,12 @@
1
- sudo: false
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.4.1
6
- - 2.3.4
7
- - 2.2.7
8
- before_install: gem install bundler
9
- notifications:
10
- email: false
11
- slack:
12
- secure: "XBa7qrPhwAl3D8C2mnzHHPlFcWj/IDjQ2+ab1P+oaWSzUd6kzFaQeuuBp21omIozfZwZNOLKRLTquN7vrenBL5h9+wtJsIzx5VK9bwPQijm8MAPQ4tWuhYTJfRmEQxhxkT/TKj+OhHLEgf1ZybDdw4PIsSjQEbpGr2Ro6pT13SS6DcmWPBM7eRryd0CN9Y2/bml94nF48LsNh4u5duTDHuB1+CD0dsbN+jtaPb0+rl2VK8+NrEhi4ghr4HKLvNRVyRLfc53aLsJyv5Wehhv5/iAJIeTXV/ys1TLEpt75FIDTTmZDj3zslHCShOuer8O1wXpofOXNOdbHjQ7tGjcg8nit6FezbjBJxPW6ocI3cq7Tl3lVcQqS0Z1s4mtfqgVm6Fw+eRtbFcXVSOu+NyS1ArlEYp624DKsFAb2asELKBD64r18dRSTecdD6LpUe5Dremw5OP4UfVcekbtNs31X/G11WZE6LGidfJjr3Yk9Y16T05ZykGtZDttykhFbDt8dd/YGu5f3rsPsPLVcTYa3ciVk4+e+V8rwNjUZ81o30ChS1PEedUsq7ttZ2QJj4wC6awdaLp+ue+yn7cjJPPZY3cpcgiVTaWjDjqyeGPB/sf0cVhB1nAnkR0d+YIBa+01v7uerfKpZ/UvJSDXCYy1GOFpKuajGgtQ0qd8ceNgcsmE="
1
+ sudo: false
2
+ language: ruby
3
+ cache: bundler
4
+ rvm:
5
+ - 2.4.1
6
+ - 2.3.4
7
+ - 2.2.7
8
+ before_install: gem install bundler
9
+ notifications:
10
+ email: false
11
+ slack:
12
+ secure: "XBa7qrPhwAl3D8C2mnzHHPlFcWj/IDjQ2+ab1P+oaWSzUd6kzFaQeuuBp21omIozfZwZNOLKRLTquN7vrenBL5h9+wtJsIzx5VK9bwPQijm8MAPQ4tWuhYTJfRmEQxhxkT/TKj+OhHLEgf1ZybDdw4PIsSjQEbpGr2Ro6pT13SS6DcmWPBM7eRryd0CN9Y2/bml94nF48LsNh4u5duTDHuB1+CD0dsbN+jtaPb0+rl2VK8+NrEhi4ghr4HKLvNRVyRLfc53aLsJyv5Wehhv5/iAJIeTXV/ys1TLEpt75FIDTTmZDj3zslHCShOuer8O1wXpofOXNOdbHjQ7tGjcg8nit6FezbjBJxPW6ocI3cq7Tl3lVcQqS0Z1s4mtfqgVm6Fw+eRtbFcXVSOu+NyS1ArlEYp624DKsFAb2asELKBD64r18dRSTecdD6LpUe5Dremw5OP4UfVcekbtNs31X/G11WZE6LGidfJjr3Yk9Y16T05ZykGtZDttykhFbDt8dd/YGu5f3rsPsPLVcTYa3ciVk4+e+V8rwNjUZ81o30ChS1PEedUsq7ttZ2QJj4wC6awdaLp+ue+yn7cjJPPZY3cpcgiVTaWjDjqyeGPB/sf0cVhB1nAnkR0d+YIBa+01v7uerfKpZ/UvJSDXCYy1GOFpKuajGgtQ0qd8ceNgcsmE="
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in htot_conv.gemspec
4
- gemspec
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in htot_conv.gemspec
4
+ gemspec
data/LICENSE.txt CHANGED
@@ -1,21 +1,21 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2017 cat_in_136
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 cat_in_136
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,138 +1,46 @@
1
- # HTOTConv - Hierarchical-Tree Outline Text Converter
2
-
3
- Convert from a simple hierarchical-tree outline text into ugly xlsx file
4
-
5
- [![Gem Version](https://badge.fury.io/rb/htot_conv.svg)](https://badge.fury.io/rb/htot_conv)
6
- [![Build Status](https://travis-ci.org/cat-in-136/htot_conv.svg?branch=master)](https://travis-ci.org/cat-in-136/htot_conv)
7
-
8
- ## Installation
9
-
10
- Install `htot_conv` via RubyGems. Simply run the following command to install:
11
-
12
- $ gem install htot_conv
13
-
14
- ## Usage
15
-
16
- $ cat outline.txt
17
- President
18
- .VP Marketing
19
- ..Manager
20
- ..Manager
21
- .VP Production
22
- ..Manager
23
- ..Manager
24
- .VP Sales
25
- ..Manager
26
- ..Manager
27
- $ htot_conv -f simple_text --from-indent=. -t xlsx_type2 outline.txt outline.xlsx
28
- $ xdg-open outline.xlsx
29
-
30
- ### Types of input
31
-
32
- #### `simple_text`
33
-
34
- * A text file consisting of multiple lines where:
35
- * `<line> ::= { <indent> } <key> { <delimiter> <value> }`
36
- * `<key>` : a text that does not start with `<indent>` and does not contain `<delimiter>` (if `<delimiter>` specified).
37
- * `<value>` : a text that does not contain `<delimiter>`.
38
- * `<indent>` : specified by `--from-indent` option
39
- * `<delimiter>` : specified by `--from-delimiter` option
40
-
41
- #### `dir_tree`
42
-
43
- * Directory tree with the glob pattern specified by `--from-glob-pattern` (default: `**/*`)
44
-
45
- #### `html_list`
46
-
47
- * HTML `<ul><li>` and/or `<ol><li>` [nesting list](https://www.w3.org/wiki/HTML_lists#Nesting_lists).
48
- * All text outside of `<li>` elements is ignored.
49
-
50
- #### `opml`
51
-
52
- * [OPML](http://dev.opml.org/)
53
- * Treat the `text` attribute as a key text, the other attributes as values.
54
-
55
- ### Types of output
56
-
57
- The sample input used in this section are as follows:
58
-
59
- 1,1(1),1(2)
60
- 1.1,1.1(1),1.1(2)
61
- 1.2,1.2(1),1.2(2)
62
- 1.2.1,1.2.1(1),1.2.1(2)
63
-
64
- * key header: H1, H2, H3
65
- * value header: H(1), H(2)
66
-
67
- #### `xlsx_type0`
68
-
69
- | H1 | Level | H(1) | H(2) |
70
- |-------|-------|----------|----------|
71
- | 1 | 1 | 1(1) | 1(2) |
72
- | 1.1 | 2 | 1.1(1) | 1.1(2) |
73
- | 1.2 | 2 | 1.2(1) | 1.2(2) |
74
- | 1.2.1 | 3 | 1.2.1(1) | 1.2.1(2) |
75
-
76
- #### `xlsx_type1`
77
-
78
- | H1 | H(1) | H(2) |
79
- |-------|----------|----------|
80
- | 1 | 1(1) | 1(2) |
81
- | 1.1 | 1.1(1) | 1.1(2) |
82
- | 1.2 | 1.2(1) | 1.2(2) |
83
- | 1.2.1 | 1.2.1(1) | 1.2.1(2) |
84
-
85
- Not implemented (TODO):
86
-
87
- * Fill with different background color for each level.
88
-
89
- #### `xlsx_type2`
90
-
91
- | H1 | H2 | H3 | H(1) | H(2) |
92
- |----|-----|-------|----------|----------|
93
- | 1 | | | 1(1) | 1(2) |
94
- | | 1.1 | | 1.1(1) | 1.1(2) |
95
- | | 1.2 | | 1.2(1) | 1.2(2) |
96
- | | | 1.2.1 | 1.2.1(1) | 1.2.1(2) |
97
-
98
- #### `xlsx_type3`
99
-
100
- | H1 | H(1) | | | H(2) |
101
- |----|------|--------|----------|----------|
102
- | 1 | 1(1) | | | 1(2) |
103
- | | 1.1 | 1.1(1) | | 1.1(2) |
104
- | | 1.2 | 1.2(1) | | 1.2(2) |
105
- | | | 1.2.1 | 1.2.1(1) | 1.2.1(2) |
106
-
107
- TODO: Github Flavored Markdown does not support the column span.
108
- So, this document does not correctly represent type-3 xlsx spread sheet.
109
-
110
- #### `xlsx_type4`
111
-
112
- | H1 | H2 | H3 | H(1) | H(2) |
113
- |----|-----|-------|----------|----------|
114
- | 1 | 1.1 | | 1.1(1) | 1.1(2) |
115
- | | 1.2 | 1.2.1 | 1.2.1(1) | 1.2.1(2) |
116
-
117
- #### `xlsx_type5`
118
-
119
- | H1 | H2 | H3 | H(1) | H(2) |
120
- |----|-----|-------|----------|----------|
121
- | 1 | 1.1 | | 1.1(1) | 1.1(2) |
122
- | 1 | 1.2 | 1.2.1 | 1.2.1(1) | 1.2.1(2) |
123
-
124
- ## Development
125
-
126
- $ bundle install --path=vendor/bundle --with development test
127
- $ bundle exec rake test
128
-
129
- ## Contributing
130
-
131
- Bug reports and pull requests are welcome on GitHub at <https://github.com/cat-in-136/htot_conv>.
132
-
133
-
134
- ## License
135
-
136
- [MIT License](http://opensource.org/licenses/MIT).
137
- See the `LICENSE.txt` file.
138
-
1
+ # HTOTConv - Hierarchical-Tree Outline Text Converter
2
+
3
+ Convert from a simple hierarchical-tree outline text into ugly xlsx file
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/htot_conv.svg)](https://badge.fury.io/rb/htot_conv)
6
+ [![Build Status](https://travis-ci.org/cat-in-136/htot_conv.svg?branch=master)](https://travis-ci.org/cat-in-136/htot_conv)
7
+
8
+ ## Installation
9
+
10
+ Install `htot_conv` via RubyGems. Simply run the following command to install:
11
+
12
+ $ gem install htot_conv
13
+
14
+ ## Usage
15
+
16
+ $ cat outline.txt
17
+ President
18
+ .VP Marketing
19
+ ..Manager
20
+ ..Manager
21
+ .VP Production
22
+ ..Manager
23
+ ..Manager
24
+ .VP Sales
25
+ ..Manager
26
+ ..Manager
27
+ $ htot_conv -f simple_text --from-indent=. -t xlsx_type2 outline.txt outline.xlsx
28
+ $ xdg-open outline.xlsx
29
+
30
+ See [docs/index.md](docs/index.md) for detail.
31
+
32
+ ## Development
33
+
34
+ $ bundle install --path=vendor/bundle --with development test
35
+ $ bundle exec rake test
36
+
37
+ ## Contributing
38
+
39
+ Bug reports and pull requests are welcome on GitHub at <https://github.com/cat-in-136/htot_conv>.
40
+
41
+
42
+ ## License
43
+
44
+ [MIT License](http://opensource.org/licenses/MIT).
45
+ See the `LICENSE.txt` file.
46
+