Skip to content

QJZEditor 2.2 使用说明

Xiangxi Meng edited this page May 4, 2017 · 5 revisions

目的

长期以来,未名起居注主编的主要工作在于排版。作者认为,这是不正确的,主编不应该是熟练工:他们该在工作中更多的体现个人的想法,去实现更多的可能性。

作者认为,凡是机器能够做的事情,就没有必要让人来做。对于重复性的工作,机器的效率和准确性都要比人强得多。没有理由放着机器强大的计算能力,却让人来做他们不擅长的事情。

编写这个程序,是希望将主编从重复性劳动中解放出来,使他们能够专注于内容。同时,考虑到目前主编使用的操作系统是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”开头。
  • 内容从第一行开始写,之前不要有空行。空行不得有任何字符,包括空格。
  • 版名独占一行,版名和内容之间没有空行。多个版面之间只空一行。
  • 如果某一行要用灰字,请在行首加一个下划线“_”。
  • 每个分区的主题贴中,请不要有其他内容。如果有任何评论,最好跟贴。