What is MIME type "text/x-haml"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

text/x-haml is a MIME type for files written in the HAML templating language. It signals that the file contains markup code meant to be processed into HTML.

This language uses indentation to define its structure. It helps keep the code simple and avoids the repetitive tags seen in standard HTML. The MIME type informs editors and servers how to handle and highlight the file.

Files with this MIME type include source code files such as HAML and modifications like HAML.DEFACE. For more details on file types, check the resources on Filext.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: text/x-haml    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="text/x-haml">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'text/x-haml');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

Can web browsers display text/x-haml files directly?

No, web browsers like Chrome, Firefox, and Safari do not natively render HAML files. HAML is a server-side templating language that must be compiled into standard text/html on the server before being sent to the user's browser.

How do I configure Apache to serve .haml files correctly?

To serve the raw source code with the correct MIME type, add AddType text/x-haml .haml to your .htaccess or httpd.conf file. However, in most web applications, you typically want the server to process the file rather than serving it directly.

Why am I seeing raw code instead of a webpage?

If you see HAML syntax (indentation and % signs) in the browser, your server is serving the file as a static resource instead of rendering it. Ensure your application framework (such as Ruby on Rails) is configured to compile the text/x-haml template into HTML before the response is sent.

What is the relationship between text/x-haml and Ruby on Rails?

The text/x-haml type is heavily associated with the Ruby ecosystem. It is the default MIME type for files used by the HAML gem, which allows developers to write cleaner, indentation-based markup that Rails converts into HTML views.

Is text/x-haml an official IANA MIME type?

No, the x- prefix indicates that it is a non-standard or experimental subtype. While not officially registered with IANA, text/x-haml is the de facto standard used by developers and editors to identify HAML files.

Are there security risks in serving text/x-haml files?

Yes, inadvertently serving raw .haml files can expose your source code, including comments and logic structure, to the public. You should configure your web server to either block direct access to these files or ensure they are always rendered into HTML.

What file extensions are associated with this MIME type?

The most common extension is .haml. You may also encounter composite extensions like .haml.deface, which are used for patching or overriding views in specific Ruby library contexts.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.