scarlet 0.0.1 → 0.1.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.
- data/README.textile +8 -4
- data/lib/scarlet.rb +2 -0
- data/lib/scarlet/formatter.rb +3 -1
- data/lib/scarlet/formatters/latex.rb +19 -0
- data/lib/scarlet/formatters/pdf.rb +11 -0
- data/lib/scarlet/highlighter.rb +3 -1
- data/lib/scarlet/slideshow.rb +6 -0
- data/lib/scarlet/templates/latex/default.erb +85 -0
- metadata +15 -2
data/README.textile
CHANGED
@@ -10,11 +10,11 @@ h2. Features
|
|
10
10
|
|
11
11
|
* *Syntax Highlighting*: If you have "Pygments":http://pygments.org/ installed, Scarlet will automatically highlight your code.
|
12
12
|
* *Custom Templates*: Create and re-use your own templates for the slideshows.
|
13
|
+
* *PDF and LaTeX Generation*: Highly experimental. Patches are welcome and very appreciated.
|
13
14
|
|
14
15
|
h2. TODO
|
15
16
|
|
16
17
|
* Finish writing tests
|
17
|
-
* PDF generation
|
18
18
|
* Simple style customization
|
19
19
|
|
20
20
|
h2. Usage
|
@@ -61,10 +61,14 @@ In the previously created folder:
|
|
61
61
|
|
62
62
|
<pre>scarlet slideshow.textile > slideshow.html</pre>
|
63
63
|
|
64
|
+
h2. Contributors
|
65
|
+
|
66
|
+
* *Matias Korhonen*: PDF and LaTeX generation
|
67
|
+
|
64
68
|
h2. Special Thanks
|
65
69
|
|
66
70
|
* *Pat Nakajima* for creating "slidedown":http://github.com/nakajima/slidedown
|
67
|
-
* *Matias Korhonen
|
71
|
+
* *Matias Korhonen* for forcing me to publish Scarlet
|
68
72
|
|
69
73
|
h2. Copyright
|
70
74
|
|
@@ -78,8 +82,8 @@ Copyright (c) 2009 João Carlos Cardoso, excluding the following files:
|
|
78
82
|
|
79
83
|
* Files under *lib/scarlet/html/templates/stylesheets/*:
|
80
84
|
** *slides.css*: Based on the stylesheet for "slidedown":http://github.com/nakajima/slidedown created by Pat Nakajima
|
81
|
-
**
|
85
|
+
** <strong>syntax_*.css</strong>: Generated with "Pygments":http://pygments.org/
|
82
86
|
|
83
87
|
h2. License
|
84
88
|
|
85
|
-
Scarlet is released under the MIT License (see the LICENSE file).
|
89
|
+
Scarlet is released under the MIT License (see the LICENSE file).
|
data/lib/scarlet.rb
CHANGED
data/lib/scarlet/formatter.rb
CHANGED
@@ -3,7 +3,9 @@ module Scarlet
|
|
3
3
|
DEFAULT = Scarlet::Formatters::HTML
|
4
4
|
FORMATTERS = {
|
5
5
|
:html => Scarlet::Formatters::HTML,
|
6
|
-
:xhtml => Scarlet::Formatters::HTML
|
6
|
+
:xhtml => Scarlet::Formatters::HTML,
|
7
|
+
:latex => Scarlet::Formatters::LATEX,
|
8
|
+
:pdf => Scarlet::Formatters::PDF
|
7
9
|
}
|
8
10
|
|
9
11
|
def Formatter.for(format)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'RedCloth'
|
2
|
+
|
3
|
+
module Scarlet::Formatters
|
4
|
+
class LATEX
|
5
|
+
include Scarlet::Formatters::Base
|
6
|
+
|
7
|
+
def text
|
8
|
+
process_code do |code, language, before, after|
|
9
|
+
before + "<notextile>" + Scarlet::Highlighter.run(code, :format => "latex", :lexer => language, :arguments => "-P verboptions='fontfamily=lcmtt'") + "</notextile>" + after
|
10
|
+
end
|
11
|
+
|
12
|
+
RedCloth.new(slide.text).to_latex
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.default_template
|
16
|
+
File.join(File.dirname(__FILE__), "..", "templates", "latex", "default.erb")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/scarlet/highlighter.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'open4'
|
2
3
|
|
3
4
|
module Scarlet
|
@@ -5,7 +6,8 @@ module Scarlet
|
|
5
6
|
def self.run(text, options={})
|
6
7
|
options[:format] ||= "html"
|
7
8
|
options[:lexer] ||= "text"
|
8
|
-
|
9
|
+
options[:arguments] ||= ""
|
10
|
+
pid, stdin, stdout, stderr = Open4.popen4("pygmentize -f #{options[:format]} -l #{options[:lexer]} #{options[:arguments]}")
|
9
11
|
stdin.puts(text)
|
10
12
|
stdin.close
|
11
13
|
stdout.read.strip
|
data/lib/scarlet/slideshow.rb
CHANGED
@@ -14,6 +14,12 @@ module Scarlet
|
|
14
14
|
when :html
|
15
15
|
template = File.read(options[:template] || Scarlet::Formatters::HTML.default_template)
|
16
16
|
ERB.new(template).result(binding)
|
17
|
+
when :latex
|
18
|
+
template = File.read(options[:template] || Scarlet::Formatters::LATEX.default_template)
|
19
|
+
ERB.new(template).result(binding)
|
20
|
+
when :pdf
|
21
|
+
template = File.read(options[:template] || Scarlet::Formatters::PDF.default_template)
|
22
|
+
Scarlet::Formatters::PDF.from_latex(ERB.new(template).result(binding))
|
17
23
|
else
|
18
24
|
raise "Format not supported."
|
19
25
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
\documentclass{slides}
|
2
|
+
\usepackage[a4paper,landscape]{geometry}
|
3
|
+
\usepackage{fancyvrb}
|
4
|
+
\usepackage{color}
|
5
|
+
\usepackage[T1]{fontenc}
|
6
|
+
\renewcommand*\sfdefault{uop}
|
7
|
+
\usepackage[bookmarks=true,pdftex]{hyperref}
|
8
|
+
|
9
|
+
\hypersetup{
|
10
|
+
pdfauthor = {Scarlet},
|
11
|
+
pdftitle = {Scarlet Slides},
|
12
|
+
pdfsubject = {Scarlet Slideshow}}
|
13
|
+
|
14
|
+
\newcommand\PYZat{@}
|
15
|
+
\newcommand\PYZlb{[}
|
16
|
+
\newcommand\PYZrb{]}
|
17
|
+
\newcommand\PYbh[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
18
|
+
\newcommand\PYbg[1]{\textcolor[rgb]{0.73,0.40,0.53}{\textbf{#1}}}
|
19
|
+
\newcommand\PYbf[1]{\textcolor[rgb]{0.82,0.25,0.23}{\textbf{#1}}}
|
20
|
+
\newcommand\PYbe[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
21
|
+
\newcommand\PYbd[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
22
|
+
\newcommand\PYbc[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
23
|
+
\newcommand\PYbb[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
|
24
|
+
\newcommand\PYba[1]{\textcolor[rgb]{0.00,0.00,0.50}{\textbf{#1}}}
|
25
|
+
\newcommand\PYaJ[1]{\textcolor[rgb]{0.69,0.00,0.25}{#1}}
|
26
|
+
\newcommand\PYaK[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
27
|
+
\newcommand\PYaH[1]{\textcolor[rgb]{0.50,0.00,0.50}{\textbf{#1}}}
|
28
|
+
\newcommand\PYaI[1]{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{#1}}
|
29
|
+
\newcommand\PYaN[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
|
30
|
+
\newcommand\PYaO[1]{\textcolor[rgb]{0.00,0.00,1.00}{\textbf{#1}}}
|
31
|
+
\newcommand\PYaL[1]{\textcolor[rgb]{0.00,0.00,1.00}{#1}}
|
32
|
+
\newcommand\PYaM[1]{\textcolor[rgb]{0.73,0.73,0.73}{#1}}
|
33
|
+
\newcommand\PYaB[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
34
|
+
\newcommand\PYaC[1]{\textcolor[rgb]{0.67,0.13,1.00}{#1}}
|
35
|
+
\newcommand\PYaA[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
|
36
|
+
\newcommand\PYaF[1]{\textcolor[rgb]{0.63,0.00,0.00}{#1}}
|
37
|
+
\newcommand\PYaG[1]{\textcolor[rgb]{1.00,0.00,0.00}{#1}}
|
38
|
+
\newcommand\PYaD[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
39
|
+
\newcommand\PYaE[1]{\textcolor[rgb]{0.25,0.50,0.50}{\textit{#1}}}
|
40
|
+
\newcommand\PYaZ[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
41
|
+
\newcommand\PYaX[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
|
42
|
+
\newcommand\PYaY[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
43
|
+
\newcommand\PYaR[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
44
|
+
\newcommand\PYaS[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
45
|
+
\newcommand\PYaP[1]{\textcolor[rgb]{0.00,0.00,0.50}{\textbf{#1}}}
|
46
|
+
\newcommand\PYaQ[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
|
47
|
+
\newcommand\PYaV[1]{\textcolor[rgb]{0.00,0.00,1.00}{\textbf{#1}}}
|
48
|
+
\newcommand\PYaW[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
49
|
+
\newcommand\PYaT[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
50
|
+
\newcommand\PYaU[1]{\textcolor[rgb]{0.25,0.50,0.50}{\textit{#1}}}
|
51
|
+
\newcommand\PYaj[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
|
52
|
+
\newcommand\PYak[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
|
53
|
+
\newcommand\PYah[1]{\textcolor[rgb]{0.63,0.63,0.00}{#1}}
|
54
|
+
\newcommand\PYai[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
55
|
+
\newcommand\PYan[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
56
|
+
\newcommand\PYao[1]{\textcolor[rgb]{0.73,0.40,0.13}{\textbf{#1}}}
|
57
|
+
\newcommand\PYal[1]{\textcolor[rgb]{0.25,0.50,0.50}{\textit{#1}}}
|
58
|
+
\newcommand\PYam[1]{\textbf{#1}}
|
59
|
+
\newcommand\PYab[1]{\textit{#1}}
|
60
|
+
\newcommand\PYac[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
|
61
|
+
\newcommand\PYaa[1]{\textcolor[rgb]{0.50,0.50,0.50}{#1}}
|
62
|
+
\newcommand\PYaf[1]{\textcolor[rgb]{0.25,0.50,0.50}{\textit{#1}}}
|
63
|
+
\newcommand\PYag[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
64
|
+
\newcommand\PYad[1]{\textcolor[rgb]{0.00,0.25,0.82}{#1}}
|
65
|
+
\newcommand\PYae[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
66
|
+
\newcommand\PYaz[1]{\textcolor[rgb]{0.00,0.63,0.00}{#1}}
|
67
|
+
\newcommand\PYax[1]{\textcolor[rgb]{0.60,0.60,0.60}{\textbf{#1}}}
|
68
|
+
\newcommand\PYay[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
69
|
+
\newcommand\PYar[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
70
|
+
\newcommand\PYas[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
|
71
|
+
\newcommand\PYap[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
|
72
|
+
\newcommand\PYaq[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
|
73
|
+
\newcommand\PYav[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}}
|
74
|
+
\newcommand\PYaw[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
|
75
|
+
\newcommand\PYat[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
76
|
+
\newcommand\PYau[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
|
77
|
+
|
78
|
+
\begin{document}
|
79
|
+
|
80
|
+
<% for slide in @slides %>
|
81
|
+
<%= slide.text %>
|
82
|
+
\newpage
|
83
|
+
<% end %>
|
84
|
+
|
85
|
+
\end{document}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scarlet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joao Carlos Cardoso
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-20 00:00:00 +02:00
|
13
13
|
default_executable: scarlet
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +32,16 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 4.2.2
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rtex
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.1.1
|
44
|
+
version:
|
35
45
|
description: Generates XHTML slideshows from text files using Textile for markup. Does syntax highlighting if Pygments is installed.
|
36
46
|
email: mail@joao-carlos.com
|
37
47
|
executables:
|
@@ -47,6 +57,8 @@ files:
|
|
47
57
|
- lib/scarlet/formatter.rb
|
48
58
|
- lib/scarlet/formatters/base.rb
|
49
59
|
- lib/scarlet/formatters/html.rb
|
60
|
+
- lib/scarlet/formatters/latex.rb
|
61
|
+
- lib/scarlet/formatters/pdf.rb
|
50
62
|
- lib/scarlet/generator.rb
|
51
63
|
- lib/scarlet/highlighter.rb
|
52
64
|
- lib/scarlet/runner.rb
|
@@ -62,6 +74,7 @@ files:
|
|
62
74
|
- lib/scarlet/templates/html/stylesheets/syntax_default.css
|
63
75
|
- lib/scarlet/templates/html/stylesheets/syntax_emacs.css
|
64
76
|
- lib/scarlet/templates/html/stylesheets/syntax_friendly.css
|
77
|
+
- lib/scarlet/templates/latex/default.erb
|
65
78
|
- LICENSE
|
66
79
|
- README.textile
|
67
80
|
has_rdoc: true
|