htmlc 1.0.121
See the version list below for details.
dotnet tool install --global htmlc --version 1.0.121
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local htmlc --version 1.0.121
#tool dotnet:?package=htmlc&version=1.0.121
nuke :add-package htmlc --version 1.0.121
html-compiler-tool
This is the HTML Compiler Tool for your cli. htmlc is a small tool with which very easily static HTML files from various HTML components, including layout files and reusable HTML blocks (such as header, footer, etc.) from separate HTML files. The result is written to a complete and finished HTML file. Sass/SCSS compilation is also supported (the path to generated CSS file is then written into the HTML file). In the end you don't have to touch the generated html files.
content
installation and update
- install the .NET Runtime you need to install the .NET Runtime (its free and available for macos, linux and windows)
- install the tool then you can install the html-tool very simple via this command:
dotnet tool install --global htmlc
update htmlc
dotnet tool update --global htmlc
usage
The compile process searches in the folder for all HTML files. All files that do NOT start with an underscore are compiled. Files with an underscore (for example _layout.html or _footer.html) are used as reusable components.
commands
new-command
The new command creates a new project at the current folder location. The project contains the following elements:
- .gitignore - the git ignore file
- /src - the source directory for your files
- /src/index.html - the html index file
- /src/shared - the directory for alle shared components (like layout, etc.)
- /src/shared/_layout.html - the layout file for all html files
- /dist - the output directory
options
you can use the following options with the new command:
-d --docker
- creates a simple Dockerfile with nginx configuration.
example: htmlc new -d
-t --template
- creates a project based on the given template name. If several templates matching the search filter are found, a url can be specified (which must be available in one of the template repositories!)
example: htmlc new -t Demo
-v --vscode
- add configuration directory for Visual Studio Code (.vscode) and settings-file.
example: htmlc new -v
-l --vsliveserver
- add configuration for Visual Studio Code Extension Live Server (recommended) - important: vscode settings file needed. create via html flag -v --vscode
needed!
example: htmlc new -l
the vsliveserver
option creates the property liveServer.settings.root
and sets it to the output directory in the vscode settings file
compile-command
This command compiles all HTML files from the /src (rekusriv) folder and writes the results to /dist.
htmlc compile <project-directory>
If only one path is specified, htmlc searches for /src and /dist in this directory. If these do not exist, then they are created. Then htmlc searches for files in /src and writes the results to the /dist directory. If no path is specified, then htmlc searches for /src and /dist in the current folder.
project-directory (optional): the path to the project directory. for example: /path/to/project
htmlc compile <source-directory> <output-directory>
If two folders are specified, then htmlc uses the first value as the source path and the second value as the output paths.
source-directory (optional): The path to the source directory (equivalent to /src). for example: /path/to/project/src
output-directory (optional): The path to the output directory (equivalent to /dist). for example: /path/to/another/directory/output
htmlc compile [...] [-s --style {path/to/main.scss}]
Optionally, a relative path to the style entry file can be specified with -s or -style. the path to the style file must be specified relative to the /src directory. the relative path to the final css-file is written to the @StylePath-tags.
watch-command
This command compiles all HTML files from the /src (rekusriv) folder and writes the results to /dist. then /src is observed for changes and recompiled whenever a change is made.
htmlc watch <project-directory>
The watch command is identical to the compile command. The only difference is that the watch command observes the directory after the first compile and restarts the compile process every time a change is made.
project-directory (optional): the path to the project directory. for example: /path/to/project
htmlc watch <source-directory> <output-directory>
If two folders are specified, then htmlc uses the first value as the source path and the second value as the output paths.
source-directory (optional): The path to the source directory (equivalent to /src). for example: /path/to/project/src
output-directory (optional): The path to the output directory (equivalent to /dist). for example: /path/to/another/directory/output
htmlc watch [...] [-s --style {/path/to/main.scss}]
Optionally, a relative path to the style entry file can be specified with -s or -style. the path to the style file must be specified relative to the /src directory. the relative path to the final css-file is written to the @StylePath-tags.
html files
different html types
entry html
The compiler searches for all HTML files which do NOT start with an underscore (index.html, a-page.html, etc.). files like _layout.html, footer.html, etc. are ignored.
for example:
/src/index.html
<br />
/src/pages.html
<br />
/src/components/buttons.html
<br />
layout
The layout file must start with an underscore. The rest of the naming is up to you. the content consists of reusable layout in HTML (styles and scripts, header, navigation, etc.).
for example:
/src/_layout.html
<br />
reusable components
In addition, you can use other recyclable components. The file name must start with an underscore. The rest of the naming is up to you.
for example:
/src/_navigation.html
<br />
/src/_header.html
<br />
/src/_footer.html
<br />
supported tags and its functionality
The @PageTitle-Tag
The value of PageTitle is set as a global variable. Each time @PageTitle is used, this location is replaced with the value.
The @Layout-Tag
The @Layout tag is used in an HTML entry file to specify which layout file is to use.
The @Body-Tag
The @Body tag determines in a layout file where the content from the actual HTML entry file is written.
The @File-Tag
You can include another file with the @File tag in any HTML file (whether layout file. reusable file or entry file).
The @StylePath-Tag
htmlc can also compile style files (scss or sass). the path of the compiled CSS file can be inserted using this @StylePath tag. The following usage makes sense:<br />
<link rel="stylesheet" href="@StylePath">
<br />
The @Comment-Tag
Creates an HTML comment:
@Comment=Example-Text
<br />
``<br />
The @Global-Tag
htmlc supports Global Variables. These are loaded from a JSON file. By default, the global.json file in the root directory of the project is configured for this (Which file to load can be configured in the .htmlc file).
You can load all JSON entries via the @Global tag and thus write them to the HTML.
global.json (Global Variables File)
{
<br />
"Application": {
<br />
"Name": "title of website"
<br />
}
<br />
}
<br />
index.html (Sample HTML File)
<div>
<br />
<h1>@Global:Application:Name</h1>
<br />
</div>
<br />
result
<div>
<br />
<h1>title of website</h1>
<br />
</div>
<br />
The @StartHtmlSpecialChars and @EndHtmlSpecialChars-Tag
You can escape special characters in a section HTML. To do this, place the following tags @StartHtmlSpecialChars and @EndHtmlSpecialChars before and after the block to be escaped:
@StartHtmlSpecialChars
<br />
<h1>a h1 heading</h1>
<br />
@EndHtmlSpecialChars
<br />
turns into
<h1>a h1 heading</h1>
<br />
getting started with your own project
- create a directory with two subdirectories /src and /dist. All project files must be stored under /src. The compiler writes the results under /dist.
- create an initial entry file index.html.
- create a layout file _layout.html.
- write the following basic HTML structure in the _layout.html file.<br />
<html>
<br /><head>
<br /></head>
<br /><body>
<br />@Body
<br /></body>
<br /></html>
<br /> - write the following example in index.html.<br />
@Layout=_layout.html
<br /><section>
<br /><div>Hello again</div>
<br /></section>
<br /> - open the console of your choice and change to the project directory. (/src and /dist must be in it).
- type the following command:<br />
htmlc compile
<br /> - under /dist should now appear a file index.html with the following content:<br />
<html>
<br /><head>
<br /></head>
<br /><body>
<br /><section>
<br /><div>Hello again</div>
<br /></section>
<br /></body>
<br /></html>
<br />
notices
this tool uses:
- Cocona (MIT) for console app environment
- HtmlAgilityPack (MIT) for html editing logic
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
1.0.156 | 641 | 12/3/2023 |
1.0.155 | 277 | 11/8/2023 |
1.0.154 | 375 | 11/6/2023 |
1.0.153 | 323 | 11/6/2023 |
1.0.149 | 257 | 10/10/2023 |
1.0.148 | 219 | 10/9/2023 |
1.0.147 | 187 | 10/6/2023 |
1.0.146 | 185 | 10/6/2023 |
1.0.145 | 213 | 10/4/2023 |
1.0.144 | 272 | 9/28/2023 |
1.0.143 | 223 | 9/28/2023 |
1.0.142 | 219 | 9/27/2023 |
1.0.141 | 304 | 9/27/2023 |
1.0.140 | 204 | 9/27/2023 |
1.0.139 | 228 | 9/24/2023 |
1.0.137 | 216 | 9/23/2023 |
1.0.136 | 264 | 9/19/2023 |
1.0.135 | 197 | 9/19/2023 |
1.0.133 | 239 | 9/19/2023 |
1.0.132 | 290 | 9/19/2023 |
1.0.131 | 191 | 9/19/2023 |
1.0.128 | 264 | 9/17/2023 |
1.0.124 | 197 | 9/7/2023 |
1.0.121 | 266 | 9/6/2023 |
1.0.117 | 232 | 8/27/2023 |
1.0.115 | 719 | 8/11/2023 |
1.0.114 | 601 | 8/2/2023 |
1.0.112 | 452 | 7/29/2023 |
1.0.109 | 490 | 7/26/2023 |
1.0.107 | 440 | 7/26/2023 |
1.0.106 | 458 | 7/24/2023 |
1.0.72 | 771 | 2/17/2023 |
1.0.70 | 588 | 2/17/2023 |
1.0.69 | 730 | 2/17/2023 |
1.0.68 | 679 | 2/17/2023 |
1.0.66 | 688 | 2/17/2023 |
1.0.64 | 652 | 2/10/2023 |
1.0.63 | 747 | 1/23/2023 |
1.0.62 | 847 | 1/23/2023 |
1.0.61 | 831 | 1/23/2023 |
1.0.60 | 849 | 1/23/2023 |
1.0.59 | 705 | 1/23/2023 |
1.0.58 | 703 | 1/21/2023 |
1.0.57 | 736 | 1/21/2023 |
1.0.56 | 797 | 1/21/2023 |
1.0.55 | 661 | 1/21/2023 |
1.0.54 | 749 | 1/21/2023 |
1.0.53 | 640 | 1/21/2023 |
1.0.52 | 720 | 1/21/2023 |
1.0.51 | 805 | 1/6/2023 |
1.0.50 | 715 | 1/6/2023 |
1.0.49 | 838 | 1/5/2023 |
1.0.48 | 789 | 1/5/2023 |
1.0.47 | 825 | 1/5/2023 |
1.0.46 | 884 | 1/5/2023 |
1.0.45 | 837 | 1/5/2023 |
1.0.44 | 906 | 1/5/2023 |
1.0.43 | 927 | 1/4/2023 |
1.0.42 | 811 | 1/4/2023 |
1.0.41 | 911 | 1/4/2023 |
1.0.40 | 835 | 1/4/2023 |
1.0.39 | 856 | 1/4/2023 |
1.0.38 | 886 | 1/4/2023 |
1.0.37 | 819 | 1/4/2023 |
1.0.36 | 810 | 1/4/2023 |
1.0.35 | 800 | 1/3/2023 |
1.0.34 | 873 | 1/3/2023 |
1.0.33 | 914 | 1/3/2023 |
1.0.32 | 873 | 1/3/2023 |
1.0.31 | 772 | 1/2/2023 |
1.0.30 | 777 | 1/2/2023 |
1.0.29 | 767 | 1/2/2023 |
1.0.28 | 838 | 1/2/2023 |
1.0.27 | 868 | 1/1/2023 |
1.0.26 | 828 | 1/1/2023 |
1.0.25 | 799 | 1/1/2023 |
1.0.24 | 803 | 1/1/2023 |
1.0.23 | 721 | 1/1/2023 |
1.0.22 | 793 | 1/1/2023 |
1.0.21 | 729 | 1/1/2023 |
1.0.20 | 756 | 1/1/2023 |
1.0.19 | 330 | 12/31/2022 |
1.0.18 | 313 | 12/31/2022 |
1.0.17 | 340 | 12/31/2022 |
1.0.16 | 337 | 12/31/2022 |
1.0.15 | 305 | 12/29/2022 |
1.0.14 | 310 | 12/28/2022 |
1.0.13 | 331 | 12/28/2022 |
1.0.12 | 340 | 12/20/2022 |
1.0.11 | 404 | 11/4/2022 |
1.0.10 | 398 | 11/1/2022 |
1.0.9 | 390 | 11/1/2022 |
1.0.8 | 424 | 10/31/2022 |
1.0.6 | 410 | 8/21/2022 |
1.0.4 | 405 | 8/18/2022 |
1.0.3 | 415 | 8/17/2022 |
1.0.2 | 414 | 8/17/2022 |
1.0.0 | 409 | 8/17/2022 |