Complete residential site build with Docker Compose & Gitea Actions deployment

This commit is contained in:
CalebLewallen
2026-05-13 17:31:20 -04:00
parent f9c4e13a50
commit 3c22823f72
19354 changed files with 2097331 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
# Custom Data for HTML Language Service
In VS Code, there are two ways of loading custom HTML datasets:
1. With setting `html.customData`
2. With an extension that contributes `contributes.html.customData`
Both setting point to a list of JSON files. This document describes the shape of the JSON files.
You can read more about custom data at: https://github.com/microsoft/vscode-custom-data.
## Custom Data Format
The JSON have one required property, `version` and 3 other top level properties:
```jsonc
{
"version": 1.1,
"tags": [],
"globalAttributes": [],
"valueSets": []
}
```
Version denotes the schema version you are using. The latest schema version is `V1.1`.
You can find other properties' shapes at [htmlLanguageTypes.ts](../src/htmlLanguageTypes.ts) or the [JSON Schema](./customData.schema.json).
When working with VSCode, you should suffix your custom data file with `.html-data.json`, so VS Code will load the most recent schema for the JSON file.
[html5.ts](../src/languageFacts/data/webCustomData.ts) contains that built-in dataset that conforms to the spec.
## Language Features
Custom data receives the following language features:
- Completion on tag, attribute and attribute value
- Hover on tag (here's the [issue](https://github.com/Microsoft/vscode-html-languageservice/issues/47) for hover on attribute / attribute-name)
For example, for the following custom data:
```json
{
"tags": [
{
"name": "foo",
"description": "The foo element",
"attributes": [
{ "name": "bar" },
{
"name": "baz",
"values": [
{
"name": "baz-val-1"
}
]
}
]
}
],
"globalAttributes": [
{ "name": "fooAttr", "description": "Foo Attribute" },
{ "name": "xattr", "description": "X attributes", "valueSet": "x" }
],
"valueSets": [
{
"name": "x",
"values": [
{
"name": "xval",
"description": "x value"
}
]
}
]
}
```
- Completion on `<|` will provide `foo`
- Completion on `<foo |` will provide `bar` and `baz`
- Completion on `<foo baz=|` will provide `baz-val-1`
- Completion on `<foo |` will also provide the global attributes `fooAttr` and `xattr`
- Completion on `<foo xattr=>` will provide all values in valueSet `x`, which is `xval`
- Hover on `foo` will show `The foo element`
### Additional properties
For either `tag`, `attribute` or `attributeValue`, you can provide a `references` property of the following form
```json
{
"tags": [
{
"name": "foo",
"description": "The foo element",
"references": [
{
"name": "My foo element reference",
"url": "https://www.foo.com/element/foo"
}
]
}
]
}
```
It will be displayed in Markdown form in completion and hover as `[My foo element reference](https://www.foo.com/element/foo)`.
+263
View File
@@ -0,0 +1,263 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "vscode-html-customdata",
"version": 1.1,
"title": "VS Code HTML Custom Data format",
"description": "Format for loading Custom Data in VS Code's HTML support",
"type": "object",
"required": [
"version"
],
"definitions": {
"references": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the reference."
},
"url": {
"type": "string",
"description": "The URL of the reference.",
"pattern": "https?:\/\/",
"patternErrorMessage": "URL should start with http:// or https://"
}
}
},
"markupDescription": {
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"description": "Whether `description.value` should be rendered as plaintext or markdown",
"enum": [
"plaintext",
"markdown"
]
},
"value": {
"type": "string",
"description": "Description shown in completion and hover"
}
}
}
},
"properties": {
"version": {
"const": 1.1,
"description": "The custom data version",
"type": "number"
},
"tags": {
"description": "Custom HTML tags",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"defaultSnippets": [
{
"body": {
"name": "$1",
"description": "",
"attributes": []
}
}
],
"properties": {
"name": {
"type": "string",
"description": "Name of tag"
},
"description": {
"description": "Description of tag shown in completion and hover",
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/markupDescription"
}
]
},
"attributes": {
"type": "array",
"description": "A list of possible attributes for the tag",
"items": {
"type": "object",
"required": [
"name"
],
"defaultSnippets": [
{
"body": {
"name": "$1",
"description": "",
"values": []
}
}
],
"properties": {
"name": {
"type": "string",
"description": "Name of attribute"
},
"description": {
"description": "Description of attribute shown in completion and hover",
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/markupDescription"
}
]
},
"valueSet": {
"type": "string",
"description": "Name of the matching attribute value set"
},
"values": {
"type": "array",
"description": "A list of possible values for the attribute",
"items": {
"type": "object",
"required": [
"name"
],
"defaultSnippets": [
{
"body": {
"name": "$1",
"description": ""
}
}
],
"properties": {
"name": {
"type": "string",
"description": "Name of attribute value"
},
"description": {
"description": "Description of attribute value shown in completion and hover",
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/markupDescription"
}
]
},
"references": {
"type": "array",
"description": "A list of references for the attribute value shown in completion and hover",
"items": {
"$ref": "#/definitions/references"
}
}
}
}
},
"references": {
"type": "array",
"description": "A list of references for the attribute shown in completion and hover",
"items": {
"$ref": "#/definitions/references"
}
}
}
}
},
"references": {
"type": "array",
"description": "A list of references for the tag shown in completion and hover",
"items": {
"$ref": "#/definitions/references"
}
},
"browsers": {
"type": "array",
"description": "Supported browsers",
"items": {
"type": "string",
"pattern": "(E|FFA|FF|SM|S|CA|C|IE|O)([\\d|\\.]+)?",
"patternErrorMessage": "Browser item must follow the format of `${browser}${version}`. `browser` is one of:\n- E: Edge\n- FF: Firefox\n- FM: Firefox Android\n- S: Safari\n- SM: Safari on iOS\n- C: Chrome\n- CM: Chrome on Android\n- IE: Internet Explorer\n- O: Opera"
}
},
"baseline": {
"type": "object",
"description": "Baseline information for the feature",
"properties": {
"status": {
"type": "string",
"description": "Baseline status",
"enum": [
"high",
"low",
"false"
]
},
"baseline_low_date": {
"type": "string",
"description": "Date when the feature became newly supported in all major browsers",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"patternErrorMessage": "Date must be in the format of `YYYY-MM-DD`"
},
"baseline_high_date": {
"type": "string",
"description": "Date when the feature became widely supported in all major browsers",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"patternErrorMessage": "Date must be in the format of `YYYY-MM-DD`"
}
}
}
}
},
"globalAttributes": {
"description": "Custom HTML global attributes",
"type": "array",
"items": {
"$ref": "#/properties/tags/items/properties/attributes/items"
}
},
"valueSets": {
"description": "A set of attribute value. When an attribute refers to an attribute set, its value completion will use value from that set",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"defaultSnippets": [
{
"body": {
"name": "$1",
"description": "",
"values": []
}
}
],
"properties": {
"name": {
"type": "string",
"description": "Name of attribute value in value set"
},
"values": {
"$ref": "#/properties/tags/items/properties/attributes/items/properties/values"
}
}
}
}
}
}
}