开放“救赎进程”视频
早晨收到邮件,说是“HHW”网站502了。看了一眼,大约是需要重启。用自己的网站作为视频备份,似乎还是有些不稳定。
想了一秒钟,顺手将所有“救赎进程”的视频上传了油管,还是在公共领域的服务器上,数据会安全一点。这样看来,也许过一阵子就可以供公众观看了。
昨天收到另一封邮件,我们的BoBS项目已经完成了27门课程。作为唯一在地的老师,我特地安排,不要给学生上太多的课,大体上每一年两门课左右,就是这样已经很重复了,经常使用重复案例和示例而不自知。
我以后的计划或许是少上课,多设计一些新的课程出来,讲过一遍就上网,分享给乐于使用的人。我希望这些课程是不收费的,在福音上,invaluable就是valuable,costless就是cost。
手中正在做的下一门课应该是“四福音的和谐”,大约在不久之后我就要研究如何做四福音对读的ascii电子书了。
对了,今天讲完道,Ian要求拷贝了讲道的视频去,要分享给他的家人和教会。这几周都集中在基础的福音信息上,所以内容似乎不太敏感。但我还是略微解释了一下我的原则,为何不常分享讲道。
对此,Ian提出一个问题:如果按照“轻轨站舰”的原则,尽量保持小型化,又没有数量充足、训练良好的传道人,为何不将有限的讲道分享出来,让更多人可以受益呢?
当然,这是个好问题,但并不那么简单。我目前的解决方案是免费开放的“释经讲道工作坊”,希望能在坚持自己不分享讲道的原则下,示范我的释经和完成讲章过程。对于感兴趣的弟兄姊妹来说,大概这是足够了。
完成科目
展开表格,看看我们开设的课程。
序号 | 课程名称 | 授课老师 | 上课时间 |
---|---|---|---|
01 | 神学治学法 | 2021年10月04-08日 | |
02 | 旧约概论一 | 张聪 | 2021年11月15-19日 |
03 | 林前、后书 | 2021年12月06-10日 | |
04 | 大学语文 | 2022年01月03-07日 | |
05 | 教育学原理 | 2022年01月10-14日 | |
06 | 系统神学 1 | 2022年03月14-18日 | |
07 | 释经学基础 | 张聪 | 2022年04月04-08日 |
08 | 宣教学概论 | 2022年05月16-20日 | |
09 | 新约概论 1 | 2022年06月13-17日 | |
10 | 三福个人布道 | 张聪(挂名) | 2022年07月11-13日 |
11 | 使徒行传 | 2022年07月04-08日 | |
12 | 讲道学 | 张聪 | 2022.09.05-09 |
13 | 基础逻辑学 | 2022.10.10-14 | |
14 | 灵命塑造 | 2022.11.07-11 | |
15 | 文化人类学 | 2022.12.05.09 | |
16 | 箴言 | 2023.01.02-06 | |
17 | 系统神学2 | 2023.03.06-10 | |
18 | 新约概论2 | 张聪 | 2023.04.10-14 |
19 | 旧约概论2 | 2023.05.08-12 | |
20 | 教牧学导论 | 2023.06.04-09 | |
21 | 西方文学 | 2023.07.10-14 | |
22 | 系统神学3 | 2023.09.04-08 | |
23 | 护教学 | 2023.10.09-13 | |
24 | 教会历史1 | 2023.11.13-17 | |
25 | 植堂 | 2023.12.11-15 | |
26 | 启示录 | 2024.01.01-05 | |
27 | 救赎进程 | 张聪 | 2024.01.08-12 |
工作日志
这几天忙着整理一本旧书,《透视保罗》。从前这书提交给我的pdf有些问题,按照宗德文的风格,图文并茂,对于译者而言就是一种巨大的折磨。那时的流程没有弄明白,所以采用了ocr,自己费了不少力气,但翻译出来之后,简直无法直视。
甚至译者本人也承受不了这个工作,所以我这几天已经把其他事情暂时放下,认真整理这书。
我的工作流程大致如下:
pandoc
将word文档转换为asciidoc。
pandoc -f docx -t asciidoc --pdf-engine=xelatex -V CJKmainfont="STsong" ./finiehed.docx -o finished.adoc
- 从主文档中提取每一章,然后一点一点对照原版pdf来排版。 客户没有要求附图,所以我可以安全地把图片从文档中删除,并按照固定格式设定标题。
大体而言,我大量地使用了vs code的asciidoc插件,以及vim插件的正则表达式替换。 : 举个简单例子:
link:#calibre_link-94[[^1]]
需要替换为{chp1-fn1}
,作为脚注的引用。
这几天重新复习了vim的许多用法,在chatGPT的帮助下,想出了若干新的简化替换方式。比如用J
一次性将所有脚注合并在一处,然后在一个大的文本块中进行替换处理。
我应该考虑将这本书就此做成asciidocbook,直接用于生成epub和mobi格式的电子书。
检查标点符号失配的python脚本
昨天还让chatGPT帮我写了一个简单的python脚本,用于检查文本中的标点符号失配。下面的代码就是目前调试通过的程序。用来检查adoc格式的标点失配,并进行人工修正。
点击展开代码
import re
import sys
def print_incorrect_quotations(paragraph):
# This regex finds incorrect quotations but doesn't distinguish context.
# It's a basic check to identify potential issues for review.
potential_issues = re.finditer(r'”[^“]*”', paragraph)
for issue in potential_issues:
context = issue.group(0)
# Print surrounding text for context, limited to 30 characters for brevity
print(f"Incorrect quotation found: ...{context[:30]}...")
def correct_quotation_marks_in_paragraph(paragraph):
parts = re.split(r'([“”])', paragraph)
corrected_parts = []
quote_flag = False
for part in parts:
if part == '“':
if quote_flag: # If there's an unmatched opening quote, close it
corrected_parts.append('”')
else:
corrected_parts.append(part)
quote_flag = not quote_flag
elif part == '”':
if not quote_flag: # If there's a closing quote without an opening, open it
corrected_parts.append('“')
else:
corrected_parts.append(part)
quote_flag = not quote_flag
else:
corrected_parts.append(part)
# Ensure all quotes are closed at the end of a paragraph
if quote_flag:
corrected_parts.append('”')
return ''.join(corrected_parts)
def correct_quotation_marks(text):
paragraphs = text.strip().split('\n\n') # Split text into paragraphs
for paragraph in paragraphs:
print_incorrect_quotations(paragraph)
corrected_paragraphs = [correct_quotation_marks_in_paragraph(p) for p in paragraphs]
return '\n\n'.join(corrected_paragraphs)
def process_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
corrected_text = correct_quotation_marks(text)
new_file_path = f'{file_path}.correct'
with open(new_file_path, 'w', encoding='utf-8') as new_file:
new_file.write(corrected_text)
print(f"Corrected content written to {new_file_path}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python script.py file_path")
else:
file_path = sys.argv[1]
process_file(file_path)
使用neovim插件作为主要编辑器
vsCode NeoVim
似乎是一个很不错的插件,利用NeoVim作为后台,不需要自己重写vim的命令映射,同时还可以兼容vsCode的命令。看起来,我要弃用vsCode的vim插件了。
用chatGPT写代码
今天为了预备讲道,用python写了一个获取圣经文本的程序。当然,如果没有chatGPT,我绝不会去做这样的事情。
点击展开代码。
import requests
import sys
def fetch_verses(verses, version='kjv'):
"""
Fetch multiple verses and ranges from the Bible using the getbible.net API.
:param verses: List of strings, each specifying a reference in the format BookChapter:Verse(s).
Example: ['John3:16,17', '1John3:16-19,22']
:param version: String, the Bible version code (default is 'kjv' for King James Version).
:return: String, the Bible verses text.
"""
query = ';'.join(verses)
url = f"https://query.getbible.net/v2/{version}/{query}"
response = requests.get(url)
if response.status_code != 200:
return "Error fetching the verses."
verses_data = response.json()
verses_text = ""
for book_key in verses_data.keys():
book_data = verses_data[book_key]
if 'verses' in book_data:
for verse in book_data['verses']:
verse_ref = verse.get('name', 'Unknown reference')
verse_text = verse.get('text', 'Text not found')
verses_text += f"{verse_ref}: {verse_text}\n"
return verses_text.strip()
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python script.py [version] [verse1] [verse2] ... [verseN]")
sys.exit(1)
version = sys.argv[1]
verses = sys.argv[2:]
verses_text = fetch_verses(verses, version)
print(verses_text)
博客和代码库混在一处了
我开始在博客的仓库中写脚本和代码,或者处理翻译,或者排版。使用asciidoc
的目标是最终将内容全部统一起来,方便生成电子书、发布和出版。
我开始整理四福音书的学习手册,应该是一个挺好玩的工作。年底会开设这个工作坊吧。
对了,“救赎进程”工作坊所有视频上线,我也不客气了,欢迎围观。