Skip to content

Releases: MuiseDestiny/zotero-style

2.4.3: 本地存储;期刊标签更新;分类数量显示模式

13 Mar 07:44
Compare
Choose a tag to compare
  • 提供本地存储
  • 点击期刊标签可重新从API更新数据
  • 分类文献数量显示模式(在标题的列设置)

2.4.2: 作者/Creator - 自定义显示;一些优化

09 Mar 01:38
4ec17e9
Compare
Choose a tag to compare
  • Creator增加列设置
  • 优化progress列数据存储,优化带来的卡顿
  • GPT结果可以选中复制
  • 优化因为关系图谱setInterval未清理导致的Zotero仍有后台bug
  • 修改视图组切换圆点颜色

自定义作者教程

此功能可以在首选项关闭,对应按钮为:Creator

image

第一作者+最后一位作者
image

一作+二作
image

slices由多个slice组成,一个slice将以:拆分成参数传给Creators.slice(...slice.split(":")),多个slice,隔开,多组slice结果将concat合并成一个newCreators。并以join传入的字符串连接。

具体代码:

const creators = item.getCreators() as any
const firstCreator = item.firstCreator as string;
const format = Zotero.Prefs.get(`${config.addonRef}.creatorColumn.format`) as string
const join = Zotero.Prefs.get(`${config.addonRef}.creatorColumn.join`) as string
let slices = Zotero.Prefs.get(`${config.addonRef}.creatorColumn.slices`) as string
let newCreators: any = []
try {
  slices.split(/,\s*/).forEach((slice: string) => {            
    newCreators = newCreators.concat(
      creators.slice(...slice.split(":").filter(i => i.trim().length).map(i => Number(i)))
    )
  })
} catch { return cellSpan}
let textArray = []
for (let i = 0; i < newCreators.length; i++) {
  textArray.push(
    format
      .replace(/\$\{firstName\}/g, newCreators[i].firstName)
      .replace(/\$\{lastName\}/g, newCreators[i].lastName)
      .replace(/\$\{firstCreator\}/g, firstCreator)
  )
}
cellSpan.innerText = textArray.join(join)

image

2.4.1: 进度列新增style选项 - stack

08 Mar 14:31
c978bba
Compare
Choose a tag to compare

image

image

在Bar的基础上,堆叠某一页面的标注,颜色直接从标注颜色读取,越高,代表字数越多。

尝试修复#215

2.4.0: 增加首选项功能设置

06 Mar 09:02
Compare
Choose a tag to compare

你可以关闭你不需要的功能,或者在你的设备上表现欠佳的功能

重启生效 重启生效 重启生效

image

2.3.7: 修复视图组加载失败bug,优化GPT UI

06 Mar 03:57
Compare
Choose a tag to compare

2.3.6: Hi, GPT.

05 Mar 07:25
Compare
Choose a tag to compare

> (>后有一个空格) 开始,输入你的问题,回车后,GPT将回答你。

不提供网络,账号注册帮助。

image

image

image

2.3.5: 修复#标签排序bug,优化进度列显示

05 Mar 04:23
Compare
Choose a tag to compare

#标签

#标签排序遵循下列规则:

优先显示指派过颜色位置的标签,这属于特殊标签,优先显示,排序按照指定的位置/position

然后是普通标签,也就是没有指定颜色位置的,它们会根据名称排序A-Z(以前是添加时间先后顺序)
你可以为需要前排显示的#标签加上一个位置前缀比如A,B,C。根据需求添加。

/^#[A-Z]?(?:.+\/)*(.+)/ 提供一个可以过滤掉A-Z的#标签正则(选择性使用)
image

进度列

特别说明

进度列,表示的是PDF中高亮标注的字数在每一页的分布,并不是标题那里阅读进度的另一种呈现方式

标注信息(包括标注的文字,对应页数)可以不打开PDF直接读取,但对于渲染还缺少总页数,所以之前的版本需要打开PDF后插件记录了总页数后,才可以渲染
此版本对于没有打开的PDF,不知道总页数,但做了标注的,也支持显示进度,会使用标注的最大页数作为总页数。

2.3.4: 修复原Zotero标签视图滚动条bug,嵌套标签视图增加支持Night插件dark模式

03 Mar 09:07
Compare
Choose a tag to compare
  • 支持期刊标签正则替换(可能需要重新下载此版本安装后才有)

具体用法参考:#195

image

一些细节比不上非黑暗模式(但尽力了)

2.3.3: 分类下条目数量标注;#标签、嵌套标签支持正则表达式

02 Mar 11:25
Compare
Choose a tag to compare
  • 分类数量标注
  • #标签排序,0-9A-Z
  • #标签支持正则表达式

例如一个标签#AAA/BBB/CCC很长,只想显示CCC,可以用正则/^#(?:.+\/)*(.+)/,这个正则不仅用于#标签的原始标签->正则匹配的标签的映射,还作为嵌套标签的验证,属于高级用法,详见下面getTagMatch函数;

这个正则表达式应用于String.match函数,需要把需要提取的字符串用括号括起来(详见getTagMatch函数)。

如果你不会正则表达式,但有高级需求,请在讨论中提问

image

static getTagMatch(tag: string) {
  const rawString = Zotero.Prefs.get(`${config.addonRef}.textTagsColumn.match`) as string
  const res = rawString.match(/\/(.+)\/(\w*)/)
  let regex: RegExp;
  // 是正则表达式
  if (res) {
    regex = new RegExp(res[1], res[2])
  }
  // 不以xxx开头
  else if (rawString.startsWith("~~")) {
    regex = new RegExp(`^([^${rawString.slice(2)}].+)`)
  }
  // 以xxx开头
  else {
    regex = new RegExp(`^${rawString}(.+)`)
  }
  const arr = tag.match(regex)
  return (arr && arr.slice(1).join("")) || ""
}

2.3.2: 修复PDF Tab错误

01 Mar 08:22
Compare
Choose a tag to compare
#184: Zotero.Reader.open少参数导致的bug