Skip to content

网页元数据:标题、作者名里的撇号不再截断内容 - #37

Merged
Edwardxlai merged 1 commit into
Edwardxlai:mainfrom
kevin9327:fix/page-meta-apostrophe
Oct 6, 2026
Merged

Edwardxlai merged 1 commit into
Edwardxlai:mainfrom
kevin9327:fix/page-meta-apostrophe

Conversation

@kevin9327

Copy link
Copy Markdown
Contributor

改了什么

sources._page_meta 读网页 <meta> 标签时,content 的值用的是 ["']([^"']*)["']:不管值是用哪种引号括起来的,只要碰到另一种引号就截断。论文标题和作者名里撇号很常见,所以从期刊 / 会议页面导入时元数据会被截掉:

<meta name="citation_title" content="Don't Stop Pretraining: Adapt Language Models to Domains and Tasks">
<meta name="citation_author" content="O'Brien, Sean">
  • 修改前:title_en 是 Don,作者是 O
  • 修改后:Don't Stop Pretraining: Adapt Language Models to Domains and Tasks、O'Brien, Sean

单引号括起来、里面有双引号的值(content='Say "hi"')也是同样的问题。

现在 content 的值按开头的引号配对("…" 或 '…'),两个正则(name 在前 / content 在前)都改了;citation_pdf_url 等其他标签的读取方式不变。

怎么复现

from easyread import sources
sources._page_meta('<meta name="citation_author" content="O\'Brien, Sean">')
# 修改前 {'citation_author': ['O']}

测试

新增 tests/test_sources.py(撇号 / 双引号、实体解码、两种属性顺序)。新测试在修改前失败,修改后通过。

python -m unittest discover tests   # Ran 356 tests, OK (skipped=1)

@Edwardxlai

Copy link
Copy Markdown
Owner

感谢修复!已合进 v1.3.3 分支,随 1.3.3 发布,届时这个 PR 会自动标为已合并。

Copy link
Copy Markdown
Contributor Author

谢谢!等 1.3.3 发布就好。

@Edwardxlai
Edwardxlai merged commit 5e1a94a into Edwardxlai:main Oct 6, 2026
weipangit pushed a commit to weipangit/easyread that referenced this pull request Oct 6, 2026
…ADME 改正数据存放位置,加上应用内更新说明(Windows、macOS、Linux AppImage)、mac 自签名证书和 paper-xray 贡献者署名

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants