nopoint 0.1.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
-