aboutsummaryrefslogtreecommitdiff
path: root/docs/source
diff options
context:
space:
mode:
authorMike Toews <mwtoews@gmail.com>2018-06-14 15:54:39 +1200
committerMike Toews <mwtoews@gmail.com>2018-06-14 20:24:07 +1200
commit7796cb7e5c23b06aac9ce84245e11dd82730fbcf (patch)
tree454ba312753fc64a29f1e05dd2dcdf098ca8d599 /docs/source
parentaea86ed356d462fc7cfddbd402253ac0d3a72dd6 (diff)
downloadPROJ-7796cb7e5c23b06aac9ce84245e11dd82730fbcf.tar.gz
PROJ-7796cb7e5c23b06aac9ce84245e11dd82730fbcf.zip
Start a `customstyle` for bibliographic references
Modifies label to use BibTeX key name, and format names with lastfirst
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/bibstyle.py64
-rw-r--r--docs/source/conf.py4
-rw-r--r--docs/source/references.bib2
-rw-r--r--docs/source/references.rst1
4 files changed, 69 insertions, 2 deletions
diff --git a/docs/source/bibstyle.py b/docs/source/bibstyle.py
new file mode 100644
index 00000000..8e2cc02a
--- /dev/null
+++ b/docs/source/bibstyle.py
@@ -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)
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 81a683d6..5df4ddf0 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -19,7 +19,9 @@ import datetime
# 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 ------------------------------------------------
diff --git a/docs/source/references.bib b/docs/source/references.bib
index 31f9a398..f8cde02f 100644
--- a/docs/source/references.bib
+++ b/docs/source/references.bib
@@ -156,7 +156,7 @@
}
@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},
diff --git a/docs/source/references.rst b/docs/source/references.rst
index a76d6526..384281cd 100644
--- a/docs/source/references.rst
+++ b/docs/source/references.rst
@@ -8,3 +8,4 @@
.. bibliography:: references.bib
:cited:
+ :style: customstyle