xref: /plugin/combo/conf/metadata.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1<?php
2
3/**
4 * Load all class via Plugin Utility
5 */
6require_once(__DIR__ . '/../vendor/autoload.php');
7
8use ComboStrap\Tag\AdTag;
9use ComboStrap\Api\QualityMessageHandler;
10use ComboStrap\BlockquoteTag;
11use ComboStrap\Bootstrap;
12use ComboStrap\BrandingColors;
13use ComboStrap\Breakpoint;
14use ComboStrap\Canonical;
15use ComboStrap\ColorRgb;
16use ComboStrap\ContainerTag;
17use ComboStrap\FetcherRailBar;
18use ComboStrap\FetcherSvg;
19use ComboStrap\FloatAttribute;
20use ComboStrap\IconDownloader;
21use ComboStrap\Identity;
22use ComboStrap\LazyLoad;
23use ComboStrap\LinkMarkup;
24use ComboStrap\LowQualityPage;
25use ComboStrap\MediaMarkup;
26use ComboStrap\Meta\Field\TwitterImage;
27use ComboStrap\MetadataFrontmatterStore;
28use ComboStrap\Outline;
29use ComboStrap\PageProtection;
30use ComboStrap\PagePublicationDate;
31use ComboStrap\Tag\RelatedTag;
32use ComboStrap\TemplateEngine;
33use ComboStrap\PageType;
34use ComboStrap\PageUrlType;
35use ComboStrap\Prism;
36use ComboStrap\PrismTags;
37use ComboStrap\RasterImageLink;
38use ComboStrap\Meta\Field\Region;
39use ComboStrap\RouterBestEndPage;
40use ComboStrap\TagAttribute\Shadow;
41use ComboStrap\SiteConfig;
42use ComboStrap\Snippet;
43use ComboStrap\SvgImageLink;
44
45
46require_once(__DIR__ . '/../syntax/related.php');
47
48
49// https://www.dokuwiki.org/devel:configuration
50$meta[RelatedTag::MAX_LINKS_CONF] = array('numeric');
51$meta[RelatedTag::EXTRA_PATTERN_CONF] = array('string');
52
53/**
54 * Disqus
55 */
56require_once(__DIR__ . '/../syntax/disqus.php');
57$meta[syntax_plugin_combo_disqus::CONF_DEFAULT_ATTRIBUTES] = array('string');
58
59
60/**
61 * Url Manager
62 */
63$meta[action_plugin_combo_router::ROUTER_ENABLE_CONF] = array('onoff');
64$meta[action_plugin_combo_routermessage::CONF_SHOW_PAGE_NAME_IS_NOT_UNIQUE] = array('onoff');
65$meta[action_plugin_combo_routermessage::CONF_SHOW_MESSAGE_CLASSIC] = array('onoff');
66
67$actionChoices = array('multichoice', '_choices' => array(
68    action_plugin_combo_router::NOTHING,
69    action_plugin_combo_router::GO_TO_BEST_END_PAGE_NAME,
70    action_plugin_combo_router::GO_TO_NS_START_PAGE,
71    action_plugin_combo_router::GO_TO_BEST_PAGE_NAME,
72    action_plugin_combo_router::GO_TO_BEST_NAMESPACE,
73    action_plugin_combo_router::GO_TO_SEARCH_ENGINE
74));
75$meta['GoToEditMode'] = array('onoff');
76$meta['ActionReaderFirst'] = $actionChoices;
77$meta['ActionReaderSecond'] = $actionChoices;
78$meta['ActionReaderThird'] = $actionChoices;
79$meta['WeightFactorForSamePageName'] = array('string');
80$meta['WeightFactorForStartPage'] = array('string');
81$meta['WeightFactorForSameNamespace'] = array('string');
82
83$meta[RouterBestEndPage::CONF_MINIMAL_SCORE_FOR_REDIRECT] = array('string');
84
85$meta[Canonical::CONF_CANONICAL_LAST_NAMES_COUNT] = array('string');
86$meta[action_plugin_combo_canonical::CONF_CANONICAL_FOR_GA_PAGE_VIEW] = array('onoff');
87
88/**
89 * Icon namespace where the downloaded icon are stored
90 */
91$meta[IconDownloader::CONF_ICONS_MEDIA_NAMESPACE] = array('string');
92$meta[IconDownloader::CONF_DEFAULT_ICON_LIBRARY] = array('multichoice', '_choices' => array_keys(IconDownloader::PUBLIC_LIBRARY_ACRONYM));
93
94
95/**
96 * Css optimization
97 */
98$meta[action_plugin_combo_css::CONF_ENABLE_MINIMAL_FRONTEND_STYLESHEET] = array('onoff');
99$meta[action_plugin_combo_css::CONF_DISABLE_DOKUWIKI_STYLESHEET] = array('onoff');
100
101/**
102 * Metadata Viewer
103 */
104$meta[syntax_plugin_combo_metadata::CONF_METADATA_DEFAULT_ATTRIBUTES] = array('string');
105
106/**
107 * Badge
108 */
109$meta[syntax_plugin_combo_badge::CONF_DEFAULT_ATTRIBUTES_KEY] = array('string');
110
111/**
112 * Ads
113 */
114$meta[AdTag::CONF_IN_ARTICLE_ENABLED] = array('onoff');
115$meta[AdTag::CONF_IN_ARTICLE_PLACEHOLDER] = array('onoff');
116
117/**
118 * Code / File / Console
119 */
120$meta[syntax_plugin_combo_code::CONF_CODE_ENABLE] = array('onoff');
121$meta[Prism::CONF_PRISM_THEME] = array('multichoice', '_choices' => array_keys(Prism::THEMES_INTEGRITY));
122$meta[Prism::CONF_BASH_PROMPT] = array('string');
123$meta[Prism::CONF_BATCH_PROMPT] = array('string');
124$meta[Prism::CONF_POWERSHELL_PROMPT] = array('string');
125$meta[PrismTags::CONF_FILE_ENABLE] = array('onoff');
126
127/**
128 * Quality (SEO)
129 */
130require_once(__DIR__ . '/../ComboStrap/LowQualityPage.php');
131$meta[LowQualityPage::CONF_LOW_QUALITY_PAGE_PROTECTION_ENABLE] = array('onoff');
132$meta[LowQualityPage::CONF_LOW_QUALITY_PAGE_PROTECTION_MODE] = array('multichoice', '_choices' => array(
133    PageProtection::CONF_VALUE_ROBOT,
134    PageProtection::CONF_VALUE_FEED,
135    PageProtection::CONF_VALUE_ACL,
136    PageProtection::CONF_VALUE_HIDDEN
137));
138$meta[LowQualityPage::CONF_LOW_QUALITY_PAGE_LINK_TYPE] = array('multichoice', '_choices' => array(
139    PageProtection::PAGE_PROTECTION_LINK_NORMAL,
140    PageProtection::PAGE_PROTECTION_LINK_WARNING,
141    PageProtection::PAGE_PROTECTION_LINK_LOGIN,
142));
143
144/**
145 * Preformatted mode enable
146 */
147$meta[syntax_plugin_combo_preformatted::CONF_PREFORMATTED_ENABLE] = array('onoff');
148$meta[syntax_plugin_combo_preformatted::CONF_PREFORMATTED_EMPTY_CONTENT_NOT_PRINTED_ENABLE] = array('onoff');
149
150/**
151 * The mandatory rules
152 */
153$meta[renderer_plugin_combo_analytics::CONF_MANDATORY_QUALITY_RULES] = array('multicheckbox', '_choices' => renderer_plugin_combo_analytics::QUALITY_RULES);
154
155/**
156 * The quality rules excluded from monitoring
157 */
158$meta[QualityMessageHandler::CONF_DISABLE_QUALITY_MONITORING] = array('onoff');
159$meta[QualityMessageHandler::CONF_EXCLUDED_QUALITY_RULES_FROM_DYNAMIC_MONITORING] = array('multicheckbox', '_choices' => renderer_plugin_combo_analytics::QUALITY_RULES);
160
161/**
162 * Link
163 */
164$meta[LinkMarkup::CONF_USE_DOKUWIKI_CLASS_NAME] = array('onoff');
165$meta[LinkMarkup::CONF_PREVIEW_LINK] = array('onoff');
166$meta[syntax_plugin_combo_link::CONF_DISABLE_LINK] = array('onoff');
167
168/**
169 * Twitter
170 */
171$meta[action_plugin_combo_metatwitter::CONF_TWITTER_SITE_HANDLE] = array('string');
172$meta[action_plugin_combo_metatwitter::CONF_TWITTER_SITE_ID] = array('string');
173$meta[action_plugin_combo_metatwitter::CONF_DONT_NOT_TRACK] = array('multichoice', '_choices' => array(
174    action_plugin_combo_metatwitter::CONF_ON,
175    action_plugin_combo_metatwitter::CONF_OFF
176));
177$meta[BlockquoteTag::CONF_TWEET_WIDGETS_THEME] = array('string');
178$meta[BlockquoteTag::CONF_TWEET_WIDGETS_BORDER] = array('string');
179
180
181/**
182 * Facebook
183 */
184$meta[action_plugin_combo_metafacebook::CONF_DEFAULT_FACEBOOK_IMAGE] = array('string');
185
186/**
187 * Language region
188 */
189$meta[Region::CONF_SITE_LANGUAGE_REGION] = array("string");
190
191/**
192 * Late publication protection
193 */
194$meta[PagePublicationDate::CONF_LATE_PUBLICATION_PROTECTION_ENABLE] = array('onoff');
195$meta[PagePublicationDate::CONF_LATE_PUBLICATION_PROTECTION_MODE] = array('multichoice', '_choices' => array(
196    PageProtection::CONF_VALUE_ROBOT,
197    PageProtection::CONF_VALUE_FEED,
198    PageProtection::CONF_VALUE_ACL,
199    PageProtection::CONF_VALUE_HIDDEN
200));
201
202/**
203 * Default Page Type
204 */
205$meta[PageType::CONF_DEFAULT_PAGE_TYPE] = array("string");
206
207/**
208 * Default Shadow level
209 */
210$meta[Shadow::CONF_DEFAULT_VALUE] = array('multichoice', '_choices' => array(
211    Shadow::CONF_SMALL_LEVEL_VALUE,
212    Shadow::CONF_MEDIUM_LEVEL_VALUE,
213    Shadow::CONF_LARGE_LEVEL_VALUE,
214    Shadow::CONF_EXTRA_LARGE_LEVEL_VALUE
215));
216
217
218/**
219 * Big Svg Lazy load
220 */
221require_once(__DIR__ . '/../ComboStrap/SvgImageLink.php');
222$meta[SvgImageLink::CONF_LAZY_LOAD_ENABLE] = array('onoff');
223
224/**
225 * Big Svg Injection
226 */
227$meta[SvgImageLink::CONF_SVG_INJECTION_ENABLE] = array('onoff');
228
229/**
230 * Svg Optimization
231 */
232$meta[FetcherSvg::CONF_SVG_OPTIMIZATION_ENABLE] = array('onoff');
233
234/**
235 * Inline Element (svg, javascript)
236 */
237$meta[SiteConfig::HTML_MAX_KB_SIZE_FOR_INLINE_ELEMENT] = array('numeric');
238
239/**
240 * Svg Upload Group Name
241 */
242$meta[Identity::CONF_DESIGNER_GROUP_NAME] = array('string');
243
244/**
245 * Svg The attribute that are deleted with the optimization
246 * {@link FetcherSvg::CONF_OPTIMIZATION_ATTRIBUTES_TO_DELETE}
247 */
248$meta[FetcherSvg::CONF_OPTIMIZATION_ATTRIBUTES_TO_DELETE] = array('string');
249$meta[FetcherSvg::CONF_OPTIMIZATION_ELEMENTS_TO_DELETE] = array('string');
250$meta[FetcherSvg::CONF_OPTIMIZATION_ELEMENTS_TO_DELETE_IF_EMPTY] = array('string');
251$meta[FetcherSvg::CONF_OPTIMIZATION_NAMESPACES_TO_KEEP] = array('string');
252$meta[FetcherSvg::CONF_PRESERVE_ASPECT_RATIO_DEFAULT] = array('string');
253
254/**
255 * Raster Lazy load image
256 */
257$meta[LazyLoad::CONF_RASTER_ENABLE] = array('onoff');
258$meta[RasterImageLink::CONF_RESPONSIVE_IMAGE_MARGIN] = array('string');
259$meta[RasterImageLink::CONF_RETINA_SUPPORT_ENABLED] = array('onoff');
260
261/**
262 * Lazy loading
263 */
264$meta[LazyLoad::CONF_LAZY_LOADING_PLACEHOLDER_COLOR] = array("string");
265
266/**
267 * Internal media
268 */
269$meta[syntax_plugin_combo_media::CONF_IMAGE_ENABLE] = array('onoff');
270
271/**
272 * Internal media default linking
273 */
274$meta[MediaMarkup::CONF_DEFAULT_LINKING] = array('multichoice', '_choices' => array(
275    MediaMarkup::LINKING_DIRECT_VALUE,
276    MediaMarkup::LINKING_DETAILS_VALUE,
277    MediaMarkup::LINKING_LINKONLY_VALUE,
278    MediaMarkup::LINKING_NOLINK_VALUE,
279));
280
281/**
282 * Default breakpoint
283 */
284$meta[FloatAttribute::CONF_FLOAT_DEFAULT_BREAKPOINT] = array('multichoice', '_choices' => array(
285    "xs",
286    "sm",
287    "md",
288    "lg",
289    "xl",
290    "xxl"
291));
292
293/**
294 * Outline Numbering
295 */
296$meta[Outline::CONF_OUTLINE_NUMBERING_ENABLE] = array("onoff");
297$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_STYLE_LEVEL2] = array('multichoice', '_choices' => Outline::CONF_COUNTER_STYLES_CHOICES);
298$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_STYLE_LEVEL3] = array('multichoice', '_choices' => Outline::CONF_COUNTER_STYLES_CHOICES);
299$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_STYLE_LEVEL4] = array('multichoice', '_choices' => Outline::CONF_COUNTER_STYLES_CHOICES);
300$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_STYLE_LEVEL5] = array('multichoice', '_choices' => Outline::CONF_COUNTER_STYLES_CHOICES);
301$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_STYLE_LEVEL6] = array('multichoice', '_choices' => Outline::CONF_COUNTER_STYLES_CHOICES);
302$meta[Outline::CONF_OUTLINE_NUMBERING_COUNTER_SEPARATOR] = array("string");
303$meta[Outline::CONF_OUTLINE_NUMBERING_PREFIX] = array("string");
304$meta[Outline::CONF_OUTLINE_NUMBERING_SUFFIX] = array("string");
305
306/**
307 * Identity form
308 */
309$meta[Identity::CONF_ENABLE_LOGO_ON_IDENTITY_FORMS] = array("onoff");
310$meta[action_plugin_combo_registration::CONF_ENABLE_REGISTER_FORM] = array("onoff");
311$meta[action_plugin_combo_login::CONF_ENABLE_LOGIN_FORM] = array("onoff");
312$meta[action_plugin_combo_resend::CONF_ENABLE_RESEND_PWD_FORM] = array("onoff");
313$meta[action_plugin_combo_profile::CONF_ENABLE_PROFILE_UPDATE_FORM] = array("onoff");
314$meta[action_plugin_combo_profile::CONF_ENABLE_PROFILE_DELETE_FORM] = array("onoff");
315
316/**
317 * Comment
318 */
319$meta[syntax_plugin_combo_comment::CONF_OUTPUT_COMMENT] = array("onoff");
320
321/**
322 * Cache
323 */
324$meta[action_plugin_combo_staticresource::CONF_STATIC_CACHE_ENABLED] = array("onoff");
325
326/**
327 * Link Wizard
328 */
329$meta[action_plugin_combo_linkwizard::CONF_ENABLE_ENHANCED_LINK_WIZARD] = array("onoff");
330
331/**
332 * Canonical Url Type
333 */
334$meta[PageUrlType::CONF_CANONICAL_URL_TYPE] = array('multichoice', '_choices' => PageUrlType::CONF_VALUES);
335
336/**
337 * Frontmatter on sumbit
338 */
339$meta[MetadataFrontmatterStore::CONF_ENABLE_FRONT_MATTER_ON_SUBMIT] = array("onoff");
340
341/**
342 * Heading
343 */
344$meta[syntax_plugin_combo_headingwiki::CONF_WIKI_HEADING_ENABLE] = array("onoff");
345
346/**
347 * Branding Colors
348 */
349$meta[BrandingColors::PRIMARY_COLOR_CONF] = array("string");
350$meta[ColorRgb::SECONDARY_COLOR_CONF] = array("string");
351$meta[BrandingColors::BRANDING_COLOR_INHERITANCE_ENABLE_CONF] = array("onoff");
352
353/**
354 * Highlight
355 */
356$meta[syntax_plugin_combo_highlightwiki::CONF_HIGHLIGHT_WIKI_ENABLE] = array("onoff");
357
358/**
359 * Default page layout container
360 */
361$meta[ContainerTag::DEFAULT_LAYOUT_CONTAINER_CONF] = array('multichoice', '_choices' => ContainerTag::CONTAINER_VALUES);
362
363/**
364 * Take over the show
365 */
366$meta[SiteConfig::CONF_ENABLE_THEME_SYSTEM] = array("onoff");
367
368/**
369 * Railbar
370 */
371$meta[FetcherRailBar::CONF_PRIVATE_RAIL_BAR] = array('onoff');
372$meta[FetcherRailBar::CONF_BREAKPOINT_RAIL_BAR] = array('multichoice', '_choices' => array(
373    Breakpoint::EXTRA_SMALL_NAME,
374    Breakpoint::BREAKPOINT_SMALL_NAME,
375    Breakpoint::BREAKPOINT_MEDIUM_NAME,
376    Breakpoint::BREAKPOINT_LARGE_NAME,
377    Breakpoint::BREAKPOINT_EXTRA_LARGE_NAME,
378    Breakpoint::EXTRA_EXTRA_LARGE_NAME,
379    Breakpoint::NEVER_NAME
380));
381
382
383$meta[Snippet::CONF_USE_CDN] = array('onoff');
384
385/**
386 * Bootstrap
387 */
388$bootstrapStyleSheet = Bootstrap::getQualifiedVersions();
389$meta[Bootstrap::CONF_BOOTSTRAP_VERSION_STYLESHEET] = array('multichoice', '_choices' => $bootstrapStyleSheet);
390
391/**
392 * Preload css ?
393 */
394$meta[action_plugin_combo_snippetsbootstrap::CONF_PRELOAD_CSS] = array('onoff');
395
396/**
397 * Jquery doku vs Bootstrap
398 */
399$meta[action_plugin_combo_snippetsbootstrap::CONF_JQUERY_DOKU] = array('onoff');
400
401/**
402 * Disable
403 */
404$meta[action_plugin_combo_snippetsbootstrap::CONF_DISABLE_BACKEND_JAVASCRIPT] = array('onoff');
405
406/**
407 * Rem conf
408 */
409$meta[SiteConfig::REM_CONF] = array('numeric');
410
411/**
412 * Theme
413 */
414$themes = TemplateEngine::getThemes();
415$meta[TemplateEngine::CONF_THEME] = array('multichoice', '_choices' => $themes);
416
417
418