roboneuro 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.env-example +12 -0
  4. data/.env.test +8 -0
  5. data/.github/workflows/docker-image.yml +63 -0
  6. data/.github/workflows/tests.yml +28 -0
  7. data/.gitignore +3 -0
  8. data/Gemfile +3 -0
  9. data/Gemfile.lock +135 -0
  10. data/LICENSE +21 -0
  11. data/README.md +190 -0
  12. data/Rakefile +13 -0
  13. data/bin/whedon +131 -0
  14. data/fixtures/latex_paper/paper.tex +0 -0
  15. data/fixtures/paper/10.21105.jcon.00017.crossref.xml +88 -0
  16. data/fixtures/paper/crossref-metadata.yaml +34 -0
  17. data/fixtures/paper/paper-bib.md +27 -0
  18. data/fixtures/paper/paper-single-author.md +24 -0
  19. data/fixtures/paper/paper-with-harder-names.md +27 -0
  20. data/fixtures/paper/paper-with-missing-affiliations.md +21 -0
  21. data/fixtures/paper/paper.bib +65 -0
  22. data/fixtures/paper/paper.html +14 -0
  23. data/fixtures/paper/paper.md +27 -0
  24. data/fixtures/paper/paper.pdf +0 -0
  25. data/fixtures/paper/paper.xml +28 -0
  26. data/fixtures/paper/paper_with_missing_title.md +26 -0
  27. data/fixtures/review_body.txt +48 -0
  28. data/fixtures/test_paper/nested/paper.bib +0 -0
  29. data/fixtures/test_paper/nested/paper.md +0 -0
  30. data/fixtures/test_paper/paper.bib +0 -0
  31. data/fixtures/test_paper/paper.md +0 -0
  32. data/fixtures/vcr_cassettes/joss-lookup.yml +58 -0
  33. data/fixtures/vcr_cassettes/review.yml +237 -0
  34. data/fixtures/vcr_cassettes/reviews.yml +270 -0
  35. data/lib/whedon/auditor.rb +39 -0
  36. data/lib/whedon/author.rb +81 -0
  37. data/lib/whedon/bibtex_parser.rb +103 -0
  38. data/lib/whedon/compilers.rb +379 -0
  39. data/lib/whedon/github.rb +12 -0
  40. data/lib/whedon/orcid_validator.rb +83 -0
  41. data/lib/whedon/processor.rb +178 -0
  42. data/lib/whedon/review.rb +25 -0
  43. data/lib/whedon/reviews.rb +29 -0
  44. data/lib/whedon/version.rb +3 -0
  45. data/lib/whedon.rb +387 -0
  46. data/paperdraft.Dockerfile +48 -0
  47. data/pkg/roboneuro-0.1.0.gem +0 -0
  48. data/resources/.DS_Store +0 -0
  49. data/resources/NeuroLibre/.DS_Store +0 -0
  50. data/resources/NeuroLibre/aas-logo.png +0 -0
  51. data/resources/NeuroLibre/apa.csl +1919 -0
  52. data/resources/NeuroLibre/defaults.yaml +14 -0
  53. data/resources/NeuroLibre/latex.template +541 -0
  54. data/resources/NeuroLibre/logo.png +0 -0
  55. data/resources/NeuroLibre/logo_link.png +0 -0
  56. data/resources/apa.csl +1919 -0
  57. data/resources/crossref.template +89 -0
  58. data/resources/docker-defaults.yaml +42 -0
  59. data/resources/docker-entrypoint.sh +37 -0
  60. data/resources/jats.csl +204 -0
  61. data/resources/jats.template +105 -0
  62. data/resources/jose/apa.csl +1919 -0
  63. data/resources/jose/defaults.yaml +14 -0
  64. data/resources/jose/latex.template +486 -0
  65. data/resources/jose/logo.png +0 -0
  66. data/resources/joss/aas-logo.png +0 -0
  67. data/resources/joss/apa.csl +1919 -0
  68. data/resources/joss/defaults.yaml +14 -0
  69. data/resources/joss/latex.template +525 -0
  70. data/resources/joss/logo.png +0 -0
  71. data/resources/latex.template +485 -0
  72. data/resources/time.lua +8 -0
  73. data/roboneuro.gemspec +39 -0
  74. data/spec/auditor_spec.rb +22 -0
  75. data/spec/author_spec.rb +17 -0
  76. data/spec/bibtex_spec.rb +31 -0
  77. data/spec/orcid_validator_spec.rb +33 -0
  78. data/spec/processor_spec.rb +66 -0
  79. data/spec/review_spec.rb +12 -0
  80. data/spec/reviews_spec.rb +18 -0
  81. data/spec/spec_helper.rb +22 -0
  82. data/spec/whedon_spec.rb +93 -0
  83. metadata +386 -0
@@ -0,0 +1,14 @@
1
+ template: joss/latex.template
2
+ csl: /usr/local/share/openjournals/joss/apa.csl
3
+
4
+ variables:
5
+ joss_resource_url: 'N/A'
6
+ journal_abbrev_title: 'JOSS'
7
+ journal_alias: 'joss'
8
+ journal_issn: '2475-9066'
9
+ journal_name: 'Journal of Open Source Software'
10
+ journal_url: 'https://joss.theoj.org/'
11
+
12
+ metadata:
13
+ aas_logo_path: '/usr/local/share/openjournals/joss/aas-logo.png'
14
+ logo_path: '/usr/local/share/openjournals/joss/logo.png'
@@ -0,0 +1,525 @@
1
+ \documentclass[10pt,a4paper,onecolumn]{article}
2
+ \usepackage{marginnote}
3
+ \usepackage{graphicx}
4
+ \usepackage{xcolor}
5
+ \usepackage{authblk,etoolbox}
6
+ \usepackage{titlesec}
7
+ \usepackage{calc}
8
+ \usepackage{tikz}
9
+ \usepackage{hyperref}
10
+ \hypersetup{colorlinks,breaklinks=true,
11
+ urlcolor=[rgb]{0.0, 0.5, 1.0},
12
+ linkcolor=[rgb]{0.0, 0.5, 1.0}}
13
+ \usepackage{caption}
14
+ \usepackage{tcolorbox}
15
+ \usepackage{amssymb,amsmath}
16
+ \usepackage{ifxetex,ifluatex}
17
+ \usepackage{seqsplit}
18
+ \usepackage{xstring}
19
+
20
+ \usepackage{float}
21
+ \let\origfigure\figure
22
+ \let\endorigfigure\endfigure
23
+ \renewenvironment{figure}[1][2] {
24
+ \expandafter\origfigure\expandafter[H]
25
+ } {
26
+ \endorigfigure
27
+ }
28
+
29
+ $if(draft)$
30
+ \usepackage{lineno}
31
+ \linenumbers
32
+ \usepackage{draftwatermark}
33
+ $endif$
34
+
35
+ \usepackage{fixltx2e} % provides \textsubscript
36
+ \usepackage[
37
+ backend=biber,
38
+ % style=alphabetic,
39
+ % citestyle=numeric
40
+ ]{biblatex}
41
+ \bibliography{$bibliography$}
42
+
43
+ % --- Splitting \texttt --------------------------------------------------
44
+
45
+ \let\textttOrig=\texttt
46
+ \def\texttt#1{\expandafter\textttOrig{\seqsplit{#1}}}
47
+ \renewcommand{\seqinsert}{\ifmmode
48
+ \allowbreak
49
+ \else\penalty6000\hspace{0pt plus 0.02em}\fi}
50
+
51
+
52
+ % --- Pandoc does not distinguish between links like [foo](bar) and
53
+ % --- [foo](foo) -- a simplistic Markdown model. However, this is
54
+ % --- wrong: in links like [foo](foo) the text is the url, and must
55
+ % --- be split correspondingly.
56
+ % --- Here we detect links \href{foo}{foo}, and also links starting
57
+ % --- with https://doi.org, and use path-like splitting (but not
58
+ % --- escaping!) with these links.
59
+ % --- Another vile thing pandoc does is the different escaping of
60
+ % --- foo and bar. This may confound our detection.
61
+ % --- This problem we do not try to solve at present, with the exception
62
+ % --- of doi-like urls, which we detect correctly.
63
+
64
+
65
+ \makeatletter
66
+ \let\href@Orig=\href
67
+ \def\href@Urllike#1#2{\href@Orig{#1}{\begingroup
68
+ \def\Url@String{#2}\Url@FormatString
69
+ \endgroup}}
70
+ \def\href@Notdoi#1#2{\def\tempa{#1}\def\tempb{#2}%
71
+ \ifx\tempa\tempb\relax\href@Urllike{#1}{#2}\else
72
+ \href@Orig{#1}{#2}\fi}
73
+ \def\href#1#2{%
74
+ \IfBeginWith{#1}{https://doi.org}%
75
+ {\href@Urllike{#1}{#2}}{\href@Notdoi{#1}{#2}}}
76
+ \makeatother
77
+
78
+ $if(csl-refs)$
79
+ \newlength{\cslhangindent}
80
+ \setlength{\cslhangindent}{1.5em}
81
+ \newlength{\csllabelwidth}
82
+ \setlength{\csllabelwidth}{3em}
83
+ \newenvironment{CSLReferences}[3] % #1 hanging-ident, #2 entry spacing
84
+ {% don't indent paragraphs
85
+ \setlength{\parindent}{0pt}
86
+ % turn on hanging indent if param 1 is 1
87
+ \ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
88
+ % set entry spacing
89
+ \ifnum #2 > 0
90
+ \setlength{\parskip}{#2\baselineskip}
91
+ \fi
92
+ }%
93
+ {}
94
+ \usepackage{calc}
95
+ \newcommand{\CSLBlock}[1]{#1\hfill\break}
96
+ \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
97
+ \newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}}
98
+ \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
99
+ $endif$
100
+
101
+ % --- Page layout -------------------------------------------------------------
102
+ \usepackage[top=3.5cm, bottom=3cm, right=1.5cm, left=1.0cm,
103
+ headheight=2.2cm, reversemp, includemp, marginparwidth=4.5cm]{geometry}
104
+
105
+ % --- Default font ------------------------------------------------------------
106
+ \renewcommand\familydefault{\sfdefault}
107
+
108
+ % --- Style -------------------------------------------------------------------
109
+ \renewcommand{\bibfont}{\small \sffamily}
110
+ \renewcommand{\captionfont}{\small\sffamily}
111
+ \renewcommand{\captionlabelfont}{\bfseries}
112
+
113
+ % --- Section/SubSection/SubSubSection ----------------------------------------
114
+ \titleformat{\section}
115
+ {\normalfont\sffamily\Large\bfseries}
116
+ {}{0pt}{}
117
+ \titleformat{\subsection}
118
+ {\normalfont\sffamily\large\bfseries}
119
+ {}{0pt}{}
120
+ \titleformat{\subsubsection}
121
+ {\normalfont\sffamily\bfseries}
122
+ {}{0pt}{}
123
+ \titleformat*{\paragraph}
124
+ {\sffamily\normalsize}
125
+
126
+
127
+ % --- Header / Footer ---------------------------------------------------------
128
+ \usepackage{fancyhdr}
129
+ \pagestyle{fancy}
130
+ \fancyhf{}
131
+ %\renewcommand{\headrulewidth}{0.50pt}
132
+ \renewcommand{\headrulewidth}{0pt}
133
+ \fancyhead[L]{\hspace{-0.75cm}\includegraphics[width=5.5cm]{$logo_path$}}
134
+ \fancyhead[C]{}
135
+ \fancyhead[R]{}
136
+ \renewcommand{\footrulewidth}{0.25pt}
137
+
138
+ \fancyfoot[L]{\parbox[t]{0.98\headwidth}{\footnotesize{\sffamily $citation_author$, ($year$). $title$. \textit{$journal_name$}, $volume$($issue$), $page$. \url{https://doi.org/$formatted_doi$}}}}
139
+
140
+
141
+ \fancyfoot[R]{\sffamily \thepage}
142
+ \makeatletter
143
+ \let\ps@plain\ps@fancy
144
+ \fancyheadoffset[L]{4.5cm}
145
+ \fancyfootoffset[L]{4.5cm}
146
+
147
+ % --- Macros ---------
148
+
149
+ \definecolor{linky}{rgb}{0.0, 0.5, 1.0}
150
+
151
+ \newtcolorbox{repobox}
152
+ {colback=red, colframe=red!75!black,
153
+ boxrule=0.5pt, arc=2pt, left=6pt, right=6pt, top=3pt, bottom=3pt}
154
+
155
+ \newcommand{\ExternalLink}{%
156
+ \tikz[x=1.2ex, y=1.2ex, baseline=-0.05ex]{%
157
+ \begin{scope}[x=1ex, y=1ex]
158
+ \clip (-0.1,-0.1)
159
+ --++ (-0, 1.2)
160
+ --++ (0.6, 0)
161
+ --++ (0, -0.6)
162
+ --++ (0.6, 0)
163
+ --++ (0, -1);
164
+ \path[draw,
165
+ line width = 0.5,
166
+ rounded corners=0.5]
167
+ (0,0) rectangle (1,1);
168
+ \end{scope}
169
+ \path[draw, line width = 0.5] (0.5, 0.5)
170
+ -- (1, 1);
171
+ \path[draw, line width = 0.5] (0.6, 1)
172
+ -- (1, 1) -- (1, 0.6);
173
+ }
174
+ }
175
+
176
+ % --- Title / Authors ---------------------------------------------------------
177
+ % patch \maketitle so that it doesn't center
178
+ \patchcmd{\@maketitle}{center}{flushleft}{}{}
179
+ \patchcmd{\@maketitle}{center}{flushleft}{}{}
180
+ % patch \maketitle so that the font size for the title is normal
181
+ \patchcmd{\@maketitle}{\LARGE}{\LARGE\sffamily}{}{}
182
+ % patch the patch by authblk so that the author block is flush left
183
+ \def\maketitle{{%
184
+ \renewenvironment{tabular}[2][]
185
+ {\begin{flushleft}}
186
+ {\end{flushleft}}
187
+ \AB@maketitle}}
188
+ \makeatletter
189
+ \renewcommand\AB@affilsepx{ \protect\Affilfont}
190
+ %\renewcommand\AB@affilnote[1]{{\bfseries #1}\hspace{2pt}}
191
+ \renewcommand\AB@affilnote[1]{{\bfseries #1}\hspace{3pt}}
192
+ \renewcommand{\affil}[2][]%
193
+ {\newaffiltrue\let\AB@blk@and\AB@pand
194
+ \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}%
195
+ \setcounter{Maxaffil}{0}\fi
196
+ \begingroup
197
+ \let\href=\href@Orig
198
+ \let\texttt=\textttOrig
199
+ \let\protect\@unexpandable@protect
200
+ \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
201
+ \@temptokena=\expandafter{\AB@authors}%
202
+ {\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}%
203
+ \xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str
204
+ \protect\\[\affilsep]\protect\Affilfont\AB@temp}%
205
+ \gdef\AB@las{}\gdef\AB@au@str{}%
206
+ {\def\\{, \ignorespaces}\xdef\AB@temp{#2}}%
207
+ \@temptokena=\expandafter{\AB@affillist}%
208
+ \xdef\AB@affillist{\the\@temptokena \AB@affilsep
209
+ \AB@affilnote{\AB@note}\protect\Affilfont\AB@temp}%
210
+ \endgroup
211
+ \let\AB@affilsep\AB@affilsepx
212
+ }
213
+ \makeatother
214
+ \renewcommand\Authfont{\sffamily\bfseries}
215
+ \renewcommand\Affilfont{\sffamily\small\mdseries}
216
+ \setlength{\affilsep}{1em}
217
+
218
+
219
+ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
220
+ \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
221
+ \usepackage[utf8]{inputenc}
222
+
223
+ \else % if luatex or xelatex
224
+ \ifxetex
225
+ \usepackage{mathspec}
226
+ \usepackage{fontspec}
227
+
228
+ \else
229
+ \usepackage{fontspec}
230
+ \fi
231
+ \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
232
+
233
+ \fi
234
+ % use upquote if available, for straight quotes in verbatim environments
235
+ \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
236
+ % use microtype if available
237
+ \IfFileExists{microtype.sty}{%
238
+ \usepackage{microtype}
239
+ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
240
+ }{}
241
+
242
+ \usepackage{hyperref}
243
+ $if(colorlinks)$
244
+ \PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref
245
+ $endif$
246
+ \hypersetup{unicode=true,
247
+ $if(title-meta)$
248
+ pdftitle={$title-meta$},
249
+ $endif$
250
+ $if(author-meta)$
251
+ pdfauthor={$author-meta$},
252
+ $endif$
253
+ $if(keywords)$
254
+ pdfkeywords={$for(keywords)$$keywords$$sep$; $endfor$},
255
+ $endif$
256
+ $if(colorlinks)$
257
+ colorlinks=true,
258
+ linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$,
259
+ citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$,
260
+ urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$,
261
+ $else$
262
+ pdfborder={0 0 0},
263
+ $endif$
264
+ breaklinks=true}
265
+ \urlstyle{same} % don't use monospace font for urls
266
+ $if(lang)$
267
+ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
268
+ \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
269
+ $if(babel-newcommands)$
270
+ $babel-newcommands$
271
+ $endif$
272
+ \else
273
+ \usepackage{polyglossia}
274
+ \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
275
+ $for(polyglossia-otherlangs)$
276
+ \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
277
+ $endfor$
278
+ \fi
279
+ $endif$
280
+ $if(natbib)$
281
+ \usepackage{natbib}
282
+ \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
283
+ $endif$
284
+ $if(biblatex)$
285
+ \usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex}
286
+ $if(biblatexoptions)$\ExecuteBibliographyOptions{$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$}$endif$
287
+ $for(bibliography)$
288
+ \addbibresource{$bibliography$}
289
+ $endfor$
290
+ $endif$
291
+ $if(listings)$
292
+ \usepackage{listings}
293
+ $endif$
294
+ $if(lhs)$
295
+ \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
296
+ $endif$
297
+ $if(highlighting-macros)$
298
+ $highlighting-macros$
299
+ $endif$
300
+ $if(verbatim-in-note)$
301
+ \usepackage{fancyvrb}
302
+ \VerbatimFootnotes % allows verbatim text in footnotes
303
+ $endif$
304
+ $if(tables)$
305
+ \usepackage{longtable,booktabs}
306
+ $endif$
307
+
308
+ % --- We redefined \texttt, but in sections and captions we want the
309
+ % --- old definition
310
+ \let\addcontentslineOrig=\addcontentsline
311
+ \def\addcontentsline#1#2#3{\bgroup
312
+ \let\texttt=\textttOrig\addcontentslineOrig{#1}{#2}{#3}\egroup}
313
+ \let\markbothOrig\markboth
314
+ \def\markboth#1#2{\bgroup
315
+ \let\texttt=\textttOrig\markbothOrig{#1}{#2}\egroup}
316
+ \let\markrightOrig\markright
317
+ \def\markright#1{\bgroup
318
+ \let\texttt=\textttOrig\markrightOrig{#1}\egroup}
319
+
320
+
321
+ $if(graphics)$
322
+ \usepackage{graphicx,grffile}
323
+ \makeatletter
324
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
325
+ \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
326
+ \makeatother
327
+ % Scale images if necessary, so that they will not overflow the page
328
+ % margins by default, and it is still possible to overwrite the defaults
329
+ % using explicit options in \includegraphics[width, height, ...]{}
330
+ \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
331
+ $endif$
332
+ $if(links-as-notes)$
333
+ % Make links footnotes instead of hotlinks:
334
+ \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
335
+ $endif$
336
+ $if(strikeout)$
337
+ \usepackage[normalem]{ulem}
338
+ % avoid problems with \sout in headers with hyperref:
339
+ \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
340
+ $endif$
341
+ $if(indent)$
342
+ $else$
343
+ \IfFileExists{parskip.sty}{%
344
+ \usepackage{parskip}
345
+ }{% else
346
+ \setlength{\parindent}{0pt}
347
+ \setlength{\parskip}{6pt plus 2pt minus 1pt}
348
+ }
349
+ $endif$
350
+ \setlength{\emergencystretch}{3em} % prevent overfull lines
351
+ \providecommand{\tightlist}{%
352
+ \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
353
+ $if(numbersections)$
354
+ \setcounter{secnumdepth}{5}
355
+ $else$
356
+ \setcounter{secnumdepth}{0}
357
+ $endif$
358
+ $if(subparagraph)$
359
+ $else$
360
+ % Redefines (sub)paragraphs to behave more like sections
361
+ \ifx\paragraph\undefined\else
362
+ \let\oldparagraph\paragraph
363
+ \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
364
+ \fi
365
+ \ifx\subparagraph\undefined\else
366
+ \let\oldsubparagraph\subparagraph
367
+ \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
368
+ \fi
369
+ $endif$
370
+ $if(dir)$
371
+ \ifxetex
372
+ % load bidi as late as possible as it modifies e.g. graphicx
373
+ $if(latex-dir-rtl)$
374
+ \usepackage[RTLdocument]{bidi}
375
+ $else$
376
+ \usepackage{bidi}
377
+ $endif$
378
+ \fi
379
+ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
380
+ \TeXXeTstate=1
381
+ \newcommand{\RL}[1]{\beginR #1\endR}
382
+ \newcommand{\LR}[1]{\beginL #1\endL}
383
+ \newenvironment{RTL}{\beginR}{\endR}
384
+ \newenvironment{LTR}{\beginL}{\endL}
385
+ \fi
386
+ $endif$
387
+ $for(header-includes)$
388
+ $header-includes$
389
+ $endfor$
390
+
391
+ $if(title)$
392
+ \title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
393
+ $endif$
394
+ $if(subtitle)$
395
+ \providecommand{\subtitle}[1]{}
396
+ \subtitle{$subtitle$}
397
+ $endif$
398
+
399
+ $if(authors)$
400
+ $for(authors)$
401
+ $if(authors.affiliation)$
402
+ \author[$authors.affiliation$]{$authors.name$}
403
+ $else$
404
+ \author{$authors.name$}
405
+ $endif$
406
+ $endfor$
407
+ $endif$
408
+
409
+ $if(affiliations)$
410
+ $for(affiliations)$
411
+ \affil[$affiliations.index$]{$affiliations.name$}
412
+ $endfor$
413
+ $endif$
414
+ \date{\vspace{-7ex}}
415
+
416
+ \begin{document}
417
+ $if(title)$
418
+ \maketitle
419
+ $endif$
420
+ $if(abstract)$
421
+ \begin{abstract}
422
+ $abstract$
423
+ \end{abstract}
424
+ $endif$
425
+
426
+ \marginpar{
427
+
428
+ \begin{flushleft}
429
+ %\hrule
430
+ \sffamily\small
431
+
432
+ {\bfseries DOI:} \href{https://doi.org/$formatted_doi$}{\color{linky}{$formatted_doi$}}
433
+
434
+ \vspace{2mm}
435
+
436
+ {\bfseries Software}
437
+ \begin{itemize}
438
+ \setlength\itemsep{0em}
439
+ \item \href{$review_issue_url$}{\color{linky}{Review}} \ExternalLink
440
+ \item \href{$repository$}{\color{linky}{Repository}} \ExternalLink
441
+ \item \href{$archive_doi$}{\color{linky}{Archive}} \ExternalLink
442
+ \end{itemize}
443
+
444
+ \vspace{2mm}
445
+
446
+ \par\noindent\hrulefill\par
447
+
448
+ \vspace{2mm}
449
+
450
+ {\bfseries Editor:} \href{$editor_url$}{$editor_name$} \ExternalLink \\
451
+ \vspace{1mm}
452
+ $if(reviewers)$
453
+ {\bfseries Reviewers:}
454
+ \begin{itemize}
455
+ \setlength\itemsep{0em}
456
+ $for(reviewers)$
457
+ \item \href{https://github.com/$reviewers$}{@$reviewers$}
458
+ $endfor$
459
+ \end{itemize}
460
+ $endif$
461
+ \vspace{2mm}
462
+
463
+ {\bfseries Submitted:} $submitted$\\
464
+ {\bfseries Published:} $published$
465
+
466
+ \vspace{2mm}
467
+ {\bfseries License}\\
468
+ Authors of papers retain copyright and release the work under a Creative Commons Attribution 4.0 International License (\href{http://creativecommons.org/licenses/by/4.0/}{\color{linky}{CC BY 4.0}}).
469
+
470
+ $if(aas-doi)$
471
+ \vspace{4mm}
472
+ {\bfseries In partnership with}\\
473
+ \vspace{2mm}
474
+ \includegraphics[width=4cm]{$aas_logo_path$}
475
+ \vspace{2mm}
476
+ \newline
477
+ This article and software are linked with research article DOI \href{https://doi.org/$aas-doi$}{\color{linky}{$aas-doi$}}, published in the $aas-journal$.
478
+ $endif$
479
+
480
+ \end{flushleft}
481
+ }
482
+
483
+ $for(include-before)$
484
+ $include-before$
485
+
486
+ $endfor$
487
+ $if(toc)$
488
+ {
489
+ $if(colorlinks)$
490
+ \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$}
491
+ $endif$
492
+ \setcounter{tocdepth}{$toc-depth$}
493
+ \tableofcontents
494
+ }
495
+ $endif$
496
+ $if(lot)$
497
+ \listoftables
498
+ $endif$
499
+ $if(lof)$
500
+ \listoffigures
501
+ $endif$
502
+ $body$
503
+
504
+ $if(natbib)$
505
+ $if(bibliography)$
506
+ $if(biblio-title)$
507
+ $if(book-class)$
508
+ \renewcommand\bibname{$biblio-title$}
509
+ $else$
510
+ \renewcommand\refname{$biblio-title$}
511
+ $endif$
512
+ $endif$
513
+ \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
514
+
515
+ $endif$
516
+ $endif$
517
+ $if(biblatex)$
518
+ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
519
+
520
+ $endif$
521
+ $for(include-after)$
522
+ $include-after$
523
+
524
+ $endfor$
525
+ \end{document}
Binary file