为网络和任何地方编写脚本

作者:Marcel Gagné

弗朗索瓦,我的朋友,你在做什么?啊,我看到你的创作灵感正在涌现,不是吗? 龙、宇宙飞船、横跨世界的 Linux 系统……真是个精彩的故事。而且,我看到你把餐厅也包括在场景设置中了。太棒了!但是,弗朗索瓦,你为什么如此活跃地动脑筋呢?

这是什么?啊,2002 年 3 月的《Linux Journal》主题是网络脚本,而你正在为即将到来的网络直播编写脚本。你想为网络编写脚本?为什么要局限于此呢?为什么不为电视、广播或舞台剧编写剧本呢?有了合适的工具和你的 Linux 系统,你已经为任何事情做好了准备。事实证明,我们随时准备着是件好事,因为我们的客人到了。

Vite(快点),弗朗索瓦,去酒窖。把澳大利亚玛格丽特河霞多丽白葡萄酒拿上来。一款美妙的葡萄酒,深思熟虑,香气扑鼻。Vite(快点)!

在弗朗索瓦去拿酒的时候,我来告诉你们这里发生了什么事,我的朋友们。我忠实的侍者误解了本月的主题。当你们进来的时候,他正在为一个他希望会成功的网络直播编写剧本。我们不会阻止他,而是将今天的菜单集中在这个主题上,将故事变为现实。啊,弗朗索瓦,太棒了。请为我们的朋友们倒酒吧。

设计场景并创作完美的戏剧化呈现需要一些技巧,包括列出概要和组织你的想法。彼得·泰希曼在编写 Think 时,正是,嗯,思考着这些,Think 是一个 Gtk/GNOME 应用程序,可以让你基于分层结构创建概要。结果会保存为 XML 文档。要了解彼得的 Think,请访问 primates.ximian.com/~peter/think 并获取最新的源代码。解压代码后,你可以使用经典的 ./configure 三步法构建它

tar -xzvf thnk-0.2.1.tar.gz
cd think-0.2.1
./configure
make
make install

要运行 Think,只需在命令提示符下输入 think &。图 1 显示了 Think 的运行情况。

Scriptwriting for ze Web and Everywhere Else

图 1. GNOME Think

在使用这个简单的小型思维组织器时,你可以创建节点和子节点,并将它们重命名为你觉得比“- 空节点 -”更有意义的名称。这些节点中的每一个都可以有相关的文本。例如,对话文本描述了场景二,场景二是第一幕的子节点。这些节点中的每一个都可以在左侧列表中的不同位置拖放。为了简化结构,每个主要节点都可以折叠成单行项目。

当然,如果你不想下载任何东西,你也不必这样做。你很可能已经在你的系统上加载了传说中的编辑器 Emacs。你甚至不需要运行图形桌面,因为 Emacs 也可以在文本模式下运行。为什么不试试它的轮廓模式呢?其实很简单。以下是你需要做的。

通过在命令行输入 emacs some_filename 启动 Emacs。如果该文件尚不存在,则会为你创建该文件。这是基本的 Emacs 编辑模式。要使用轮廓功能,请按 Esc-X,然后输入单词 outline-mode(参见图 2)。

Scriptwriting for ze Web and Everywhere Else

图 2. 进入 Emacs 轮廓模式

你所要做的就是开始输入。对于每个级别(或 Think 中的节点),输入一个星号 (*)。对于子级别,输入两个星号 (**) 等等。你可以在这些标题下输入任何你想要的内容,就像在任何编辑器中一样。要折叠级别、子级别或树,Emacs 使用 Ctrl-C 序列。表 1 显示了其中一些序列。

表 1. Emacs 控制序列

当然,如果你在 X 或图形模式下运行 Emacs,你可以直接点击菜单栏中的“显示”和“隐藏”菜单项。当一个级别被折叠时,它的第一行或标题将显示尾随省略号 (. . .),并且它后面的信息将被隐藏。如果你看一下图 3,你会看到我正在使用 Emacs 的轮廓模式编写“失踪葡萄酒之谜”。

Scriptwriting for ze Web and Everywhere Else

图 3. 谜团在 Emacs 轮廓中展开。

当克里斯托弗·托马拉斯·兰斯当想要编写一些喜剧小品时,他转向了一点 Perl 和 XML,并将它们组合在一起,制作了 GScriptWriter,这是一个 Gtk 工具,可以让你定义故事的基本要素,输入角色,然后在你为他们创建对话和动作时从下拉列表中拉出他们。这个简单的程序在导出到 HTML 方面也做得很好。

你可以通过访问 cs.alfred.edu/~lansdoct/linux/gscriptwriter 网站来获取 GScriptWriter。获得源代码后,像这样安装它

tar -xzvf gscriptwriter-0.1.2.tar.gz
cd gscriptwriter-0.1.2
./gscriptwriter.pl

正如你已经注意到的,这里没有涉及到编译。只需运行脚本,你就会得到一个漂亮的 Gtk 界面,你可以在其中定义和处理编写喜剧剧本的各个方面。现在,弗朗索瓦正在努力创作一个发生在这家餐厅的谜案。

你可以通过选择行,然后在你的脚本中向上或向下移动它们来组织你的脚本流程。保存你的工作,然后使用 HTML 导出功能。你最终会得到一个漂亮、干净的成品(当然,一旦谜团被解开)。GScriptWriter 仍在开发中,但 Perl 代码意味着你可以轻松修改它并将其用作你自身需求的基础。

对于某些人来说,故事就是你在 Slashdot.org 上读到的那些来得不够快的东西。为了纠正这个问题,请将你的浏览器指向 bbspot.com/toys/slashtitle/index.html,这是一个相当有趣的网站,可以生成伪随机的 Slashdot 故事。去访问一下,我的朋友们,你就会明白我的意思。但是我们跑题了,不是吗

正如你所看到的,故事这个词有很多不同的含义。留言板是一种协作努力,允许用户通过万维网在中心位置共同处理想法。一个故事开始于一个人发布一个想法的开头。其他人回应,继续讨论,突然之间,你要么陷入混乱,要么开始酝酿下一个伟大的戏剧。在正确的环境中,灵活的留言板可以是一个很棒的工具。

菜单上的下一个项目叫做 Phorum。Phorum 是免费的开源软件,并以简单的 Apache 式许可证分发。它需要一个启用 PHP 的 Apache 服务器和一种受支持的数据库类型。这种数据库可以是 PostgreSQL、MySQL、Sybase 等。Phorum 被设计为相当数据库独立的,并且安装程序将自动检测当前正在运行的数据库服务器。

说到安装,你应该会发现这个非常简单。首先访问 Phorum 网站 phorum.org 并获取最新的源代码发行版。首先将源代码解压到你的 Web 服务器的层次结构中

tar -xzvf phorum-3.3.1a.tar.gz
mv phorum-3.3.1a.tar.gz
/usr/local/apache/htdocs/phorum
cd /usr/local/apache/htdocs/phorum

从这里开始,你可能需要花点时间运行 secure 脚本来定义与 Phorum 安全性相关的位置和权限。你会在 scripts 目录中找到它

bash scripts/secure
如果你正在运行虚拟 Web 服务器,这可能尤其重要。由于 Phorum 的布局可能是众所周知的,你可能需要更改 admin 目录的名称。这是你会被问到的第一个问题。我建议你也对关于使用 .htaccess 文件保护此目录的问题回答“是”。最后,Phorum 安装程序会询问你的 Apache 服务器以哪个用户名运行。在我的例子中,它是 www。

其余的安装在线完成。你可以通过将你的浏览器指向 admin 目录来做到这一点。如果你在运行 secure 脚本时更改了它,你将需要使用该路径名

http://yourwebserver/phorum/admin

Phorum 将自动尝试检测你已安装的数据库。如果你有多个数据库软件包(就像我一样),你将需要此时选择一个。对于我的安装,我选择了 PostgreSQL。在单击“提交”后,然后我被要求提供我的数据库服务器名称 (localhost)、数据库名称以及用户名和密码。在你继续填写所有这些字段之前,让我给你一个警告。该数据库用户必须是实际存在的用户,除非你的数据库安装不需要用户名和密码(这可不是一件好事)。在 PostgreSQL 世界中,添加用户看起来像这样

createuser user_name
该用户需要能够创建和更新数据库。然后,你需要创建一个空数据库。我(也许缺乏想象力地)将其命名为 phorum。我们没有时间涵盖所有数据库,但如果你碰巧正在运行 PostgreSQL,请确保“postmaster”在运行时带有 -i 标志,以允许 TCP 和 Web 连接到数据库
/usr/bin/postmaster -D /var/lib/pgsql/data -i
与此同时,回到我们的浏览器安装,我填写了其余字段,单击“提交”,然后我看到了关于表创建和数据库更新成功的良好消息。敬酒,我的朋友们!啊,但是等等。正如他们在 la télévision(电视)上所说,还有更多。我需要在下一个屏幕上指定一个管理员用户名和密码。最后,在最后一个屏幕上,输入指向你的 Phorum 的 URL 和管理员的电子邮件地址。最后单击“提交”,你就完成了。

然后你将自动被定向到管理员登录屏幕。输入新创建的 Phorum 管理员名称和密码,现在是时候美化你的协作世界了。你可以更改配色方案,以及定义每页消息的数量,你的协作者是否被允许发布带有附件的消息以及这些附件的大小。图 5 显示了 Phorum 的管理员屏幕。

Scriptwriting for ze Web and Everywhere Else

图 5. Phorum 的管理员屏幕

由于没有主题的讨论没什么用,你可能需要花一些时间用讨论主题来填充你的新 Phorum。相关的对话很简单易用,允许你指定谁可以发布,讨论是否受到审核,以及显示选项,如颜色和布局。

你已经配置了东西,创建了论坛和讨论组,并选择了你的颜色。现在是时候将 Phorum 交给用户了。由于其简单性,你可以轻松地将其插入到现有网站中,例如将其作为框架加载。许多使用 Phorum 的网站正是以这种方式做的。你也可以让他们将浏览器指向你网站上的 phorum 层次结构

http://your_website_address/phorum

现在用户可以创建自己的个人资料,阅读、发布和回复其他帖子。他们是否真的需要登录个人资料将取决于你在通过 Phorum 管理员屏幕创建讨论区时设置的要求。图 6 显示了正在进行的 Phorum 讨论。

Scriptwriting for ze Web and Everywhere Else

图 6. Phorum 上发生的有趣的事情

再一次,我的朋友们,Chez Marcel 餐厅快要打烊了。时钟,它无情地走着,不是吗?弗朗索瓦,我们客人的酒杯快空了。请在我们晚上关门前最后一次为他们续杯。直到下次,我的朋友们,再次感谢你们光临 Chez Marcel。A votre santé(祝您健康)!Bon appétit(祝您胃口好)!

资源

Marcel Gagné (mggagne@salmar.com) 是 Salmar Consulting Inc. 的总裁,这是一家系统集成和网络咨询公司,也是 Addison-Wesley 出版的《Linux 系统管理:用户指南》的作者。

加载 Disqus 评论