zotero-chinese / styles

中文 CSL 样式
https://zotero-chinese.com/styles/
Other
5.12k stars 832 forks source link

统一学位论文 csl 的文件名和标题 #107

Closed zepinglee closed 1 year ago

zepinglee commented 1 year ago

目前学位论文样式的数量达到了 35 个,我提议统一这些样式的文件名、标题等格式。

  1. 目前大多数文件名采用校名缩写的方式,但是这会造成一些歧义。比如 430hnu-thesis.csl 是“海南大学”,但是 HNU 可能被误认为是“河南大学”或者“淮南大学”,而 https://www.hnu.edu.cn/ 其实是“湖南大学”。我提议将文件名改为学校官方英文名全称的方式,比如海南大学:hainan-university-thesis.csl
  2. 标题 <title> 中有很多“硕博论文”,这是不太严谨的称呼。建议改为学校官网格式要求的称呼,比如海南大学:<title>海南大学研究生学位论文</title>。另外有些标题带有英文缩写前缀(比如 <title>JNU-thesis暨南大学硕博论文</title>),@redleafnew 这是为了方便排序吗?如果将 Zotero 语言设为中文的话,其中列出的样式名称应该是按照中文拼音顺序排序的。所以我提议去掉英文前缀,只使用中文全称。学校英文缩写可以填到 <title-short> 中,比如 <title-short>HNU</title>
  3. 如果是在他人的成果基础上修改得到的新样式,记录 <link rel="template"/> 即可,不保留原 <author><contributor>。这样更体现该样式的主要参与者。

@redleafnew @Helloxiaolaodi 意见如何?

redleafnew commented 1 year ago

我也发现比较乱了。确实需要规范一下。保留英文的想法如如果有这些学校的留学生使用,通过英文缩写也可以知道是这个学校的。

redleafnew commented 1 year ago

工作量挺大的,有办法通过脚本来修改吗?readme可能不止一处地方。

zepinglee commented 1 year ago

我也发现比较乱了。确实需要规范一下。保留英文的想法如如果有这些学校的留学生使用,通过英文缩写也可以知道是这个学校的。

按照官方 https://github.com/citation-style-language/styles 的命名习惯,几乎很少这么填的。我觉得还是保持一致吧,可以忽略留学生的需求。

我来改吧。

zepinglee commented 1 year ago

工作量挺大的,有办法通过脚本来修改吗?readme可能不止一处地方。

这种用 vscode 的批量查找替换就可以了。

Screen Shot 2022-12-10 at 12 18 27
zepinglee commented 1 year ago

另外,官方 https://github.com/citation-style-language/styles 的文件名和标题似乎都没有保留 thesis 或者“学位论文”,我建议也去掉保持一致。学报的话可以加“acta”前缀可以区分。

redleafnew commented 1 year ago

好的。

zepinglee commented 1 year ago

工作量挺大的,有办法通过脚本来修改吗?readme可能不止一处地方。

试了一下,还是写脚本更方便。

redleafnew commented 1 year ago

我最多只会查找替换。

Helloxiaolaodi commented 1 year ago

很好的建议!我提交的一些CSL时候没有考虑到这些方面,确实不够严谨。如果您有时间有好办法,可以更快的更改,得麻烦您完善一下。如有需要也可随时联系我,谢谢宝贵的建议!

zepinglee commented 1 year ago

我用 Python 脚本解决了文件名的问题(68b9f12),除了 401 和 402 找不到出处以外。

import glob
import os

new_names = {
    # 'cas-like-thesis': 'cas-like-university',
    # 'cas-like-thesis-zotero-ask': 'cas-like-thesis-zotero-ask',
    'hzau-thesis': 'huazhong-agricultural-university',
    'jnu-thesis': 'jinan-university',
    'njau-thesis': 'nanjing-agricultural-university-numeric',
    'njau-thesis-author-date': 'nanjing-agricultural-university-author-date',
    'njau-thesis-old': 'nanjing-agricultural-university-old',
    'njau-thesis-online-first': 'nanjing-agricultural-university-online-first',
    'nwafu-thesis': 'northwest-a&amp;f-university',
    'sjtu-thesis': 'shanghai-jiao-tong-university',
    'swu-thesis': 'southwest-university',
    # 'tsinghua-university-author-date': 'tsinghua-university-author-date',
    # 'tsinghua-university-numeric': 'tsinghua-university-numeric',
    'ynu-thesis': 'yunnan-university',
    'zju-thesis': 'zhejiang-university',
    'zuel-thesis': 'zhongnan-university-of-economics-and-law',
    'whu-school-of-law': 'wuhan-university-school-of-law',
    'hust-thesis': 'huazhong-university-of-science-and-technology',
    'bnu-thesis': 'beijing-normal-university',
    'beihang-thesis': 'beihang-university',
    'hebau-thesis': 'hebei-agricultural-university',
    'caas-thesis': 'chinese-academy-of-agricultural-sciences',
    'nbu-thesis': 'ningbo-university',
    'hrbust-thesis': 'harbin-university-of-science-and-technology',
    'syau-thesis': 'shenyang-agricultural-university',
    'bfu-thesis': 'beijing-forestry-university',
    'uestc-thesis': 'university-of-electronic-science-and-technology-of-china',
    'fafu-thesis': 'fujian-agriculture-and-forestry-university',
    'gzu-thesis': 'guizhou-university',
    'hnu-thesis': 'hainan-university',
    'hhu-thesis': 'hohai-university',
    'ecnu-thesis': 'east-china-normal-university',
    'jufe-thesis': 'jiangxi-university-of-finance-and-economics',
    'sdau-thesis': 'shandong-agricultural-university',
    'yzu-thesis': 'yangzhou-university',
}

files = list(glob.glob('*.csl')) + ['README.md']
contents = dict()

for file in files:
    with open(file) as f:
        content = f.read()
    contents[file] = content

for old_name, new_name in new_names.items():
    for file in files:
        contents[file] = contents[file].replace(old_name, new_name)

for file, content in contents.items():
    with open(file, 'w') as f:
        f.write(content)

for old_name, new_name in new_names.items():
    for path in glob.glob(f'*{old_name}*.csl'):
        new_path = path.replace(old_name, new_name)
        os.rename(path, new_path)
zepinglee commented 1 year ago

很好的建议!我提交的一些CSL时候没有考虑到这些方面,确实不够严谨。如果您有时间有好办法,可以更快的更改,得麻烦您完善一下。如有需要也可随时联系我,谢谢宝贵的建议!

主要是我们原来也没形成统一的格式。

redleafnew commented 1 year ago

还是用脚本方便,

zepinglee commented 1 year ago

994ea12 中完成。

redleafnew commented 1 year ago

辛苦辛苦。