跳转到主要内容

将doi:10.xxxxx/xxxx转换为漂亮的文献元数据

项目描述

# 文档对象标识符和Python和Markdown,一起来吧!

类型期刊文章DOI,并自动将其转换为漂亮的参考书目。

[![travis](https://travis-ci.org/bcaller/markdown_doi.svg)](https://travis-ci.org/bcaller/markdown_doi)
[![PyPI版本](https://badge.fury.io/py/markdown_doi.svg)](https://badge.fury.io/py/markdown_doi)

Markdown扩展,它会查找文本中的类似`doi:10.1234/j.banana.5678`的内容,
在crossref API上查找元数据,并按您的需求输出文本

将`'markdown_doi'`添加到Markdown调用中,看看魔法如何展开

```python
>>> from markdown import Markdown

>>> markdown = Markdown(extensions=['markdown_doi']
>>> markdown.convert('doi:10.1016/j.applanim.2010.02.004')
```
输出
```html
<p><span class="doi"><a href="http://dx.doi.org/10.1016/j.applanim.2010.02.004">Are cows more likely to lie down the longer they stand?</a> <span class="doi-year">(2010)</span></span></p>
```

您可以通过启用缓存来实现,例如您使用Pelican并且经常重新生成相同的文件

```python
>>> markdown = Markdown(extensions=['markdown_doi(cache_file=.doi_cache)']
```

模板函数从消息键中获取来自
JSON API响应的元数据字典
并返回一个`markdown.util.etree.ElementTree`。请参阅默认的`template_title_link_year`函数。

```python
from markdown_doi import makeExtension as makeDoiExtension

def templater(metadata, doi_pattern)
el = markdown.util.etree.Element("span")
el.text = '%(given)s %(family)s' % metadata['author'][0]
return el

ext = makeDoiExtension(templater=templater)
md = markdown.Markdown(extensions=[ext])
html = md.convert('hello 10.1016/j.applanim.2010.02.004')
assert html == 'hello <p><span>Bert J. Tolkamp</span></p>'
```

## 选项
| 选项 | 类型 | 默认 | 描述 |
|-----------|------|---------|------------|
| templater | (Dict, LinkPattern) -> etree.ElementTree | None | 将元数据渲染为元素树的函数 |
| cache_file | str | '' | 可以存储查找的DOIs缓存的文件名 |
| cache | dict | None | 相反,您可以传递一个从DOI到元数据字典的映射作为缓存而不是文件名 |


## 安装
> 从 Github

```
git clone https://github.com/bcaller/markdown_doi.git
pip install -e ./markdown_doi
```

> 从 Pypi

```
pip install markdown_doi
```


项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

markdown_doi-1.1.0.tar.gz (17.0 kB 查看哈希值)

上传时间 源代码

构建分发

markdown_doi-1.1.0-py3-none-any.whl (6.8 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面