Cutelee  6.1.0
defaultfilters.h
1 /*
2  This file is part of the Cutelee template system.
3 
4  Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either version
9  2.1 of the Licence, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library. If not, see <http://www.gnu.org/licenses/>.
18 
19 */
20 
21 #ifndef DEFAULTFILTERS_H
22 #define DEFAULTFILTERS_H
23 
24 #include "datetime.h"
25 #include "integers.h"
26 #include "lists.h"
27 #include "logic.h"
28 #include "misc.h"
29 #include "stringfilters.h"
30 
31 #include "taglibraryinterface.h"
32 
33 namespace Cutelee
34 {
35 class Parser;
36 }
37 
38 using namespace Cutelee;
39 
40 class DefaultFiltersLibrary : public QObject, public TagLibraryInterface
41 {
42  Q_OBJECT
43  Q_INTERFACES(Cutelee::TagLibraryInterface)
44  Q_PLUGIN_METADATA(IID "org.cutelee.TagLibraryInterface")
45 public:
46  DefaultFiltersLibrary(QObject *parent = {}) : QObject(parent) {}
47 
48  QHash<QString, Filter *> filters(const QString &name = {}) override
49  {
50  Q_UNUSED(name);
51 
52  QHash<QString, Filter *> filters;
53 
54  filters.insert(QStringLiteral("add"), new AddFilter());
55  filters.insert(QStringLiteral("addslashes"), new AddSlashesFilter());
56  filters.insert(QStringLiteral("capfirst"), new CapFirstFilter());
57  filters.insert(QStringLiteral("center"), new CenterFilter());
58  filters.insert(QStringLiteral("cut"), new CutFilter());
59  filters.insert(QStringLiteral("date"), new DateFilter());
60  filters.insert(QStringLiteral("default"), new DefaultFilter());
61  filters.insert(QStringLiteral("default_if_none"),
62  new DefaultIfNoneFilter());
63  filters.insert(QStringLiteral("dictsort"), new DictSortFilter());
64  filters.insert(QStringLiteral("divisibleby"), new DivisibleByFilter());
65  filters.insert(QStringLiteral("escape"), new EscapeFilter());
66  filters.insert(QStringLiteral("escapejs"), new EscapeJsFilter());
67  filters.insert(QStringLiteral("first"), new FirstFilter());
68  filters.insert(QStringLiteral("fix_ampersands"), new FixAmpersandsFilter());
69  filters.insert(QStringLiteral("floatformat"), new FloatFormatFilter());
70  filters.insert(QStringLiteral("filesizeformat"), new FileSizeFormatFilter());
71  filters.insert(QStringLiteral("force_escape"), new ForceEscapeFilter());
72  filters.insert(QStringLiteral("get_digit"), new GetDigitFilter());
73  filters.insert(QStringLiteral("join"), new JoinFilter());
74  filters.insert(QStringLiteral("json_script"), new JsonScriptFilter());
75  filters.insert(QStringLiteral("last"), new LastFilter());
76  filters.insert(QStringLiteral("length"), new LengthFilter());
77  filters.insert(QStringLiteral("length_is"), new LengthIsFilter());
78  filters.insert(QStringLiteral("linebreaks"), new LineBreaksFilter());
79  filters.insert(QStringLiteral("linebreaksbr"), new LineBreaksBrFilter());
80  filters.insert(QStringLiteral("linenumbers"), new LineNumbersFilter());
81  filters.insert(QStringLiteral("ljust"), new LJustFilter());
82  filters.insert(QStringLiteral("lower"), new LowerFilter());
83  filters.insert(QStringLiteral("make_list"), new MakeListFilter());
84  filters.insert(QStringLiteral("random"), new RandomFilter());
85  filters.insert(QStringLiteral("removetags"), new RemoveTagsFilter());
86  filters.insert(QStringLiteral("rjust"), new RJustFilter());
87  filters.insert(QStringLiteral("safe"), new SafeFilter());
88  filters.insert(QStringLiteral("safeseq"), new SafeSequenceFilter());
89  filters.insert(QStringLiteral("slice"), new SliceFilter());
90  filters.insert(QStringLiteral("slugify"), new SlugifyFilter());
91  filters.insert(QStringLiteral("stringformat"), new StringFormatFilter());
92  filters.insert(QStringLiteral("striptags"), new StripTagsFilter());
93  filters.insert(QStringLiteral("time"), new TimeFilter());
94  filters.insert(QStringLiteral("timesince"), new TimeSinceFilter());
95  filters.insert(QStringLiteral("timeuntil"), new TimeUntilFilter());
96  filters.insert(QStringLiteral("title"), new TitleFilter());
97  filters.insert(QStringLiteral("truncatewords"), new TruncateWordsFilter());
98  filters.insert(QStringLiteral("unordered_list"), new UnorderedListFilter());
99  filters.insert(QStringLiteral("upper"), new UpperFilter());
100  filters.insert(QStringLiteral("wordcount"), new WordCountFilter());
101  filters.insert(QStringLiteral("wordwrap"), new WordWrapFilter());
102  filters.insert(QStringLiteral("yesno"), new YesNoFilter());
103  filters.insert(QStringLiteral("truncatechars"), new TruncateCharsFilter());
104 
105  return filters;
106  }
107 };
108 
109 #endif
The Parser class processes a string template into a tree of nodes.
Definition: parser.h:49
The TagLibraryInterface returns available tags and filters from libraries.
QHash< QString, Filter * > filters(const QString &name={}) override
The Cutelee namespace holds all public Cutelee API.
Definition: Mainpage.dox:8