What is MIME type "text/x-clojure"?
A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.
text/x-clojure is a MIME type that marks files containing source code written in the Clojure language. It tells programs and editors that the file is plain text with a specific syntax.
This MIME type is used mainly in software development. It enables code editors to offer syntax highlighting and proper formatting. Tools that execute or compile the code also rely on this identifier.
Files using this MIME type support various aspects of the Clojure ecosystem. They can carry code, data, or configuration information.
- Purpose: It designates files as containing Clojure code for easy reading and processing.
- Functionality: It helps editors and build tools apply language-specific features such as syntax highlighting and error-checking.
- Integration: It is recognized by many development tools in the Clojure community.
Many file types use this MIME type. Common examples include the standard source file for Clojure, CLJ, and data files like EDN. Other variants used in Clojure workflows include BOOT, BB, RG, HIC, CL2, CLJC, CLJS, CLJS.HL, CLJSCM, CLJX, and WISP.
For more details on MIME types, visit the IANA Media Types page. Learn more about Clojure on the official Clojure website.
Associated file extensions
.clj, .edn, .boot, .bb, .rg, .hic, .cl2, .cljc, .cljs, .cljs.hl, .cljscm, .cljx, .wisp
Usage Examples
HTTP Header
When serving content with this MIME type, set the Content-Type header:
Content-Type: text/x-clojure
HTML
In HTML, you can specify the MIME type in various elements:
<a href="file.dat" type="text/x-clojure">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-clojure');
res.end('Content here');
}).listen(3000);
Associated file extensions
.clj, .edn, .boot, .bb, .rg, .hic, .cl2, .cljc, .cljs, .cljs.hl, .cljscm, .cljx, .wisp
FAQs
How do I configure Apache or Nginx to serve Clojure files?
For Apache, add the directive AddType text/x-clojure .clj .cljs .edn to your configuration or .htaccess file. For Nginx, include the line text/x-clojure clj cljs edn; inside your mime.types file or types block to ensure the server sends the correct header.
Can web browsers execute text/x-clojure files?
No, web browsers cannot execute Clojure code natively; they will simply display the file content as plain text. To run Clojure logic in a browser, developers use ClojureScript (.cljs), which must be compiled into standard JavaScript first.
What does the 'x-' prefix mean in text/x-clojure?
The x- prefix indicates that this is a non-standard MIME type that has not been officially registered with the IANA. Despite this, text/x-clojure is the de facto standard used by Linux distributions, web servers, and editors to identify Clojure source code.
What is the difference between .clj, .cljs, and .cljc files?
While they often share the text/x-clojure MIME type, the extensions indicate the target platform. .clj is for the standard Java Virtual Machine (JVM), .cljs is for ClojureScript (JavaScript), and .cljc contains portable code that can run on both platforms.
How do I open or edit a text/x-clojure file?
You can open these files with any generic text editor, such as Notepad or TextEdit. For actual development, use an IDE like IntelliJ IDEA (with Cursive), VS Code (with Calva), or Emacs (with CIDER), which use the MIME type to provide syntax highlighting and REPL integration.
Should EDN data files use the text/x-clojure MIME type?
Yes, .edn files are frequently served as text/x-clojure to ensure they are treated as readable code by editors and browsers. Although application/edn is sometimes used specifically for data transfer, text/x-clojure is common for file serving to enable syntax coloring.
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.