present 0.0.3 → 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 +41 -1
- data/lib/present.rb +1 -1
- data/lib/present/page.rb +10 -3
- metadata +1 -1
data/README
CHANGED
@@ -6,7 +6,7 @@ Presentation tool for terminal.
|
|
6
6
|
== Description
|
7
7
|
|
8
8
|
This program is for terminal addicts.
|
9
|
-
You can
|
9
|
+
You can make a presentation by using your favorite terminal.
|
10
10
|
|
11
11
|
== Installation
|
12
12
|
|
@@ -21,6 +21,12 @@ You can present your slide by using your favorite terminal.
|
|
21
21
|
|
22
22
|
== Features/Problems
|
23
23
|
|
24
|
+
- You can make a presentation by using your favorite terminal.
|
25
|
+
- You need to configure font size of terminal by yourself.
|
26
|
+
- You can't use pictures, yet.
|
27
|
+
Making pictures into ASCII art is a future work ;-)
|
28
|
+
- You must encode presentation files as EUC-JP if you want to use Japanese.
|
29
|
+
This limitation comes from ruby-ncurses.
|
24
30
|
|
25
31
|
== Synopsis
|
26
32
|
|
@@ -34,6 +40,40 @@ You can present your slide by using your favorite terminal.
|
|
34
40
|
`page` specifies the page number which will be started from. This is
|
35
41
|
optional. The default value is 1.
|
36
42
|
|
43
|
+
== File Format
|
44
|
+
|
45
|
+
The presentation file is a text file which includes series of pages of which
|
46
|
+
you will present.
|
47
|
+
|
48
|
+
The pages are separated by blank lines. The page itself consists of lines.
|
49
|
+
Each line has a command at the beginning and text follows it. The command and
|
50
|
+
the text are separated by white spaces. The available commands are as follows.
|
51
|
+
|
52
|
+
= Title. The text follows will be rendered at the center of screen with larger
|
53
|
+
font.
|
54
|
+
- Explanation. The text will follow the previous text. The text is right
|
55
|
+
alignment.
|
56
|
+
* Header. The text will appear at the top of the page with bold style.
|
57
|
+
+ Bullet. The text will follow the previous text with bullet mark at the
|
58
|
+
beginning. The text is left alignment. Bullets can be nested by doubling or
|
59
|
+
tripling the symbol.
|
60
|
+
You can avoid margin between the line and the previous line by appending `-`
|
61
|
+
symbol, like this `+-`.
|
62
|
+
< Left alignment text.
|
63
|
+
> Right aligment text.
|
64
|
+
% Color. You can change color of texts which appears after the line.
|
65
|
+
The color specified by the name of basic colors, such as red, blue, white,
|
66
|
+
black, and so on. If the text is `0`, the color is reset.
|
67
|
+
, Wait. Wait for your hitting keys if the text is `-`. Wait for specified
|
68
|
+
interval if the text is a number in sec
|
69
|
+
: Execute command. The text will be executed as a internal command.
|
70
|
+
# Message. The text will be displayed with large font in the middle.
|
71
|
+
. Final message.
|
72
|
+
|
73
|
+
The command can be empty, it means that the line starts with white spaces. The
|
74
|
+
texts of these lines are simply added to the texts of previous lines
|
75
|
+
respectively.
|
76
|
+
|
37
77
|
== Copyright
|
38
78
|
|
39
79
|
Author:: Genki Takiuchi <genki@s21g.com>
|
data/lib/present.rb
CHANGED
data/lib/present/page.rb
CHANGED
@@ -15,11 +15,13 @@ class Present
|
|
15
15
|
end
|
16
16
|
@lines.each do |line|
|
17
17
|
text, command = line.split(/\s+/, 2).reverse
|
18
|
-
if command
|
18
|
+
if command.nil?
|
19
|
+
next
|
20
|
+
elsif command.empty?
|
21
|
+
stack.last[1] += "\n#{text}"
|
22
|
+
else
|
19
23
|
execute_command.call
|
20
24
|
stack.push [command, text]
|
21
|
-
else
|
22
|
-
stack.last[1] += "\n#{text}"
|
23
25
|
end
|
24
26
|
end
|
25
27
|
execute_command.call
|
@@ -49,6 +51,11 @@ class Present
|
|
49
51
|
@screen.color *text.split(/\s+/)
|
50
52
|
when ','
|
51
53
|
@screen.wait text.to_f
|
54
|
+
when ':'
|
55
|
+
command, *args = text.split(/\s+/)
|
56
|
+
@screen.send "do_#{command}", *args rescue nil
|
57
|
+
when '`'
|
58
|
+
# do nothing
|
52
59
|
end
|
53
60
|
end
|
54
61
|
end
|