|
1 | 1 | local cjson = require 'cjson' |
| 2 | +local Datelib = require 'date' |
2 | 3 | local Liquid = {} |
3 | 4 | local Lexer = {} |
4 | 5 | local Parser = {} |
@@ -3076,6 +3077,34 @@ local function str_reverse( str ) |
3076 | 3077 | return string.reverse(str) |
3077 | 3078 | end |
3078 | 3079 | --=== String filter end |
| 3080 | +--=== Date filter |
| 3081 | +local function date_parse(obj) |
| 3082 | + local dateobj = Datelib(obj) |
| 3083 | + return dateobj |
| 3084 | +end |
| 3085 | + |
| 3086 | +local function date_now() |
| 3087 | + local dateobj = Datelib(true) |
| 3088 | + return dateobj |
| 3089 | +end |
| 3090 | + |
| 3091 | +local date_func = |
| 3092 | +{ |
| 3093 | + ["now"] = date_now, |
| 3094 | + ["default"] = date_parse, |
| 3095 | +} |
| 3096 | + |
| 3097 | +local function date(obj, format) |
| 3098 | + local date_obj = nil; |
| 3099 | + local func = date_func[obj] |
| 3100 | + if func then |
| 3101 | + date_obj = func(obj) |
| 3102 | + else |
| 3103 | + date_obj = date_func["default"](obj) |
| 3104 | + end |
| 3105 | + return date_obj:fmt(format) |
| 3106 | +end |
| 3107 | +--=== Date filter end |
3079 | 3108 | --=== Additional filter begin |
3080 | 3109 | local function json( obj ) |
3081 | 3110 | -- body |
@@ -3134,6 +3163,9 @@ FilterSet:add_filter("url_encode", url_encode ) |
3134 | 3163 | FilterSet:add_filter("url_decode", url_decode ) |
3135 | 3164 | FilterSet:add_filter("str_reverse", str_reverse ) |
3136 | 3165 |
|
| 3166 | +--Date filter |
| 3167 | +FilterSet:add_filter("date", date ) |
| 3168 | + |
3137 | 3169 | --Additinal filter |
3138 | 3170 | FilterSet:add_filter("json", json ) |
3139 | 3171 | FilterSet:add_filter("get", get) |
|
0 commit comments