private static string HandleUserField(Dictionary <string, string> input, string key, TemplateType type, Card card)
        {
            string fieldName = GetFieldName(key);

            if (!input.TryGetValue(fieldName, out var fieldContent))
            {
                LogTo.Error("Failed to HandleUnknownField");
                return(string.Empty);
            }

            var split = key.Split(':');

            if (split.Length > 1)
            {
                // Has filters
                var filters = split
                              .Skip(1) // Skip the fieldName
                              .Reverse()
                              .ToList();

                if (type == TemplateType.Question)
                {
                    fieldContent = FilterHandler.ApplyQuestionFieldFilters(filters, fieldContent, card);
                }

                else
                {
                    fieldContent = FilterHandler.ApplyAnswerFieldFilters(filters, fieldContent, card);
                }
            }

            return(fieldContent);
        }
        private static string HandleSpecialFieldAnswer(Func <Card, string> specialFieldFunc, string key, Card card)
        {
            var split     = key.Split(':');
            var fieldName = split.Last();

            // Add the content from the special field handler
            string specialContent = specialFieldFunc(card);

            // Add filters if specified
            if (split.Length > 1)
            {
                // Has filters
                var filters = split
                              .Skip(1) // Skip the field name
                              .Reverse()
                              .ToList();

                specialContent = FilterHandler.ApplyAnswerFieldFilters(filters, specialContent, card);
            }

            return(specialContent);
        }