{"id":17093596,"url":"https://github.com/chrisdothtml/etml-api","last_synced_at":"2026-04-29T08:07:01.258Z","repository":{"id":41074107,"uuid":"42378882","full_name":"chrisdothtml/etml-api","owner":"chrisdothtml","description":"API for etml","archived":false,"fork":false,"pushed_at":"2015-09-24T16:13:14.000Z","size":145,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-28T22:44:42.991Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisdothtml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-13T01:03:08.000Z","updated_at":"2019-08-18T16:51:35.000Z","dependencies_parsed_at":"2022-08-29T07:21:56.790Z","dependency_job_id":null,"html_url":"https://github.com/chrisdothtml/etml-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdothtml%2Fetml-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdothtml%2Fetml-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdothtml%2Fetml-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdothtml%2Fetml-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisdothtml","download_url":"https://codeload.github.com/chrisdothtml/etml-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245136322,"owners_count":20566584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T14:07:43.350Z","updated_at":"2026-04-29T08:06:56.215Z","avatar_url":"https://github.com/chrisdothtml.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"etml\n===\n\n\u003e A preprocessor that enhances HTML\n\n**NOTE: ETML IS AN IN-PROGRESS PROJECT. DOCUMENTATION FOR ETML-API AND NODE-ETML IS STRICTLY FOR POST-RELEASE AND SHOULD NOT BE REFERENCED DURING CURRENT DEVELOPMENT. NEITHER MODULES ARE AVAILABLE ON NPM AS OF YET.**\n\n### Usage\n\nThis is the core api module and is not meant to be used on its own. etml is available for use as [node-etml](https://github.com/chrisdothtml/node-etml) or [grunt-etml](https://github.com/chrisdothtml/grunt-etml).\n\n### About etml\n\n**E**nhanced **T**ext **M**arkup **L**anguage\n\netml is a Node-built HTML enhancer. It was inspired by the way that [SCSS](http://sass-lang.com/documentation/file.SCSS_FOR_SASS_USERS.html) works with vanilla CSS syntax, yet extends it to allow you to do more programmatic things. etml allows you to work with the HTML syntax you know and love, but provides some enhanced functionality to make development quicker and more efficient.\n\nI built this processor out of my own necessity as a front end developer who frequently needs to build out standalone project mockups. It's the perfect tool for me; if it's not for you, feel free to send an [issue/request](https://github.com/chrisdothtml/etml-api/issues) and I'll be happy to consider any changes or additions.\n\n### Syntax\n\n#### Comments\n\nOne of my biggest gripes with HTML is the comments. They don't look very good, and you can't just quickly add them in. In etml, inline and block comments are supported. You can still use regular html comments if you want.\n\n````\n\u003cbutton\u003eSubmit\u003c/button\u003e//Submit btn\n\n//\u003cb\u003eBold Text\u003c/b\u003e\n\u003cstrong\u003eBold Text\u003c/strong\u003e\n\n/* Removing nonsense\n\u003cmarquee\u003eWelcome to my site\u003c/marquee\u003e\n\u003cblink\u003eI hope you like it\u003c/blink\u003e\n*/\n\n\u003c!-- Business as usual --\u003e\n````\n\ncompiles to\n\n````\n\u003cbutton\u003eSubmit\u003c/button\u003e\n\n\u003cstrong\u003eBold Text\u003c/strong\u003e\n\n\u003c!-- Removing nonsense\n\u003cmarquee\u003eWelcome to my site\u003c/marquee\u003e\n\u003cblink\u003eI hope you like it\u003c/blink\u003e\n--\u003e\n\n\u003c!-- Business as usual --\u003e\n````\n\n---\n\n#### Variables\n\n````\n$variable = '';\n{$variable}\n````\n\n---\n\n#### File Includes\n\nFiles that are included to etml must use the `_file.etml` format. Files in this format can only be used in includes and will not be picked up by the compiler.\n\n````\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t@include 'inc/_global-head.etml';\n\u003c/head\u003e\n\u003cbody\u003e\n...\n````\n\nProviding the leading underscore and file extension are optional in file imports, but the actual file still needs them.\n\n````\n@include '_filename.etml';\n@include 'filename.etml';\n@include 'filename';\n````\n---\n\n#### Escaping\n\nIf you need to escape an expression in etml, it's as simple as putting a `\\` in front of it. Example:\n\n````\n\\$variable: 'value';\n\\{$variable}\n\\@include 'file';\n\\// Not a comment\n\\/* Also not a comment \\*/\n````\n\noutputs:\n\n````\n$variable: 'value';\n@include 'file';\n// Not a comment\n/* Also not a comment */\n````\n\n---\n\n#### Short Tags\n\netml comes with some custom tags that are shortcuts for other tags. These are optional, but can make code more readable. Also, all short tags will honor any additional attributes you have on them.\n\n````\n\u003ccss id=\"ie-css\" url=\"core.css\"\u003e\n\u003cjs url=\"core.js\"\u003e\n````\n\ncompiles to\n\n````\n\u003clink id=\"ie-css\" rel=\"stylesheet\" type=\"text/css\" href=\"core.css\" /\u003e\n\u003cscript type=\"text/javascript\" src=\"core.js\"\u003e\u003c/script\u003e\n````\n\n### etml Development\n\netml is built with CoffeeScript and is compiled using Grunt. The source files can be found in the /src/ directory. To work on etml, clone the repo and run:\n\n```\nnpm install\n```\n\nI am open to collaborators who are interested in helping with this project in any way. If you're interested in getting involved, just shoot me an [email](mailto:chris@deacy.io). I am currently working on a syntax highlighting package for Sublime, but am open to any syntax highlighting help (including Sublime :blush:).\n\n### Dependencies\n\n- [async](https://github.com/caolan/async)\n- [defaults](https://github.com/tmpvar/defaults)\n- [JS Beautifier](https://github.com/beautify-web/js-beautify)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisdothtml%2Fetml-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisdothtml%2Fetml-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisdothtml%2Fetml-api/lists"}