znote 1.0.0

A lightweight desktop editor for Typst with live preview, built with Tauri
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "znote language",
  "description": "What znote needs to know about one language to find names in it. Add a file named after the language code to support another language.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "code",
    "name",
    "stopwords",
    "suffixes",
    "prefixes",
    "sentenceEnds",
    "scaleWords",
    "phoneTrunks"
  ],
  "properties": {
    "$schema": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]+)?$",
      "description": "BCP 47 language code, the same as the file name."
    },
    "name": {
      "type": "string",
      "description": "The language's own name."
    },
    "stopwords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "description": "Lower-case words that are never a name on their own, even when the name finder tags them at the start of a sentence."
    },
    "suffixes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "description": "Endings a name can carry in running text (\"Acmes\", \"Rotterdamse\"). They are hidden together with the name."
    },
    "prefixes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "description": "Beginnings written onto a name in running text, such as attached articles. They are hidden together with the name."
    },
    "sentenceEnds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "uniqueItems": true,
      "description": "What ends a sentence, so one hit of the name finder is not read across two sentences."
    },
    "scaleWords": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "uniqueItems": true,
      "description": "Words or letters that scale an amount, such as \"k\" or \"miljoen\"."
    },
    "phoneTrunks": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9]+$"
      },
      "uniqueItems": true,
      "description": "The digits a national phone number starts with, such as \"0\"."
    }
  }
}