changeset 4087:88a469b285f5

mod_http_libjs: New module to serve common CSS/Javascript libraries
author Matthew Wild <mwild1@gmail.com>
date Mon, 07 Sep 2020 13:33:42 +0100
parents 50644402c6f5
children 439ae12bb136
files mod_http_libjs/README.markdown mod_http_libjs/mod_http_libjs.lua
diffstat 2 files changed, 37 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_http_libjs/README.markdown	Mon Sep 07 13:33:42 2020 +0100
@@ -0,0 +1,24 @@
+---
+labels:
+- 'Stage-Stable'
+summary: 'Serve common Javascript libraries'
+...
+
+Introduction
+============
+
+This module serves common static CSS and Javascript libraries from the
+filesystem, allowing other HTTP modules to easily reference them.
+
+The default configuration works out of the box with Debian (and derivatives)
+`libjs-*` packages, such as libjs-jquery and libjs-bootstrap.
+
+You can override the filesystem location using the `libjs_path` configuration
+option. The default is `/usr/share/javascript`.
+
+Compatibility
+=============
+
+  ----- -------
+  0.11   Works
+  ----- -------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_http_libjs/mod_http_libjs.lua	Mon Sep 07 13:33:42 2020 +0100
@@ -0,0 +1,13 @@
+local mime_map = module:shared("/*/http_files/mime").types or {
+	css = "text/css",
+	js = "application/javascript",
+};
+
+local libjs_path = module:get_option_string("libjs_path", "/usr/share/javascript");
+
+module:provides("http", {
+		default_path = "/share";
+		route = {
+			["GET /*"] = require "net.http.files".serve({ path = libjs_path, mime_map = mime_map });
+		}
+	});