IDE Usage
Builds
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Build Java Functions",
"type": "shell",
"command": "c:\\wamp\\bin\\php\\php8.3.0\\php.exe c:\\wamp\\www\\MSHolmes\\assets\\builds\\buildAllFunctionsJava.php",
"problemMatcher": [],
"group": "build"
},
{
"label": "Run Build PHP Functions",
"type": "shell",
"command": "c:\\wamp\\bin\\php\\php8.3.0\\php.exe c:\\wamp\\www\\MSHolmes\\assets\\builds\\buildAllFunctionsPhp.php",
"problemMatcher": [],
"group": "build"
},
{
"label": "Run Build CSS Base",
"type": "shell",
"command": "c:\\wamp\\bin\\php\\php8.3.0\\php.exe c:\\wamp\\www\\MSHolmes\\assets\\builds\\buildAllStylesCSS.php",
"problemMatcher": [],
"group": "build"
},
{
"label": "Run Build PHP Configs",
"type": "shell",
"command": "c:\\wamp\\bin\\php\\php8.3.0\\php.exe c:\\wamp\\www\\MSHolmes\\assets\\builds\\buildAllConfigsPhp.php",
"problemMatcher": [],
"group": "build"
},
{
"label": "Run Build All",
"dependsOn": [
"Run Build Java Functions",
"Run Build PHP Functions",
"Run Build CSS Base",
"Run Build PHP Configs"
],
"group": "build",
"problemMatcher": []
}
]
}
The IDE is very helpful by providing extensions and tasks for streamlining the work processes. The following details the usage of these enhancements.
Extensions
ftp-kr - This extension controls the upload of files to the live server based on the configuration parameters established in the file ftp-kr.json. The json file below details the elements of the file for Holmes county.
{
"host": "www.msholmes.org",
"username": "msholmes",
"password": "password",
"remotePath": "public_html",
"protocol": "ftp",
"port": 21,
"fileNameEncoding": "utf8",
"autoUpload": true,
"autoDelete": false,
"autoDownload": false,
"ignoreRemoteModification": true,
"ignore": [
"/.vscode",
"/.git",
"/images/*",
"/scss/*",
"/sitemaps/*",
".html",
"/builds/*",
"/assets/functions_java/_*.js",
"/assets/functions_php/_*.php",
"/assets/json/*_database.json",
"/css/*.css"
]
}
Live Sass Compiler - This extension is used to control the compiling of scss files. The extension will automatically compile .scss files when saved,
To exclude a file from being compiled include the folder/files path in the liveSassCompile.settings.excludeList of the settings.json file. Note that specifically excluded from compiling are all files in the scss/mixins folder, all files that begin with the underline character in the scss/base folder, and all files in the scss/common folder. The mixin and common files are included in .scss files as needed and thus don't need to be compiled separately. Likewise the individual base files are concatenated into the single file allStylesCSS.css.
The code shown below is on the liveSassCompile portion of the total settings.json file.
{
"liveSassCompile.settings.generateMap": false,
"liveSassCompile.settings.formats": [
{
"format": "expanded",
"extensionName": ".css",
"savePath": "/css"
},
{
"format": "compressed",
"extensionName": ".min.css",
"savePath": "/css/dist"
}
],
"liveSassCompile.settings.excludeList": [
"/.vscode/**",
"/scss/mixins/**",
"/scss/base/_*.scss",
"/scss/common/**"
]
}
Project Manager - The suite of projects that management includes 6 TNG projects (Fannin, Holmes, and Delta each with a main and admin), plus 2 non-TNG projects (Willow Wild, Delta-Library each with a main and admin). With the extension installed a json file similar to the one below can be included for all projects.
Note that all entered projects are listed in tags and name alpha order, so tag and name accordingly. The rootPath is the file path to the project folder on your local computer.
[
{
"name": "A-Main",
"rootPath": "c:\\wamp\\www\\TXFannin",
"paths": [],
"tags": ["Fannin"],
"enabled": true
},
{
"name": "B-Admin",
"rootPath": "c:\\wamp\\www\\TXFannin-Admin",
"paths": [],
"tags": ["Fannin"],
"enabled": true
}
]
- GitHub Actions - The GitHub provides the mechanism to control all files of a project. GitHub controls the sourcing and versioning of each file. Specific files can be excluded by including the folder/file in a .gitIgnore file. Note that in most cases whole folders are excluded as the files contained can be easily restored.
.md-docs/
.vscode/
css/
images/
scripts/
sitemaps/
jsconfig.json
Tasks
Builds - There are 4 tasks that are that are used to help 'build' files for the main site. They are as follows: