nopoint 0.1.2 → 0.3.0

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
  SHA1:
3
- metadata.gz: 74f479ccd2e43dd24eeb9de9bf504b8abf16cc2d
4
- data.tar.gz: f2fafee079f2c349f06e80281077b7bc47ca1289
3
+ metadata.gz: b59dab6bf207fcf978c930a0e37d72515b808627
4
+ data.tar.gz: 60310224bd93de509cf51de5de961aca8f48c17b
5
5
  SHA512:
6
- metadata.gz: 5928f10e065dd5a1f52b3f51f46a92994d87a7aea534c512d3807b8a714763e3d628e093207295cbd6a075e5770d529a8434615996002577697f44f293c034cd
7
- data.tar.gz: 2233c1a9c6d05548bb9aaa69556a78339a992e9a1fd572a9bec816fabb788b79f195a578f53832d84814690245461b2e40f9d950f1b56b14301620a60c109c6b
6
+ metadata.gz: 4a7b34059b066f2172fc562e4a5f7528a4a72455f7c1da929d215b41d9f886ca7855ce91093b9d8e1797b6d8e077de85c9a916a4ae1656f4201a5d956f502381
7
+ data.tar.gz: c92440d634fd6ea8e7ac41d4d304b73999ed088697deca85007afb90116cf53d55046d97b99d9d20e45735681d11a3e320b6a0338bf0998cb04d62a2de6e1237
data/bin/nopoint CHANGED
@@ -13,7 +13,7 @@ default_command :help
13
13
  command :new do |c|
14
14
  c.syntax = 'nopoint new PATH [options]'
15
15
  c.summary = 'Scaffold a new Slide'
16
- c.description = 'Creates a new Nopoint Slide scaffold in PATH'
16
+ c.description = 'Creates a new Nopoint scaffold at $PATH'
17
17
 
18
18
  c.action do |args, options|
19
19
  Nopoint::Commands::New.process(args, options)
@@ -23,20 +23,26 @@ end
23
23
  command :serve do |c|
24
24
  c.syntax = 'nopoint serve [options]'
25
25
  c.summary = 'Start a webserver'
26
- c.description = 'Starts a webserver for the slides public dir'
27
-
26
+ c.description = 'Serve your slideshow locally'
27
+
28
+ c.option '-w', '--watch', 'watch for changes and rebuild'
29
+
28
30
  c.action do |args, options|
31
+ # let the build command know that we are serving
32
+ options.default :serving => true
33
+ Nopoint::Commands::Build.process(options)
29
34
  Nopoint::Commands::Serve.process(options)
30
35
  end
31
36
  end
32
37
 
33
38
  command :build do |c|
34
39
  c.syntax = 'nopoint build [options]'
35
- c.summary = 'Convert to html'
40
+ c.summary = 'Generate slideshow'
36
41
  c.description = 'Converts the slideshow to a static html site'
37
42
 
43
+ c.option '-w', '--watch', 'watch for changes and rebuild'
44
+
38
45
  c.action do |args, options|
39
46
  Nopoint::Commands::Build.process(options)
40
47
  end
41
- end
42
-
48
+ end
data/lib/nopoint.rb CHANGED
@@ -15,8 +15,9 @@ require 'coderay'
15
15
 
16
16
  # internal
17
17
  require 'nopoint/command'
18
- require 'nopoint/version'
18
+ require 'nopoint/chapter'
19
19
  require 'nopoint/slide'
20
+ require 'nopoint/version'
20
21
 
21
22
  require_all 'nopoint/commands'
22
23
 
@@ -0,0 +1,26 @@
1
+ module Nopoint
2
+ class Chapter
3
+ require 'kramdown'
4
+
5
+ attr_accessor :id, :data, :slides
6
+
7
+ def initialize(id, file)
8
+ @id = id
9
+ @slides = []
10
+ source = File.read(file)
11
+ if source =~ /\A(---\s*\n.*?\n?)^(---\s*$\n?)/m
12
+ # remove the matched header
13
+ source = $'
14
+ self.data = YAML.safe_load($1)
15
+ else
16
+ self.data = Hash.new
17
+ end
18
+
19
+ source.split(/\* ?\* ?\*/).each do |slide|
20
+ @slides << Nopoint::Slide.new(slide)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+
@@ -5,34 +5,100 @@ module Nopoint
5
5
  require 'erb'
6
6
 
7
7
  def self.process(options)
8
+ puts 'Let’s go!'
9
+ self.build(options)
10
+ self.watch(options) if options.watch
11
+ end
12
+
13
+ def self.build(options)
8
14
  config = YAML.safe_load_file('config.yml')
9
- layout = File.read('layout/slide.erb')
10
-
11
- slides = []
12
- source = []
15
+ template = config['template'] # Error handling
13
16
 
14
- config['chapters'].each do |chapter|
15
- source += File.read('slides/' + chapter).split(/\* ?\* ?\*/)
17
+ chapters = []
18
+ source = []
19
+ destination = 'public'
20
+
21
+ config['chapters'].each_with_index do |chapter, index|
22
+ name = File.join(Dir.pwd, "slides/#{chapter}")
23
+ chapters.push Nopoint::Chapter.new(index, name)
16
24
  end
25
+
26
+ # Cleanup and rebuild the Public folder
27
+ if File.directory? destination
28
+ FileUtils.rm_rf(Dir.glob("#{destination}/*"))
29
+ else
30
+ FileUtils.mkdir(destination)
31
+ end
32
+
33
+ # Insert vendor template
34
+ FileUtils.mkdir destination + '/assets'
35
+ FileUtils.mkdir destination + '/slides'
36
+ FileUtils.mkdir destination + '/images'
37
+
38
+ FileUtils.cp 'vendor/index.html', destination
39
+ FileUtils.cp Dir.glob('vendor/*.js'), destination + '/assets'
40
+ FileUtils.cp_r Dir.glob('images/*'), destination + '/images' if File.directory? 'images'
41
+ FileUtils.cp Dir.glob("templates/#{template}/*.{css,js}"), destination + '/assets'
42
+
43
+ # Build Stitic slides
44
+ @slide_index = 0
45
+ @slide_max = chapters.inject(0) {|sum, ch| sum + ch.slides.count}
46
+ @chapter_max = chapters.count
47
+
48
+ chapters.each_with_index do |chapter, index|
49
+ @chapter_index = index
50
+
51
+ if chapter.data.has_key? 'title'
52
+ @title = chapter.data['title']
53
+ else
54
+ @title = ''
55
+ end
56
+
57
+ chapter.slides.each do |slide|
58
+ path = "public/slides/#{@slide_index}.html"
59
+ file = File.new(path, 'w')
60
+ # slides.count - 1
61
+ @content = slide.content
62
+ erb = ERB.new(File.read("templates/#{template}/slide.erb"))
63
+
64
+ file.puts erb.result(binding)
65
+ file.close
66
+
67
+ @slide_index += 1
68
+ end
69
+ end
70
+ end
71
+
72
+ def self.watch(options)
73
+ require 'directory_watcher'
17
74
 
18
- source.each_with_index do |slide, index|
19
- slides.push Nopoint::Slide.new(index, slide)
20
- end
75
+ source = File.join(Dir.pwd, 'slides/')
21
76
 
22
- slides.each do |slide|
23
- path = "public/slides/#{slide.id}.html"
24
- file = File.new(path, 'w')
25
-
26
- max = slides.count - 1
27
- content = slide.content
28
- id = slide.id
77
+ glob = './{slides/*, templates/*, config.yml, images/*}'
78
+
79
+ puts "watching #{source} for changes"
80
+
81
+ dw = DirectoryWatcher.new(Dir.pwd, :glob => glob, :pre_load => true)
82
+ dw.interval = 1
29
83
 
30
- erb = ERB.new(layout)
84
+ dw.add_observer do |*args|
85
+ t = Time.now.strftime("%Y-%m-%d %H:%M:%S")
86
+ print "Regenerating: #{args.size} files at #{t}"
87
+ self.build(options)
88
+ puts "...done."
89
+ end
31
90
 
32
- file.puts erb.result(binding)
33
- file.close
34
- end
35
- end
91
+ dw.start
92
+
93
+ unless options.serving
94
+ trap("INT") do
95
+ puts " Halting auto-regeneration."
96
+ exit 0
97
+ end
98
+ loop { sleep 1000 }
99
+ end
100
+ end
101
+
36
102
  end
37
103
  end
38
104
  end
@@ -13,8 +13,7 @@ module Nopoint
13
13
  private
14
14
 
15
15
  def self.create_sample_files(path)
16
- FileUtils.cp_r(template + '/.', path)
17
- FileUtils.mkdir_p(path + '/public/slides')
16
+ FileUtils.cp_r(self.template + '/.', path)
18
17
  end
19
18
 
20
19
  def self.template
data/lib/nopoint/slide.rb CHANGED
@@ -2,14 +2,13 @@ module Nopoint
2
2
  class Slide
3
3
  require 'kramdown'
4
4
 
5
- attr_accessor :id, :content, :comments
6
-
7
- def initialize(id, source)
8
- @id = id
5
+ attr_accessor :content, :comment
6
+
7
+ def initialize(source)
9
8
  notes = /\/\/ .*/
10
9
  @comments = source.match(notes)
11
10
  markdown = source.sub(notes, '')
12
11
  @content = Kramdown::Document.new(markdown).to_html
13
- end
12
+ end
14
13
  end
15
14
  end
@@ -1,3 +1,3 @@
1
1
  module Nopoint
2
- VERSION = '0.1.2'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -1,2 +1,3 @@
1
+ template: flat
1
2
  chapters:
2
- - intro.md
3
+ - welcome.md
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: welcome
3
+ ---
4
+
5
+ # Welcome To Nopoint
6
+ {: .large}
@@ -0,0 +1,107 @@
1
+ * {
2
+ -webkit-box-sizing: padding; }
3
+
4
+ body {
5
+ font: 25px/1.5em "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
6
+ color: #2c3e50;
7
+ background: white;
8
+ margin: 0;
9
+ min-height: 100vh;
10
+ flex-direction: column;
11
+ -webkit-box-orient: vertical;
12
+ -webkit-box-direction: normal;
13
+ display: -webkit-box;
14
+ display: flex; }
15
+
16
+ header {
17
+ padding: 0 50px;
18
+ background: #2c3e50;
19
+ color: white; }
20
+ header h1 {
21
+ font-size: 1.5em; }
22
+
23
+ main {
24
+ padding: 1em;
25
+ margin-bottom: 1.5em;
26
+ position: relative;
27
+ -webkit-box-flex: 1;
28
+ flex: 1;
29
+ display: -webkit-box;
30
+ display: flex;
31
+ -webkit-box-align: center;
32
+ align-items: center;
33
+ -webkit-box-pack: center;
34
+ justify-content: center; }
35
+
36
+ footer {
37
+ text-align: center;
38
+ position: fixed;
39
+ bottom: 0;
40
+ left: 0;
41
+ right: 0;
42
+ background: #2c3e50;
43
+ color: #95a5a6;
44
+ line-height: 1.5em;
45
+ display: -webkit-box;
46
+ display: flex;
47
+ flex-direction: row;
48
+ -webkit-box-orient: horizontal;
49
+ -webkit-box-direction: normal; }
50
+
51
+ a {
52
+ color: inherit;
53
+ text-decoration: none; }
54
+
55
+ .cell-button {
56
+ flex: 0 0 3em;
57
+ height: 1.5em;
58
+ background: #34495e; }
59
+ .cell-button a {
60
+ display: block;
61
+ height: 100%; }
62
+
63
+ .cell-center {
64
+ -webkit-box-flex: 1;
65
+ flex: 1;
66
+ height: 1.5em;
67
+ margin: 0; }
68
+ .cell-center p {
69
+ margin: 0; }
70
+
71
+ .large {
72
+ font-size: 3em; }
73
+
74
+ .line-numbers {
75
+ margin-right: 10px;
76
+ opacity: 0.4; }
77
+
78
+ .nolinenos .line-numbers {
79
+ display: none; }
80
+
81
+ .full {
82
+ top: 0;
83
+ left: 0;
84
+ bottom: 0;
85
+ right: 0;
86
+ position: absolute; }
87
+
88
+ .center {
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ display: -webkit-box;
93
+ -webkit-box-align: center;
94
+ -webkit-box-pack: center; }
95
+
96
+ .hidden {
97
+ opacity: 0;
98
+ -webkit-transition-duration: 0.5s;
99
+ -moz-transition-duration: 0.5s;
100
+ transition-duration: 0.5s; }
101
+
102
+ .visible {
103
+ opacity: 1; }
104
+
105
+ pre {
106
+ max-width: 100vw;
107
+ word-wrap: break-word; }
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": "3",
3
+ "mappings": "AAGA,IAAI;EACF,IAAI,EAAE,2DAAuB;EAC7B,KAAK,EAAE,OAAO;EACd,UAAU,EALJ,KAAK;EAMX,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,KAAK;EACjB,cAAc,EAAE,MAAM;;AAExB,MAAM;EACJ,OAAO,EAAE,MAAM;EACf,UAAU,EAAE,OAAO;EACnB,KAAK,EAdC,KAAK;EAeX,SAAE;IACA,SAAS,EAAE,KAAK;;AAEpB,IAAI;EACF,OAAO,EAAE,GAAG;EACZ,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,MAAM;EACvB,aAAa,EAzBC,KAAK;EA0BnB,QAAQ,EAAE,QAAQ;;AAEpB,MAAM;EACJ,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,OAAO;EACd,WAAW,EAtCG,KAAK;;AAuCrB,CAAC;EACC,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,IAAI;;AAEvB,YAAY;EACV,IAAI,EAAE,OAAO;EACb,MAAM,EA7CQ,KAAK;EA8CnB,UAAU,EAAE,OAAO;EACnB,cAAC;IACC,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;;AAEhB,YAAY;EACV,IAAI,EAAE,CAAC;EACP,MAAM,EArDQ,KAAK;EAsDnB,MAAM,EAAE,CAAC;EACT,cAAC;IACC,MAAM,EAAE,CAAC;;AAEb,MAAM;EACJ,SAAS,EAAE,GAAG;;AAEhB,aAAa;EACX,YAAY,EAAE,IAAI;EAClB,OAAO,EAAE,GAAG;;AAEZ,wBAAa;EACX,OAAO,EAAE,IAAI;;AAEjB,KAAK;EACH,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,QAAQ,EAAE,QAAQ;;AAGpB,GAAG;EACD,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE,UAAU",
4
+ "sources": ["main.sass"],
5
+ "file": "main.css"
6
+ }
@@ -0,0 +1,119 @@
1
+ $footer_height: 1.5em
2
+ $white: white
3
+
4
+ @mixin display-flex
5
+ display: -webkit-box
6
+ display: flex
7
+
8
+ @mixin flex-1
9
+ -webkit-box-flex: 1
10
+ flex: 1
11
+
12
+ *
13
+ -webkit-box-sizing: padding
14
+
15
+ body
16
+ font: 25px/1.5em "Gill Sans", "Gill Sans MT", Calibri, sans-serif
17
+ color: #2c3e50
18
+ background: $white
19
+ margin: 0
20
+ min-height: 100vh
21
+
22
+ flex-direction: column
23
+ -webkit-box-orient: vertical
24
+ -webkit-box-direction: normal
25
+
26
+ @include display-flex
27
+
28
+ header
29
+ padding: 0 50px
30
+ background: #2c3e50
31
+ color: $white
32
+ h1
33
+ font-size: 1.5em
34
+
35
+ main
36
+ padding: 1em
37
+ margin-bottom: $footer_height
38
+ position: relative
39
+
40
+ @include flex-1
41
+ @include display-flex
42
+
43
+ -webkit-box-align: center
44
+ align-items: center
45
+ -webkit-box-pack: center
46
+ justify-content: center
47
+
48
+ footer
49
+ text-align: center
50
+ position: fixed
51
+ bottom: 0
52
+ left: 0
53
+ right: 0
54
+ background: #2c3e50
55
+ color: #95a5a6
56
+ line-height: $footer_height
57
+
58
+ @include display-flex
59
+
60
+ flex-direction: row
61
+ -webkit-box-orient: horizontal
62
+ -webkit-box-direction: normal
63
+ a
64
+ color: inherit
65
+ text-decoration: none
66
+
67
+ .cell-button
68
+ flex: 0 0 3em
69
+ height: $footer_height
70
+ background: #34495e
71
+ a
72
+ display: block
73
+ height: 100%
74
+
75
+ .cell-center
76
+ @include flex-1
77
+ height: $footer_height
78
+ margin: 0
79
+ p
80
+ margin: 0
81
+
82
+ .large
83
+ font-size: 3em
84
+
85
+ .line-numbers
86
+ margin-right: 10px
87
+ opacity: 0.4
88
+
89
+ .nolinenos
90
+ .line-numbers
91
+ display: none
92
+
93
+ .full
94
+ top: 0
95
+ left: 0
96
+ bottom: 0
97
+ right: 0
98
+ position: absolute
99
+
100
+ .center
101
+ display: flex
102
+ align-items: center
103
+ justify-content: center
104
+
105
+ display: -webkit-box
106
+ -webkit-box-align: center
107
+ -webkit-box-pack: center
108
+
109
+ .hidden
110
+ opacity: 0
111
+ -webkit-transition-duration: 0.5s
112
+ -moz-transition-duration: 0.5s
113
+ transition-duration: 0.5s
114
+ .visible
115
+ opacity: 1
116
+
117
+ pre
118
+ max-width: 100vw
119
+ word-wrap: break-word
@@ -0,0 +1,33 @@
1
+ <html>
2
+ <head>
3
+ <script type="text/javascript" src="/assets/jquery.min.js"></script>
4
+ <link rel="stylesheet" href="/assets/main.css">
5
+ <meta charset="utf-8">
6
+ </head>
7
+ <body>
8
+ <header>
9
+ <h1><%= @chapter_index %> - <%= @title %></h1>
10
+ </header>
11
+ <main>
12
+ <section>
13
+ <%= @content %>
14
+ </section>
15
+ </main>
16
+ <footer>
17
+ <section class="cell-button">
18
+ <% if @slide_index > 0 %>
19
+ <a id="prev" href="<%= @slide_index - 1 %>.html">&larr;</a>
20
+ <% end %>
21
+ </section>
22
+ <section class="cell-center">
23
+ <p><%= @slide_index+1 %>/<%= @slide_max %></p>
24
+ </section>
25
+ <section class="cell-button">
26
+ <% if @slide_index+1 < @slide_max %>
27
+ <a id="next" href="<%= @slide_index + 1 %>.html">&rarr;</a>
28
+ <% end %>
29
+ </section>
30
+ </footer>
31
+ <script type="text/javascript" src="/assets/s3.min.js"></script>
32
+ </body>
33
+ </html>
@@ -2,14 +2,14 @@
2
2
  <html lang="en-US">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <meta http-equiv="refresh" content="1;url=/slides/0.html">
5
+ <meta http-equiv="refresh" content="1;url=slides/0.html">
6
6
  <script type="text/javascript">
7
- window.location.href = "/slides/0.html"
7
+ window.location.href = "slides/0.html"
8
8
  </script>
9
9
  <title>Page Redirection</title>
10
10
  </head>
11
11
  <body>
12
12
  <!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
13
- If you are not redirected automatically, follow the <a href='/slides/0.html'>link to first slide</a>
13
+ If you are not redirected automatically, follow the <a href='slides/0.html'>link to first slide</a>
14
14
  </body>
15
15
  </html>
@@ -0,0 +1,26 @@
1
+ var all = document.getElementsByTagName("li");
2
+ var i
3
+ for (i=0, max=all.length; i < max; i++) {
4
+ all[i].className = 'hidden';
5
+ }
6
+ i = 0
7
+ $(document).keydown(function(e){
8
+ // left
9
+ if (e.keyCode == 37) {
10
+ window.location.href = document.getElementById("prev").href;
11
+ }
12
+ // right
13
+ if (e.keyCode == 39) {
14
+ window.location.href = document.getElementById("next").href;
15
+ }
16
+ // down
17
+ if (e.keyCode == 40 && i < all.length) {
18
+ all[i].className = 'vis';
19
+ i++;
20
+ }
21
+ // up
22
+ else if (e.keyCode == 38 && i > 0) {
23
+ i--;
24
+ all[i].className = 'hid';
25
+ }
26
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nopoint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leon Rische
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-21 00:00:00.000000000 Z
11
+ date: 2013-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid
@@ -95,6 +95,7 @@ files:
95
95
  - Rakefile
96
96
  - bin/nopoint
97
97
  - lib/nopoint.rb
98
+ - lib/nopoint/chapter.rb
98
99
  - lib/nopoint/command.rb
99
100
  - lib/nopoint/commands/build.rb
100
101
  - lib/nopoint/commands/new.rb
@@ -102,12 +103,15 @@ files:
102
103
  - lib/nopoint/slide.rb
103
104
  - lib/nopoint/version.rb
104
105
  - lib/slideshow_template/config.yml
105
- - lib/slideshow_template/layout/slide.erb
106
- - lib/slideshow_template/public/assets/jquery.min.js
107
- - lib/slideshow_template/public/assets/s3.min.css
108
- - lib/slideshow_template/public/assets/s3.min.js
109
- - lib/slideshow_template/public/index.html
110
- - lib/slideshow_template/slides/intro.md
106
+ - lib/slideshow_template/slides/welcome.md
107
+ - lib/slideshow_template/templates/flat/.sass-cache/a4c4ae6bc8d2ebcfd264bee16365b35b58890f5a/main.sassc
108
+ - lib/slideshow_template/templates/flat/main.css
109
+ - lib/slideshow_template/templates/flat/main.css.map
110
+ - lib/slideshow_template/templates/flat/main.sass
111
+ - lib/slideshow_template/templates/flat/slide.erb
112
+ - lib/slideshow_template/vendor/index.html
113
+ - lib/slideshow_template/vendor/jquery.min.js
114
+ - lib/slideshow_template/vendor/s3.min.js
111
115
  - nopoint.gemspec
112
116
  homepage: http://nopoint.l3kn.de
113
117
  licenses:
@@ -129,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
133
  version: '0'
130
134
  requirements: []
131
135
  rubyforge_project:
132
- rubygems_version: 2.0.3
136
+ rubygems_version: 2.0.7
133
137
  signing_key:
134
138
  specification_version: 4
135
139
  summary: Slideshow generator
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script type="text/javascript" src="../assets/jquery.min.js"></script>
5
- <link rel="stylesheet" href="../assets/s3.min.css">
6
- <meta charset="utf-8">
7
- </head>
8
- <body>
9
- <div class="slide">
10
- <%= content %>
11
- </div>
12
- <% if id > 0 %>
13
- <a id="prev" class="button" href="<%= id - 1 %>.html">&larr;</a>
14
- <% end %>
15
- <% if id < max %>
16
- <a id="next" class="button" href="<%= id + 1 %>.html">&rarr;</a>
17
- <% end %>
18
- <script type="text/javascript" src="../assets/s3.min.js"></script>
19
- </body>
20
- </html>
@@ -1 +0,0 @@
1
- html{height:100%}body{margin:0;padding:0;height:100%;font-family:"Lato",Calibri,Arial,sans-serif;background:white;font-weight:400;color:#333;font-size:150%;height:100%;width:80%;margin:0 auto;display:table}img{max-width:100%}.title{position:fixed;top:0px;left:40px}.slide{display:table-cell;vertical-align:middle}.half{width:50%;float:right;word-wrap:break-word}.center{text-align:center}.vis{visibility:visible;opacity:1;transition:opacity .5s linear}.hid{visibility:hidden;opacity:0}.large{font-size:400%}.line-numbers{visibility:hidden}#next{position:absolute;width:32px;height:32px;bottom:5px;right:5px;text-decoration:none;background:#f1103a;border-radius:50%;color:white;line-height:30px;text-align:center;speak:none;font-weight:bold;cursor:pointer}#prev{position:absolute;width:32px;height:32px;bottom:5px;right:45px;text-decoration:none;background:#f1103a;border-radius:50%;color:white;line-height:30px;text-align:center;speak:none;font-weight:bold;cursor:pointer}
@@ -1,3 +0,0 @@
1
- var all=document.getElementsByTagName('li');var i
2
- for(i=0,max=all.length;i<max;i++){all[i].className='hid';}i=0
3
- $(document).keydown(function(e){if(e.keyCode==37){window.location.href=document.getElementById('prev').href;}if(e.keyCode==39){window.location.href=document.getElementById('next').href;}if(e.keyCode==40&&i<all.length){all[i].className='vis';i++;}else if(e.keyCode==38&&i>0){i--;all[i].className='hid';}});
@@ -1,156 +0,0 @@
1
- // Intro
2
-
3
- Nopoint
4
- {: .large .center}
5
-
6
- * * *
7
-
8
- # Wait, what?
9
- {: .title }
10
-
11
- ## This slideshow aims to be a simple guide to nopoint.
12
- _(Of course is based on nopoint, sofuckingmeta)_
13
-
14
- * * *
15
-
16
- # Static slides?
17
- {: .title }
18
-
19
- There are many other web-based slideshow tools like _deck.js_ or _reveal.js_, but all of these are barely usable for people who disabled JavaScript in their browsers.
20
-
21
- __Nopoint__ tries to solve this problem by converting every slide into a .html file.
22
-
23
- * * *
24
-
25
- # Static Slide Script (s3.js)
26
- {: .title }
27
-
28
- Nopoint ships with an optional JavaScript which enhances your slideshow experience in multiple ways:
29
-
30
- __Protipp: press [↓]__
31
-
32
- * Switch slides with [←] and [→]
33
- * Reveal list items one at a time with [↓] and [↑]
34
-
35
- * * *
36
-
37
- # Getting started
38
- {: .title }
39
-
40
- ~~~ text
41
- $ gem install nopoint # install the nopoint-gem
42
- $ nopoint new hello # scaffold a new slideshow
43
- $ cd hello/
44
- $ nopoint build # build it
45
- $ nopoint serve # serve the static slides on port 2337
46
- ~~~
47
-
48
- * * *
49
-
50
- # Files
51
- {: .title }
52
-
53
- A basic nopoint slideshow could like this
54
-
55
- ~~~ text
56
- config.yml # configure chapters of your slideshow
57
- slides/ # place the markdown sources here
58
- \- intro.md # one chapter of the slideshow
59
- layout/ # erb layouts for the html slides
60
- public/ # converted slides
61
- \- index.html # a redirection to the first slide
62
- \- assets/ # js and css files go here
63
- \- slides/ # generated html slides
64
- \- 0.html
65
- ~~~
66
-
67
- * * *
68
-
69
- # A noobs guide to [markdown](http://daringfireball.net/projects/markdown/)
70
- {: .title }
71
-
72
- ~~~ text
73
- _italic_
74
- __bold__
75
-
76
- # heading 1
77
- ## heading 2
78
- ...
79
-
80
- * unordered
81
- * list
82
-
83
- 1. ordered
84
- 2. list
85
- ~~~
86
-
87
- * * *
88
-
89
- # A noobs guide to [markdown](http://daringfireball.net/projects/markdown/)
90
- {: .title }
91
-
92
- ~~~ text
93
- [an url](www.example.com)
94
- ![an image](www.image.com)
95
-
96
- > blockquote
97
- `code`
98
-
99
- *_*_* seperate single slides
100
- (replace the _ with spaces)
101
- ~~~
102
-
103
- * * *
104
-
105
- # A noobs guide to [kramdown](http://kramdown.rubyforge.org)
106
- {: .title }
107
-
108
- ~~~ text
109
- ~~~ ruby
110
- puts 'syntax highlighting'
111
- ~~~
112
-
113
- {: .css_class }
114
- ~~~
115
-
116
- Available css-classes are:
117
- _(remember the [↓]-key!)_
118
-
119
- * __.center__ -> center the element above
120
- * __.title__ -> mark element as a slides title
121
- * __.large__ -> increase font size
122
-
123
- * * *
124
-
125
- # Your first slide
126
- {: .title }
127
-
128
- ~~~ text
129
- $ vim slides/intro.md
130
- ~~~
131
-
132
- and enter something like this
133
-
134
- ~~~ text
135
-
136
- # My first nopoint
137
- {: .center .large }
138
-
139
- *_*_* (replace _ with spaces)
140
-
141
- # A title
142
- {: .title }
143
-
144
- Hello world!
145
-
146
- ~~~
147
-
148
- * * *
149
-
150
- # One more thing!
151
- {: .title }
152
-
153
- ## Follow me on [Twitter](http://twitter.com/l3kn) and [Github](http://github.com/l3kn)
154
-
155
- [![Flattr](http://api.flattr.com/button/button-static-50x60.png)](https://flattr.com/submit/auto?user_id=l3kn&url=http://www.nopoint.l3kn.de&title=Nopoint)
156
-