diff --git a/docs/BOSS Metadata Syntax.html b/docs/BOSS Metadata Syntax.html index 66cf1125..ffb76d9b 100644 --- a/docs/BOSS Metadata Syntax.html +++ b/docs/BOSS Metadata Syntax.html @@ -73,7 +73,7 @@ h3{

Contents

  1. Introduction -
  2. Metadata File Structure +
  3. Metadata File Contents
  4. Data Structures
    1. Tag Data Structure @@ -82,6 +82,7 @@ h3{
    2. Plugin Data Structure
    3. Location Data Structure
    +
  5. URL Hyperlinking
  6. Condition Strings
    1. Functions @@ -118,7 +119,7 @@ h3{

      Please test any changes you make before uploading them. One way of doing this is to run BOSS, another is to copy/paste what you've changed into an online parser such as this one, though it won't catch condition syntax errors or non-syntax errors such as having the same file both required and incompatible. -

      Metadata File Structure

      +

      Metadata File Contents

      The root of a metadata file is a key-value map. BOSS will recognise the following keys, none of which are required:
      Key NameValue TypeNotes @@ -171,16 +172,16 @@ condition: "file(\"Mart's Monster Mod for OOO.esm\") or file(\"FCOM_Convergence.

      File Data Structure

      -

      Not to be confused with the structure of the metadata file itself, this structure can be used to hold filenames. It has two forms: the first is a simple string, and the second is a key-value map. All values in the map are strings. +

      Not to be confused with the structure of the metadata file itself, this structure can be used to hold file paths. It has two forms: the first is a simple string, and the second is a key-value map. All values in the map are strings.

      The simple form: filepath -

      where filepath is a file path relative to the game's Data folder. +

      where filepath is an exact (ie. not regex) file path relative to the game's Data folder.

      The map form: -
      Key NameRequiredNotes
      nameA file path or name. -
      displayA substitute string to be displayed instead of the file path in any generated messages, eg. the name of the mod the file belongs to. +
      nameAn exact (ie. not regex) file path or name. +
      displayA substitute string to be displayed instead of the file path in any generated messages, eg. the name of the mod the file belongs to. Double-quoted URLs will be hyperlinked in the BOSS report. See URL Hyperlinking for details.
      conditionA condition string that is evaluated to determine whether this file data should be used: if it evaluates to true, the data is used, otherwise it is ignored. See Condition Strings for details.
      @@ -198,7 +199,7 @@ display: OBSE v18+

      Key NameRequiredNotes
      typeThe type string can be one of three keywords, see the table below for their semantics. -
      contentEither simply a string, or a list of content data structures. If the latter, one of the structures must be for English. +
      contentEither simply a string, or a list of localised content data structures. If the latter, one of the structures must be for English.
      conditionA condition string that is evaluated to determine whether the message should be displayed: if it evaluates to true, the message is displayed, otherwise it is not. See Condition Strings for details.
      @@ -210,18 +211,18 @@ display: OBSE v18+ warnA warning message, describing a non-critical issue with the user's mods (eg. dirty mods). errorAn error message, decribing a critical installation issue (eg. missing masters, corrupt plugins). -

      The content data structure is a key-value map, with all values being strings: +

      The localised content data structure is a key-value map, with all values being strings: -
      Key NameRequiredNotes
      strThe actual message content string. URLs in message content strings will be turned into hyperlinks in BOSS's user interface. Recognised URLs are those that start with file:, http: or https:. URLs can be labelled by writing the label after the URL, with a space separating them, and enclosing the URL and label in double quotes. +
      strThe actual message content string. Double-quoted URLs will be hyperlinked in the BOSS report. See URL Hyperlinking for details.
      langThe language that str is written in, given as an ISO 639-3 language code. The languages BOSS supports are given in Language Codes.

      BOSS handles messages and languages as follows:

      1. If a message's content value is a string, the message will use the string as its content if displayed. -
      2. If a message's content value is a list of content structures, then the first structure with a language that matches BOSS's current language will be used as the message's content if displayed. If there are no matches, then the first structure in English will be used. +
      3. If a message's content value is a list of localised content structures, then the first structure with a language that matches BOSS's current language will be used as the message's content if displayed. If there are no matches, then the first structure in English will be used.
      @@ -266,6 +267,11 @@ would be displayed as

      Example: name: "Oscuro's_Oblivion_Overhaul.esm" +req: + - Oblivion.esm # Don't do this, Oblivion.esm is a master of Oscuro's_Oblivion_Overhaul.esm, so BOSS already knows it's required. + - name: example.esp + display: "http://www.example.com Example Mod" + condition: "version(\"Oscuro's_Oblivion_Overhaul.esm\", \"15.0\", ==)" tag: - Actors.Spells - Graphics @@ -297,10 +303,22 @@ msg: http://skyrim.nexusmods.com/mods/19/ or link: http://steamcommunity.com/sharedfiles/filedetails/?id=87144366 -ver: +ver: - 1.3.2c +

      +

      File display strings and message content strings (including the strings in localised content structures) that contain recognised URLs have them displayed as hyperlinks in the BOSS report. Recognised URLs are those that are enclosed in double quotes and that begin with file:, http: or https:. +

      Hyperlinks may be labelled by writing the label after the URL inside the double quotes, with a space separating the label and URL. If a label is not provided, then the hyperlink will use the URL as its own label. +

      Examples: +"This \"https://en.wikipedia.org/wiki/String_(computer_science) string\" contains a labelled hyperlink." +would be displayed as +

      This string contains a labelled hyperlink.
      +

      While +"This string (see: \"https://en.wikipedia.org/wiki/String_(computer_science)\") contains an unlabelled hyperlink." +both get displayed as +

      This string (see: https://en.wikipedia.org/wiki/String_(computer_science)) contains an unlabelled hyperlink.
      +

      Condition Strings

      Condition strings can be used to ensure that data is only acted on by BOSS under certain circumstances. They are very similar to boolean conditional expressions in programming languages such as Python, though more limited. Their EBNF grammar is: [ negator ], function, { junctor, [ negator ], function } ;