将doi:10.xxxxx/xxxx转换为漂亮的文献元数据
项目描述
# 文档对象标识符和Python和Markdown,一起来吧!
类型期刊文章DOI,并自动将其转换为漂亮的参考书目。
[](https://travis-ci.org/bcaller/markdown_doi)
[](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
```
类型期刊文章DOI,并自动将其转换为漂亮的参考书目。
[](https://travis-ci.org/bcaller/markdown_doi)
[](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 查看哈希值)