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