Outerfaces.Odd.Plugs.OddCDNRoflHTMLPlug (Outerfaces Dependency Distribution (ODD) v0.2.5)

View Source

Provides 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

transform_html_cdn_tokens(html_content, conn, cdn_origin \\ "")

@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 transform
  • conn - The Plug.Conn struct (used to get rev)
  • cdn_origin - Origin for CDN assets:

Returns

Transformed HTML string with:

  • All [OUTERFACES_ODD_CDN] and [OUTERFACES_ODD_SPA] tokens replaced
  • Rev meta tag injected in <head>