-
Notifications
You must be signed in to change notification settings - Fork 3
QJZEditor 2.2 使用说明
长期以来,未名起居注主编的主要工作在于排版。作者认为,这是不正确的,主编不应该是熟练工:他们该在工作中更多的体现个人的想法,去实现更多的可能性。
作者认为,凡是机器能够做的事情,就没有必要让人来做。对于重复性的工作,机器的效率和准确性都要比人强得多。没有理由放着机器强大的计算能力,却让人来做他们不擅长的事情。
编写这个程序,是希望将主编从重复性劳动中解放出来,使他们能够专注于内容。同时,考虑到目前主编使用的操作系统是Windows和Mac OS X,这里提供对这两种系统的支持。
项目 | 要求 |
---|---|
操作系统 | Windows 10-64bit, Mac OS X 已测试* |
编译器 | python 2.7.5 以上 |
Telnet终端 | FTerm,CTerm,Welly |
* Ubuntu+FQTerm测试通过。FQTerm的参数同FTerm。
考虑到跨平台和便利性,该程序用Python 2.7开发。目前的Mac发行版自带python编译器,Windows可能需要手动下载并安装python编译器。如果你是Windows用户且无法运行后缀名为.py的程序,请下载安装python编译器:
64位机器:https://www.python.org/ftp/python/2.7.11/python-2.7.11.amd64.msi
其他机器:https://www.python.org/ftp/python/2.7.11/python-2.7.11.msi
在运行之前,请把压缩包里的全部内容解压缩到同一个目录中。 注意路径名不能包含中文或特殊符号。 建议仔细阅读本文档。
Mac OS X用户的运行方式:
- 运行方式1:打开终端,键入
python
(注意空格),然后将程序用鼠标拖进终端。按回车。 - 运行方式2:打开终端,用
cd
命令转到当前文件夹。键入python +文件名
。按回车。
另外,Windows用户可以使用记事本默认的编码进行编辑,也可以使用UTF-8格式,但Mac用户请选用GB2312编码保存种子文件(见后)。
对于FTerm用户,请在“彩色粘贴”模式下将生成的代码粘到Fterm里面。
第一次 运行本程序时,会进行一个初始化过程。初始化过程将修改QJZansisource.ans
文件的最后两行。这个文件可以用文本编辑器打开,以便手动修改最后两行的内容。对于初级用户,推荐使用程序自带的初始化方式而不是手动修改。
第一次运行QJZeditor_%ver%.py
(根据版本不同文件名可能不同),会显示如下内容:
欢迎使用QJZEditor beta 2.2。这可能是你首次运行本程序,下面我们进行简单的初始化。
如需更改初始化参数,请参考文档。初始化共二步,首先请设置主编ID。
如果希望每次自行输入主编ID,请输入数字‘0’。下面输入主编ID>或0:
_
为了方便起见,可以输入你自己的ID,当然也可以输入“0”。我们以“peiyangium”为例,输入后按回车:
好厉害!你已经完成了第一步啦!下面是第二步,选择一个你常用的Telnet终端(Term)。
你有三个选项:FTerm(F)、CTerm(C)或者Welly(W)。
下面请输入你常用Term的名称(英文)或首字母:
_
输入首字母或全名。例如我主要使用FTerm,则输入“F”,回车。
恭喜你!初始化已经完成了,你的选项如下:
默认的主编ID是:peiyangium
默认的终端是:FTerm。
是否放弃初始化结果?(yes/No)(Tips:按回车相当于‘No’,各处皆相同。)
_
检查无误后,直接按回车退出。需要注意的是,本程序中,各处的Yes/No问题的默认选项均为 否 。确认后会显示:
初始化成功!现在可以开始使用本程序了!按任意键继续。
此时按任意键可进入正式程序。
(本节下面部分是高级内容,可以跳过。)
初始化之前,Editors.ans
文件的前两行是:
?
?
……
前一行存储Term的类型(用小写的首字母表示);后一行存储主编的ID。如无默认ID,则这一行为“0”。例如按如上示例进行初始化后,Editors.ans
文件的前两行将变为:
f
peiyangium
……
将其改为初始化前的状态(均为英文问号),则下次重新进行初始化。
示例文件帮助用户理解程序的实际运行过程。同时,它也是一个供用户参考的模板。该示例文件改编自2015年12月19日的起居注,其文件名是20151219.txt
。
处理示例文件,请运行QJZeditor_%ver%.py
。
显示内容:
欢迎使用QJZEditor X.X。请按照文档要求处理好采编内容,并保存在本脚本相同文件夹中。
请注意文件名的格式,应为“YYYYMMDD.txt。”
任何疑问,请联系作者,或在北大未名BBS起居注内部版发帖询问。
今天是2016年2月11日,星期四默认排版今天的。要更改排版起居注的日期么?(yes/No):
_
由于我们要排版2015年12月19日的起居注,故需要更改排版起居注的日期。这里键入“y”,并按回车,接下来键入“20151219”。
y
输入新的日期,格式为YYYYMMDD:
20151219
修改后的日期是:
2015年12月19日,星期六
再看一眼没错吧?错了就退出重来,别让校对捉住了。重来么?(yes/No)
_
检查无误,按回车继续。
8区内容分离完毕。
2区内容分离完毕。
……
C区内容分离完毕。
以下12个分区处理完毕:
0、1、2、3、4、5、6、7、8、9、C、H。
文件分割完成
已经把header存在……文件夹的header20151219.txt文件里面了。
H区渲染完毕!
0区渲染完毕!
####################
警告!请注意1区以下内容的行末标点是否出错:
文明观影
按任意键继续。
####################
_
这里出现了警告信息。程序会检查每一行末尾的标点符号,如果没有标点或出现不常用的标点,则会发出警告。这时按任意键继续运行。如果确实忘写、错写标点,可以返回检查。值得注意的是,有一种情况是不会提醒的,即最后一个字是m且忘记加标点。但我觉得这种情况发生机会不大,就没写。此时按任意键可以继续。
####################
警告!请注意1区以下内容的行末标点是否出错:
随机作业随机交,助教你别开玩笑
按任意键继续。
####################
1区渲染完毕!
……
C区渲染完毕!
已经把body存在QJZ@20151219文件夹的body20151219.txt文件里面了。
各区采编列表:
0区采编: peiyangium
1区采编: Vendor
……
H区采编: Vendor
是否更改?(y/N)
_
此处可以尝试更改各区采编,或直接回车。当确认最终的采编名单后,程序会自动按两行或三行排列采编。
按两行排列采编的效果如下:
kanez lnss peiyangium
rhyshm richardo Vendor
按三行排列采编的效果如下:
kanez lnss
peiyangium rhyshm
richardo Vendor
默认按两行排列,是否更改为按三行排列?(y/N)
_
一般建议按两行排列即可,特殊情况下要按三行排列,可直接输入“y”并回车。
下面输入主编和校对ID。根据排班表和预设主编的不同,程序会采用默认的ID,或要求手动输入ID。
请注意,预设主编peiyangium和排班表上所列主编dvorak不同。
默认将采用预设主编peiyangium。是否更改主编?(yes/No)
排班表上没有今天的校对,请输入手动输入校对ID:
_
这里敲回车采用了预设的主编,手动输入校对ID后,再按回车:
已经把footer存在QJZ@20151219文件夹的footer20151219.txt文件里面了。
已经把连接好的最终文件存在QJZ@20151219文件夹的QJZ@20151219.txt文件里面了。
按任意键结束。
按任意键退出,此时可以发现,该目录下多了一个QJZ@20151219
文件夹,里面有17个文件,并包含QJZ@20151219.txt
文件。这个文件里即是排版好的最终代码。
打开这个文本文件,全选,复制,然后粘贴在Telnet终端中,即可得到排版好的起居注。
(本节下面部分是高级内容,可以跳过。)
排班表的位置在Editors.ans
的第2行到第6行,每行分别代表周一、周二、周三、周四、周六的主编和校对。其中若某天的主编或校对空缺,则用“0”占位。
Editors.ans
的后面若干行是采编的颜色信息。“1”代表蓝ID,“2”代表粉ID,“3”代表绿ID。
在实际工作过程中,主编需要首先将 全部标g的帖子内容 粘贴到同一个文本文档中(Windows的记事本默认保存的编码是ANSI,如果有其他的编辑器,请确定以ACSII的形式保存),并将该文档以“YYYYMMDD.txt”的格式命名,保存到该程序的目录里面。这个文件称作“ 种子文件 ”。比如,2016年2月9日的种子文件就是'20160209.txt'。
种子文件的内容包括采编发的所有帖子,必须至少包括0-9区,另外可以包括A、B、C、G区和今日热点。每个分区包括从“发信人”、“信区”一行一直到签名档前面的“--”(即两个hyphen,含该行)。“发信人:”用于新分区的识别,“--”用于分区结束的识别,因此它们不能出现于采编内容中任何一行的开头。
每个分区的结构如下(“[ ]”中的数字是为了方便解释所加的行号,原文件中没有):
[01]
[02]发信人: Vendor (能早起的范二青年), 信区: WMZhanKan
[03]标 题: 6@1219
[04]发信站: 北大未名站 (2015年12月19日22:33:09 星期六), 站内信件
[05]
[06]losefat
[07]最好就是忙成狗,这样减肥不发愁。
[08]
[09]PetsEden
[10]想给家长买宠物,你说我该买啥送?
[11]
[12]Radio
[13]新年广播,等你点锅(歌)。
[14]_快来点歌快来点歌啊!
[15]
[16]AngelaChang
[17]你《还记得吗》,记忆里的牵挂。
[18]
[19]--
[20]
说明:
- 01行是一个空行,程序会无视每个分区开头的空行,所以 每个分区之间可以有任意个空行 。
- 02-04是BBS上的信头,请务必复制上。其中, 如果该分区内容是空,标题请写“6@1219 kong”或“6@1219kong”,“kong”也可以是“void”,但不支持汉字 。
- 05是BBS上的默认添加的空行。 请采编发帖时,直接从第一行开始,不要在内容之前留有任何空行。
- 06-07是第一个版面的内容。
- 08是同一分区不同版面之间的空行。 同一分区不同版面之间必须空一行,空行不得有任何字符(含空格),且不得空多行。
- 14: 如果某一行是灰字,则该行以下划线“_”开头,不必写“灰:”或其他标记。
- 18: 分区最后一个版面之后,可以有多个空行,程序会自动识别并删除多余的空行。
- 19: 是签名档之前的字符,代表分区的结束,十分重要。最后一个分区结束之前,也要有这个符号。
如果出现编码问题,请检查种子文件的编码是否为“ANSI”,具体的编码是GB 2312。在Windows下还支持UTF-8编码。
主编需要维护好种子文件的格式,这样程序才能正确的识别分区内容。
为了减少主编的工作量,请采编尽量直接按照程序可处理的格式发文。主要需要注意的问题如下:
- 每天0-9区必须每个区都发帖子,即便没有内容。
- 如果该区没有采内容,则在标题后面加“kong”或“void”。以下四种情况是可以接受的:“0@0209kong”,“0@0209 kong”,“0@0209void”,“0@0209 void”。
- 今日热点的标题,必须以“H”或“h”开头。
- 内容从第一行开始写,之前不要有空行。空行不得有任何字符,包括空格。
- 版名独占一行,版名和内容之间没有空行。多个版面之间只空一行。
- 如果某一行要用灰字,请在行首加一个下划线“_”。
- 每个分区的主题贴中,请不要有其他内容。如果有任何评论,最好跟贴。