asset

package module
v0.0.0-...-ea630d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2013 License: BSD-2-Clause Imports: 10 Imported by: 0

README

asset

A Proof of Concept Asset Loader for my patched Revel tree. Example file app/assets/application.asset.js below.

/*
 *= require 'jquery'
 *= require 'jquery-ui'
 *= require_tree 'bootstrap'
 *= require_self
 *= require_directory 'application'
 */


// Pretend this is Javascript code...

Documentation

Overview

Asset is an asset pipeline for revel (maybe possibly in the future) Assets have the extension .asset, for instance a javascript file would have the extension application.js.asset.

Index

Constants

This section is empty.

Variables

View Source
var (
	DevelopmentMode bool
	AssetLocations  = []string{
		"public/",
		"app/assets",
	}
)

When DevelopmentMode is set to true, minified versions of assets will not be preferred. When it is set to false, assets with a .min extension will be preferred and if there are minifiers registered, they will be used on the relevant assets.

View Source
var (
	BasePath string
)
View Source
var RequiredFuncs = template.FuncMap{
	"assetCheckCache": func(n string) bool {
		v, ok := finishedAssets[n]
		if DevelopmentMode {
			return false
		} else {
			if ok && v {
				return true
			}
			finishedAssets[n] = false

			return false
		}
	},
	"assetLoad": func(t, n string) template.HTML {
		if DevelopmentMode {
			if asset, ok := developmentCssAssets[cleanExts(n)]; ok {
				return template.HTML(asset)
			}
			if asset, ok := developmentJsAssets[cleanExts(n)]; ok {
				return template.HTML(asset)
			}
		} else {
			if asset, ok := productionCssAssets[cleanExts(n)]; ok {
				return template.HTML(asset)
			}
			if asset, ok := productionJsAssets[cleanExts(n)]; ok {
				return template.HTML(asset)
			}
		}
		return template.HTML("")
	},
	"assetCssLoad": func(n string) template.CSS {
		if DevelopmentMode {
			if asset, ok := developmentCssAssets[cleanExts(n)]; ok {
				return template.CSS(asset)
			}
		} else {
			if asset, ok := productionCssAssets[cleanExts(n)]; ok {
				return template.CSS(asset)
			}
		}
		return template.CSS("")
	},
	"assetJsLoad": func(n string) template.JS {
		if DevelopmentMode {
			if asset, ok := developmentJsAssets[cleanExts(n)]; ok {
				return template.JS(asset)
			}
		} else {
			if asset, ok := productionJsAssets[cleanExts(n)]; ok {
				return template.JS(asset)
			}
		}
		return template.JS("")
	},
	"assetTree": func(t, n string) template.HTML {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentJsAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		} else {
			for name, asset := range productionJsAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		}

		return template.HTML(output)
	},
	"assetJsTree": func(n string) template.CSS {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentJsAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
			for name, asset := range developmentCssAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		} else {
			for name, asset := range productionCssAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}

			for name, asset := range productionJsAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		}

		return template.CSS(output)
	},
	"assetCssTree": func(n string) template.JS {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentCssAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		} else {
			for name, asset := range productionCssAssets {
				if strings.HasPrefix(name, n+"/") {
					output += asset
				}
			}
		}
		return template.JS(output)
	},
	"assetDir": func(t, n string) template.HTML {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentJsAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {

					output += asset
				}
			}
			for name, asset := range developmentCssAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}
		} else {
			for name, asset := range productionCssAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}

			for name, asset := range productionJsAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}
		}

		return template.HTML(output)
	},
	"assetJsDir": func(n string) template.CSS {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentJsAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {

					output += asset
				}
			}
		} else {

			for name, asset := range productionJsAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}
		}

		return template.CSS(output)
	},
	"assetCssDir": func(n string) template.JS {
		var output string
		if DevelopmentMode {
			for name, asset := range developmentCssAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}
		} else {
			for name, asset := range productionCssAssets {
				if strings.HasPrefix(name, n+"/") && !strings.Contains(name[len(n):], "/") {
					output += asset
				}
			}
		}

		return template.JS(output)
	},
}

Functions

func LoadCache

func LoadCache()

func Parse

func Parse(name, content string) (map[string]*parse.Tree, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL