Outerfaces.Odd.Plugs.OddCDNRoflHTMLPlug (Outerfaces Dependency Distribution (ODD) v0.2.5)
View SourceProvides HTML transformation functions for rewriting [OUTERFACES_ODD_CDN] and [OUTERFACES_ODD_SPA] tokens in HTML src/href attributes.
This module always emits rev-pinned URLs in the canonical format:
- CDN:
<cdn_origin>/__rev/<rev>/cdn/<path> - SPA:
/__rev/<rev>/spa/<path>
Examples
# Unified proxy mode (cdn_origin = ""):
html = "<script src="[OUTERFACES_ODD_CDN]/lib.js"></script>"
transform_html_cdn_tokens(html, conn, "") #=> "<script src="/__rev/abc123/cdn/lib.js"></script>"
# Direct CDN mode (cdn_origin = "http://localhost:60032"):
html = "<script src="[OUTERFACES_ODD_CDN]/lib.js"></script>"
transform_html_cdn_tokens(html, conn, "http://localhost:60032") #=> "<script src="http://localhost:60032/__rev/abc123/cdn/lib.js"></script>"
# SPA tokens (always relative):
html = "<script src="[OUTERFACES_ODD_SPA]/main.js"></script>"
transform_html_cdn_tokens(html, conn, "") #=> "<script src="/__rev/abc123/spa/main.js"></script>"
Summary
Functions
Transforms HTML content by rewriting ODD_CDN and ODD_SPA tokens in src/href attributes and injecting a rev meta tag.
Functions
@spec transform_html_cdn_tokens(String.t(), Plug.Conn.t(), String.t()) :: String.t()
Transforms HTML content by rewriting ODD_CDN and ODD_SPA tokens in src/href attributes and injecting a rev meta tag.
Parameters
html_content- The HTML content to transformconn- The Plug.Conn struct (used to get rev)cdn_origin- Origin for CDN assets:- Unified proxy mode: "" (empty string, emits relative URLs)
- Direct CDN mode: "http://localhost:60032" (full origin)
Returns
Transformed HTML string with:
- All [OUTERFACES_ODD_CDN] and [OUTERFACES_ODD_SPA] tokens replaced
- Rev meta tag injected in <head>