236 lines
7.3 KiB
JavaScript
236 lines
7.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const FILENAME_REGEX = "^[a-zA-Z-._d,s]+$";
|
|
exports.default = {
|
|
$schema: "http://json-schema.org/schema#",
|
|
id: "https://gitbook.com/schemas/book.json",
|
|
title: "HonKit Configuration",
|
|
type: "object",
|
|
properties: {
|
|
root: {
|
|
type: "string",
|
|
title: "Path fro the root folder containing the book's content"
|
|
},
|
|
title: {
|
|
type: "string",
|
|
title: "Title of the book, default is extracted from README"
|
|
},
|
|
author: {
|
|
type: "string",
|
|
title: "Name of the author"
|
|
},
|
|
authorSort: {
|
|
type: "string",
|
|
title: "String to be used to sort the author(s)"
|
|
},
|
|
producer: {
|
|
type: "string",
|
|
title: "Name of the producer"
|
|
},
|
|
publisher: {
|
|
type: "string",
|
|
title: "Name of the publisher"
|
|
},
|
|
pubdate: {
|
|
type: "string",
|
|
title: "Publication date of the book"
|
|
},
|
|
series: {
|
|
type: "string",
|
|
title: "Series this book belongs to"
|
|
},
|
|
seriesIndex: {
|
|
type: "string",
|
|
title: "Index of the book in this series"
|
|
},
|
|
isbn: {
|
|
type: "string",
|
|
title: "ISBN for published book"
|
|
},
|
|
language: {
|
|
type: "string",
|
|
title: "Language of the book"
|
|
},
|
|
gitbook: {
|
|
type: "string",
|
|
default: "*",
|
|
title: "GitBook/HonKit version to match"
|
|
},
|
|
direction: {
|
|
type: "string",
|
|
enum: ["ltr", "rtl"],
|
|
title: "Direction of texts, default is detected in the pages"
|
|
},
|
|
theme: {
|
|
type: "string",
|
|
default: "default",
|
|
title: "Name of the theme plugin to use"
|
|
},
|
|
variables: {
|
|
type: "object",
|
|
title: "Templating context variables"
|
|
},
|
|
plugins: {
|
|
oneOf: [{ $ref: "#/definitions/pluginsArray" }, { $ref: "#/definitions/pluginsString" }],
|
|
default: []
|
|
},
|
|
pluginsConfig: {
|
|
type: "object",
|
|
title: "Configuration for plugins"
|
|
},
|
|
structure: {
|
|
type: "object",
|
|
properties: {
|
|
langs: {
|
|
default: "LANGS.md",
|
|
type: "string",
|
|
title: "File to use as languages index",
|
|
pattern: FILENAME_REGEX
|
|
},
|
|
readme: {
|
|
default: "README.md",
|
|
type: "string",
|
|
title: "File to use as preface",
|
|
pattern: FILENAME_REGEX
|
|
},
|
|
glossary: {
|
|
default: "GLOSSARY.md",
|
|
type: "string",
|
|
title: "File to use as glossary index",
|
|
pattern: FILENAME_REGEX
|
|
},
|
|
summary: {
|
|
default: "SUMMARY.md",
|
|
type: "string",
|
|
title: "File to use as table of contents",
|
|
pattern: FILENAME_REGEX
|
|
}
|
|
},
|
|
additionalProperties: false
|
|
},
|
|
pdf: {
|
|
type: "object",
|
|
title: "PDF specific configurations",
|
|
properties: {
|
|
pageNumbers: {
|
|
type: "boolean",
|
|
default: true,
|
|
title: "Add page numbers to the bottom of every page"
|
|
},
|
|
fontSize: {
|
|
type: "integer",
|
|
minimum: 8,
|
|
maximum: 30,
|
|
default: 12,
|
|
title: "Font size for the PDF output"
|
|
},
|
|
fontFamily: {
|
|
type: "string",
|
|
default: "Arial",
|
|
title: "Font family for the PDF output"
|
|
},
|
|
paperSize: {
|
|
type: "string",
|
|
enum: [
|
|
"a0",
|
|
"a1",
|
|
"a2",
|
|
"a3",
|
|
"a4",
|
|
"a5",
|
|
"a6",
|
|
"b0",
|
|
"b1",
|
|
"b2",
|
|
"b3",
|
|
"b4",
|
|
"b5",
|
|
"b6",
|
|
"legal",
|
|
"letter"
|
|
],
|
|
default: "a4",
|
|
title: "Paper size for the PDF"
|
|
},
|
|
chapterMark: {
|
|
type: "string",
|
|
enum: ["pagebreak", "rule", "both", "none"],
|
|
default: "pagebreak",
|
|
title: "How to mark detected chapters"
|
|
},
|
|
pageBreaksBefore: {
|
|
type: "string",
|
|
default: "/",
|
|
title: 'An XPath expression. Page breaks are inserted before the specified elements. To disable use the expression: "/"'
|
|
},
|
|
margin: {
|
|
type: "object",
|
|
properties: {
|
|
right: {
|
|
type: "integer",
|
|
title: "Right Margin",
|
|
minimum: 0,
|
|
maximum: 100,
|
|
default: 62
|
|
},
|
|
left: {
|
|
type: "integer",
|
|
title: "Left Margin",
|
|
minimum: 0,
|
|
maximum: 100,
|
|
default: 62
|
|
},
|
|
top: {
|
|
type: "integer",
|
|
title: "Top Margin",
|
|
minimum: 0,
|
|
maximum: 100,
|
|
default: 56
|
|
},
|
|
bottom: {
|
|
type: "integer",
|
|
title: "Bottom Margin",
|
|
minimum: 0,
|
|
maximum: 100,
|
|
default: 56
|
|
}
|
|
}
|
|
},
|
|
embedFonts: {
|
|
type: "boolean",
|
|
default: false,
|
|
title: "Embed all fonts into the PDF"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
required: [],
|
|
definitions: {
|
|
pluginsArray: {
|
|
type: "array",
|
|
items: {
|
|
oneOf: [{ $ref: "#/definitions/pluginObject" }, { $ref: "#/definitions/pluginString" }]
|
|
}
|
|
},
|
|
pluginsString: {
|
|
type: "string"
|
|
},
|
|
pluginString: {
|
|
type: "string"
|
|
},
|
|
pluginObject: {
|
|
type: "object",
|
|
properties: {
|
|
name: {
|
|
type: "string"
|
|
},
|
|
version: {
|
|
type: "string"
|
|
}
|
|
},
|
|
additionalProperties: false,
|
|
required: ["name"]
|
|
}
|
|
}
|
|
};
|