htmlc 1.0.68

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global htmlc --version 1.0.68                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local htmlc --version 1.0.68                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=htmlc&version=1.0.68                
nuke :add-package htmlc --version 1.0.68                

html-compiler-tool

html-compiler-tool

.NET Version License Build Downloads NuGet

Lines of Code Vulnerabilities

buy me a coffe

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

  1. install the .NET Runtime you need to install the .NET Runtime (its free and available for macos, linux and windows)
  1. 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

-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

config-command

With this command, the user configuration, which is located in the user directory as a .htmlc file (e.g. /Users/lk-code/.htmlc), can be edited. The file is hidden per default. all (!) html-files a always blocked, the compiler copies the result to the output-directory.

build-blacklist

With this command, a file type (e.g. *.png) can be blocked for the compilation process so that no files of this type are copied into the output directory during the asset copying process.

htmlc config build-blacklist <add|remove> {fileextensions}

examples:

htmlc config build-blacklist add .png this command adds a block for all .png-files

htmlc config build-blacklist remove .png this command removes the entry for .png-files so all png files are copied.

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 @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

You can generate a HTML comment tag:

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

&#60;h1&#62;a h1 heading&#60;/h1&#62;<br />

getting started with your own project

  1. create a directory with two subdirectories /src and /dist. All project files must be stored under /src. The compiler writes the results under /dist.
  2. create an initial entry file index.html.
  3. create a layout file _layout.html.
  4. 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 />
  5. write the following example in index.html.<br /> @Layout=_layout.html<br /> <section><br /> <div>Hello again</div><br /> </section><br />
  6. open the console of your choice and change to the project directory. (/src and /dist must be in it).
  7. type the following command:<br /> htmlc compile<br />
  8. 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:

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 185 10/6/2023
1.0.146 185 10/6/2023
1.0.145 213 10/4/2023
1.0.144 270 9/28/2023
1.0.143 221 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 226 9/24/2023
1.0.137 216 9/23/2023
1.0.136 263 9/19/2023
1.0.135 196 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 448 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 821 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