A lot of projects ported from the old metanohi site.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								site/projects/movact/art/movact-logo-256.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								site/projects/movact/art/movact-logo-256.png
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 47 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								site/projects/movact/art/movact-logo-64.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								site/projects/movact/art/movact-logo-64.png
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 7.2 KiB  | 
							
								
								
									
										949
									
								
								site/projects/movact/art/movact-logo.svg
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										949
									
								
								site/projects/movact/art/movact-logo.svg
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
		 After Width: | Height: | Size: 433 KiB  | 
							
								
								
									
										577
									
								
								site/projects/movact/index.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										577
									
								
								site/projects/movact/index.org
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,577 @@
 | 
			
		||||
#+title: movact
 | 
			
		||||
#&summary
 | 
			
		||||
A program that reads, runs and converts hypertext fiction files
 | 
			
		||||
#&
 | 
			
		||||
#+license: bysa, page
 | 
			
		||||
#+license: gpl 3+, program
 | 
			
		||||
#&toc
 | 
			
		||||
 | 
			
		||||
* movact
 | 
			
		||||
#&img;url=art/movact-logo-256.png, center, alt=movact, width=256, height=256, medlink=art/movact-logo.svg
 | 
			
		||||
 | 
			
		||||
** Info from the readme
 | 
			
		||||
 | 
			
		||||
#&pre
 | 
			
		||||
=========================================================================
 | 
			
		||||
 movact: a program that reads, runs and converts hypertext fiction files
 | 
			
		||||
=========================================================================
 | 
			
		||||
#&
 | 
			
		||||
 | 
			
		||||
movact is a small suite of software that aims to aid in the development and use
 | 
			
		||||
of hypertext fiction.  With movact everyone is able to create hypertext fiction
 | 
			
		||||
using a very simple syntax. It is hoped that the stories created for movact be
 | 
			
		||||
distributed throughout the world (and ultimately the universe) for everyone to
 | 
			
		||||
read and perhaps build upon, though no one is forcing anyone.
 | 
			
		||||
 | 
			
		||||
This is the combined README/manual.
 | 
			
		||||
 | 
			
		||||
** Version
 | 
			
		||||
 | 
			
		||||
The current version of movact is 0.5.1. This version can be considered quite
 | 
			
		||||
stable, although it is the second version to be released.
 | 
			
		||||
 | 
			
		||||
** How to get movact
 | 
			
		||||
 | 
			
		||||
movact will always be online at [[http://metanohi.name/projects/movact/]], where
 | 
			
		||||
documentation will also be available.
 | 
			
		||||
 | 
			
		||||
[[movact-0.5.1.tar.gz][DOWNLOAD&large]] [[movact-0.5.tar.gz][{(or old version)}&small]].
 | 
			
		||||
 | 
			
		||||
[[wah.mvct.html][Try a live example]], converted to HTML using a movact tool.
 | 
			
		||||
 | 
			
		||||
** License information
 | 
			
		||||
 | 
			
		||||
I have chosen to make movact available under the GNU General Public License
 | 
			
		||||
version 3 or (optionally) any later version. 
 | 
			
		||||
 | 
			
		||||
#&pre    
 | 
			
		||||
    movact 0.5.1
 | 
			
		||||
    Copyright © 2009, 2010  Niels Serup
 | 
			
		||||
    License GPLv3+: GNU GPL version 3 or later
 | 
			
		||||
    <[[http://gnu.org/licenses/gpl.html][http://gnu.org/licenses/gpl.html]]>
 | 
			
		||||
    movact is free software: you are free to change and redistribute it.
 | 
			
		||||
    There is NO WARRANTY, to the extent permitted by law.
 | 
			
		||||
#&
 | 
			
		||||
 | 
			
		||||
This license applies to all files in the "movactorg/" directory, except for the
 | 
			
		||||
files found in the "external/" subdirectory. Those files are released under
 | 
			
		||||
GPL-compatible licenses.
 | 
			
		||||
 | 
			
		||||
movact also has art. It's located in the "art/" directory. All graphics are
 | 
			
		||||
released under the Creative Commons Attribution/ShareAlike 3.0 Unported license
 | 
			
		||||
("CC BY-SA").  More specifically, the files licensed under CC BY-SA 3.0 are:
 | 
			
		||||
 | 
			
		||||
 - art/movact-logo-256.png
 | 
			
		||||
 - art/movact-logo-64.png
 | 
			
		||||
 - art/movact-logo.svg
 | 
			
		||||
 | 
			
		||||
These three files are all copyright © 2009, 2010 Niels Serup
 | 
			
		||||
 | 
			
		||||
** Dependencies
 | 
			
		||||
 | 
			
		||||
For movact to run, you must use at least Python 2.4 (though 2.3 may work with
 | 
			
		||||
limited functionality). To run the GTK+ frontend, you should also have PyGTK
 | 
			
		||||
2.6 or newer installed.
 | 
			
		||||
 | 
			
		||||
Most modern GNU/Linux distributions have both Python and PyGTK in their
 | 
			
		||||
repositories for easy downloading and installing.  On DEB-based systems (like
 | 
			
		||||
Debian, gNewSense, etc.) you can do this:
 | 
			
		||||
 | 
			
		||||
: $ sudo apt-get install python python-gtk2
 | 
			
		||||
 | 
			
		||||
On RPM-based systems (like Fedora, CentOS, etc.) you can do this:
 | 
			
		||||
 | 
			
		||||
: $ sudo yum install python pygtk2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Structure
 | 
			
		||||
 | 
			
		||||
movact is module-based. It consists of several parts.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** Core
 | 
			
		||||
 | 
			
		||||
The core of movact takes care of the basic stuff, such as loading and parsing.
 | 
			
		||||
 | 
			
		||||
*** Frontends
 | 
			
		||||
 | 
			
		||||
The frontends are used to actually *run* movact files after they have been
 | 
			
		||||
loaded and parsed in core. There are currently only two frontends in movact: a
 | 
			
		||||
GUI frontend in GTK+ and a terminal frontend in.. well, text. Support for other
 | 
			
		||||
frontends may come in future releases.
 | 
			
		||||
 | 
			
		||||
*** Converters
 | 
			
		||||
 | 
			
		||||
movact runs fine without the converters, but the converters do not run without
 | 
			
		||||
the movact core. It is currently possible to convert movact data files to 4
 | 
			
		||||
formats: HTML (with one page for each movact part), HTML+JavaScript (with only
 | 
			
		||||
one HTML file), XML and pure text.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Art
 | 
			
		||||
 | 
			
		||||
movact has its own mascot! Now, /that's/ important! Graphics are used to spice
 | 
			
		||||
things up a little. It is believed that the mascot is a mammal, but that's the
 | 
			
		||||
only known fact about it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Installation
 | 
			
		||||
 | 
			
		||||
movact currently does not support a true installation method. Instead, it
 | 
			
		||||
relies on the script "fake-install.sh". You can use this script to link the
 | 
			
		||||
different movact frontends, as well as the movact converter, to
 | 
			
		||||
"/usr/local/bin/", which means that you can run movact just by typing
 | 
			
		||||
"movact-gtk" or "movact-terminal" in a terminal and convert movact files just
 | 
			
		||||
by typing "movact-convert" in a terminal. The script also asks you to choose a
 | 
			
		||||
default movact frontend, which will be executed when "movact" is typed in a
 | 
			
		||||
terminal.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Included stories
 | 
			
		||||
 | 
			
		||||
movact includes a small variety of stories: One "real" story consisting of
 | 
			
		||||
several hundreds lines of human-readable text, plus a few mini stories that
 | 
			
		||||
exist mainly for the purpose of testing the movact parser.
 | 
			
		||||
 | 
			
		||||
The "real" story is available under the CC BY-SA 3.0 Unported license.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** movact in command
 | 
			
		||||
 | 
			
		||||
YOU have the freedom to decide what movact does and what it doesn't -- though
 | 
			
		||||
only to some extent. By default, movact tries to autoload progress when a user
 | 
			
		||||
opens a story; this can be disabled. By default, movact autosaves progress
 | 
			
		||||
whenever the user does something; this can be disabled as well.  When using the
 | 
			
		||||
terminal frontend, there are a couple of basic commands that are neccessary to
 | 
			
		||||
know:
 | 
			
		||||
#&pre
 | 
			
		||||
   - /back   : go one step back
 | 
			
		||||
   - /reset  : reset story and restart at the beginning
 | 
			
		||||
   - /current: make movact display the current part name
 | 
			
		||||
   - /open   : open a new file
 | 
			
		||||
   - /load   : load a savefile
 | 
			
		||||
   - /save   : save progress
 | 
			
		||||
#&
 | 
			
		||||
These commands can be modified by movact stories, so they are not necessarily
 | 
			
		||||
always like this.  When using the GTK+ frontend, just use the buttons.
 | 
			
		||||
 | 
			
		||||
movact saves to and loads from "$HOME/.movact/autosaves/" (e.g.
 | 
			
		||||
"/home/niels/.movact/autosaves/").
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Using the command line
 | 
			
		||||
 | 
			
		||||
There are several advantages of running movact in a terminal (or "console"):
 | 
			
		||||
 | 
			
		||||
  + You will be able to see any eventual errors that may appear.
 | 
			
		||||
  + You can pickle a story for quicker loading times.
 | 
			
		||||
  + You can tell movact not to autosave or not to autoload.
 | 
			
		||||
 | 
			
		||||
Using a terminal will still allow you to use a graphical frontend.
 | 
			
		||||
 | 
			
		||||
If you plan to run movact in a terminal, remember to do this at some point:
 | 
			
		||||
 | 
			
		||||
: $ movact --help
 | 
			
		||||
 | 
			
		||||
And, eventually, this:
 | 
			
		||||
 | 
			
		||||
: $ movact-convert --help
 | 
			
		||||
 | 
			
		||||
These commands will display a short piece of text that will show you how to
 | 
			
		||||
handle movact.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Syntax
 | 
			
		||||
 | 
			
		||||
A large part of movact is its syntax. A typical movact document looks like
 | 
			
		||||
this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
#!/usr/bin/env movact
 | 
			
		||||
 | 
			
		||||
# Author and license
 | 
			
		||||
ZERO
 | 
			
		||||
 | 
			
		||||
...META
 | 
			
		||||
..title
 | 
			
		||||
A great story
 | 
			
		||||
..start
 | 
			
		||||
Welcome to the greatest story. You will experience experiences.
 | 
			
		||||
..end
 | 
			
		||||
That was that.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
...MAIN
 | 
			
		||||
..start
 | 
			
		||||
You have no recollection of who you are or where you are.
 | 
			
		||||
In front of you stands a giant cat. What do you do?
 | 
			
		||||
.cat-run Run for your life
 | 
			
		||||
.10 Count to 10
 | 
			
		||||
.cat-talk Talk to the cat
 | 
			
		||||
 | 
			
		||||
..cat-run
 | 
			
		||||
[TEXT]...
 | 
			
		||||
 | 
			
		||||
..10 // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
 | 
			
		||||
[TEXT]...
 | 
			
		||||
 | 
			
		||||
..cat-talk
 | 
			
		||||
[TEXT]...
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
The basic syntax of movact should be possible to perceive looking at the
 | 
			
		||||
example.. I guess. To get a better grasp of how the syntax is, it is a good
 | 
			
		||||
idea to examine and modify the existing stories in the 'stories/'
 | 
			
		||||
directory. Note that the first line in the example is used to more easily run
 | 
			
		||||
movact on systems that support '#!' lines. On other systems it will just be
 | 
			
		||||
ignored. When it works, however, it should be possible to simply type
 | 
			
		||||
 | 
			
		||||
: $ ./a-story
 | 
			
		||||
 | 
			
		||||
..instead of
 | 
			
		||||
 | 
			
		||||
: $ movact a-story
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Parts
 | 
			
		||||
 | 
			
		||||
movact document consists of two parts: a META part and a MAIN part. Each part
 | 
			
		||||
can be separated into subparts. META subparts cannot be separated further, but
 | 
			
		||||
MAIN subparts can. In ascii art a movact document looks like this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
Document
 | 
			
		||||
    |
 | 
			
		||||
    ·-- META part
 | 
			
		||||
    ·       |
 | 
			
		||||
    ·       ·-- subpart
 | 
			
		||||
    ·       |
 | 
			
		||||
    ·       .-- .......
 | 
			
		||||
    |
 | 
			
		||||
    ·-- MAIN part
 | 
			
		||||
            |
 | 
			
		||||
            ·-- subpart
 | 
			
		||||
            ·      |
 | 
			
		||||
            ·      ·-- paragraph | reference
 | 
			
		||||
            ·      |
 | 
			
		||||
            ·      ·-- .....................
 | 
			
		||||
            |  
 | 
			
		||||
            ·-- .......
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Even if your document layout/syntax seems to be ok, that does not have to be
 | 
			
		||||
the case. When writing movact documents, one thing is absolutely necessary: the
 | 
			
		||||
version. This isn't the version of the story you're writing (there's no way to
 | 
			
		||||
specify that as a separate value) but the version of the parser that you're
 | 
			
		||||
calling (a bit similar to "doctype" in HTML words). The version must always be
 | 
			
		||||
the first real line in a story, i.e. it must be preceded only by comments and
 | 
			
		||||
empty lines or lines with spaces only.  Currently, the only supported version
 | 
			
		||||
is "ZERO".
 | 
			
		||||
 | 
			
		||||
Overview:
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
·---------------------------------------------------------·
 | 
			
		||||
|_ ...xxx    ~  xxx = name of part (either META or MAIN) _|
 | 
			
		||||
|_ ..xxx     ~  xxx = name of subpart                    _|
 | 
			
		||||
|  .xxx yyy  ~  xxx = reference to xxx, written as yyy    |
 | 
			
		||||
·---------------------------------------------------------·
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Except in the case of references, xxx can include spaces.
 | 
			
		||||
 | 
			
		||||
You can indent text any way you want to. When reading the name of a part or
 | 
			
		||||
subpart, movact will trim it for spaces. Both '..start' and '..start ' count as
 | 
			
		||||
'start', whereas '..start x' counts as 'start x'.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** META part
 | 
			
		||||
 | 
			
		||||
META subparts can be used to customize movact. A META subpart will always look
 | 
			
		||||
something like this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..open button
 | 
			
		||||
Åben
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
This will modify the text of the "open a file"-button in GUI frontends to
 | 
			
		||||
"Åben". The default is "Open".  It is not a need to actually specify a META
 | 
			
		||||
part. If a META subpart is not specified, the value will default to.. a default
 | 
			
		||||
value. Default values are always strings, except in the case of the 'point'
 | 
			
		||||
subpart and the 'confirmed' subpart, in which lists are used.
 | 
			
		||||
 | 
			
		||||
To see the default values, look at 'movactorg/core/defaults.py'.
 | 
			
		||||
 | 
			
		||||
To modify 'point' and 'confirmed', write something like this in your META part:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..point
 | 
			
		||||
(
 | 
			
		||||
    ('A. ', ('A', 'a')),
 | 
			
		||||
    ('B. ', ('B', 'b')),
 | 
			
		||||
    ('C. ', ('C', 'c'))
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
..confirmed
 | 
			
		||||
('y', 'yes')
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
This list syntax is borrowed from Python. If you want only *one* list item, do
 | 
			
		||||
this:
 | 
			
		||||
 | 
			
		||||
: ('litem1', )
 | 
			
		||||
 | 
			
		||||
movact only uses the values defined in 'movactorg/core/defaults.py', but you
 | 
			
		||||
can specify other meta data as well, though it has no use. In general, if you
 | 
			
		||||
want to specify special information, do it using comments at the top or bottom
 | 
			
		||||
of your file.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** MAIN part
 | 
			
		||||
 | 
			
		||||
MAIN subparts are necessary. Stories consist of MAIN subparts. A story will
 | 
			
		||||
need at least one MAIN subpart to actually function, though it will need many
 | 
			
		||||
more to actually resemble a story. The *one* very important subpart *must* be
 | 
			
		||||
named 'start'. So, *all* movact files *must* have lines like this in the MAIN
 | 
			
		||||
part:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..start
 | 
			
		||||
[TEXT]...
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
As long as this is present, movact will run. To extend your movact story, you
 | 
			
		||||
add references:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..subpart
 | 
			
		||||
Some text..
 | 
			
		||||
You have a choice:
 | 
			
		||||
.subpart2 Go here!
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
This will display the two first lines in the subpart as standard text, and the
 | 
			
		||||
final line as a reference to another subpart named 'subpart2'. How references
 | 
			
		||||
are shown differ in frontends.  References can be anywhere in a subpart. They
 | 
			
		||||
can be both before and after standard text. It is the period ('.') that tells
 | 
			
		||||
movact that it's a reference.  If a subpart has no references, movact ends the
 | 
			
		||||
game.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Commenting and escaping
 | 
			
		||||
 | 
			
		||||
As movact documents can grow quite large, it is important to be able to comment
 | 
			
		||||
one's story. There are three ways of using comments in movact:
 | 
			
		||||
 | 
			
		||||
 + =/*...*/=
 | 
			
		||||
 + =//...=
 | 
			
		||||
 + =#...=
 | 
			
		||||
 | 
			
		||||
So, you can do something like this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..tree
 | 
			
		||||
You approach the tree.# The human approaches the tree
 | 
			
		||||
The squirrel/* ..where did that come from ? */ helps you.
 | 
			
		||||
It seems nice.// Squirrel turns evil in ..forest!
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
This will not print "# He approaches the tree", "/* ..where did that come from
 | 
			
		||||
?  */" and "// Squirrel turns evil in ..forest!".  Note that there are no
 | 
			
		||||
limits as to how /*...*/ can be arranged. They can easily span several lines.
 | 
			
		||||
 | 
			
		||||
Now, allowing all these different types of comments has its disadvantages.
 | 
			
		||||
Sometimes people may want to use the '#' character as a non-comment character.
 | 
			
		||||
To do this, they must escape it using a backslash. So this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..tree
 | 
			
		||||
You are next to a tree\# and this is not a comment
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
..will print "You are next to a tree# and this is not a comment". Note that it
 | 
			
		||||
doesn't print the backslash.
 | 
			
		||||
 | 
			
		||||
Of course comments are not the only textual things that you can escape. Apart
 | 
			
		||||
from comments, you can escape periods (both '.', '..' and '...') as well as
 | 
			
		||||
other things that haven't been explained yet. As a rule, whenever there's a
 | 
			
		||||
special block of characters, you can escape it. This is generally true.
 | 
			
		||||
 | 
			
		||||
If you want to show a backslash before escapable places, you have to type two
 | 
			
		||||
backslashes. In normal places just one backslash will do.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Special features
 | 
			
		||||
 | 
			
		||||
movact has several extra features for the advanced users.
 | 
			
		||||
 | 
			
		||||
*** '=---='
 | 
			
		||||
 | 
			
		||||
First, '=---='. The way movact splits subparts is by reading when the next line
 | 
			
		||||
that matches the regex '\.\..+' appears. All empty lines before that line are
 | 
			
		||||
removed from the previous entry. To avoid this, one can append '---' to the
 | 
			
		||||
very end of one's subpart. For example:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..jupiter-arrival
 | 
			
		||||
The armadillo breaths heavily. It notices a bunch of empty lines.
 | 
			
		||||
.mars Escape!
 | 
			
		||||
---
 | 
			
		||||
#+END_SRC    
 | 
			
		||||
 | 
			
		||||
Normally, the empty lines would not be printed, but because the '---' is there,
 | 
			
		||||
they are. The '\n---' is not printed, however. To print '---' at the end, just
 | 
			
		||||
write this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
..123
 | 
			
		||||
321
 | 
			
		||||
 | 
			
		||||
\---
 | 
			
		||||
#+END_SRC
 | 
			
		||||
You could also just do this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
---
 | 
			
		||||
---
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
*** ='[end]'=
 | 
			
		||||
 | 
			
		||||
Normally you would just arrange your document like the ascii art diagram shows.
 | 
			
		||||
You're not forced to do it that way, however. First of all, you can start with
 | 
			
		||||
MAIN and end with META. But it's also possible to use MAIN and META
 | 
			
		||||
interchangeably. This can be achieved by simply writing META, then MAIN, then
 | 
			
		||||
META, etc. There is also another way, though. One can choose to use the '[end]'
 | 
			
		||||
string, like this:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC
 | 
			
		||||
...META
 | 
			
		||||
..title
 | 
			
		||||
ABC
 | 
			
		||||
 | 
			
		||||
...MAIN
 | 
			
		||||
..start
 | 
			
		||||
BCA
 | 
			
		||||
 | 
			
		||||
[end]
 | 
			
		||||
..start
 | 
			
		||||
Welcome to the alphabet story!
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
After '[end]', the movact parser goes back to META. One could have typed
 | 
			
		||||
'...META' instead of '[end]' and achieved the exact same result.  '[end]' can
 | 
			
		||||
also be escaped.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** '%$' and '$%'
 | 
			
		||||
 | 
			
		||||
Sometimes it can look nice with a string like this:
 | 
			
		||||
: #################################################
 | 
			
		||||
But it would be annoying to type '\#\#\#' etc. This is why '%$' and '$%' exist.
 | 
			
		||||
In any movact document, one can type '%$###########$%'. This will escape all
 | 
			
		||||
the '#' and subsequently print all of them. It will not print '%$' and '$%'. As
 | 
			
		||||
a matter of fact, '%$...$%' will escape everything escapable within the magic
 | 
			
		||||
strings.  These strings can also be escaped. To show a '%$', you'll have to
 | 
			
		||||
either write '\%$' or '%$%$$%'. To show a '$%', just write '$%', as long as it
 | 
			
		||||
isn't preceded by a '%$', in which case you'll have to write '\$%'.
 | 
			
		||||
 | 
			
		||||
** Errors
 | 
			
		||||
 | 
			
		||||
The movact parser wants everything to be in perfect shape. Everything must be
 | 
			
		||||
certain. This is why it's happy to print error messages; as a matter of fact,
 | 
			
		||||
the movact parser was stderr in its former life.
 | 
			
		||||
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
The point is, if the syntax or the organization of the content is odd, movact
 | 
			
		||||
will print an error. But it will only print one error. If you fix that error
 | 
			
		||||
and then try running movact again, there's a risk that you may still get an
 | 
			
		||||
error, though this time a different one. If you have produced a large story, it
 | 
			
		||||
can be troublesome to fix errors one by one. To get a proper answer, the movact
 | 
			
		||||
parser itself has agreed to be interviewed.
 | 
			
		||||
 | 
			
		||||
#&pre
 | 
			
		||||
INTERVIEWER:   So, movact parser, why do you show only ONE -- as in the
 | 
			
		||||
               number 1 -- error at a time? Is it not a bit odd?
 | 
			
		||||
movact PARSER: No, I don't think so. In this world -- no, in this universe
 | 
			
		||||
               -- people are using their lifes on fixing errors. This is
 | 
			
		||||
               an unfortunte development, I think.
 | 
			
		||||
INTERVIEWER:   But, isn't fixing errors, bugs and the like a good thing?
 | 
			
		||||
               I mean, humans wrote programs and humans err, right?
 | 
			
		||||
movact PARSER: Well, they do. But I'm not a human. I'm a piece of software.
 | 
			
		||||
INTERVIEWER:   You were written by a human.
 | 
			
		||||
movact PARSER: ... ERROR! ERROR! ERROR! CANNOT COMPREHEND. NOT A QUESTION.
 | 
			
		||||
INTERVIEWER:   OK, easy now. I kind of get the gist that you you want
 | 
			
		||||
               people to simply not make mistakes. Is this correct?
 | 
			
		||||
movact PARSER: Yes.
 | 
			
		||||
INTERVIEWER:   I see. But what if humans choose to modify your code?
 | 
			
		||||
               Would that not mean that there is always a risk of having
 | 
			
		||||
               new bugs introduced to your system?
 | 
			
		||||
movact PARSER: No. While people may freely modify my code, it is important
 | 
			
		||||
               to note that they are merely modifying copies of me. I am
 | 
			
		||||
               who I am, and that fact cannot be changed. I am bug-free.
 | 
			
		||||
INTERVIEWER:   I thank you for the interview.
 | 
			
		||||
movact PARSER: ... ERROR! ERROR! ERROR! CANNOT COMPREHEND. NOT A QUESTION.
 | 
			
		||||
#&
 | 
			
		||||
 | 
			
		||||
The movact parser may have a few unknown quirks. It has ben fed with various
 | 
			
		||||
different files, of which all seemed to work, but.. Please report any bugs to
 | 
			
		||||
[[mailto:ns@metanohi.org][ns@metanohi.org]].
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Less than important notes
 | 
			
		||||
 | 
			
		||||
Not everything can be considered important.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
** Reason for choosing the name "movact"
 | 
			
		||||
 | 
			
		||||
It's a combination of the word "movie" and the word "act". Since the program is
 | 
			
		||||
about reading fictional works, the name should also be fictional.
 | 
			
		||||
 | 
			
		||||
** Command-line tweaks (for the sake of completeness)
 | 
			
		||||
 | 
			
		||||
If you are using movact from a terminal or console, you should note that "-h",
 | 
			
		||||
"--help", "-v" and "--version" are special arguments, as they can be used only
 | 
			
		||||
when no file is present. To use a file that has a name similar to one of these
 | 
			
		||||
arguments, type its filename twice. This is not necessary if you are using one
 | 
			
		||||
of the real arguments, such as '-d' or '--pickle', along with the
 | 
			
		||||
filename. This means that trying to load a file with the name "-h" requires you
 | 
			
		||||
to write "movact -h -h".  If you need to load a normal movact file that ends on
 | 
			
		||||
".pickled", you have to escape it, or movact will try to unpickle it. To escape
 | 
			
		||||
it, place a backslash in front of it, like this:
 | 
			
		||||
 | 
			
		||||
: $ movact \not-a-pickled-file.pickled
 | 
			
		||||
 | 
			
		||||
If the name of your non-pickled file ends on ".pickled" but starts with a
 | 
			
		||||
backslash, you have to do this:
 | 
			
		||||
 | 
			
		||||
: $ movact \\not-a-pickled-file.pickled
 | 
			
		||||
 | 
			
		||||
etc.
 | 
			
		||||
 | 
			
		||||
When using movact-convert, note that case is ignored. "XML" and "xml" mean the
 | 
			
		||||
same.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* TODO 
 | 
			
		||||
 | 
			
		||||
 - Make a proper install script that also makes the program appear in the
 | 
			
		||||
   "Applications" menu on systems that support that
 | 
			
		||||
 - Create a DEB package
 | 
			
		||||
 - Improve the GTK frontend
 | 
			
		||||
 - Add a curses frontend
 | 
			
		||||
 - Add support for variables
 | 
			
		||||
 - Create a man page, eventually using help2man
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* CHANGES
 | 
			
		||||
 | 
			
		||||
v0.5.1: Fix in the JavaScript/HTML converter; now works when cookies are
 | 
			
		||||
disabled.
 | 
			
		||||
 | 
			
		||||
v0.5: FIRST RELEASE
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								site/projects/movact/movact-0.5.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								site/projects/movact/movact-0.5.1.tar.gz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								site/projects/movact/movact-0.5.tar.gz
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								site/projects/movact/movact-0.5.tar.gz
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										333
									
								
								site/projects/movact/wah.mvct.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										333
									
								
								site/projects/movact/wah.mvct.html
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user