% nottsclassic -- %   
% Copyright (c) 2016 Lukas C. Bossert | William Leveritt
%  
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
\ProvidesFile{nottsclassic.bbx}%
               [2016/06/30 v0.1  nottsclassic]
\RequireBibliographyStyle{authoryear}

\AtBeginDocument{%
		\urlstyle{sf}%
	\setquotestyle{british} %! mandatory: \usepackage{csquotes} in preamble!
}
\ExecuteBibliographyOptions{%
	pagetracker=true,%
	giveninits=true,%
	mergedate=true,%
	labeldate=true,%
	bibencoding=utf8,%
	sorting=nyt,%
	isbn=false,
	maxnames=2,% 
	maxitems=1,%
	maxbibnames=999,%
}
%-----------------------
\newcommand*{\volpagedelim}{\addcolon\addspace}
\renewcommand*{\subtitlepunct}{\addcolon\addspace}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*\bibnamedash{\rule[0.48ex]{3em}{0.14ex}\space}
%------------------------
\DeclareRedundantLanguages{english,american}{english,american,british,%
                       						canadian,australian,newzealand,USenglish,UKenglish}
\DeclareLanguageMapping{english}{nottsclassic-english}

%------------------------
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{volcitepages}{#1}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat*{title}{%
			\ifthenelse{% 		
					\ifentrytype{article}%
					\OR%
					\ifentrytype{review}
					\OR%
					\ifentrytype{incollection}}%
						{\mkbibquote{#1}}%
					{\mkbibemph{#1}}}
\DeclareFieldFormat{booktitle}{\mkbibemph{#1}}
%-------------------------
\DeclareNameAlias{sortname}{family-given}% legacy alias
%-------------------------
\DeclareBibliographyCategory{important}
\AtEveryBibitem{\ifcategory{important}{
\reversemarginpar
\marginnote{\color{red}{☞}}
%\bfseries
}
{}}
%-------------------------
\defbibenvironment{bibliography}
  {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

\defbibenvironment{shorthand}
  {\list
     {\printfield[shorthandwidth]{shorthand}}
     {\setlength{\labelwidth}{\shorthandwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}%
      \renewcommand*{\makelabel}[1]{##1\hss}}}
  {\endlist}
  {\item}

\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\addcomma\addspace}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}

%-----------------------  
\renewbibmacro{in:}{%
	\ifthenelse{% 		
		\ifentrytype{article}%
		\OR%
		\ifentrytype{review}}%
	{}%
	{\printtext{in}}
	%\bibstring{in}\intitlepunct}}%
}

%-----------------------  
\newbibmacro*{related:reviewof}[1]{%
		\usebibmacro*{related:default}{#1}%
}
%-----------------------  
\renewbibmacro*{editorstrg}{%
  \ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
    {\bibstring{editors}}
    {\bibstring{editor}}}
%-----------------------      
\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {%\usebibmacro{byeditor+othersstrg}%
     \setunit{\addspace}%
     \printtext[parens]{\printnames[editor]{editor}%
     \setunit{\addspace\addcomma\addspace}%
     \usebibmacro{editorstrg}}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

%-----------------------  
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\printfield{version}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}%
\newunit
\usebibmacro{byeditor+others}%
\volpagedelim%
\usebibmacro{note+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{issn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
%-----------------------
\DeclareBibliographyDriver{review}{%
  	\usebibmacro{bibindex}%
  	\usebibmacro{begentry}%
  	\usebibmacro{author/editor}%
  		\setunit*{\labelnamepunct}%
  		\newblock%
    \iffieldundef{title}%
    		{}%
    		{\usebibmacro{title}}%
   		\newunit\newblock%
	\usebibmacro{related:init}%
	\usebibmacro{related}%			
 		\newunit\newblock%
\usebibmacro{journal+issuetitle}%
  		\newunit\newblock%
\usebibmacro{note+pages}%
  	 	\newunit\newblock%
  	\usebibmacro{doi+eprint+url}%
  		\newunit\newblock%
 	\usebibmacro{finentry}%
}
\endinput