powerdown 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 18d654dd38a61c7957280e45f370d21400a64543
4
+ data.tar.gz: 1572bfc6627a1a730ff3a1d146ef661f0dd666b6
5
+ SHA512:
6
+ metadata.gz: 6735e7cc0acc6a0636a31dbdda60cbbed61c2710cde81f2279b87f4f762bd64994a17b3b7595b3bdcc52fbdb03c174e6a33d32e44c3acd4512b435251f205941
7
+ data.tar.gz: 37d7ea49ea27ef652aeac670840ab31f8b9febfeededb3b8fd27916a0715c655b8576d666cb092a34f00c606eacb4e93019af7f4e9c8f06c012a12851fceff5f
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.swp
2
+ *.swo
3
+ .DS_Store
4
+
5
+ /.rvmrc
6
+ /tmp
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ powerdown (0.0.1)
5
+ powerpoint (~> 1.4)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.2.5)
11
+ powerpoint (1.4)
12
+ rubyzip (~> 1.0.0)
13
+ rake (10.4.2)
14
+ rspec (3.1.0)
15
+ rspec-core (~> 3.1.0)
16
+ rspec-expectations (~> 3.1.0)
17
+ rspec-mocks (~> 3.1.0)
18
+ rspec-core (3.1.7)
19
+ rspec-support (~> 3.1.0)
20
+ rspec-expectations (3.1.2)
21
+ diff-lcs (>= 1.2.0, < 2.0)
22
+ rspec-support (~> 3.1.0)
23
+ rspec-mocks (3.1.3)
24
+ rspec-support (~> 3.1.0)
25
+ rspec-support (3.1.2)
26
+ rubyzip (1.0.0)
27
+
28
+ PLATFORMS
29
+ ruby
30
+
31
+ DEPENDENCIES
32
+ bundler
33
+ powerdown!
34
+ rake
35
+ rspec
data/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # Powerdown
2
+
3
+ _/paʊər-daʊn/_
4
+
5
+ ### Powerdown file
6
+
7
+ ```
8
+ !DOWN
9
+
10
+ slide1
11
+
12
+ subtitle
13
+
14
+
15
+ !DOWN
16
+
17
+ slide2
18
+
19
+ - item1
20
+ - item2
21
+ - item3
22
+
23
+ !DOWN
24
+
25
+ slide3
26
+
27
+ - item4
28
+ - item5
29
+ - item6
30
+ ```
31
+
32
+ ### Installation
33
+ ```
34
+ $ gem install powerdown
35
+ ```
36
+
37
+ ### Usage
38
+
39
+ ```
40
+ $ powerdown file.pd
41
+ $ open file.pptx
42
+ ```
data/bin/powerdown ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ lib = File.expand_path('../../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'powerdown'
6
+
7
+ Powerdown.run!
@@ -0,0 +1,20 @@
1
+ require 'powerpoint'
2
+
3
+ class Powerdown
4
+
5
+ def make pptx_path
6
+ @deck = Powerpoint::Presentation.new
7
+ @slides.each do |slide|
8
+ case slide[:type]
9
+ when SLIDE_TYPE_INTRO
10
+ p 'intro'
11
+ @deck.add_intro slide[:title], slide[:subtitle]
12
+ when SLIDE_TYPE_ITEMS
13
+ p 'items'
14
+ @deck.add_textual_slide slide[:title], slide[:items]
15
+ end
16
+ end
17
+ @deck.save pptx_path
18
+ end
19
+
20
+ end
@@ -0,0 +1,33 @@
1
+ class Powerdown
2
+
3
+ SLIDE_TYPE_INTRO = 1
4
+ SLIDE_TYPE_ITEMS = 2
5
+
6
+ def initialize raw
7
+ @raw = raw =~ /\A!DOWN/ ? raw : "!DOWN\n#{raw}"
8
+ parse_slides
9
+ p @slides
10
+ end
11
+
12
+ def parse_slides
13
+ @slides = @raw.split(/^!DOWN\s*([a-z\s]*)$/).reject(&:empty?).each_with_index.map do |lines, i|
14
+ lines = lines.split("\n").reject(&:empty?)
15
+ if ( i == 0 ) && ( lines.count <= 2 )
16
+ {
17
+ type: SLIDE_TYPE_INTRO,
18
+ title: lines[0],
19
+ subtitle: lines[1] || ''
20
+ }
21
+ else
22
+ {
23
+ type: SLIDE_TYPE_ITEMS,
24
+ title: lines[0],
25
+ items: lines.slice(1, lines.count - 1).map do |item|
26
+ item.sub(/^\s*-\s*/, '').strip
27
+ end
28
+ }
29
+ end
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,7 @@
1
+ class Powerdown
2
+ USAGE = %{
3
+ == Usage
4
+ powerdown file.pd
5
+
6
+ }
7
+ end
@@ -0,0 +1,3 @@
1
+ class Powerdown
2
+ VERSION = "0.0.1"
3
+ end
data/lib/powerdown.rb ADDED
@@ -0,0 +1,27 @@
1
+ require 'powerdown/version'
2
+ require 'powerdown/usage'
3
+ require 'powerdown/parser'
4
+ require 'powerdown/generator'
5
+
6
+ Encoding.default_external = Encoding::UTF_8
7
+ Encoding.default_internal = Encoding::UTF_8
8
+
9
+ class Powerdown
10
+
11
+ def self.run! argv = ARGV
12
+ args = argv.dup
13
+
14
+ if args.empty?
15
+ puts USAGE
16
+ else
17
+ source = args[0]
18
+ make source
19
+ end
20
+ end
21
+
22
+ def self.make source_path
23
+ powerdown = new File.read(source_path)
24
+ powerdown.make source_path.sub(/.pd$/, '') + '.pptx'
25
+ end
26
+
27
+ end
data/powerdown.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'powerdown/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'powerdown'
7
+ spec.version = Powerdown::VERSION
8
+ spec.authors = ['aligo']
9
+ spec.email = ['aligo_x@163.com']
10
+ spec.description = %q{PowerPoint from Markdown-like.}
11
+ spec.summary = %q{PowerPoint from Markdown-like.}
12
+ spec.homepage = 'https://github.com/aligo/powerdown'
13
+ spec.license = 'MIT'
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ # spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.require_paths = ['lib']
18
+ spec.required_ruby_version = '>= 1.9.3'
19
+ spec.add_development_dependency 'bundler'
20
+ spec.add_development_dependency 'rake'
21
+ spec.add_development_dependency 'rspec'
22
+ spec.add_dependency 'powerpoint', '~> 1.4'
23
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: powerdown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - aligo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: powerpoint
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.4'
69
+ description: PowerPoint from Markdown-like.
70
+ email:
71
+ - aligo_x@163.com
72
+ executables:
73
+ - powerdown
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - Gemfile
79
+ - Gemfile.lock
80
+ - README.md
81
+ - bin/powerdown
82
+ - lib/powerdown.rb
83
+ - lib/powerdown/generator.rb
84
+ - lib/powerdown/parser.rb
85
+ - lib/powerdown/usage.rb
86
+ - lib/powerdown/version.rb
87
+ - powerdown.gemspec
88
+ homepage: https://github.com/aligo/powerdown
89
+ licenses:
90
+ - MIT
91
+ metadata: {}
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.9.3
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 2.4.4
109
+ signing_key:
110
+ specification_version: 4
111
+ summary: PowerPoint from Markdown-like.
112
+ test_files: []