App-Music-ChordPro

 view release on metacpan or  search on metacpan

lib/ChordPro/res/config/config.schema  view on Meta::CPAN

          "$ref": "#/definitions/colorspec"
        }
      ]
    },
    "chordDiagramPDFLayout": {
      "type": "object",
      "properties": {
        "show": {
          "description": "Diagrams for the chords of the song can be shown at the `\"top\"`, `\"bottom\"` or `\"right\"` side of the first page, or `\"below\"` the last song line. Set to `false` to not show any diagrams.",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "const": false
            }
          ],
          "enum": ["top", "bottom", "below", "right", false],
          "default": "bottom"
        },
        "align": {
          "type": "string",
          "description": "Alignment for when `show` is set to `\"top\"`, `\"bottom\"` or `\"below\"`.",
          "enum": ["left", "right", "center", "spread"],
          "default": "left"
        }
      }
    },
    "pageFormat": {
      "description": "Page format.\nAll elements can have three fields, that are placed to the left side, centered, and right side of the page.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "title": {
          "$ref": "#/definitions/tptspec",
          "description": "Topmost title element.\nIt uses the `fonts.title` font."
        },
        "subtitle": {
          "$ref": "#/definitions/tptspec",
          "description": "Second title element.\nIt uses the `fonts.subtitle` font."
        },
        "footer": {
          "$ref": "#/definitions/tptspec",
          "description": "It uses the `fonts.footer` font."
        },
        "background": {
          "type": "string",
          "description": "Page background.\nThis can be used to designate an existing PDF document to be used as the background of the output page. It has the form `filename` or `filename:page`. Page numbers count from one.\nIf odd/even printing is i...
          "examples": ["examples/bgdemo.pdf", "examples/bgdemo.pdf:5"]
        }
      }
    },
    "fontConfigFont": {
      "type": "object",
      "additionalProperties": false,
      "required": [""],
      "properties": {
        "": {
          "type": "string"
        },
        "bold": {
          "type": "string"
        },
        "italic": {
          "type": "string"
        },
        "bolditalic": {
          "type": "string"
        },
        "oblique": {
          "type": "string"
        },
        "boldoblique": {
          "type": "string"
        }
      },
      "if": {
        "anyOf": [
          {
            "required": ["italic"]
          },
          {
            "required": ["bolditalic"]
          }
        ]
      },
      "then": {
        "not": {
          "anyOf": [
            {
              "required": ["oblique"]
            },
            {
              "required": ["boldoblique"]
            }
          ]
        }
      },
      "else": {
        "not": {
          "anyOf": [
            {
              "required": ["italic"]
            },
            {
              "required": ["bolditalic"]
            }
          ]
        }
      }
    },
    "fontClass": {
      "type": "string",
      "enum": [
        "serif",
        "times",
        "helvetica",
        "sans",
        "sans-serif",
        "courier",
        "mono",
        "monospace",
        "dingbats"
      ]
    },
    "delegatespec": {
      "description": "Shared properties between all delegate types.",
      "type": "object",
      "required": ["type", "module", "handler"],
      "$comment": "Due to use of `allOf` to allow reuse of shared structure, `additionalProperties` doesn't work properly to disallow any undefined properties. The correct keywork to use is `unevaluatedProperties`, but it is not supported until `JSON...
      "properties": {
        "align": {
          "description": "Horizontal alignment of the resulting image, if `type` is `image`.",
          "type": "string",
          "enum": ["left", "center", "right"],
          "default": "center"
        },
        "type": {
          "title": "The result produced by the delegate handler.",
          "type": "string",
          "oneOf": [
            {
              "const": "image",
              "title": "Expects the section to produce an image that will be embedded in the ChordPro output."
            },
            {
              "const": "none",
              "title": "Treats the section as a generic section."
            },
            {
              "const": "omit",
              "title": "Ignores the section."
            },
            {
              "const": "filter",
              "title": "For filtering plugins."
            }
          ],
          "default": "image"
        },
        "subtype": {
          "description": "Type of the `image` produced. If not specified, it will be auto-detected.\nFor standard delegates, this is ignored, as they already know which type of image will be produced.\nFor cusotm delegates, this can be optionally spe...
          "oneOf": [
            {
              "title": "Equivalent to omitting `subtype` altogether.",
              "enum": [false, ""]

lib/ChordPro/res/config/config.schema  view on Meta::CPAN

            {
              "title": "A type of image.",
              "enum": [
                "jpg",
                "jpeg",
                "png",
                "svg",
                "gif",
                "tiff",
                "xbm",
                "pbm",
                "pnm"
              ]
            }
          ]
        },
        "handler": {
          "title": "The module's method to call.",
          "type": "string",
          "default": "default"
        },
        "config": {
          "type": "string",
          "default": "default"
        },
        "preamble": {
          "description": "Input lines to prepend to the user data.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "program": {
          "description": "The program/command to execute.",
          "type": "string",
          "default": ""
        },
        "module": {
          "type": "string",
          "description": "The name of the (perl) module that implements the delegate."
        },
        "preprocess": {
          "description": "Obsolete. Please use `parser.preprocess.env-...` instead.",
          "type": "object"
        },
        "omit": {
          "type": "boolean",
          "description": "If `true`, no delegation will be handled.",
          "default": false
        },
        "html": {
          "description": "Specific settings for the HTML backend."
        },
        "pdf": {
          "description": "Specific settings for the PDF backend."
        }
      }
    },
    "fontDescription": {
      "type": "string",
      "description": "A shorthand description of a font. In the format of `fontclass (bold)?(italic)? fontsize`.",
      "$comment": "While visually complex, `pattern` was written so that each portion now has named capture groups, which can help with understanding and debugging the composition of the regular expression.",
      "pattern": "^(?<nameOrType>[a-zA-Z\\-]+) ?(?<style>(?:bold)?(?:italic|oblique)?) ?(?<size>\\d+(?:\\.\\d+)?)?(?:;(?<addlProps> [^\\s=]+=[^\\s=]+)+)?$",
      "examples": [
        "serif bold 14",
        "serif 11",
        "serif 12",
        "sans italic 10",
        "sans italic 12",
        "monospace 10",
        "serif 11",
        "sans 10",
        "dingbats 10"
      ]
    },
    "fontspec": {
      "description": "Font specification.",
      "oneOf": [
        {
          "$ref": "#/definitions/fontDescription"
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "name": {
              "type": "string",
              "description": "Font name."
            },
            "file": {
              "type": "string",
              "description": "Relative path to a font file."
            },
            "description": {
              "$ref": "#/definitions/fontDescription"
            },
            "size": {
              "type": "number",
              "description": "Font size."
            },
            "color": {
              "$ref": "#/definitions/color",
              "description": "The colour of the font. See [ChordPro Colours](https://www.chordpro.org/chordpro/chordpro-colours/) for details on colours."
            },
            "background": {
              "$ref": "#/definitions/color",
              "description": "Background color for the element."
            },
            "frame": {
              "description": "A boolean value indicating that a frame (box) should be drawn around the text.\nPrimarily used to specify the thickness of a comment box (`comment_box` directive) via the `comment_box` font, but can be used for any font....
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "integer"
                }
              ],
              "enum": [true, false, 0, 1]
            }
          },
          "anyOf": [
            {
              "required": ["description"]
            },

lib/ChordPro/res/config/config.schema  view on Meta::CPAN

          }
        },
        "diagnostics": {
          "type": "object",
          "description": "When ChordPro detects errors while analyzing a song, it will use this format description to show diagnostic messages.\nIn the format, `\"%f\"` will be replaced by the song file name, `\"%n\"` by the line number in the file w...
          "additionalProperties": false,
          "properties": {
            "format": {
              "type": "string",
              "description": "Format for error messages.",
              "default": "\"%f\", line %n, %m\\n\\t%l"
            }
          }
        },
        "gridstrum": {
          "description": "Grid strum overrides.",
          "type": "object",
          "properties": {
            "symbols": {
              "description": "Symbol or Unicode code points for the glyphs from ChordProSymbols.",
              "type": "object"
            }
          }
        },
        "instrument": {
          "description": "Description of the instrument.\nActual values are set from an included instrument config.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "description": {
              "description": "Descriptive instrument name.",
              "type": "string",
              "default": ""
            },
            "type": {
              "description": "Instrument type.",
              "type": "string",
              "default": ""
            }
          }
        },
	"keys": {
	  "title": "Key strategies.",
	  "description": "ChordPro tries to follow ABC (abc2svg) as much as possible.",
	  "type": "object",
	  "additionalProperties": false,
	  "properties": {
	    "flats": {
	      "description": "The key `F#` is often used as is and not represented as an enharmonic equivalent. Set this to true if you want `Gb` instead of `F#`.",
	      "type": "boolean",
	      "default": false
	    },
	    "force-common": {
	      "description": "Replace keys with an excessive number of sharps by their more common enharmonic equivalents.\nSee also `settings.transpose-sf-key`.",
	      "type": "boolean",
	      "default": false
	    }
	  }
	},
        "markup": {
          "description": "Settings for the markup processor.\nShortcodes allow user defined markup, e.g. <foo>...</foo>.\n```\nmarkup.shortcode {\n   heavy :  \"weight='bold' size='large'\"\n}\nEach occurrence of <heavy>...</heavy> will be replaced b...
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "shortcodes": {
              "description": "",
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "meta": {
          "description": "Globally defined (added) meta data,\nThis is explicitly NOT intended for the metadata items above.\nDo NOT remove or change `_configversion`!",
          "type": "object",
          "additionalProperties": {
            "type": "object"
          },
          "properties": {
            "_configversion": {
              "description": "Config file version.",
              "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
            }
          },
          "default": {
            "_configversion": [6]
          }
        },
        "metadata": {
          "title": "Metadata.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "autosplit": {
              "type": "boolean",
              "description": "Split data on separator.\nIf enabled, metadata will be split on the separator to provide multiple values.",
              "default": true
            },
            "keys": {
              "description": "The list of known metadata keys.\nFor these keys you can use `{meta key …}` as well as `{key …}`.\nImportant: `\"title\"` and `\"subtitle\"` must always be in this list.",
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              },
              "default": [
                "title",
                "subtitle",
                "artist",
                "composer",
                "lyricist",
                "arranger",
                "album",
                "copyright",
                "year",

lib/ChordPro/res/config/config.schema  view on Meta::CPAN

                  ]
                },
                "diagramscolumn": {
                  "description": "Deprecated. Use `pdf.diagrams.show` instead. Chords diagrams are printed in a right column. Value is the column offset.",
                  "type": "number",
                  "default": 0,
                  "minimum": 0
                },
                "fontdir": {
                  "description": "The `fontdir` setting can be used to add one or more private font directories to the font libraries. The private directories will be searched first.",
                  "oneOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ],
                  "default": [],
                  "examples": [
                    ["/usr/share/fonts/liberation", "/home/me/fonts"]
                  ]
                },
                "fontconfig": {
                  "description": "Font families and properties.\n`fontconfig` maps members of font families to physical fonts.\nOptionally, additional properties of the fonts can be specified.\nPhysical fonts can be the names of TrueType/OpenType fon...
                  "type": "object",
                  "properties": {
                    "serif": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "times": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "helvetica": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "sans, sans-serif": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "courier": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "mono, monospace": {
                      "$ref": "#/definitions/fontConfigFont"
                    },
                    "dingbats": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "default": {
                    "serif": {
                      "bold": "Times-Bold",
                      "italic": "Times-Italic",
                      "bolditalic": "Times-BoldItalic",
                      "": "Times-Roman"
                    },
                    "times": {
                      "bold": "Times-Bold",
                      "italic": "Times-Italic",
                      "bolditalic": "Times-BoldItalic",
                      "": "Times-Roman"
                    },
                    "helvetica": {
                      "bold": "Helvetica-Bold",
                      "oblique": "Helvetica-Oblique",
                      "boldoblique": "Helvetica-BoldOblique",
                      "": "Helvetica"
                    },
                    "sans, sans-serif": {
                      "bold": "Helvetica-Bold",
                      "italic": "Helvetica-Oblique",
                      "bolditalic": "Helvetica-BoldOblique",
                      "": "Helvetica"
                    },
                    "courier": {
                      "bold": "Courier-Bold",
                      "italic": "Courier-Italic",
                      "bolditalic": "Courier-BoldItalic",
                      "": "Courier"
                    },
                    "mono, monospace": {
                      "bold": "Courier-Bold",
                      "italic": "Courier-Italic",
                      "bolditalic": "Courier-BoldItalic",
                      "": "Courier"
                    },
                    "dingbats": {
                      "": "ZapfDingbats"
                    }
                  }
                },
                "fonts": {
                  "description": "`fonts` maps output elements to fonts as defined in `fontconfig`.\n\nSome element mappings can be specified, but it's not needed for all since they default to other elements:\nsubtitle       --> text\nchorus         ...
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "annotation": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for annotations. If not set, falls back on the `chord` font.",
                      "default": {
                        "name": "Helvetica-Oblique",
                        "size": 10
                      },
                      "examples": ["sans italics 10"]
                    },
                    "chord": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for chords above the lyrics.",
                      "default": {
                        "name": "Helvetica-Oblique",
                        "size": 10
                      },
                      "examples": ["sans italics 10"]
                    },
                    "chordfingers": {
                      "description": "Font for numbers in chord diagram dots.\n`color` is for the numbers.\n`numbercolor` is for the dots.\n`size` doesn't matter unless `diagrams.fingers` = `\"below\"`.",
                      "anyOf": [
                        {
                          "$ref": "#/definitions/fontspec"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "numbercolor": {
                              "$ref": "#/definitions/color",
                              "description": "Finger number colour specification.\nBy default this is the theme background colour. Setting this colour to the foreground colour (`\"foreground\"`) effectively hides the finger numbers.",
                              "default": "foreground"
                            }
                          }
                        }
                      ],
                      "default": {
                        "name": "ZapfDingbats",
                        "size": 10,
                        "numbercolor": "background"
                      }
                    },
                    "comment": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for comments. If not set, falls back on the `text` font.",
                      "default": {
                        "name": "Helvetica",
                        "size": 12
                      },

lib/ChordPro/res/config/config.schema  view on Meta::CPAN

                      "description": "The font used for `comment_box` directives. If not set, falls back on the `chord` font.",
                      "default": {
                        "name": "Helvetica",
                        "size": 12,
                        "frame": 1
                      },
                      "examples": [
                        {
                          "description": "sans 12",
                          "frame": 1
                        }
                      ]
                    },
                    "grid": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for grid elements. If not set, falls back on the `chord` font.",
                      "default": {
                        "name": "Helvetica",
                        "size": 10
                      },
                      "examples": [
                        {
                          "description": "sans 10"
                        }
                      ]
                    },
                    "subtitle": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for page subtitles. If not set, falls back on the `text` font.",
                      "default": {
                        "name": "Times-Roman",
                        "size": 12
                      },
                      "examples": ["serif 12"]
                    },
                    "tab": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for the contents of tab environments.",
                      "default": {
                        "name": "Courier",
                        "size": 10
                      },
                      "examples": ["mono 10"]
                    },
                    "text": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for lyrics texts.",
                      "default": {
                        "name": "Times-Roman",
                        "size": 12
                      },
                      "examples": ["serif 12"]
                    },
                    "title": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for page titles.",
                      "default": {
                        "name": "Times-Bold",
                        "size": 14
                      },
                      "examples": ["serif bold 14"]
                    },
                    "toc": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for the table of contents. If not set, falls back on the `text` font.",
                      "default": {
                        "name": "Times-Roman",
                        "size": 11
                      },
                      "examples": ["serif 11"]
                    },
                    "gridstrum": {
                      "$ref": "#/definitions/fontspec",
                      "description": "Font for typesetting gridstrum symbols.\nYou can set size and colours, but you cannot change the font.",
                      "default": {
                        "name": "ChordProSymbols",
                        "size": 13
                      }
                    },
                    "grille": {
                      "$ref": "#/definitions/fontspec",
                      "description": "Font for typesetting grilles.",
                      "default": {
                        "name": "Helvetica",
                        "size": 10
                      },
                      "examples": ["sans 10"]
                    },
                    "footer": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for footer texts. If not set, falls back on the `subtitle` font at 60% size."
                    },
                    "chorus": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for chorus texts. If not set, falls back on the `text` font."
                    },
                    "label": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for section labels. If not set, falls back on the `text` font."
                    },
                    "grid_margin": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for grid margin texts. If not set, falls back on the `comment` font."
                    },
                    "empty": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font used for empty lines. While this may not seem very relevant at first, by setting the font’s *size* you can get a precise control over the amount of vertical whitespace in the output. If not set, falls ...
                    },
                    "diagram": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font for the chord names above chord diagrams. If not set, falls back on the `comment` font."
                    },
                    "diagram_base": {
                      "$ref": "#/definitions/fontspec",
                      "description": "The font for the base fret numbers in chord diagrams. Default is the setting for `text` but at a small size."
                    }
                  }
                },
                "footspace": {
                  "description": "Space for page footers.",
                  "type": "number",



( run in 0.905 second using v1.01-cache-2.11-cpan-98e64b0badf )