// Copyright © 2018 Eiji Onchi <eiji@onchi.me>
//
// 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.

package cmd

var configTemplate = []byte(`# Scholar Configuration Template

# This is a template auto-generated by Scholar.
# Feel free to modify it as you like.
# If there is any problem with the configuration, delete this file
# and Scholar will auto-generate another file.

# General Settings
GENERAL:
  # Set the default library.
  # Scholar will retrieve and save entries from this library.
  default: scholar
  # Set the default text editor
  editor: vi
  # Set this to false to disable interactive mode
  interactive: true
  # Set the email for polite use of CrossRef
  mailto: mail@example.com

# Path locations for the libraries.
# You can add as many libraries as you want.
# You can name the library however you want.
LIBRARIES:
  scholar: ~/ScholarLibrary
  papers: ~/ScholarPapers
  books: ~/ScholarBooks
`)

var configTemplateWin = []byte(`# Scholar Configuration Template

# This is a template auto-generated by Scholar.
# Feel free to modify it as you like.
# If there is any problem with the configuration, delete this file
# and Scholar will auto-generate another file.

# General Settings
GENERAL:
  # Set the default library.
  # Scholar will retrieve and save entries from this library.
  default: scholar
  # Set the default text editor
  editor: vi
  # Set this to false to disable interactive mode
  interactive: true
  # Set the email for polite use of CrossRef
  mailto: mail@example.com

# Path locations for the libraries.
# You can add as many libraries as you want.
# You can name the library however you want.
LIBRARIES:
  scholar: "C:\\ScholarLibrary"
  papers: "C:\\ScholarPapers"
  books: "C:\\ScholarBooks"
`)

var typesTemplate = []byte(`# Entry Types Template

# This is a template auto-generated by Scholar.
# Feel free to modify it as you like.
# If there is any problem with the configuration, delete this file
# and Scholar will auto-generate another file.

article:
  desc: An article in a journal, magazine, newspaper, or other periodical which forms a self-contained unit with its own title.
  req:
    author: Author(s) of the article.
    title: Title of the article.
    journaltitle: Title of the journal.
    date: YYYY-MM-DD format.
  opt:
    editor: Editor(s) of the journal.
    language: Language of the article.
    series: Series of the journal.
    volume: Volume of the journal.
    number: Number of the journal.
    issn: ISSN number of the article.
    doi: DOI code of the article.
    url: URL of the article.
    urldate: Access date in YYYY-MM-DD format.

book:
  desc: A single-volume book with one or more authors where the authors share credit for the work as a whole.
  req:
    author: Author(s) of the book.
    title: Title of the book.
    date: YYYY-MM-DD format.
  opt:
    editor: Editor(s) of the book.
    publisher: Publisher of the book.
    location: Location of the publisher.
    language: Language of the book.
    series: Series of the book.
    volume: Volume of the book.
    number: Number of the book.
    pages: Number of pages is the book.
    isbn: ISBN number of the book.
    doi: DOI code of the book.
    url: URL of the book.
    urldate: Access date in YYYY-MM-DD format.

mvbook:
  desc: A multi-volume @book.
  req:
    author: Author(s) of the book.
    title: Title of the book.
    date: YYYY-MM-DD format.
  opt:
    editor: Editor(s) of the book.
    publisher: Publisher of the book.
    location: Location of the publishing company.
    language: Language of the book.
    series: Series of the book.
    volume: Volume of the book.
    number: Number of the book.
    pages: Number of pages is the book.
    isbn: ISBN number of the book.
    doi: DOI code of the book.
    url: URL of the book.
    urldate: Access date in YYYY-MM-DD format.

inbook:
  desc: A part of a book which forms a self-contained unit with its own title.
  req:
    author: Author(s) of the book section.
    title: Title of the book section.
    booktitle: Title of the book.
    date: YYYY-MM-DD format.
  opt:
    bookauthor: Author(s) of the book.
    editor: Editor(s) of the book.
    publisher: Publisher of the book.
    location: Location of the publisher.
    language: Language of the book.
    series: Series of the book.
    volume: Volume of the book.
    number: Number of the book.
    pages: Range of pages in the book.
    isbn: ISBN number of the book.
    doi: DOI code of the book.
    url: URL of the book.
    urldate: Access date in YYYY-MM-DD format.

collection:
  desc: A single-volume collection with multiple, self-contained contributions by distinct authors which have their own title. The work as a whole has no overall author but it will usually have an editor.
  req:
    editor: Editor(s) of the collection.
    title: Title of the collection.
    date: YYYY-MM-DD format.
  opt:
    publisher: Publisher of the collection.
    location: Location of the publisher.
    language: Language of the collection.
    series: Series of the collection.
    volume: Volume of the collection.
    number: Number of the collection.
    pages: Number of pages is the collection.
    isbn: ISBN number of the collection.
    doi: DOI code of the collection.
    url: URL of the collection.
    urldate: Access date in YYYY-MM-DD format.

inproceedings:
  desc: An article in a conference proceedings.
  req:
    author: Author(s) of the article.
    title: Title of the article.
    booktitle: Title of the conference proceedings.
    date: YYYY-MM-DD format.
  opt:
    editor: Editor(s) of the conference proceedings.
    publisher: Publisher of the conference proceedings.
    organization: Organization in charge of the conference proceedings.
    language: Language of the article.
    series: Series of the conference proceedings.
    volume: Volume of the conference proceedings.
    number: Number of the conference proceedings.
    pages: Range of pages in the conference proceedings.
    isbn: ISBN number of the article.
    doi: DOI code of the article.
    url: URL of the article.
    urldate: Access date in YYYY-MM-DD format.

report:
  desc: A technical report, research report, or white paper published by a university or some other institution.
  req:
    author: Author(s) of the report.
    title: Title of the report.
    type: Specify the type of report.
    institution: Institution where the report was published.
    date: YYYY-MM-DD format.
  opt:
    language: Language of the report.
    version: Version of the report.
    number: Number of the report.
    isrn: ISRN number of the report.
    doi: DOI code of the report.
    url: URL of the report.
    urldate: Access date in YYYY-MM-DD format.

thesis:
  desc: A thesis written for an educational institution to satisfy the requirements for a degree.
  req:
    author: Author(s) of the thesis.
    title: Title of the thesis.
    type: Specify the type of thesis.
    institution: Institution where the thesis was published.
    date: YYYY-MM-DD format.
  opt:
    chapter: Chapter where the thesis is located.
    pages: Range of pages where the thesis is located.
    pagetotal: Total number of pages of the thesis.
    language: Language of the thesis.
    location: Location where the thesis was published.
    isbn: ISBN number of the thesis.
    doi: DOI code of the thesis.
    url: URL of the thesis.
    urldate: Access date in YYYY-MM-DD format.

manual:
  desc: Technical or other documentation, not necessarily in printed form.
  req:
    author: Author(s) of the manual.
    title: Title of the manual.
    date: YYYY-MM-DD format.
  opt:
    language: Language of the manual.
    editor: Editor(s) of the manual.
    publisher: Publisher of the manual.
    organization: Organization in charge of the manual.
    series: Series of the manual.
    number: Number of the manual.
    isbn: ISBN number of the manual.
    chapter: Chapter where the manual is located.
    pages: Range of pages where the manual is located.
    pagetotal: Total number of pages of the manual.
    location: Location where the manual was published.
    isbn: ISBN number of the manual.
    note: Notes regarding the manual.
    doi: DOI code of the manual.
    url: URL of the manual.
    urldate: Access date in YYYY-MM-DD format.

misc:
  desc: A fallback for entries which do not fit into any other category.
  req:
    author: Author(s) of the work.
    title: Title of the work.
    date: YYYY-MM-DD format.
  opt:
    howpublished: Supply publishing information in free format.
    type: Specify the type of work.
    url: URL of the work.
    urldate: Access date in YYYY-MM-DD format.

online:
  desc: An online resource. This entry type is intended for sources such as web sites. Note that all entry types suppert the url field.
  req:
    author: Author(s) of the resource.
    title: Title of the resource.
    url: URL of the resource.
    date: YYYY-MM-DD format.
  opt:
    language: Language of the resource.
    version: Version of the resource.
    note: Notes regarding the resource.
    organization: Organization associated with the resource.
    urldate: Access date in YYYY-MM-DD format.

patent:
  desc: A patent or patent request.
  req:
    author: Author(s) of the patent.
    title: Title of the patent.
    number: The number or record token of the patent.
    date: YYYY-MM-DD format.
  opt:
    holder: Holder of the patent.
    type: Type of patent.
    version: Version of the patent.
    location: Location of the patent.
    note: Notes regarding the patent.
    doi: DOI code of the patent.
    url: URL of the patent.
    urldate: Access date in YYYY-MM-DD format.
`)
