# emacs-web-mode

> Emacs module for editing HTML templates

**Wikidata**: [Q113578745](https://www.wikidata.org/wiki/Q113578745)  
**Source**: https://4ort.xyz/entity/emacs-web-mode

## Summary
emacs-web-mode is an Emacs module (major mode) designed for editing HTML templates and web development files, written in Emacs Lisp and distributed as free software.

## Key Facts
- Created by François-Xavier Bois, a French computer scientist born in 1977
- Written in the Emacs Lisp programming language, which has been in use since 1985
- Available as a NonGNU ELPA package since August 7, 2021
- Licensed under free software terms
- Runs on Microsoft Windows, macOS, and BSD operating systems
- Maintained by François-Xavier Bois since 2011
- Available in major package repositories including MELPA and Debian
- Current stable version is 17.3.7 as of December 24, 2022

### Q: Who created emacs-web-mode?
A: It was created by François-Xavier Bois, a French computer scientist born in 1977.

### Q: What programming language is it written in?
A: It's written in Emacs Lisp, the dialect of Lisp used in GNU Emacs.

### Q: What operating systems does it support?
A: It runs on Microsoft Windows, macOS, and BSD operating systems.

## Why It Matters
emacs-web-mode addresses the need for efficient HTML template editing within the Emacs environment, particularly for web development. It provides syntax highlighting, indentation, and other features specifically tailored for HTML and related web technologies. By offering a dedicated major mode for web development, it enhances the productivity of developers working with HTML, CSS, and JavaScript within the Emacs ecosystem. The module's significance lies in its ability to transform Emacs into a powerful web development environment, making it a valuable tool for both web developers and Emacs users.

## Notable For
- First major mode specifically designed for editing HTML templates in Emacs
- Maintained by François-Xavier Bois since its inception in 2011
- Available as a NonGNU ELPA package since August 7, 2021
- Supports multiple operating systems including Windows, macOS, and BSD
- Written entirely in Emacs Lisp, the native language of GNU Emacs

## Body
### Overview
emacs-web-mode is an Emacs major mode designed specifically for editing HTML templates and web development files. It provides syntax highlighting, indentation, and other features tailored for HTML, CSS, and JavaScript code. The module was created by François-Xavier Bois, a French computer scientist, and has been maintained by him since its inception.

### Technical Details
The module is written entirely in Emacs Lisp, the dialect of Lisp used in GNU Emacs. It implements a comprehensive HTML parser that understands HTML5 syntax and provides context-aware editing features. The parser supports nested tags, attributes, and comments, making it suitable for modern web development.

### Distribution and Installation
emacs-web-mode is distributed as free software under terms that allow users to freely run, study, change, and distribute it. It's available through multiple package repositories:
- NonGNU ELPA (since August 7, 2021)
- MELPA
- Debian (as elpa-web-mode)
- Ubuntu (as elpa-web-mode)
- Gentoo (as app-emacs/web-mode)

Users can install it via package managers or download the source code from its repositories.

### Development History
The module was first created in July 2011 and has undergone continuous development since then. It has evolved through multiple versions, with the stable version history showing regular updates from 2021 to 2022. The development is documented through mailing lists and release notes.

### Usage and Features
When activated, emacs-web-mode provides:
- HTML syntax highlighting
- Automatic indentation based on HTML structure
- Tag completion and auto-completion
- Context-aware navigation
- Support for CSS and JavaScript files within HTML projects
- Integration with other Emacs web development tools

### License and Copyright
The module is licensed under free software terms, allowing users to freely distribute and modify it. François-Xavier Bois holds the copyright to the software, and the module is maintained by him since its creation.

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "emacs-web-mode",
  "description": "Emacs module for editing HTML templates",
  "url": "https://web-mode.org/",
  "sameAs": ["https://en.wikipedia.org/wiki/Web-mode"],
  "author": "François-Xavier Bois",
  "operatingSystem": "BSD, macOS, Microsoft Windows",
  "programmingLanguage": "Emacs Lisp",
  "isBasedOn": "Emacs",
  "license": "Free software license",
  "version": "17.3.7",
  "dateCreated": "2011-07-00",
  "dateModified": "2022-12-24"
}

## References

1. [Source](https://elpa.nongnu.org/nongnu/web-mode.html)
2. [web-mode.el. 2012](https://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00190.html)
3. [Web-Mode version 17.0.4. 2021](https://lists.gnu.org/archive/html/gnu-emacs-sources/2021-08/msg00036.html)
4. [Web-Mode version 17.1.4. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-02/msg00056.html)
5. [Web-Mode version 17.2.0. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-02/msg00058.html)
6. [Web-Mode version 17.2.1. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-05/msg00062.html)
7. [Web-Mode version 17.2.2. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-05/msg00088.html)
8. [Web-Mode version 17.2.3. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-06/msg00028.html)
9. [Web-Mode version 17.3.1. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-08/msg00039.html)
10. [Web-Mode version 17.3.3. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-10/msg00023.html)
11. [Web-Mode version 17.3.5. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-12/msg00071.html)
12. [Web-Mode version 17.3.7. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-12/msg00072.html)
13. [Web-Mode version 17.3.8. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-12/msg00074.html)
14. [Web-Mode version 17.3.9. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-03/msg00040.html)
15. [Web-Mode version 17.3.13. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-09/msg00015.html)
16. [Web-Mode version 17.3.14. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-09/msg00019.html)
17. [Web-Mode version 17.3.15. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-10/msg00068.html)
18. [Web-Mode version 17.3.16. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-12/msg00077.html)
19. [Web-Mode version 17.3.17. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-12/msg00084.html)
20. [Web-Mode version 17.3.18. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-02/msg00018.html)
21. [Web-Mode version 17.3.19. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-03/msg00000.html)
22. [[NonGNU ELPA] Web-Mode version 17.3.20. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-08/msg00011.html)
23. [Release 10.2. 2015](https://github.com/fxbois/web-mode/releases/tag/v10.2)
24. [Release 10.3. 2015](https://github.com/fxbois/web-mode/releases/tag/v10.3)
25. [Release 10.4. 2015](https://github.com/fxbois/web-mode/releases/tag/v10.4)
26. [Release 11. 2015](https://github.com/fxbois/web-mode/releases/tag/v11)
27. [Release 11.1. 2015](https://github.com/fxbois/web-mode/releases/tag/v11.1)
28. [Release 11.2. 2015](https://github.com/fxbois/web-mode/releases/tag/v11.2)
29. [Release 12. 2015](https://github.com/fxbois/web-mode/releases/tag/v12)
30. [Release 12.2. 2015](https://github.com/fxbois/web-mode/releases/tag/v12.2)
31. [Release 12.3. 2015](https://github.com/fxbois/web-mode/releases/tag/v12.3)
32. [Release 12.4. 2015](https://github.com/fxbois/web-mode/releases/tag/v12.4)
33. [Release 13. 2015](https://github.com/fxbois/web-mode/releases/tag/v13)
34. [Release 13.1. 2016](https://github.com/fxbois/web-mode/releases/tag/v13.1)
35. [Release 13.2. 2016](https://github.com/fxbois/web-mode/releases/tag/v13.2)
36. [Release 14. 2016](https://github.com/fxbois/web-mode/releases/tag/v14)
37. [Release 14.1. 2017](https://github.com/fxbois/web-mode/releases/tag/v14.1)
38. [Release 15. 2017](https://github.com/fxbois/web-mode/releases/tag/v15)
39. [Release 15.1. 2018](https://github.com/fxbois/web-mode/releases/tag/v15.1)
40. [Release 16. 2018](https://github.com/fxbois/web-mode/releases/tag/v16)
41. [Release 17. 2020](https://github.com/fxbois/web-mode/releases/tag/v17)
42. [Web-Mode version 17.3.21. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-12/msg00063.html)
43. [[NonGNU ELPA] Web-Mode version 17.3.22. 2025](https://lists.gnu.org/archive/html/gnu-emacs-sources/2025-08/msg00034.html)
44. [Source](https://packages.debian.org/source/bookworm/web-mode)