Skip to content

Commit

Permalink
Merge pull request #1043 from mwtoews/docs
Browse files Browse the repository at this point in the history
Start a `customstyle` for bibliographic references
  • Loading branch information
kbevers committed Jun 14, 2018
2 parents ab7de48 + 7796cb7 commit b9b5767
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
*~
*.bak
*.pyc
build.local.bat
build.local.sh
Makefile
Expand Down
64 changes: 64 additions & 0 deletions docs/source/bibstyle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
###############################################################################
#
# Purpose: Configure custom bibliography style for sphinxcontrib-bibtex
# Author: Mike Toews <mwtoews at gmail.com>
#
###############################################################################
# Copyright (c) 2018, Mike Toews <mwtoews at gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
###############################################################################

import re
from pybtex.style.formatting.unsrt import Style as UnsrtStyle
from pybtex.style.labels.alpha import LabelStyle
from pybtex.plugin import register_plugin


class LinkLabelStyle(LabelStyle):
"""Citation label used in text, and before each item in the
References section"""

re_char_nums = re.compile(r'^[\d\w]+$')

def format_label(self, entry):
"""Returns BibTeX key for label
Raises KeyError if BibTeX key has other characters other than letters
and numbers.
"""
label = entry.key
if not self.re_char_nums.match(label):
raise KeyError(
'BibTeX key must contain only letters and numbers '
'(found {0!r})'.format(label))
return label


class CustomStyle(UnsrtStyle):
"""Citation style in the References section"""

default_label_style = 'linklabel'
default_name_style = 'lastfirst'
default_sorting_style = 'author_year_title'
# TODO: Make more Harvard-like, i.e. year after name(s)


register_plugin('pybtex.style.labels', 'linklabel', LinkLabelStyle)
register_plugin('pybtex.style.formatting', 'customstyle', CustomStyle)
4 changes: 3 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath('.'))

import bibstyle

# -- General configuration ------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/source/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ @Article{Karney2011
}

@Article{Komsta2016,
Title = {ATPOL geobotanical grid revisited -- a proposal of coordinate conversion algorithms},
Title = {{ATPOL} geobotanical grid revisited -- a proposal of coordinate conversion algorithms},
Author = {Ł. Komsta},
Journal = {Annales UMCS Sectio E Agricultura},
Year = {2016},
Expand Down
1 change: 1 addition & 0 deletions docs/source/references.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@

.. bibliography:: references.bib
:cited:
:style: customstyle

0 comments on commit b9b5767

Please sign in to comment.