#800 - Add colors for the Front Matter CMS output

This commit is contained in:
Elio Struyf
2024-04-25 18:20:00 +02:00
parent d3b93424d1
commit dee732f3ee
4 changed files with 253 additions and 177 deletions

View File

@@ -8,10 +8,14 @@
### 🎨 Enhancements ### 🎨 Enhancements
- [#800](https://github.com/estruyf/vscode-front-matter/issues/800): Add colors for the Front Matter CMS output
### ⚡️ Optimizations ### ⚡️ Optimizations
### 🐞 Fixes ### 🐞 Fixes
- [#796](https://github.com/estruyf/vscode-front-matter/issues/796): Fix issue in retrieving folders/files on dashboard load
## [10.1.0] - 2024-04-11 - [Release notes](https://beta.frontmatter.codes/updates/v10.1.0) ## [10.1.0] - 2024-04-11 - [Release notes](https://beta.frontmatter.codes/updates/v10.1.0)
### ✨ New features ### ✨ New features

View File

@@ -10,8 +10,7 @@
"color": "#0e131f", "color": "#0e131f",
"theme": "dark" "theme": "dark"
}, },
"badges": [ "badges": [{
{
"description": "version", "description": "version",
"url": "https://img.shields.io/github/package-json/v/estruyf/vscode-front-matter?color=green&label=vscode-front-matter&style=flat-square", "url": "https://img.shields.io/github/package-json/v/estruyf/vscode-front-matter?color=green&label=vscode-front-matter&style=flat-square",
"href": "https://github.com/estruyf/vscode-front-matter" "href": "https://github.com/estruyf/vscode-front-matter"
@@ -70,8 +69,7 @@
"**/.frontmatter/config/*.json": "jsonc" "**/.frontmatter/config/*.json": "jsonc"
} }
}, },
"keybindings": [ "keybindings": [{
{
"command": "frontMatter.dashboard", "command": "frontMatter.dashboard",
"key": "alt+d" "key": "alt+d"
}, },
@@ -95,23 +93,19 @@
} }
], ],
"viewsContainers": { "viewsContainers": {
"activitybar": [ "activitybar": [{
{ "id": "frontmatter-explorer",
"id": "frontmatter-explorer", "title": "FM",
"title": "FM", "icon": "$(fm-logo)"
"icon": "$(fm-logo)" }]
}
]
}, },
"views": { "views": {
"frontmatter-explorer": [ "frontmatter-explorer": [{
{ "id": "frontMatter.explorer",
"id": "frontMatter.explorer", "name": "Front Matter",
"name": "Front Matter", "icon": "$(fm-logo)",
"icon": "$(fm-logo)", "type": "webview"
"type": "webview" }]
}
]
}, },
"configuration": { "configuration": {
"title": "%settings.configuration.title%", "title": "%settings.configuration.title%",
@@ -179,8 +173,7 @@
"frontMatter.content.defaultFileType": { "frontMatter.content.defaultFileType": {
"type": "string", "type": "string",
"default": "md", "default": "md",
"oneOf": [ "oneOf": [{
{
"enum": [ "enum": [
"md", "md",
"mdx" "mdx"
@@ -196,8 +189,7 @@
"frontMatter.content.defaultSorting": { "frontMatter.content.defaultSorting": {
"type": "string", "type": "string",
"default": "", "default": "",
"oneOf": [ "oneOf": [{
{
"enum": [ "enum": [
"LastModifiedAsc", "LastModifiedAsc",
"LastModifiedDesc", "LastModifiedDesc",
@@ -545,8 +537,7 @@
"categories" "categories"
], ],
"markdownDescription": "%setting.frontMatter.content.filters.markdownDescription%", "markdownDescription": "%setting.frontMatter.content.filters.markdownDescription%",
"items": [ "items": [{
{
"type": "string", "type": "string",
"enum": [ "enum": [
"contentFolders", "contentFolders",
@@ -619,8 +610,7 @@
"command": { "command": {
"$id": "#scriptCommand", "$id": "#scriptCommand",
"type": "string", "type": "string",
"anyOf": [ "anyOf": [{
{
"enum": [ "enum": [
"node", "node",
"bash", "bash",
@@ -816,8 +806,7 @@
"title", "title",
"file" "file"
], ],
"anyOf": [ "anyOf": [{
{
"required": [ "required": [
"schema" "schema"
] ]
@@ -871,8 +860,7 @@
"id", "id",
"path" "path"
], ],
"anyOf": [ "anyOf": [{
{
"required": [ "required": [
"schema" "schema"
] ]
@@ -1113,29 +1101,26 @@
} }
} }
}, },
"default": [ "default": [{
{ "name": "default",
"name": "default", "fileTypes": null,
"fileTypes": null, "fields": [{
"fields": [ "title": "Title",
{ "name": "title",
"title": "Title", "type": "string"
"name": "title", },
"type": "string" {
}, "title": "Caption",
{ "name": "caption",
"title": "Caption", "type": "string"
"name": "caption", },
"type": "string" {
}, "title": "Alt text",
{ "name": "alt",
"title": "Alt text", "type": "string"
"name": "alt", }
"type": "string" ]
} }],
]
}
],
"scope": "Media" "scope": "Media"
}, },
"frontMatter.media.supportedMimeTypes": { "frontMatter.media.supportedMimeTypes": {
@@ -1365,8 +1350,7 @@
"default": "", "default": "",
"description": "%setting.frontMatter.taxonomy.contentTypes.items.properties.fields.items.properties.taxonomyId.description%", "description": "%setting.frontMatter.taxonomy.contentTypes.items.properties.fields.items.properties.taxonomyId.description%",
"not": { "not": {
"anyOf": [ "anyOf": [{
{
"const": "" "const": ""
}, },
{ {
@@ -1560,8 +1544,7 @@
"type", "type",
"name" "name"
], ],
"allOf": [ "allOf": [{
{
"if": { "if": {
"properties": { "properties": {
"type": { "type": {
@@ -1769,51 +1752,48 @@
"fields" "fields"
] ]
}, },
"default": [ "default": [{
{ "name": "default",
"name": "default", "pageBundle": false,
"pageBundle": false, "fields": [{
"fields": [ "title": "Title",
{ "name": "title",
"title": "Title", "type": "string"
"name": "title", },
"type": "string" {
}, "title": "Description",
{ "name": "description",
"title": "Description", "type": "string"
"name": "description", },
"type": "string" {
}, "title": "Publishing date",
{ "name": "date",
"title": "Publishing date", "type": "datetime",
"name": "date", "default": "{{now}}",
"type": "datetime", "isPublishDate": true
"default": "{{now}}", },
"isPublishDate": true {
}, "title": "Content preview",
{ "name": "preview",
"title": "Content preview", "type": "image"
"name": "preview", },
"type": "image" {
}, "title": "Is in draft",
{ "name": "draft",
"title": "Is in draft", "type": "boolean"
"name": "draft", },
"type": "boolean" {
}, "title": "Tags",
{ "name": "tags",
"title": "Tags", "type": "tags"
"name": "tags", },
"type": "tags" {
}, "title": "Categories",
{ "name": "categories",
"title": "Categories", "type": "categories"
"name": "categories", }
"type": "categories" ]
} }],
]
}
],
"scope": "Taxonomy" "scope": "Taxonomy"
}, },
"frontMatter.taxonomy.customTaxonomy": { "frontMatter.taxonomy.customTaxonomy": {
@@ -1826,8 +1806,7 @@
"type": "string", "type": "string",
"description": "%setting.frontMatter.taxonomy.customTaxonomy.items.properties.id.description%", "description": "%setting.frontMatter.taxonomy.customTaxonomy.items.properties.id.description%",
"not": { "not": {
"anyOf": [ "anyOf": [{
{
"const": "" "const": ""
}, },
{ {
@@ -2012,8 +1991,7 @@
} }
} }
}, },
"commands": [ "commands": [{
{
"command": "frontMatter.project.switch", "command": "frontMatter.project.switch",
"title": "%command.frontMatter.project.switch%", "title": "%command.frontMatter.project.switch%",
"category": "Front Matter", "category": "Front Matter",
@@ -2339,21 +2317,16 @@
} }
} }
], ],
"submenus": [ "submenus": [{
{ "id": "frontmatter.submenu",
"id": "frontmatter.submenu", "label": "Front Matter"
"label": "Front Matter" }],
}
],
"menus": { "menus": {
"webview/context": [ "webview/context": [{
{ "command": "workbench.action.webview.openDeveloperTools",
"command": "workbench.action.webview.openDeveloperTools", "when": "frontMatter:isDevelopment"
"when": "frontMatter:isDevelopment" }],
} "editor/title": [{
],
"editor/title": [
{
"command": "frontMatter.markup.heading", "command": "frontMatter.markup.heading",
"group": "navigation@-133", "group": "navigation@-133",
"when": "frontMatter:file:isValid == true && frontMatter:markdown:wysiwyg" "when": "frontMatter:file:isValid == true && frontMatter:markdown:wysiwyg"
@@ -2439,14 +2412,11 @@
"when": "resourceFilename == 'frontmatter.json'" "when": "resourceFilename == 'frontmatter.json'"
} }
], ],
"explorer/context": [ "explorer/context": [{
{ "submenu": "frontmatter.submenu",
"submenu": "frontmatter.submenu", "group": "frontmatter@1"
"group": "frontmatter@1" }],
} "frontmatter.submenu": [{
],
"frontmatter.submenu": [
{
"command": "frontMatter.createFromTemplate", "command": "frontMatter.createFromTemplate",
"when": "explorerResourceIsFolder", "when": "explorerResourceIsFolder",
"group": "frontmatter@1" "group": "frontmatter@1"
@@ -2462,8 +2432,7 @@
"group": "frontmatter@3" "group": "frontmatter@3"
} }
], ],
"commandPalette": [ "commandPalette": [{
{
"command": "frontMatter.init", "command": "frontMatter.init",
"when": "frontMatterCanInit" "when": "frontMatterCanInit"
}, },
@@ -2640,8 +2609,7 @@
"when": "frontMatter:file:isValid == true" "when": "frontMatter:file:isValid == true"
} }
], ],
"view/title": [ "view/title": [{
{
"command": "frontMatter.chatbot", "command": "frontMatter.chatbot",
"group": "navigation@0", "group": "navigation@0",
"when": "view == frontMatter.explorer" "when": "view == frontMatter.explorer"
@@ -2673,57 +2641,64 @@
} }
] ]
}, },
"grammars": [ "languages": [{
{ "id": "frontmatter.project.output",
"mimetypes": [
"text/x-code-output"
]
}],
"grammars": [{
"path": "./syntaxes/hugo.tmLanguage.json", "path": "./syntaxes/hugo.tmLanguage.json",
"scopeName": "frontmatter.markdown.hugo", "scopeName": "frontmatter.markdown.hugo",
"injectTo": [ "injectTo": [
"text.html.markdown" "text.html.markdown"
] ]
},
{
"language": "frontmatter.project.output",
"scopeName": "frontmatter.project.output",
"path": "./syntaxes/frontmatter-output.tmLanguage.json"
} }
], ],
"walkthroughs": [ "walkthroughs": [{
{ "id": "frontmatter.welcome",
"id": "frontmatter.welcome", "title": "Get started with Front Matter",
"title": "Get started with Front Matter", "description": "Discover the features of Front Matter and learn how to use the CMS for your SSG or static site.",
"description": "Discover the features of Front Matter and learn how to use the CMS for your SSG or static site.", "steps": [{
"steps": [ "id": "frontmatter.welcome.init",
{ "title": "Get started",
"id": "frontmatter.welcome.init", "description": "Initial steps to get started.\n[Open dashboard](command:frontMatter.dashboard)",
"title": "Get started", "media": {
"description": "Initial steps to get started.\n[Open dashboard](command:frontMatter.dashboard)", "markdown": "assets/walkthrough/get-started.md"
"media": {
"markdown": "assets/walkthrough/get-started.md"
},
"completionEvents": [
"onContext:frontMatterInitialized"
]
}, },
{ "completionEvents": [
"id": "frontmatter.welcome.documentation", "onContext:frontMatterInitialized"
"title": "Documentation", ]
"description": "Check out the documentation for Front Matter.\n[View our documentation](https://frontmatter.codes/docs)", },
"media": { {
"markdown": "assets/walkthrough/documentation.md" "id": "frontmatter.welcome.documentation",
}, "title": "Documentation",
"completionEvents": [ "description": "Check out the documentation for Front Matter.\n[View our documentation](https://frontmatter.codes/docs)",
"onLink:https://frontmatter.codes/docs" "media": {
] "markdown": "assets/walkthrough/documentation.md"
}, },
{ "completionEvents": [
"id": "frontmatter.welcome.supporter", "onLink:https://frontmatter.codes/docs"
"title": "Support the project", ]
"description": "Become a supporter.\n[Support the project](https://github.com/sponsors/estruyf)", },
"media": { {
"markdown": "assets/walkthrough/support-the-project.md" "id": "frontmatter.welcome.supporter",
}, "title": "Support the project",
"completionEvents": [ "description": "Become a supporter.\n[Support the project](https://github.com/sponsors/estruyf)",
"onLink:https://github.com/sponsors/estruyf" "media": {
] "markdown": "assets/walkthrough/support-the-project.md"
} },
] "completionEvents": [
} "onLink:https://github.com/sponsors/estruyf"
] ]
}
]
}]
}, },
"scripts": { "scripts": {
"dev:ext": "npm run clean && npm run localization:generate && npm-run-all --parallel watch:*", "dev:ext": "npm run clean && npm run localization:generate && npm-run-all --parallel watch:*",
@@ -2852,4 +2827,4 @@
"dependencies": { "dependencies": {
"@radix-ui/react-dropdown-menu": "^2.0.6" "@radix-ui/react-dropdown-menu": "^2.0.6"
} }
} }

View File

@@ -345,7 +345,7 @@ const handleAutoDateUpdate = (e: vscode.TextDocumentWillSaveEvent) => {
}; };
const triggerPageUpdate = (location: string) => { const triggerPageUpdate = (location: string) => {
Logger.info(`Trigger page update: ${location}`); Logger.verbose(`Trigger page update: ${location}`);
pageUpdateDebouncer(() => { pageUpdateDebouncer(() => {
StatusListener.verify(collection); StatusListener.verify(collection);
}, 1000); }, 1000);

View File

@@ -0,0 +1,97 @@
{
"scopeName": "frontmatter.project.output",
"patterns": [{
"include": "#info-log"
},
{
"include": "#warn-log"
},
{
"include": "#error-log"
},
{
"include": "#verbose-log"
},
{
"include": "#info-date"
}
],
"repository": {
"verbose-log": {
"begin": "\\[\"VERBOSE\" *",
"beginCaptures": {
"0": {
"name": "token.debug-token.begin"
}
},
"end": "[\\s\\S\\N]*?(?=\\[)",
"endCaptures": {
"0": {
"name": "token.debug-token.end"
}
},
"patterns": [{
"match": "[\\s\\S\\N]",
"name": "token.debug-token"
}]
},
"info-log": {
"begin": "\\[\"INFO\" *",
"beginCaptures": {
"0": {
"name": "token.info-token.begin"
}
},
"end": "[\\s\\S\\N]*?(?=\\[)",
"endCaptures": {
"0": {
"name": "token.info-token.end"
}
},
"patterns": [{
"match": "[\\s\\S\\N]",
"name": "token.info-token"
}]
},
"warn-log": {
"begin": "\\[\"WARNING\" *",
"beginCaptures": {
"0": {
"name": "token.warn-token.begin"
}
},
"end": "[\\s\\S\\N]*?(?=\\[)",
"endCaptures": {
"0": {
"name": "token.warn-token.end"
}
},
"patterns": [{
"match": "[\\s\\S\\N]",
"name": "token.warn-token"
}]
},
"error-log": {
"begin": "\\[\"ERROR\" *",
"beginCaptures": {
"0": {
"name": "token.error-token.begin"
}
},
"end": "[\\s\\S\\N]*?(?=\\[)",
"endCaptures": {
"0": {
"name": "token.error-token.end"
}
},
"patterns": [{
"match": "[\\s\\S\\N]",
"name": "token.error-token"
}]
},
"info-date": {
"match": "\\[((\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)((-(\\d{2}):(\\d{2})|Z)?))\\]",
"name": "comment.line"
}
}
}