diff --git a/.env b/.env new file mode 100644 diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -1 +1,15 @@ *.pyc +*.lock +vendor +bin +var +logs +public/stable5 +public/trunk5 + +###> symfony/webpack-encore-bundle ### +/node_modules/ +/public/build/ +npm-debug.log +yarn-error.log +###< symfony/webpack-encore-bundle ### diff --git a/404.php b/404.php deleted file mode 100644 --- a/404.php +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/assets/css/app.scss b/assets/css/app.scss new file mode 100644 --- /dev/null +++ b/assets/css/app.scss @@ -0,0 +1,665 @@ +@import "~bootstrap/scss/bootstrap"; +@import '~jquery-ui/themes/base/all.css'; + +body { + font-family:'Noto Sans', sans-serif +} +p { + line-height:2em +} +h1,h2,h3 { + line-height:1.5em +} +ul>li { + line-height:2em +} +.header { + position:sticky; + top:0; + display:block; + z-index:2; + background-color:rgba(255,255,255,0.95) +} +.header>* { + margin:auto; + max-width:1140px +} +.header::after { + content:""; + clear:both; + display:block; + background-size:100% 5px; + position:absolute; + height:5px; + width:100%; + left:0; + bottom:0; + background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAFCAYAAACzSkmrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACkSURBVDiN7dExDsIwDEbh9we1soXE6eCEbJyInQNwgKgxQ9WWFrIShr7ZkewvYm/V5fbwLj8NoKTec0lGzp66ZAzJS8jQ4EKG5KLY+FIeYBAOMoRHyFC4YJwpcqVixGYWnHHG1ebs700YHxBAHWM6DqoYHxBvswvGEegbnL1q/pAqxgQB1DE2EEAdY4aABeMEHH57+n+m8/UerZfYW0qtF9hb9wI2bU03vw4M8QAAAABJRU5ErkJggg=="); + z-index:-1 +} +#kHeaderNav { + padding:0; + position:relative +} +#kHeaderNav button { + outline:0 +} +#kHeaderNav .navbar-toggler { + position:relative +} +#kHeaderNav .navbar-toggler:before { + position:absolute; + top:0; + left:50%; + width:42px; + margin-left:-21px; + content:"="; + color:#4d4d4d; + font-family:"glyph"; + font-size:22px; + font-weight:normal; + text-indent:0px; + text-align:center; + line-height:50px; + display:inline-block; + text-decoration:none !important +} +#kHeaderNav a.nav-link,#kHeaderNav a.dropdown-item { + color:#334545; + height:50px; + line-height:50px; + padding:0 20px +} +#kHeaderNav a:hover { + color:#3daefd +} +#kHeaderNav a.nav-link.active { + color:#FFF +} +#kHeaderNav a.nav-link.active:hover { + color:#FFF +} +#kHeaderNav .dropdown-menu { + padding:0 +} +#kHeaderNav a.active:hover,#kHeaderNav .dropdown-menu.show a.nav-link { + color:#334545 +} +#kHeaderNav a:active,#kHeaderNav .active,#kHeaderNav a.dropdown-item:active,#kHeaderNav .navbar-brand-active,#kHeaderNav .dropdown-toggle.show a.nav-link { + background:#54a3d8; + color:#FFF +} +#kHeaderNav .dropdown-toggle.show { + position:relative +} +#kHeaderNav .dropdown-toggle::after { + content:"" !important; + display:none +} +#kHeaderNav .dropdown-toggle .nav-link::after { + display:inline-block; + width:0; + height:0; + margin-left:.5em; + vertical-align:.255em; + content:""; + border-top:.3em solid; + border-right:.3em solid transparent; + border-bottom:0; + border-left:.3em solid transparent +} +#kHeaderNav .dropdown-menu { + border-radius:0px; + border:1px solid #54a3d8; + border-top:none; + margin:0; + padding:0; + background-color:initial +} +@media (min-width: 575px) { + #kHeaderNav .dropdown-menu { + background-color:#fff + } +} +#kHeaderNav .dropdown-menu a { + display:block; + text-align:center; + text-decoration:none; + background-size:100%; + background-position:center; + background-repeat:no-repeat; + transition:background-size 0.4s; + position:relative +} +#kHeaderNav .dropdown-menu a::before { + content:''; + width:100%; + height:100%; + top:0; + left:0; + position:absolute; + background-repeat:no-repeat; + background-position:center; + background-size:101%; + z-index:-1; + transition:background-size 0.3s +} +#kHeaderNav a.kontact-menu-features::before { + background-image:url(/assets/img/kontact-menu-features.png) +} +#kHeaderNav a.kontact-menu-features:hover::before { + background-size:150% +} +#kHeaderNav a.kontact-menu-features { + min-width:360px; + min-height:150px; + line-height:150px; + color:#334545; + font-size:1.5em +} +#kHeaderNav .kontact-menu-apps { + display:flex; + flex-wrap:wrap +} +#kHeaderNav .kontact-menu-apps a { + width:50%; + height:auto; + position:relative; + min-height:100px; + line-height:100px; + font-size:1.3em; + color:#334545 +} +#kHeaderNav .kontact-menu-apps a::before { + background-size:155%; + opacity:0.3 +} +#kHeaderNav .kontact-menu-apps a:hover::before { + background-size:65%; + transition:background-size 0.3s +} +#kHeaderNav a.kontact-menu-apps-kmail::before { + background-image:url(/assets/img/icon-kmail.svg) +} +#kHeaderNav a.kontact-menu-apps-korganizer::before { + background-image:url(/assets/img/icon-korganizer.svg) +} +#kHeaderNav a.kontact-menu-apps-kaddressbook::before { + background-image:url(/assets/img/icon-kaddressbook.svg) +} +#kHeaderNav a.kontact-menu-apps-akregator::before { + background-image:url(/assets/img/icon-akregator.svg) +} +#kHeaderNav a.kontact-menu-apps-knotes::before { + background-image:url(/assets/img/icon-knotes.svg) +} +#kHeaderNav a.kontact-menu-apps-akonadi::before { + background-image:url(/assets/img/icon-akonadi.png) +} +#kHeaderNav .navbar-toggler { + order:2 +} +#KontactGlobalLogo { + margin:0; + margin-top:-3px; + text-align:center; + line-height:50px; + height:50px; + padding:0 10px; + order:1 +} +#KontactGlobalLogo>img { + width:70%; + margin-top:-3px +} +#kMainNavbar { + order:4 +} +@media (min-width: 768px) { + #kMainNavbar { + order:3 + } +} +#KMadeByKDE { + order:3; + padding-right:15px +} +#KMadeByKDE span { + display:none +} +@media (min-width: 768px) { + #KMadeByKDE span { + display:inline + } +} +@media (min-width: 768px) { + #KMadeByKDE { + order:4 + } +} +main.main { + margin:auto; + margin-bottom:50px; + width:100%; + max-width:1140px; + padding:0 30px +} +@media (min-width: 1140px) { + main.main { + padding-left:0; + padding-right:0 + } +} +main .block { + padding:30px 20px +} +main.navfix { + margin-top:50px +} +#kWelcome { + font-size:18px; + border-radius:2px; + border:solid 1px #abdaf9; + background-color:#e1f2ff; + color:#375a7d; + padding:10px 20px; + margin-top:60px; + margin-bottom:60px; + text-align:center +} +#kWelcome p { + padding:0; + margin:0 +} +#kFooter { + background-color:#eff1f1; + color:#7f8c8d; + position:relative; + padding-top:12px; + font-size:12px; + width:100%; + clear:both +} +#kFooter a { + text-decoration:none; + color:#2980b9 +} +#kFooter section { + width:100%; + max-width:1140px; + margin:auto; + padding:0 20px +} +#kFooter #KSiteDonateForm { + background-color:#abf9c7; + border:solid 1px #7ceca4; + border-radius:2px; + margin-top:10px; + padding-top:10px; + padding-bottom:10px +} +#kFooter #KSiteDonateForm h3 { + font-size:14px; + font-weight:bold; + color:#377d50; + padding:0 0 10px; + margin:0 +} +#kFooter #KSiteDonateForm h3 a { + font-width:normal; + margin-left:20px; + color:#2980b9 +} +#kFooter #KSiteDonateForm h3 a::before { + content:"( "; + color:#377d50 +} +#kFooter #KSiteDonateForm h3 a::after { + content:" )"; + color:#377d50 +} +#kFooter #KSiteDonateForm #otherWaysDonate { + display:inline-block; + font-size:14px; + margin-top:10px +} +#kFooter #KGlobalContributorLinks { + padding:0 20px; + box-sizing:border-box; + max-width:100%; + background-color:rgba(0,0,0,0.05); + position:relative; + margin:auto +} +#kFooter #KGlobalContributorLinks nav { + max-width:1100px; + padding:0; + line-height:50px; + margin:auto; + font-size:14px; + width:100%; + position:relative +} +#kFooter #KGlobalLegalInfo { + padding:20px +} +#kFooter #KGlobalLegalInfo small { + font-size:12px +} +#kFooter #KGlobalLegalInfo figure { + display:inline-block; + padding:0; + margin:0 +} +#kFooter #KGlobalLegalInfo small+small::before { + content:" | "; + color:#bdc3c7; + margin:0 10px +} +#kLinks { + padding:30px 20px 30px 0 +} +#kLinks nav { + width:20%; + display:inline-block; + box-sizing:border-box; + vertical-align:top; + font-size:12px; + padding:10px 0 10px 20px +} +#kLinks nav h3 { + font-size:14px; + color:#95a5a6; + margin:0 0 10px 0; + font-weight:bold +} +#kLinks a { + display:block; + line-height:150% +} +#kLinks a::after { + color:#7f8c8d; + position:relative; + content:">"; + font-family:"glyph"; + vertical-align:baseline; + top:.1em; + padding-left:10px +} +.konqi { + float:right; + width:250px; + margin-top:-50px; + margin-left:40px +} +.icon { + margin-left:20px +} +.icon::before { + content:""; + position:absolute; + display:block; + width:32px; + height:50px; + left:5px; + background-repeat:no-repeat; + background-size:24px; + background-position:center +} +.icon-kontact::before { + background-image:url(/assets/img/icon-kontact.svg) +} +.icon-kmail::before { + background-image:url(/assets/img/icon-kmail.svg) +} +.icon-korganizer::before { + background-image:url(/assets/img/icon-korganizer.svg) +} +.icon-kaddressbook::before { + background-image:url(/assets/img/icon-kaddressbook.svg) +} +.icon-knotes::before { + background-image:url(/assets/img/icon-knotes.svg) +} +.icon-akregator::before { + background-image:url(/assets/img/icon-akregator.svg) +} +.preview { + cursor:pointer +} +#kImagePreview { + text-align:center +} +#kImagePreview img { + margin:auto; + cursor:pointer; + max-width:100% +} +#kImagePreviewContainer { + width:100%; + height:100%; + display:flex; + flex-direction:column; + align-items:center; + pointer-events:none +} +.kSocialLinks { + line-height:50px +} +.kSocialLinks a:not(.no-glyph) { + display:inline-block; + color:#fafafa; + background:#27AE60; + position:relative; + text-indent:-9999px; + width:24px; + line-height:30px; + padding:0px 10px; + border-radius:3px; + transition:all .2s +} +.kSocialLinks a:after { + content:"@"; + font-family:'glyph'; + font-size:24px; + text-indent:0px; + color:#fafafa; + position:absolute; + top:0px; + left:0px; + right:0px; + text-align:center +} +.kSocialLinks a.shareFacebook { + background-color:#2980b9 +} +.kSocialLinks a.shareGoogle { + background-color:#d35400 +} +.kSocialLinks a.shareTwitter { + background-color:#3daefd +} +.kSocialLinks a.shareForum { + background-color:#0068c6 +} +.kSocialLinks a.shareTelegram { + background-color:#2ca5e0 +} +.kSocialLinks a.shareFacebook:hover { + background-color:#3498db +} +.kSocialLinks a.shareGoogle:hover { + background-color:#f67400 +} +.kSocialLinks a.shareTwitter:hover { + background-color:#70c3fe +} +.kSocialLinks a.shareForum:hover { + background-color:#1078d6 +} +.kSocialLinks a.shareTelegram:hover { + background-color:#2ca5e0 +} +.kSocialLinks a.shareFacebook:after { + content:"F" +} +.kSocialLinks a.shareGoogle:after { + content:"G" +} +.kSocialLinks a.shareTwitter:after { + content:"T" +} +.kSocialLinks a.shareForum:after { + content:"K" +} +.kSocialLinks a.shareMastodon:after { + content:"M" +} + +a#KDEGlobalLogo.navbar-brand { + padding-left: 5px; + padding-right: 5px; + img { + padding-left: 5px; + paddinf-right: 5px; + } + &:hover { + color: white; + } +} + +@include media-breakpoint-down(lg) { + .nav-item.form-inline { + margin-bottom: 5px; + padding-left: 20px; + } +} +@font-face { + font-family:'glyph'; + src:url("glyph/glyph.eot?d1eayo"); + src:url("glyph/glyph.eot?d1eayo#iefix") format("embedded-opentype"),url("glyph/glyph.ttf?d1eayo") format("truetype"),url("glyph/glyph.woff?d1eayo") format("woff"),url("glyph/glyph.svg?d1eayo#glyph") format("svg"); + font-weight:normal; + font-style:normal +} +[class^="glyph-"],[class*=" glyph-"] { + font-family:'glyph'; + speak:none; + font-style:normal; + font-weight:normal; + font-variant:normal; + text-transform:none; + line-height:1; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale +} +.glyph-favorite:before { + content:"\e900" +} +.glyph-link:before { + content:"\6c" +} +.glyph-share-diaspora:before { + content:"\2a" +} +.glyph-share-facebook:before { + content:"\46" +} +.glyph-share-gplus:before { + content:"\47" +} +.glyph-share-reddit:before { + content:"\52" +} +.glyph-share-twitter:before { + content:"\54" +} +.glyph-share-ycombinator:before { + content:"\59" +} +.glyph-view-catalog:before { + content:"\e908" +} +.glyph-view-categories:before { + content:"\e909" +} +.glyph-view-fullscreen:before { + content:"\e90a" +} +.glyph-view-list-details:before { + content:"\e90b" +} +.glyph-view-list-icons:before { + content:"\e90c" +} +.glyph-view-list-text:before { + content:"\e90d" +} +.glyph-view-list-tree:before { + content:"\e90e" +} +.glyph-view-media-playlist:before { + content:"\e90f" +} +.glyph-window-new:before { + content:"\57" +} +.glyph-video:before { + content:"\56" +} +.glyph-cancel:before { + content:"\5c" +} +.glyph-check:before { + content:"\63" +} +.glyph-close:before { + content:"\58" +} +.glyph-logo-kde:before { + content:"\4b" +} +.glyph-logo-plasma:before { + content:"\50" +} +.glyph-logo-plasmamobile:before { + content:"\4d" +} +.glyph-clear:before { + content:"\78" +} +.glyph-go-down:before { + content:"\76" +} +.glyph-go-home:before { + content:"\48" +} +.glyph-go-next:before { + content:"\3e" +} +.glyph-go-previous:before { + content:"\3c" +} +.glyph-go-up:before { + content:"\5e" +} +.glyph-hamburger:before { + content:"\3d" +} +.glyph-info:before { + content:"\49" +} +.glyph-new-window:before { + content:"\77" +} +.glyph-search:before { + content:"\51" +} +.glyph-settings:before { + content:"\53" +} +.glyph-share:before { + content:"\73" +} +.glyph-share-telegram:before { + content:"\2197" +} diff --git a/assets/glyph/glyph.eot b/assets/glyph/glyph.eot new file mode 100644 index 0000000000000000000000000000000000000000..733439ed3249ac3f40e4393ad07c8ec440540ab2 GIT binary patch literal 5712 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 literal 0 Hc$@ + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/glyph/glyph.ttf b/assets/glyph/glyph.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6bca8bcc5fd89221bb20b652d8d06df54bb0b53e GIT binary patch literal 5556 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.'/.env'); +} + +$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $_SERVER['APP_ENV'] ?: $_ENV['APP_ENV'] ?: 'dev'; +$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV']; +$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0'; diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,18 @@ + ['all' => true], + Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], + Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], +]; diff --git a/config/packages/assets.yaml b/config/packages/assets.yaml new file mode 100644 --- /dev/null +++ b/config/packages/assets.yaml @@ -0,0 +1,3 @@ +framework: + assets: + json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Put the unique name of your app here: the prefix seed + # is used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The app cache caches to the filesystem by default. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: ~ diff --git a/config/packages/dev/debug.yaml b/config/packages/dev/debug.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/debug.yaml @@ -0,0 +1,4 @@ +debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/dev/easy_log_handler.yaml b/config/packages/dev/easy_log_handler.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/easy_log_handler.yaml @@ -0,0 +1,16 @@ +services: + EasyCorp\EasyLog\EasyLogHandler: + public: false + arguments: ['%kernel.logs_dir%/%kernel.environment%.log'] + +#// FIXME: How to add this configuration automatically without messing up with the monolog configuration? +#monolog: +# handlers: +# buffered: +# type: buffer +# handler: easylog +# channels: ['!event'] +# level: debug +# easylog: +# type: service +# id: EasyCorp\EasyLog\EasyLogHandler diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/dev/swiftmailer.yaml b/config/packages/dev/swiftmailer.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/swiftmailer.yaml @@ -0,0 +1,4 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100644 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,29 @@ +parameters: + # Adds a fallback DATABASE_URL if the env var is not set. + # This allows you to run cache:warmup even if your + # environment variables are not available yet. + # You should not need to change this value. + env(DATABASE_URL): '' + +doctrine: + dbal: + # configure these for your database server + driver: 'pdo_mysql' + server_version: '5.7' + charset: utf8mb4 + default_table_options: + charset: utf8mb4 + collate: utf8mb4_unicode_ci + + url: '%env(resolve:DATABASE_URL)%' + orm: + auto_generate_proxy_classes: true + naming_strategy: doctrine.orm.naming_strategy.underscore + auto_mapping: true + mappings: + App: + is_bundle: false + type: annotation + dir: '%kernel.project_dir%/src/Entity' + prefix: 'App\Entity' + alias: App diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100644 --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,5 @@ +doctrine_migrations: + dir_name: '%kernel.project_dir%/src/Migrations' + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + namespace: DoctrineMigrations diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,19 @@ +framework: + secret: '%env(APP_SECRET)%' + #default_locale: en + #csrf_protection: true + #http_method_override: true + + # Enables session support. Note that the session will ONLY be started if you read or write from it. + # Remove or comment this section to explicitly disable session support. + session: + handler_id: ~ + cookie_secure: auto + cookie_samesite: lax + + #esi: true + #fragments: true + php_errors: + log: true + assets: + json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,32 @@ +doctrine: + orm: + auto_generate_proxy_classes: false + metadata_cache_driver: + type: service + id: doctrine.system_cache_provider + query_cache_driver: + type: service + id: doctrine.system_cache_provider + result_cache_driver: + type: service + id: doctrine.result_cache_provider + +services: + doctrine.result_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.result_cache_pool' + doctrine.system_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.system_cache_pool' + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,25 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_404s: + # regex: exclude all 404 errors from the logs + - ^/ + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" + deprecation_filter: + type: filter + handler: deprecation + max_level: info + channels: ["php"] diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,4 @@ +framework: + router: + strict_requirements: ~ + utf8: true diff --git a/config/packages/security.yaml b/config/packages/security.yaml new file mode 100644 --- /dev/null +++ b/config/packages/security.yaml @@ -0,0 +1,24 @@ +security: + # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers + providers: + in_memory: { memory: ~ } + firewalls: + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + main: + anonymous: true + + # activate different ways to authenticate + + # http_basic: true + # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate + + # form_login: true + # https://symfony.com/doc/current/security/form_login_setup.html + + # Easy way to control access for large sections of your site + # Note: Only the *first* access control that matches will be used + access_control: + # - { path: ^/admin, roles: ROLE_ADMIN } + # - { path: ^/profile, roles: ROLE_USER } diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml new file mode 100644 --- /dev/null +++ b/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/config/packages/swiftmailer.yaml b/config/packages/swiftmailer.yaml new file mode 100644 --- /dev/null +++ b/config/packages/swiftmailer.yaml @@ -0,0 +1,3 @@ +swiftmailer: + url: '%env(MAILER_URL)%' + spool: { type: 'memory' } diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,4 @@ +framework: + test: true + session: + storage_id: session.storage.mock_file diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,7 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] diff --git a/config/packages/test/routing.yaml b/config/packages/test/routing.yaml new file mode 100644 --- /dev/null +++ b/config/packages/test/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/test/swiftmailer.yaml b/config/packages/test/swiftmailer.yaml new file mode 100644 --- /dev/null +++ b/config/packages/test/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100644 --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,6 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - '%locale%' diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,4 @@ +twig: + default_path: '%kernel.project_dir%/templates' + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,3 @@ +framework: + validation: + email_validation_mode: html5 diff --git a/config/packages/webpack_encore.yaml b/config/packages/webpack_encore.yaml new file mode 100644 --- /dev/null +++ b/config/packages/webpack_encore.yaml @@ -0,0 +1,4 @@ +webpack_encore: + # The path where Encore is building the assets. + # This should match Encore.setOutputPath() in webpack.config.js. + output_path: '%kernel.project_dir%/public/build' diff --git a/config/routes.yaml b/config/routes.yaml new file mode 100644 --- /dev/null +++ b/config/routes.yaml @@ -0,0 +1,3 @@ +#index: +# path: / +# controller: App\Controller\DefaultController::index diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml new file mode 100644 --- /dev/null +++ b/config/routes/annotations.yaml @@ -0,0 +1,3 @@ +controllers: + resource: ../../src/Controller/ + type: annotation diff --git a/config/routes/dev/twig.yaml b/config/routes/dev/twig.yaml new file mode 100644 --- /dev/null +++ b/config/routes/dev/twig.yaml @@ -0,0 +1,3 @@ +_errors: + resource: '@TwigBundle/Resources/config/routing/errors.xml' + prefix: /_error diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml new file mode 100644 --- /dev/null +++ b/config/routes/dev/web_profiler.yaml @@ -0,0 +1,7 @@ +web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + +web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/config/services.yaml b/config/services.yaml new file mode 100644 --- /dev/null +++ b/config/services.yaml @@ -0,0 +1,28 @@ +# This file is the entry point to configure your own services. +# Files in the packages/ subdirectory configure your dependencies. + +# Put parameters here that don't need to change on each machine where the app is deployed +# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration +parameters: + locale: 'en' + +services: + # default configuration for services in *this* file + _defaults: + autowire: true # Automatically injects dependencies in your services. + autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. + + # makes classes in src/ available to be used as services + # this creates a service per class whose id is the fully-qualified class name + App\: + resource: '../src/*' + exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}' + + # controllers are imported separately to make sure services can be injected + # as action arguments even if you don't extend any base controller class + App\Controller\: + resource: '../src/Controller' + tags: ['controller.service_arguments'] + + # add more service definitions when explicit configuration is needed + # please note that last definitions always *replace* previous ones diff --git a/create_generated_used.php b/create_generated_used.php --- a/create_generated_used.php +++ b/create_generated_used.php @@ -37,19 +37,21 @@ # full length, without the prefix (with code), without the suffix (.json) $var_name_len = strlen($json_file) - (strlen(JSONFILE_PREFIX) + 3) - 5; $var_name = substr($json_file, strlen(JSONFILE_PREFIX)+3, $var_name_len); - echo "\$$var_name = $array_string;\n"; + echo " const $var_name = $array_string;\n"; } function convert_files($json_dir) { $all_files = scandir($json_dir); echo "\n"; + echo "}?>\n"; } $json_files_dir = "."; diff --git a/dblatex-cvs-install/bin/dblatex b/dblatex-cvs-install/bin/dblatex deleted file mode 100755 --- a/dblatex-cvs-install/bin/dblatex +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# This script is automatically created by -# ./configure --prefix=/home/phil/sources/dblatex-cvs-install --catalog=/home/phil/cvs-kde/share/apps/ksgmltools2/customization/catalog -# -#SGML_CATALOG_FILES is exported by generator - -DBLATEX_BASE_DIR=${DBLATEX_BASE_DIR:-/home/docs/docs} - -TEXINPUTS=:${DBLATEX_BASE_DIR}/dblatex-cvs-install/share/dblatex/latex//:$TEXINPUTS -export TEXINPUTS - -${DBLATEX_BASE_DIR}/dblatex-cvs-install/share/dblatex/scripts/dblatex $* diff --git a/docgen_conf.ini b/docgen_conf.ini --- a/docgen_conf.ini +++ b/docgen_conf.ini @@ -1,16 +1,16 @@ [common] -work_dir=/home/docs/docs/work -website_dir=/home/docs/website +work_dir=/home/carl/docs/work +website_dir=/home/carl/project/docs-kde-org/public # If the following options are not specified, languages and packages # are read from the files with the same name -#languages= -#packages= -branches=stable4,trunk4,stable5,trunk5 -static_files=404.php,docs.css,favicon.ico,images,include,index.php,intro.inc.html,robots.txt,styles +languages=en,ca +packages=frameworks,kde-workspace +branches=stable5,trunk5 +static_files=docs.css,favicon.ico,images excluded_lang_pdf=es,ja [env.kdelibs4] -compile_dir=/home/docs/docs/kdelibs +compile_dir=/home/carl/project/docs-kde-org/kdelibs docbookxml_path=/usr/share/xml/docbook/schema/dtd/4.2/ docbookxsl_path=/usr/share/xml/docbook/stylesheet/docbook-xsl diff --git a/doclogconfig.ini b/doclogconfig.ini --- a/doclogconfig.ini +++ b/doclogconfig.ini @@ -21,7 +21,7 @@ class=FileHandler level=DEBUG formatter=formatter -args=('/home/docs/logs/%(logfilename)s.log',) +args=('/home/carl/project/docs-kde-org/logs/%(logfilename)s.log',) [formatter_formatter] format=%(asctime)s:%(levelname)s:%(name)s:%(message)s diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 2c9dd50e4d961b11292cae22cc765d531f4d0d93..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@9M;W3ewrL>+bfYFHZNF`#kfUd;jO0d*=ME zM6yOa8#YM9+g1|)oJ8`nL?UqzQ<#M1U;DF0o`=;tMV`_-s=cpJ8EB6>_zlz{PE-Xu z@pGsHrQ!BmjBuhl%$XaJE;Pru(;V%}Zy{Unm3m8Ea$K#NemP)^a*qvi&lji+dX<|o z&U74eqxZNceJMUXO!lJVb2sXR{gPP!!TUwjL3R{-S-0hTtmQ(`CQAHYqWZ8McN1Lr z>*PL+dEpGU-ejOj!)jp^Mp*>~O+4F1YYbb=i;JtNJMr@|)BU{?e9JTD9 zottH5M9*lAil?;|%ns==7!8c;I?<)?=W47Iwb5Hp_)0k^^uNcvPED*mU8y@6zIK^u zy^j7b_t29TPJgN&gBbzzD|6`l>L8up#-Tal#*KJKlpokoxO+WyN9@tWZ$&FlVQzec zUS$?tU+iRQ!NkhS3Z03rXjA<$%}ipLdMdOoG$c4t=4V5Z*Yo0k3oTzqW1OF7acPmZ zBu}&{9xN{{u)4ZR%V#^7>}g|J__}*Gk=7(I`emVd5P}qLp=UIj3HT|(7%mBoIiipIvP{l=#zcOKz;& zFJbb_%OImY%%%bd7c zj9!(FwjheyWFHZGH=4-pl=w&+&HRcy8qNG(GV>c`=GRg1>xfG5s|dFf{5lGLw^9Ee Ve(S=Wo6Y>5Uh~YW;eUr&`wy;ov*`c; diff --git a/include/doc_footer.inc b/include/doc_footer.inc deleted file mode 100644 --- a/include/doc_footer.inc +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - 0) { ?> - - - - - - show(); ?> - - - - - - - \n
\n"; - $hotspotstart = '\n"; - if (!isset($site_search) || ($site_search == true)) { - print $searchstart; - include_once("search.inc"); - print $end; - } - else if ($site_search == "custom") { - print $searchstart; - include_once("$site_root/includes/search.inc"); - print $end; - } - - if (isset($site_hotspot)) { - if ($site_hotspot === true) { - print $hotspotstart; - include_once("hotspot.inc"); - print $end; - } - else - if ($site_hotspot == "custom") { - print $hotspotstart; - include_once("$site_root/includes/hotspot.inc"); - print $end; - } - } - ?> - - - - - - - - - - - - - - - | - | - - - -$name
\n"; -else - $contact = i18n_var("Maintained by kde.org Webmaster
\n"); -?> - - -
- - - - - - - - diff --git a/include/docs.inc b/include/docs.inc deleted file mode 100644 --- a/include/docs.inc +++ /dev/null @@ -1,14 +0,0 @@ -push("Docs Default","/media/styles/standard.css;/docs.css"); - -?> diff --git a/include/docs_classes.inc b/include/docs_classes.inc deleted file mode 100644 --- a/include/docs_classes.inc +++ /dev/null @@ -1,54 +0,0 @@ -name=$name; - $this->items=explode(";",$group); - } - function show($alt) - { - if ( count($this->items) ) - { - $numitems = count( $this->items ); - for ($i=0; $i < $numitems; $i++) - { - echo '\n"; - } - } - } -} - -class StylesheetList -{ - var $items= array(); - function push($name,$group) - { - array_push($this->items,new StylesheetGroup($name,$group)); - } - function show() - { - if ( count($this->items) ) - { - $numitems = count( $this->items ); - for ($i=0; $i < $numitems; $i++) - { - $this->items[$i]->show($i>0); - } - } - } -} - - - -?> diff --git a/include/functions.inc b/include/functions.inc deleted file mode 100644 --- a/include/functions.inc +++ /dev/null @@ -1,304 +0,0 @@ -" . i18n_var("Latest News") . "\n"; - - $news = new RDF(); - $rdf_pieces = $news->openRDF($file); - - if(!$items) - { - $items = 5; // default - } - $rdf_items = count($rdf_pieces); - if ($rdf_items > $items) - { - $rdf_items = $items; - } - - //only open the file if it has something in it - if ($rdf_items > 0) - { - /* Don't display the last story twice - * if there is less than the requested number of stories - * in the RDF file */ - if ($rdf_items < $items) - { - $rdf_items = $rdf_items - 1; - } - - $alternate = false; - - print "\n"; - - if ($summaryonly) - print "\n\n"; - - $prevDate = ""; - for($x=1;$x<=$rdf_items;$x++) - { - $alternate = !$alternate; - if ($alternate) - { - $color = "newsbox1"; - } - else - { - $color = "newsbox2"; - } - ereg("(.*)", $rdf_pieces[$x], $title); - ereg("(.*)", $rdf_pieces[$x], $date); - ereg("(.*)", $rdf_pieces[$x], $fullstory); - print "\n"; - - $printDate = $date[1]; - - $title[1] = utf8_encode($title[1]); - - if ($summaryonly) - { - print "\n"; - print "\n"; - $prevDate = $printDate; - } - else - { - print "\n"; - print "\n"; - } - - print "\n"; - - } - print "
" . i18n_var("Date") . "" . i18n_var("Headline") . "
".(($printDate == $prevDate) ? " " : "$printDate")."$title[1]

$printDate: $title[1]

$fullstory[1]
\n"; - } -} - -function begin_under_construction() -{ - if ($_SERVER["QUERY_STRING"] != "test") - print("\n"); -} - -function startTranslation($dictionary) -{ - global $site_root; - global $site_external; - $topleveldir = explode("/", $_SERVER['REQUEST_URI']); - - if ($site_root == "./") // if the page is not under a sub-directory - { - if (($site_external && ($_SERVER['SERVER_NAME'] != "kde.org")) || !$site_external) // if the page is something like kde.org or konqueror.org - { - $dir_file = $site_root . "/media/includes/i18n/" . $dictionary . "/" . "root.inc"; - $media_file = $site_root . "/media/includes/i18n/" . $dictionary . "/" . "media.inc"; - } - else // something like kde.org/apps/konqueror or kde.org/areas/kde-ev - { - $dir_file = "../../" . $site_root . "/media/includes/i18n/" . $dictionary . "/" . "root.inc"; - $media_file = "../../" . $site_root . "/media/includes/i18n/" . $dictionary . "/" . "media.inc"; - } - } - else - { - if (($site_external && ($_SERVER['SERVER_NAME'] != "kde.org")) || !$site_external) // if the page is something like kde.org or konqueror.org - { - $dir_file = $site_root . "/media/includes/i18n/" . $dictionary . "/" . $topleveldir[1] . ".inc"; - $media_file = $site_root . "/media/includes/i18n/" . $dictionary . "/" . "media.inc"; - } - else // someting like kde.org/apps/konqueror - { - $dir_file = "../../" . $site_root . "/media/includes/i18n/" . $dictionary . "/" . $topleveldir[1] . ".inc"; - $media_file = "../../" . $site_root . "/media/includes/i18n/" . $dictionary . "/" . "media.inc"; - } - } - - if ($dictionary != "en") - { - global $text; //needed! - if (file_exists($media_file)) - { - include($media_file); - } - if (file_exists($dir_file)) - { - include($dir_file); - } - } -} - -function i18nDebug() -{ - global $text; - print "text contains " . count($text) . " items \n"; -} - -function i18n_var($translate) -{ - global $text; - global $site_locale; - if ($site_locale == "en") - { - return $translate; - } - else - { - $translated = $text[$translate]; - if ($translated == "") - { - return $translate; - } - else - { - return $translated; - } - } -} - -function i18n($translate) -{ - global $text; - global $site_locale; - if ($site_locale == "en") - { - print $translate; - } - else - { - $translated = $text[$translate]; - if ($translated == "") - { - print $translate; - } - else - { - print $translated; - } - } -} - -function niceFileSize($path) -{ - if (file_exists($path)) - { - $size = filesize($path); - if ($size > (1024 * 1024)) - { - echo "(" . round($size/(1024*1024)) . "MB)"; - } - else - if ($size > 1024) - { - echo "(" . round($size/1024) . "KB)"; - } - else - { - echo "(" . round($size) . "B)"; - } - } - else - { - echo "(File not available on this server, use printing.kde.org or koffice.org instead)"; - } -} - -function siteLogo($path, $width, $height) -{ - return "src=\"$path\" width=\"$width\" height=\"$height\""; -} - -?> diff --git a/include/header.inc b/include/header.inc deleted file mode 100644 --- a/include/header.inc +++ /dev/null @@ -1,294 +0,0 @@ -\n"; - print "\n"; -?> - - - - - <?php print $title; ?> - - - - - - - - - - - - - - -\n"; - if (isset($rss_feed2_link)) - print "\n"; -?> - -show(); - else - { - if (!$rtl) - echo ''; - else - echo ''; - } -?> - - - - -'; - else - echo ''; -?> - - - -" > - - - - - - - - - - - - -
-
- - - -
-
- - - 0) { ?> - - - -
0) print 'rowspan="2"'; ?> > -
- $page_title\n"; - ?> diff --git a/include/header_docs.inc b/include/header_docs.inc deleted file mode 100644 --- a/include/header_docs.inc +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - KDE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- Skip to main content :: - - \"Home\" - :: - \"\" - -
KDE Documentation
- - -
- -
- - Help :: - Contact Us - - :: Skip to Link Menu
- -   -
-
-
- - - -
-
- -"; -?> diff --git a/include/initialize.inc.php b/include/initialize.inc.php deleted file mode 100644 --- a/include/initialize.inc.php +++ /dev/null @@ -1,97 +0,0 @@ - diff --git a/include/produce_lists.inc.php b/include/produce_lists.inc.php deleted file mode 100644 --- a/include/produce_lists.inc.php +++ /dev/null @@ -1,61 +0,0 @@ - 0, - 'kdelibs' => 0, - 'calligra' => 5, - 'kdereview' => 10, - ); - if ( array_key_exists($p, $weights) ) { - $w = $weights[$p]; - } elseif ( strncmp($p, 'extragear-', strlen('extragear-')) == 0 ) { - $w = 7; - } else { - $w = 2; - } - return $w; -} - -/* - Compare packages, so that a certain order is enforced - (libraries first, then Applications, Extragear and Review) -*/ -function cmp_packages( $p1, $p2 ) -{ - $w1 = package_weight( $p1 ); - $w2 = package_weight( $p2 ); - $dw = $w1 - $w2; - if ( $dw == 0 ) { - /* same weight, so normal comparison */ - return strcmp( $p1, $p2 ); - } else { - return $dw; - } -} - -/* $packagelist: Complete list of all available packages */ -$packagelist = array_keys( $modules_programs ); -usort( $packagelist, 'cmp_packages' ); -/* Check if the requested package is a valid one */ -if ( $selected_package != "" and - (! in_array($selected_package, $packagelist) ) ) { - $selected_package_nonexist = $selected_package; - $show_intro = true; -} - -?> \ No newline at end of file diff --git a/include/staticappdata.inc.php b/include/staticappdata.inc.php deleted file mode 100644 --- a/include/staticappdata.inc.php +++ /dev/null @@ -1,466 +0,0 @@ - diff --git a/index.php b/index.php deleted file mode 100644 --- a/index.php +++ /dev/null @@ -1,546 +0,0 @@ - 0, 'stable5' => 1, 'trunk4' => 2, 'stable4' => 3); - if (in_array($b1, $base_array) && in_array($b2, $base_array)) { - return $base_array[$b1] - $base_array[$b2]; - } -} - -/* - Return the proper package/namespace for the specified application and - branch, using the knowledge generated by the documentation - generator. -*/ -function get_namespace($application, $branch) -{ - global $programs_multiplemodules; - if ( array_key_exists($application, $programs_multiplemodules) ) { - // multiple packages/namespaces: check in the special list of programs_docs - // with multiple modules if there is specific module for the current branch. - foreach ( $programs_multiplemodules[$application] as $s_branch => $s_module ) { - if ( $s_branch == $branch ) { - return $s_module; - } - } - } else { - global $modules_programs; - // single module for all branches, find it - foreach ( $modules_programs as $module => $module_apps ) { - if ( in_array($application, $module_apps) ) { - return $module; - } - } - } -} - -function build_url( $application='', $package='', $lang='', $branch='', $html_path='' ) -{ - $params = array(); - if ( strlen($branch) > 0 ) - $params[] = "branch=".$branch; - if ( strlen($lang) > 0 ) - $params[] = "language=".$lang; - if ( strlen($package) > 0 ) - $params[] = "package=".$package; - if ( strlen($application) > 0 ) - $params[] = "application=".$application; - if ( strlen($html_path) > 0 ) - $params[] = "path=".$html_path; - return "/index.php?" . implode('&', $params); -} - -function build_path( $branch='', $lang='', $application='', $html_path='' ) -{ - $package = get_namespace($application, $branch); - return $branch . - "/" . $lang . - "/" . $package . - "/" . $application . - "/" . $html_path; -} - -function language_for_application_exist( $app, $lang ) -{ - global $programs_docs; - return (array_key_exists($lang, $programs_docs[$app])); -} - -function branch_exist( $app, $lang, $branch ) -{ - global $programs_docs; - // no translations for the specified application in the current language - if ( !language_for_application_exist($app, $lang) ) { - return ""; - } - // Handle old URL - compatibility with the old schema - $compatibility_branches = array( - "development" => array("trunk5", "trunk4"), - "stable" => array("stable5", "stable4"), - ); - // Search in compatibility branches first - if ( array_key_exists($branch, $compatibility_branches) ) { - foreach ( $compatibility_branches[$branch] as $comp_branch ) { - # echo "Looking for $comp_branch into ".var_dump($programs_docs[$app][$lang]); - if ( in_array($comp_branch, $programs_docs[$app][$lang]) ) { - return $comp_branch; - } - } - } - // Normal branch - if ( in_array($branch, $programs_docs[$app][$lang]) ) { - return $branch; - } - return ""; -} - -if ( $selected_application != "" ) { - $apps = array($selected_application); - - // If branch is specified and correct, jump to the documentation - if ( $selected_branch != "" ) { - if (!language_for_application_exist( $selected_application, $selected_language )) { - $selected_language_nonexist = $selected_language; - $selected_language = "en"; - } - $looked_branch = branch_exist( $selected_application, $selected_language, $selected_branch ); - if ( $looked_branch != "" ) { - header( "Location: /".build_path( $looked_branch, $selected_language, $selected_application, $html_path ) ); - } else { - $selected_branch_nonexist = $selected_branch; - $selected_branch = ""; - } - } -} elseif ( $selected_package != "" ) { - $apps = $modules_programs[$selected_package]; -} else { - $show_intro = true; -} - -/* This is the actual start of the page as the media framework knows it */ - - -/* include('include/docs.inc'); */ - - $applications_list_json = json_encode(array_keys($programs_docs)); - include('include/functions.inc'); - include('include/header_docs.inc'); - -/* We are really printing HTML, WOW */ - -/* Build the menu */ - -echo ""; - -echo " -
-"; -echo " - -"; - - - - -echo " -
-
    -
  • -Language: - -
  • -
  • -Documentation branch: - -
  • -
  • -Match: - -
  • -
  • -Words: - -
  • -
  • - -
  • -
- - -
-"; - - -// end of search block - -echo " -

This server contains the complete user documentation for KDE (except the playground module).

-

You can select the release and language of the documentation you are searching for. Not all languages have all documentation translated.

-

The API documentation is available at api.kde.org.

- -

"; - - -if (isset($name) && isset($url)) { - $contact = i18n_var("Maintained by ") . " $name
\n"; -} else { - $contact = i18n_var("Maintained by kde.org Webmaster
\n"); -} - -print $contact; - -echo "

"; - i18n("KDE and K Desktop Environment are trademarks of"); -echo " "; - i18n("KDE e.V."); -echo " | "; - i18n("Legal"); -echo " -

- -
-"; - -echo ""; - -echo ""; // id=navigation - -/* - Check for packages/dirctories with subdirectories - Used to produce the i.e. kcontrol break out boxes. -*/ - -include 'include/staticappdata.inc.php'; - -/* Introduced because of the kocontrol/* */ -echo "
"; - -if ($selected_application_nonexist != "") { -echo " -
-

The application $selected_application_from_user -could not be found. Please check if you entered the name correctly, or use the -navigation on the left to access the complete KDE User Documentation.

-
-"; -} - -if ($selected_branch_nonexist != "") { -echo " -
-

The branch $selected_branch_nonexist -is not available for the specified application/language.

-
-"; -} - -if ($selected_language_nonexist != "") { -echo " -
-

The requested language $selected_language_nonexist -could not be found. US English was used instead.

-
-"; -} - -if ($selected_package_nonexist != "") { -echo " -
-

The package $selected_package_nonexist -could not be found.

-
-"; -} - -if (isset($url_nonexist)) { -echo " -
-

The file $url_nonexist could not be found. -Please check if you entered the URL correctly, or use the navigation on the left -to access the complete KDE User Documentation.

-

If you reached this page from another part of the KDE Documentation website or from an other KDE website, -please notify the KDE Documentation -Team and report the page where you found the wrong link, so we can fix the problem.

-
-"; -} - - -if ( $show_intro ) { - - include ("intro.inc.html"); - -} else { - #kdepimlibs has no applications - if ( (in_array($selected_package, $package_no_application_array) ) == false ) { - echo "

Module: $selected_package

"; - echo "
    "; - } - foreach ( $apps as $application ) { - - /* If the check for a subdir is positive, the subdir is added to the - subdir_array which is handled below */ - foreach ( $check_array as $check_string ) { - $check = strpos( $application, $check_string ); - if ( $check === false ) { - $applicationname = $application; - $checktest = false; - } else { - $checktest = true; - $subdir_array[]=$application; - break; - } - } - - /* Identity is important here */ - if ( $checktest === true ) { - continue; - } - - /* Ignore the oddities defined above */ - foreach ( $ignore_array as $ignore_string ) { - $test_string = $selected_package . "/" . $application; - if ( $test_string == $ignore_string ) { - $breaktest = true; - break; - } else { - $breaktest = false; - } - } - - if ( $breaktest === true ) { - continue; - } - - if ( $application == "kcontrol" or $application == "kcontrol5") { - /* If there ever is a kcontrol docbook outside kdebase - file_exists must be used. - */ - continue; - } - /* - catch docs which are there but have no index.docbook - or are otherwise broken - */ - $total_branches = $programs_docs[$applicationname][$selected_language]; - if(isset($appdisplayname_array[$applicationname])) { - $appdisplayname = $appdisplayname_array[$applicationname]; - } else { - $appdisplayname = $applicationname; - } - if ( $total_branches > 0 ) { - $app_branches = $programs_docs[$applicationname][$selected_language]; - usort( $app_branches, 'cmp_branches' ); - echo "
  • $appdisplayname
      "; - foreach ( $app_branches as $available_branch ) { - $candidate_html = build_path( $available_branch, $selected_language, $application, 'index.html' ); - if ( file_exists( $candidate_html ) ) { - echo "
    • "; - - echo "".$branch_description[$available_branch].""; - - $candidate_pdf = build_path( $available_branch, $selected_language, $application, $application.".pdf" ); - if ( file_exists( $candidate_pdf ) ) { - echo " (PDF)\n"; - } - echo "
    • "; - } - } - echo "
  • \n"; - } else { - echo "
  • ".$appdisplayname."". - "
    No documentation available for this language
  • "; - } - } - #kdepimlibs has no applications - if ( (in_array($selected_package, $package_no_application_array) ) == false ) { - echo "
"; - } - /* Needed for breaking up the subboxes (see kdebase)*/ - $previous_dir=""; - - /* Iterate over the subdir_array produced - above and break it into according boxes - */ - foreach ( $subdir_array as $application ) { - $current_dir = substr( $application, 0, strpos( $application, '/' ) ); - - if ( $current_dir != $previous_dir ) { - if ( $previous_dir != "" ) { - echo ""; - } - echo "

". $appdisplayname_array[$current_dir] ."

"; - echo "
    "; - } - - $applicationname = str_replace( '/', '', strstr( $application, '/' ) ); - - $app_branches = $programs_docs[$application][$selected_language]; - usort( $app_branches, 'cmp_branches' ); - echo "
  • $appdisplayname_array[$applicationname]
      "; - foreach ( $app_branches as $available_branch ) { - $candidate_html = build_path( $available_branch, $selected_language, $application, 'index.html' ); - if ( file_exists( $candidate_html ) ) { - echo "
    • "; - - echo "". - "". $branch_description[$available_branch] ."".""; - $candidate_pdf = build_path( $available_branch, $selected_language, - $application, $applicationname.".pdf" ); - if ( file_exists( $candidate_pdf ) ) { - echo " (PDF)\n"; - } - echo "
    • "; - } - } - echo "
  • \n"; - - $previous_dir = $current_dir; - } - echo "
"; -} - -/* END appswrapper */ -echo "
"; -echo "" -?> - - diff --git a/intro.inc.html b/intro.inc.html deleted file mode 100644 --- a/intro.inc.html +++ /dev/null @@ -1,53 +0,0 @@ - -
- -

Welcome

- -

- Welcome to the KDE documentation site. This page holds the - complete KDE User Documentation in over 25 languages. Thanks - to the enormous efforts by our documentation and translation - teams you can access thousands of pages of documentation. -

-

- Before you start searching the library or asking - questions on the mailing lists, there is a good chance your - answer is already in the - KDE UserBase or the - KDE Community Forums. - They have a hotspot in the right menubar, where you have - fast access to them. -

-

- If you are looking for developer documentation, the - KDE Techbase - is the place where you get what you are looking for. -

- -

Navigation

-

- There are two menubars on the site. The left one allows you to navigate - through the available KDE packages, languages and versions. The right - menubar holds quicklinks to KDE UserBase and the KDE Community Forums, - and allows you to search the complete documentation in all languages. -

-

- Select the language, the version of KDE and the package, - the application you want is in. For now only the stable and - the development versions of the documentation are available. -

- -

Other Information

-

- The documentation for KDE Extragear applications is only available - in the development section. -

-

- System Settings (KControl) documentation gets separate boxes, since it - is very big and most users only want a small part of them. -

- -

- I hope you find what you are searching for. Have fun with KDE! -

-
diff --git a/package.json b/package.json new file mode 100644 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "devDependencies": { + "@symfony/webpack-encore": "^0.22.0", + "bootstrap": "^4.2.1", + "jquery": "^3.3.1", + "jquery-ui": "^1.12.1", + "node-sass": "^4.11.0", + "popper.js": "^1.14.6", + "sass-loader": "^7.1.0", + "webpack-notifier": "^1.6.0" + }, + "license": "UNLICENSED", + "private": true, + "scripts": { + "dev-server": "encore dev-server", + "dev": "encore dev", + "watch": "encore dev --watch", + "build": "encore production --progress" + } +} diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,31 @@ + + + + + + + + + + + + + tests + + + + + + src + + + + + + + diff --git a/public/android-icon-144x144.png b/public/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..8491e511b029aed2a6443592eecf1e311d6f00d9 GIT binary patch literal 7573 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 literal 0 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 O2{SP;*RRsO9`!%TI|qUQ literal 0 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�=c&U8GHpGQB_mM5 z(R6Hx-r@DF_&tZo(m5w5VVM+*H;e79frQzVe_(}>Mud|+1)DE@<<>GAdF-dS5latx zFTstVzx40$ROgWW^Rb}n?w4VaKJwLQalpCtr@_YkD5@W#T+)-4U%@YHt`T-l$)!7* z$6qzN1?41U5=d~~gDyHa6;k#Fd?%B?qX=y_wy3FsTIHwG)N=-U?5utMcY^>yT6e60 z;$H)IXKN2Hb2lX5g`>F*Qq|nX&eHy|I9LMwL_qQ}RzXxiNK61C{8$qr{@B*T!$nF^ z(96pUZ196|*m^ozNJ+t*Ej=BPP99QH8d%gF04cm{68vw> zzn&>2Ws9`4vGo8zB!wRW+`_O7?f+!-?W{a(|01JbSP8HQ{l6iqc8*979~UIxUtS5i zIN8Wl>#6-W9aSAH1%QZ&ii?XtBqW~*66FbDk%#|=XxsTB0YY+eNx9EGzcAg#rOtwbd) ho;#4x~+!XUy(igXMyz%UHmAt52%ASqHZ(kURIfOJTA zgF~lEi#xvm?7O>X&z?QsbHDdI&;8u{#JSInNG%N&a#BW8002O)`V^*v=iYybgc$#q zvWAS|8PN8z`eOi~I-cy>f(Sn*aMMvy1XK(&Z{r7SR!?=*0RUfa03aw70Jy|Y1#JNU z9>M^?4gvsxz5xK}owJ*@W$*%GOSlRQ@aONB*ZMvgKXb?Vsi7MHU>y6G2qH|Q8vy{? zB30O9UGKU593OWR{eT|%vo;Av)dt8wQcG`|mvLJ9jD|z90#({WavD3Mr$#jju4+{M ztaZ-)+XRa9x3b3r)$YNAgZkKm0l^CWs62%d5pwUy^_e)N@d?L3ngBelXtZsx#mnhW zPu>Ehs27Pms6HLPJ3-`*xR)Rwjs- zj8rXTWTgCJ--kXGm?kbP!8Yxy;OJE{MP;^EK)e#FgpbDGvQ+&=aGpq^)MSAq^;q3K)MZCz721q2 zl3gaXmocO$==Suif5}ugp@5X(wZ_*sB~#Qdxl!MV1-+}La5v(R3%Z3Dw>X8|$n755|rKnqa^&rKeLJXR@icZK=rQQqwnPgx5twOIG> zTgEhC1!(lQPa;9axuN}vk6*l7DJFHU?^1w`%aIHPM2*X4$_fhImQHc%OY#8P5*jHf z2d`LVIY3ed7|6wkCi&j+vhfPNs{bJXA-7+8O4yXZ=}kqIp-B$Jc$ZAARWJ@Lw~F7D zI@)uIkgvOxIA`13`sY>Fmi_3_Fc)3?#N5XGjczF6%h`>SPU7^@jiW5inOCK2f8xff z+DuNWhaj|J9qCVL2`L)*+g!kkXRn`d_azNeGKVo0bnQPzzcFX?cC8)iz7X48+-4&J zpP|}ZB|9>5HxkLDLV8xdR?|-@K99))Vd-{nCM-teECh#*d^<;7T zhh#UUQP2%&^*XjIN>97>s`}yfBDHB$C97v6_>D=c^tK$f$-zMj`f{Bc`GyhR(%s`j zcRgej?U!!Y#;rlxC{uWGNg2VZpH%6^v&ip}p8J5&z?8cYlUO*y{m7zOcYPl&@WAZQ z=`(-ODvAH0w`;z>7&~XK0J%dh=wdJqzz+xhS=>0mJD_?iqdM-@#`AaJi6_4f6yN&l z-vYgL^J#16+Ox4})I!aeuwN_;1Loq*?Kqx2xp8Q8G4pp{8^S?b#Aux zEW^o=-T0PwwGIfHqhxc%)=MKev$xgDmvY>f-PKdLn_aztGu2vV;?LET4BJ-T8D)W% z6MM|d8{RPWwm7!c&aEZ>f`q;NSs{G9?DTp2=shHLDjgyS} zA&c+fpBAw%n_f6=eW4z?EZ-sBq)Kp^P_q9ucb2jn_4Fq~XPWDclmWPHPKu;hu~NTs zT{o~p{!{1Hg26(tnvzTI%8fW3(3&JC{k%cNb9>|u^lrhGk@*Hm4& z&qWB2#O3rS#`A#a0k2&a;*LUfu-{XucEZM1qnd!=7h(#m!G^8-t)_`V}r`WCfoTO zQ=6r&X=)TBpwbSvWv1{r_e+-TgkD_N}k@Ij1 zLNH77u*V23`)MCPYwcWu3w3JfKI1_-yjn9ThCTtC%kCZh5EF{i2ym96 zw98`y#Fu?+D)2oO$*xXeVP7$+%ztNWj!YmyOayOgK=D3pCCaKJ`+#+Ml96s$q|26{ zdV!^ol!0@G|EjTRhcP@YNMESY|FE$-WxU$euTyR(IsaR2z1qoWETqflrr#hbGUk3+ zu;M)M{)f#dRULIw$@zj=kHOV`=S%m41G;nxXo@_D?r4dYF0g5?Ba`b+9|J@9N8iJ; z+&wy)FRyROJ3ey)c9)P1jrTA^Bd7wgV67A$@3LWB8eibeo;5os@OGiOb)rPuixlh~pb6We&?nhc*u zT;}}b@cpyN#C%%c)K(ZV?`^TDCUg^MVg z^wG`8j?JJ#q5}FePWl%GMov^1ygrJRH%{}O3=~b!)l8fAQ?w!>Q!7a3BeO89wpPX> zlq0R-Vb%vJ62_>R>0&#UUc_s`o$00d;&bhS&K`-|RGwyb&(gNmnJ~krc5$9I+KzvfObp^t#jcplnV>Pr<5(~KOsQPS5=_$5l6$gFZA#`0b zigXLxFols{#o)Ev{1)dqpIbtwoS$9c$#UKrEvE(bY3FLp1whp zzmw!W-)I1M=?zp@Eq)bpJ$}}YO~CaZ?M2r5Ai2Ngxc`+B$-z8=F(w(Y>_hyUi**%i zq4Y87W=2$Cj!CiN7VAcDZY7l6!3&0O=9wfQi{D-2LZ6+ERidJrMc)nv@sEFm{X`%8 zV(!k}7Beq)otz2X7HQgjv;IjcYOMHX=QtKp)c&(cRIKs@7}Go=o^NZ+Ml5`J?)-kO ziJIaSWgt~I)lpk2B(S=_ziq8{_c5TLqF7#rX zo8-3;so-bvmNs_ef5!JtT$5j!2d~pME`Ay`=d90I$wE9Dd_i?OZ%?B3SanIjyd#F* zHSpt7(M{CJcb6Y(x~$7~&*_!O)?kUk?TTLzu-f;^+RNB2MiJBgqSqk(S+u6^3tpQD z$qZBnFndQ^#%&=G6*aB9-=}^WGg}nNVWF7@2xmFRWl_HLG^#3t)igY-a?G_h&B*hu z$m5kfsL0+4%mtI&iQXi2*al&^bI#Rkk6#2fPMs>(01hgu?Y8t}0tVTWto4fz5uGLI z9hc#=Pc6Qq*_v9pppr+BqFnT*>QoA88r>bWALOggWleEkX;igy*}xxcVDE+~^|V`p@EBAqN8)mA%nKIttG#ane1^_EChoG~7a#so~0_WrH{~H=E9~ zefoV$M`aI}8S&J+S3-~e=F-Y5&OKB{_Cm3E3Oz}KUO!XFLgWlSG1THioMx>NYDSOi zVm=na)xJUd@%=(YhBsjb7lM~i1zJfVuwm%D%aNfcj}gtqd=-hXZ=E^-agKjl^3$JL z_}Kr1J2E5Yp9&`vJ(J8NucBZ~YSPe;utQm!<~)(H9mTh}`5xxElz zRhOW`90dE|tU~2S&Eiq&@k2w43wvnV`IogT4{{o!LDnFBP;<-3KY_I2?}tN!ZeHVh zkzKiZoF`7bud0Dho*g=RH2GyHYcE*`{5a*Jlcwie7MaQDUSaXu#4PJ(2T%(Vu$ovw zza2nv!lLX$oBQx$%^$}H`}QQ{=;2d)3J+ciQ@!jh9rwH2g_v~FF^nGIYMut4tq)4l zyobC}AUq+mb;J2LQTbxQ{o#?Df7Gu(L}_f5+`2`nK3!F8)yoW;mb3f7Vii_u(dpl( zR1a~x<=irmtvdxlluouOLO}6ywl<({_ zkNu3vq-FA~lruMg{c$a)R;%=i4+7`=lwFmD=a3EA-}JANbW&XZOc@Aw?d!fsD#(eN zmZpi2rd5~aJ}Cc3-Uu?uP>9cbRL)nHyP4!YDdAkoA({@=+stDVUPH{UUSw7WUBfuI zViLDXjoMAZ{pqX?_X0S5YlFhCTPFg>P2jmMNa_))5K*j%t6Mc;9UPy?b$o zZP~fQ^Dv*?O%t96AHWXSl3d41`PFa?9}ysSh8^TN#B)7wf5g1f}_V`UU;^&Ve*Nuwksce>7Y~ z_jdL{qoZD-KI^q}-AAy?lS!R0eEAWEeHSo2HUms0cC2hTUn}=n&=&0B;~XO>dM6CH zS5|#-ZA@6kmvs|X7mD?1(6`;%0W^$5eqE*B8prxF!Wvcu8dz(*E~ zik06GE;ddkuk7yM&>-@*OdbmP=ib|FYT?A%e#O51NxJe|nIlheI!R+T)){Md=gv7@ zb2aCkXf-AE>J?TeimGxod^;8~Jx|-|cmjJTQH(#kMq6RQ1i4&?}5Z+-dP^8j=;CY9xE4!HY4HzrG-i#y?wpfpT5bSJVa!tx&S77r;zZZ^?> zqm?m1yX8wOY7#epEB-zho-cEL0F3CGTvvk)ot( zR}UDY&&q_!^{?Hv&)VdVsg^$f5VWEx=dEt^V}O|`?Y%}DiNQ>g8L3mW?%&@q=B9Tj z<2ZqS_09LRyyGA<@?}8=-@tdZQ>2fh9L2K7Fi9scRJpogNU*{B40_tKR8r4a#(f#;EFd{xVNpTIp@^m-OjG% zeOqLm2V^+dSZ7XDZ_0D1$HWiwY#sws`v%CFP;DcYLnM}3yXt)x(kr_9Yu43-0a=%- z2ol3#`cbF`U%A?BDyrs+w`z0ei>sS2uv#n^{p8^+>Pr5e!|q;VTw9}CQ@FL`WkAZ= z9q-Q9<}2Az;Ts{gN_^~{LYH&Bwi!noFXx7- z*`IxB!|J=`Ewsa;H%-qrQvkXGJofjrCkRQ2y37L{hl`N4*+xne*j@qyZYn}lI zHhNKan@)NP*!coQLGo?RCo*!&E6!Dmh2z{w#cnPN<8pMlM69o(&k+T_W!kADHH#Q)DI+Z6ePvt|xXwri9xArD8bzX{yHewCW(!v9E zfZ)paul5Bf{_?eA_IE&{qiH4zAcR*RuoGumV?Rg&?nU0vRW<G4y4I7mP1;K6-i#(JmY7kAkA1T@Hnfbx01=nH&%oeB z?A9tD7ZRRuV%jJ>pE!!qsaaL7q^RRBY<#()Mq-t~vOj3E&lE7_4oe=3y&wuXx!(SM zfcQEATI4kipiEcGPw8D1eAK7y=O!k&u!EkrfEzA@}|b@*L%h z1PCiCrsT`*;YE7?CVHWx3a~*rAo0fsVI18ZoNPfh7M>_8Cr3BXf8H}lLP88FVksq# w6c@Fyv9J_D+K7uj>8yoL~de}Cf1)Bj$WszmHDlMQ$ z3Gev-a^L&jb=UoH*R#%Z);asP_daKzefEC#dg64nREP*@2mk;85lmG{7t^QyYal$# z`@8aH2d2Yuc&hmn0BB4hytT%~jIofqDhhzQNxD7EfXPNxR}%mT-~a%^A_0JF%v9J9 z0Ki)a0NA$z03>q(fXD8I@19Fz2zW2mRg?ht|DKYbiVVyQzPqXk5&$qu`q!{xUL;`j z(Sl$~PxbwlkBa=g=#7Gh<^D`cA9eAYrSqFLk()H}55s5_!tr4sW@ZXtREG&j{loMO z)#TmTj~A?0TNf5O6xj&O0vB<~6=F7LyPe~Rj|d5vx_ zH2&y)IzS0yB65_uw6+${qf!k~dx6pDJ^QfPgi8la6Z?C9STLPFUU<-Xsni^Tfrlrqgjv zqCUhjtwZGsoCo@`1`mRpA8JMHY+Zw+Kl-{fbi7vcbkavUnIrAZzlgof^OD~aPixYs zk2KsZ$(!_kx~(cmJR_}B0!ujW3sTouL&O3;&gaGQJJ04oJDZ?&@6)_0}N z9_$+Ao4Nq(Kx&GbufOT>L(Pm};8aFbcx=f#ozJ@X$xX3CR_>JP+pdxfy6m9qtB1&j5NYf0EbG|O zwzl_7->x>h)?N8BQd3BhV*`lv9}~!St}e>Nr8|r|?{~!GUHs<0`&*)TUv_^Sohr{Q zuQ(=X=Dg+b?)~WIh3Th-$1G8eaST#F+}-8N2h)l1Gl7{}e^WVdyKN!{u?t+!Tz(4DA!|SZ%aV#(A{I&@eiMpY6(Ru7pf&1f*UT^F|?bn z7J9@`zQOrIK%34dH&?TMwV4znM_ysOe^KTSqOG&X@Y?Oq;fYbuPMG49()CgC`EgOF zSuI_0#N^$B*u<3xT0dmqE(ugPU&M;R#?EUDoa_p`lzHm_nQPJP&_C6-H)A{0%M$JK-AeQQLbq z#OnzaEPf;>o?&>N>==R6p(#I~=MyZhR$neN$DrPhFUt^;fhf_!{-cbmPUmlrIOb-P zy8Ohl2xO5jBHyo2Z`2;Jb#_{N}16Sa?}ke|`iTD^*^N z_Ds5aa5s&rVEXGh{+kw9cxYhlGsV2^PH2w9GTo#Wjv0-=&lKy5%RJ^FRI&c*<<~QK zE(U7Z1>c)w$URIo@6p^d!>7hn{+(!7+a<-E$v^u>qnM~2(coB>8ub3f*|J9!oB0ms=D`=haD{vYgCy|T7JLo=r_;qI%@&Z zYe&{|Q((-gS}G-GO2IeAd~w&oWBC)!Gr9~+OT!7k`fBQYYSpZXdgVjnZY6)Z6G6QC z<&b(JAq|4>wGxn^V&=kgmflPPMkgQC9wfQ``hY*$o-FB=L@O482{ZhVbl-Wi8h+9s zYeeEPI1ru{U0a>FZ+gI~yKf0x<=saTwG&Z-3U{D&+?KfPnwa#(6qK0EY? z36K3IQ^1$c%Qo0K^rL0wP-(hvKd8TyAG%O?x^PTg5XDJ6Toff~eAjSDsye{C8vm-u z@asxy!1IP_bo#F$p3!*&iNz1IO@Ubid(alhZrMM>tjey)B!@E=d-=6Z*e&BnV=jP6 zBTDI(>-v{)spoAF*C1I&S>1>R=wsJ#?Eyc7OH*(X65mR@{%z%x+=t2k;8H_`SoIg& zz3aO|TU#DpPvQE?B@nQYs_d7SdS-|9t2451E^~r~wGzuJZej!v#^;l8g|_;TM*=rD zqKwZjuxXHEfnEhW)vK(y4>jPu^ZN~5Vv2dzqjiu1vB$u7Ly&dJeIeSr{lI7L$LxxX;&M_HVAjEc8&K8@}hcK7?skFH*Df3Y+EF++xN3&w`4SkR}VkY=XibgSNSQYmRKdE-y>;zGUOVM&J1t1QbANmO6=V(?#O-Jokzm{xkc z0YU80xY#AF3LPfYqF-zw2(G(Qf$vK5>*>4}*L|-RBm0?1(Inr_j|9XF%nobP@T+l7 zaHYLJ?nn*OU2i7g+%{=W_uOOh?xR{_LEm@i`9l$7F`P(wQUs3B>#K|BG3YZ;7H%AU zTndTvoxf#bj^qpU%l>wHDg`V-U+&((al31gPu&ld6!IR_Zaj9N6!d&pxNl^t14IVtX7lPbc82X0 zMyE$MXgq1>9X?<(5qF69d{H$M%>P8b4!4Vjf33HFy-g4vNW5gxr;sZR?|K9= z$4#7JPU*m1*1Tg$mCnx*Xu$+!e|rq@8B>^RwFb|=E~gOg zZO6>c{iJ@@8)K?M zhSt$3=H-ed@q6@A7Hgb!^(Dy4(e!);Nl+d^ZzmS_Gk@5OeqW76|7KR&+}Svb)6cfx z*-h-`9I}7(@mZ2Qup^{)yDo{!yWCz)!{9YFb)Jn!|6%puR(y6(U06nGzMf4#`Rd~V z!Ksd*`Ux+#Pp7afZla_ebak*ccxWlimhW1DsdmEewJ)OS@`vGyi%Y-G%1+s*_&Opw zTEoN%oP%Gjbcs9>2uAM?v~E-L(0gP&z^%H~k=F2b1uN#Q@r9mI&`J?SDuR&BK00z? zP-YHcISzU5D`%s%7fsw6{IVZF=)B zHBN6`^YFJsA62ubxJ-mpvM%BPIp`JNd?M5BTdLf3j-itrx^3Oy!}ncKUkh#Bo6Y7Y z#?6-p#SVcpCU-bOCx?qI2HR7_H6-tAf!JOa}K(ubK*NN6T8DTV`D$9s>QR zs=RehCrVFI9kOm3fcBc^%fAzM$%Y+Ig7k=KGCV!3(X)Sx+pZ8hnbo5OR4 z+c_W9o|y1#LuOlbCTcFd|4{7}m$bo!CB49kk-86L`OZ%G<+bA4`=!mx*i9AsJ%rs! zwfBbi!hW(7CLI_}akEfmZiAc%a5X8@(F9Kw-;Uy%7BNm?H;o^!vV&M~!3H2qZPoZN z*;9ivGAs@5ch>M}-e7v+G)GO*J8jQkRRS#mPF=I+>n*6TFq0rj7TFQRR2SIT=aHsH zY#mh^pY`3y$M@CPY2$Iz2GtA(4D8bP75abBM#>9W8eM#}j+yG^-gH(~fMeYFtg#jv z+RT|fzjR71vChYqRh`HzA@p`>ouo5c-9zcKG4tgoTGkdmnlUu03fO-!mu{nog?N(7 zWKJZvr|)8Ubf(kXT*$tgC>TFc3>8*8_(Ww#X>AA!9e z&RSWqfT+ptoh$|c%fh};&rlqAzv@bdYgBG+@I$4XbrHM0hYZvAxdOx}=II*3n;VFp z`eLv`U$R=ifn9(7tOkXy{7Njh)?vXfqqzORMg;E~n+R^&}p^q`PE0@&~5O6lW?5vAkA*;A>)eVOxSD~6ljvyv+r2_-r*BQP@x59p zC%UM>0LaZX+r-JCIoeJ{d^E$CABt;@V2} z0FNT2T~d6^?~D=Qy{PY`Aa8Xn1;yr6NpcG4(e|)aMFyCYB@ObT2D^zexp9)^b>%Jf zk+!P*OPs2M)nK`{iQU=UT``%sEA7az2<&*l!z5vmQcOiooeyP;8`7YRZBFI-Pzdf0 zEPF$c8SPpwAww2cZQQw4R{ly28a&e-nj7B+0EY)qLywpPqe9}~o_C;drMANR8u z&v_{$YhH&Gbwjg7RQ{{G44>SZid6{bOk`iSdk`&+up@tFbA}4_%@}k*B!1Rs-o29r z>Ciy4@b5OGL4RD^M!J;#W>4#w@%h=B*}4VUqgDJk;^j$4oWEaKWejHHNM!`D1q|aQ zyzk|XX|K(>gZQfX$UPZ7-E|tZT+JN_6f?n(vRX6e|K3D!?g}h=RQ$W#pX7#~cDx28 z6*sPULL;`IT19~L+m9VU9vz!^b!xl?2o5w!YyYg1Oh|EQh4Vc=uXQ!_OEM=6IdMwZ zG}qJrEc`P0@(aLg%Q*4yk?O!4W%z>vz54Tc8X7g+P|x5<=LOYXcg3pi-wXmDI zM{?JnZB9A?8`v|y6Xf&Y__{PKc53MwIZbQc{zzzfBIV3?T%#9sK0@1}@{&b}e+7qe z)rnKONGL7P7zoWGfMzd#)kAm$E&6%?`OPb-OgS(^>J1h>zD=-P)SQ=6`@X1SML2eD zrPyezQobF{qsOL`=3J%RqNTkPix=;y(K?6-OnL<7(&ggCIRnNsx@d&5m#ctKX-^P! zR9_nmMWEFZQr5t9nMWLD!gMMAn&ScclmxCb&wN~8@7)-`a3lbZc}8)w&YwedBwx2Y z&-eo|z5QG5;a#|9RtH*2lLxN7Tiaa2n^_sEk2wkE&FNaB%frds$&+l&Ruir3`+_bi zF8!{EM@GogM_>WfvjkD4uNy!i&+f{$+${OwTv>(GQ@s>p;wYTY5_OknAu)12vI;NK z=YYCT;y%m1JPWrFx3-|7xwzn|Gvn>7Slb-pnIT%|HP$HK`KcRt`tT?>{0=rl`uDxo zyTc=h{|HUSz%$@mXmTK4YcsY%jIa7Ojc@gJ(%O}NJEyy6=83Ed zqnB2<&Jsl9O9$dHVOt*|Q#@;8$#>Z|N5$yUVq%$T{8h{9u;sCodGDoDqF!mgV|Otn zus`VG0p>Ewy_fwkG_9WCi#5)}YTX<7bt80=OIbifZa_5O6|M|}WD>5eSe^Fb(MsWx z`wO1G*Y3o8((f!bY?_0MLxb=`b?b1&jLf8GT^f-^tt=}e8Sa>J_;vtc;}umoBeUoSg9c}#_H0cA6`3ay!yj$dCb6aw{%>Ic2-~|?d~zGpn#GAhwQ;} z;(KS)+`h+=KHL%W)%ll8@SHZX!5$;-kkDpL*R))zReoHSh^0y3kv z-ORE!de?}J0cLW`SvWkWkg%ljpZY#XoD&)Z@!LiLaP*>bjUMzBN}l)D)(>ZV5B<6) zLXH^8JX8eJe<*R*m}%mHG1Ie0RApO z0EdR?S#WSX38J;ryC*MW|7~q@So#B?0+YC<`Kx$eZ#j{&T%XDMRkhy?q5_3<&ozcL zAWCmSsApu>DNZ}bUTypA(N6_Za4Oq$SFhQ*qPF+8v`R*?u~;!)auvXpBZnyCx!7Q%L5-tIWr2k8jc1V zvfnO=@zjX}QE4o$tWI?)ztxy=e`z{tC0T@=f0~ZsO_#SCa!lrsj4{aVbJPawTQbzC z0{#0Jdq=Z|GjYCkxVsn^_zW;dgz;v{_bt{?v-fUJeJn~Hj?v^|-%jbLgfR(emL-$W zI($=O!j$(j(E=Z(>x_Y&%ax_CsTDzj!~UI?$oPRR_?55H_~S5}4R zDa`Z9>!7IBjXbLuDv_ib_Do!?wIQRi2Xer72(Wo0IVk-A@nkc|yb-Dc3jP21Z*)&W zph!T|6P@1(007v%o*8@DT6@_^+IZSwI)I3fumr!5FuxF3UsysC0+kdM=M@r?6cT#q zSwHo^F}NaZ;r9OjcZOiW$4Cr=@;?S7!rsf*+S3jIbG3G`)3kPg+c+~p1;hlz`6ZYz z62SaI5Po41rsu*?CPyzXcS%7(UteDV_&>Dkf6xL5PlvD3M;L*CC;uesJ9@jml$2CL z*m%3zxp_%S>R_NqfN;fqm*D@v{70vxq@x|&!O;sKEFnSy@QlJ>9{-;hBe<=X<3Gqu z4KoM>q5f|WO}ML_m%qCm;6JMpba!)*YckaOA96JHF(`mA1Pq0W3X4gI3lf$JVIU;` z4Wb7RumcDwC}h5oJ;aa<{~O6b7Y4A0yVzm2FX-y#<$`b!w72$w+aTPKg8$3Tf?{H# zn7UH}Vh0hiwzqyMY-bMpq+i~AYRZ$M`_uo^{Q=W`%A#hVN^aKEm z`Bse^ctvwAL8HVj8^H83#*O@lLIaGmW&g63`%43p5Zjk`(rLDDwKH%cGsB8tvPJzw z(w1cfjQ7s?fgP<(#$~KZ>{t26&xKctNpZvxahTd0=;FuWH)Yal`}Jj>I%uKVOt*1+ zAevlo`AUugc27R@pcD@#ExUBA8>qPyxaKEnHD?tPde_;29JQPX-@3q~w`-isE0sW21gq%iZ22)7S+w z8zKE5E^ue8_Gd!{_~)cKDobm4)@R;%jLLzy)G$nUzP`u6EilpsQus6f^~5VRRTIxD zefKgAcgfnHwBdY;n-!{vc1D&%SkMN+{Q~eKH%Z)5?_in{58#L6#*SW-B72pItpHX9 z+gKn?h zf>r)!5d(pTE*53>a$tr+9DR&u4HvCs+w{hf8oBCq;BQh~1@aS6=hT@IrGO+d)XAiJ|visY{*`+;Q6kE8rt{m|E$tY{acTH0+%%&3p3c9lP zHO0jl3ZPt-*m2{lO~koDGKXRCpCNxGO=o`BOyj;XszF_BOYY0RU!EqP4Z6%2sFZvx z+`-74QTO!+>!JXSwXa0`^v23KlrJB{ibn+dq@gZyyHm8^XOpuZsC_P&PvnqR&g`1o z*abR1&U%EK;kCZamcC1CGI-CeVj}Xbg`|v=TN)#>Ickr2n4${-#k2A4LDycbD-r|@ zg|&6rF*9dO8Z?)i$||R=IdyTl7(5HUR3yM5{*%=wkyhZ&*s>M&)}q(SZf`m&Wfk)_Rf7L0J=FmCI|0O+waw7 zFSAy}HN%ikT!G-Bk0WiT94$X&0W1OB13erb0W{&d_L*0UR;y zU0L?<<(0%gZ#ZLz91)@lf*Scg{&mZ?EYc%~ZyAs3SX568YR2Q7Za)a%2F=x6-6==U ztWPbP3XqA0!5L-y?>J*!O&E&#&Fg9B%vdn;#cP;=bV7G}hX4=Gqhn+Z=#h?L?@gB+ zzwE{^1<6pL)+Q|XQK44i$_~SvcZH`b&&WiNM5 zY<#2HJU+`dIaMD2AnD;(%<4Tcg(0OOC~JNd`=Hez$Xeq)v48q?xCw$Y*v0tyybO8R}daUo{foHyo@I+*;WeV{0b^IXDClVU&W{y*I;&L(B49y{1%k@cT2;M4L$`obz zt`3e9;g;02Jsp?e;{+viRJOb-ZL4Xk;7K}wCy5*Heits_;Xr5Y-+XVlKB|3$sqS}7b47YrZyUfY@H;~E(3`5&cd*28% zueCzy@As1deWS{tk+N$^S3{>$#jdd7<2`zG(BG2Lz(cqP)-jru!Eqd@zR)HSZoMt; zakf_rCibh2%C;fzd#YI{XGEqh;7cr(TsThWz`zmKwvVZF&idU;2W4B5saT&yQgm@c zxi|2P@PXi?egSVDUO^FI&YKpAxN$WnZu2^B@Pqt+9{20XCX6`Q@mB&g zi~y&YVEiVRr>{#|E2rgFJ9U-)~9T%DYaMWkn5_iU03b%n#5Hx`Z1*W0)OLxPhtUCp0c>S#s<_U!ME zYG2SbM^(un8O&+VCHhnWvdLNH>SEpV8%0`v=Bm;Q5*Xa80`&H-Jw02$FTN2ZC2E7q zv#|#r*SGirEP*t0^uQSQjJDIdcu3>p-v=L2Kl;^hv}SED1KeHD^XFg5Z|=Gs>^h8L z$b(Ew)h83m$bgv&{58+VGS|AlK5f`Y&bqRBd5N>st#_7c6#E@;P#cAVx{QBbar~(6 zRVb$|djo8bQGJ`;{J zj=bSrm-Hb0RdhgldbTM!lULb9*YlrdpJ4bnid~d_&N{clPn8Gxx2h>g^CM;_vOi8x zNW>7#`dx(U@P;I--g9kjzr9M46)zwWmS#2q4on^YDf+g)(~@L7%Uv^~@UWe9_V!ov zfYemiulJb`tZV9{H+$Sd1I7PjR;tQZ;NQ2?<{cEoI+!zW{HwGkKWmI!<7NLol?mID zTa>0GiP>>2Lyns;$isfG`!eweZ|r{QdW{~+X?I!vf!pe_&TU&bftiT?mlm0PLO^l+ z&-Lx=RX?yTJ}a{1b+7w4Au*5r1JDjF1+_=;ja!)S;#5osyM=SdNDy+jZ9aupIwl&g zkR_w79y_W0d~dZ!)&7z%fH?=cx0pm=v{>91+bA8~Q7}PVB_;Va9;cww5c9D+PESHrS?bVAACHo7D(c{emMTU_tQBDx^sjKvBDc zYT|Kixy}Y{u<{&NyIj%7=)jnMWC(hbR}zTRB#l3(&C}5en}7$>AI^09tl09~^zz_zFP2?l z-QS^qwS|LNOm*z#NAHe1Py#SglbmZPN^HiM(#E9nAy6TpXUV3~Vqm9~s(xbhb&2^*VEo!4iaEFOKZNnc5FPHmQPZRIb=5XB}(oNs4mB?-u z^i_SQjlaMkK>70yO!Do@X+B}&W7+Bbu=Ji{nMSDZ@8r!A!n%B4ID>MZHiJ3TGZt9gtGhL%i9KNlj(6 zsyK(wvV0dG$CDrz`5ui`elH0-He;RdL!EhBbkDdUG9kK$(G*^BQIjUGU*nfu{7TT^ zcs~FUV`CqKpc-#tY|GQ}C-5ck_?=}LMp zSOzu}3@XBlaa8-4vst|VfI=@52W;?@$?h>3sE<{2e&>>w&nswrSzoHu*r8d^GfQMJ z**bn-?GSV>^zHGdh^L@|2a) z_gk%rA%EAV(al+1o2S}lCwk%WNssYYecNy8oQofmd3o8sKTgUmP5RFDhC9x3uj+-^Di@{9ODstj zd}#CZTBE0hc3mMi^>!9k zD2E|cMqtj7_U%@R?1#xxe{?Vy))(A&)64VVj*P3rQkpKar?EAUZ`=>?W=rSOKI-%u z4TI4cj1}MP$KWD z2M0WhV<4qV;wBmVoeP_{8d+*4g}1mw!+X~-5@TP$_Fr=A2Y(k2p&~xlo2f6tEC9*1 zc5X7!Bd<+4Da+iKCTVYZODQrk-B5gC^D*9@8lo0Zh_j0{A?Q1BSMydLt3i|R0dp) zP0hsj|56&&VNNAdL80~2MtZbS+ZHJCMxxP(jQ*`sGoJ2RsmW;(x`PubPpy0YPs#{R z5&JdGN_^(@H3*Lau(c|jk zY2B~ zlG<6uF)+Jh$9>l3WiyczN$ZP7gh49zoF-$%Sh@}sLF;2e=wl_lZT!Y$4v8k0k5Mt= z*d0{@2M76U^d98C9>|T^-J|Pmc&?B)DNipdGKkslLM$kfo4kLJ@AK4eq?vS$;FgbS zVn}c|3gW6N-)d_VQaAe8nL9~`iqI!jrS?U-jrq*M0O8INJ6ZRlI{O0fs#l*{7Za3r6w)P5nVbD!Tx>S8;|6l@995hND4knY33Abr-FKYP_}+3wy*t z*J~Jp+O~hmnYr4mYM0Yr52c50oQooi`{(+w%lTl@bdZkTU?}gacjkSx{XRCH2WJcDlHl+ExLvZv9_M>$ zLH}6o`1+OemNKo=@;YTMBLb3{OHeSR(_60B}d``$KNZS zXl6|G40wZDi~iULQ=oeK>cgoj$@~4vy(>mRX?6lOpx1i`Gl}xKbT8GhB^_6K&y*IJmpY$|E7OhW-A1y4hZpO+ zDM81Og($&gYcRO*i8mzq$W~S(opes0hLez}5}QwAwx{LGj^&)hrR}wJdqa?v#~~eq zdHf@hVDe^H6HgaS&+Z}8eYp=s)^Y;t6BX7<1I@{re9_3^&5j z8BoFxN6j6!hh7tDtmANu&4@#GoK6?t(<>8L{S14e@_HZE;s# z>KWd6w+t?JP&^}e~XQ=SZZXq zd}SzQ&WyPXw7#7%>i8jP(#s;xvvUXLJh|lL?(KL!80CL|D3Dt~${dkstF~HKTuyvZ zkGW^h>;*h`PU3ZGn`?1&4}VbmBKdZ{m)ciH>0`p+fM5dC`pP(HwNr91tsnD@oaReB za$phRVkRcB0{)!S2`qe;0X$k@?{IC3?1?a4(&oWv2z_q%ZIW;8Ir%uR^OE((U!r?? zXYw~{&aAPXxzQVNI`6V@zd^vloX~=kW?UFs@JO6Ri*krIu$?jKt*H>uKyn)5SdlL01|CYoMLP>bGAs`Zr*;&{dpny>Xs2OS^=1ZGxCBR$#!W*AY$Qfw10pegW!U+B(~3 zOD{v(EODk3TPbPN2bx4K|xCNsF__-QN$+6k<0v>iKI5nx$HDp1K3sN*%Nd z*J|THm(GoIudJpr_XmR2$aG}=>ND@p1y z&Fe4@t5nHKeep(#LYC@{Jj_#3$+xIy!hPd+7x(>s<$rKH(p*5qmE zjzePXj_!*Aaaaf!`q!DBjw+-RabUL%YGu0Y0&P_im3M9JpEUSPZ!%*?Gulue zD?aJPb_p4l6%CaWS8%7AG^u#BN{Oc)|I|+W)Mw&_K^Y=t7o8i^e*{JR1fs4(Q0K%v zf9DQ7+~*)l{$1nSY2Jf*Z?_NNFqO5p@2htFYB3U zmZDEq!?)l3*5yV6nUbEIB*`(b>gVQggLEe?#M1>k4f>x{-B(*YzvJO%61!(j0qGwC z9#b57UB_fYevEnmTS~(;YTDZUbLHiGfBxR|1?#~nq=ltQ{JPXmd26uj5GL9pL^pPm z!)jstZtGE7rs0yUNNjSW_6>mUr&bU)?UtqI)RDexj*e-LnidIjJ!rrzF|%Z*65;i% z+Ga)G?i4Xg7Vf?m30S#-jY3{^l)*ekjh@ZlQfsn;{jd96ph)X+fBk6PW z5@E?>o?grHaGyTZn^fp2dZPqLTIl=$xOpj z)D=1IoY_!*ue%z$z|IwOc8q*wm$rSfwQ+B9WoZ9eFw~s|naG1G7DHeYGn=uEpx@%6 zib-1mbrLySVF{!}M9K>akkH^K!`%k!?bcN}`I4I_JMx0MKf80d!U$%!+Qk-(^hO#! z5miY|JB{?Gb+U1cL6Y^eOtHbRw|;pC$qjPyM5XkN4}2SSuC1rONPh+a-fKeAKT|N3 zNwNV!h#j#>$JwYt^to(+WACL$p&*2aU4gs|d7`ymi6NBCXj%yteB^ky=MYw$8-sNo zXFc9GXW=XzB+sX<42JQTo>8+f%)H$Z8=|{@Ucf?OCbH|%?rB7Sy)8HOQq=@4QI@_; z*9O-_3muss8*sn~BWHQrryj9OwoUK!aw^ZV-)?_9Suja|<^>EdQG~p#(@@E z{s~16v#6@hj)t7d`SDZtM`(y6fnNoBAyna{q#6!;*V9S52h;IyEi!rysWxbQ6XOnm zUj-dyGzw$D(fDM@h<6&TgBL{)UU9%?QzOVI?Xm=W6YZuyyeg71hK-Jpp{>f4g}92j)ND6cu%_ zh1)xL0r*7t9|1ffu^6iV6Qd8e@pAYFL4Rbz$3mX`H;5V>Ve94ZW()YwsCeC6?4=s@ z)c=PaH61Jpz$XZSLIwDQM1*+>i@{jPqyGlch6mUJz%nu^MUn^DF1`QOrK_b3u!B3> zVyDlGaPe|>wdb|7^nqKux_I*buXW}X5)!cGvl0=s7381v~HkKtUz(66xZNxg%*mty9Rihx-7wfH>8Jw$fvf;PcoYC|i|PvB0RVjX z0DwI!06-!W0HE;5>Cl!!4Lr3`eftLR`0rEDRi1+C!SPTs_67hNdZ~W+H(vD=e^}u;-BMmMiv)oIg-ttP=FQ3O?C}CTvq3_PTwzx9wGN`?B z*!tad(UD@&HQA-)purIFN*?_s1~v|k6^JkyYi!nP?5wMGFXyVaodwT!C>^rD@PF@dCziI+mX-tV$QJN!0;opBMF3U6b2>fNOmSf)W z(aGYyzJ-fW%qX35vo~Shv=}G3f}^q`z24Ae;d$0?v*C~+p2S-=fpZ;8OLZ5k| zG#ne?D65d5Cu+j;F((ZTjzmpxhl5ZtUiM8CPMi=DOxpCEh4@^8qiKD(CV8Yqsp;X^ zsnqbnwDx`eMESJPogv3sgVWH12=tddI{wxItJ)Wi@P2{sWX*LuN@ccuEfrK2sF@ul z*gg(oZ42r0tB(rL@xDR6PDL45ABo#b~ znv}5TY68G&Tm4bWa2s9|Lu>npJs|QYxmUD_n)ZtSbk=I)6y|E0MVP$2S+s!m3+x6d zzQ(1@p1Z%Y&X|k&^&uVOO(el{H(VRXQuXEgnJy7S=6#|2H`qo>-)slWLYFp)y#-7y zs8Jfb7$8ibr!$?|JZ`R^x9)P>$%phdy}N*){KVDzCo|kFJ}M#5Y^DMn(L@jH+Iq&y z7%i{qov_y~tl?LQV&|h6#b#W@knnl6h@MG=#Y=I7^-m*UaM*z=n)Fb5y`SQYxO1-{ zY9|5esrcPFNP~Sojp;X&ryq+>e@16b7m}6QJC^TJHA_0tvb|Xp2tgx)zIGmL#jtd2 zxORD0!Z(n==}q|3YAC{?!#q!7SAb?BIAd5vo@b{)O3plq4=(Z@dwnwALHal@aHy+B zWG4Dy7L5Ih%iI67mkC&ooSe%IEsScR4-BebTkjGH`ocT`>6Dt=_X?CN##ZFcAZUuY z0Zb$IJh! z$>uvwXy;#$HnkHT=2feSS*to@bdPkR&bQ;QNVZ%cFJT*qgz_5=EvKAwLE)R@R*Hq- zdN}K3&*-g5p5%NViLW6h{P}~h853KV zK3GlT{Hj}Hv)0-zttcDmS1HHSu}xKKu5Y4(q>;YOCvn$z2`=3TyB{CCUD4BG8l>8) zhKg$BkGDL%X_rKy3RTT9NZg?a0%#)VW5R{-@k8cD5256_8kXtkb9A{*>g-{RFu$a+ zUt=Pe+sdi|?#HODd};H2h4Xs~o7sazb>>HsYf(F%rkHH`?;$nhb8}FPwA!~zuO4%d zow2kQGzNu6&(V1t)6B9S*KMGZ&~aX5THA2Rh0Lnmlr~GiZPZ9@hj~YNZ@Y=}2ey75 zd~!cgW72Cn(Z-^)k~sy;ont#5bS}rYuT`_wj({!g#Y1Ic4u9PXROkm<3{_glae-gb z?>E{;RG$F7B439*+((S2OcoX;?H5Y&zwqSpP} zqU^{t*%8wkcegr6PKtv{VwCAePL#WX#n#txN*Oil%2gN^N^pI81rWZ^e5z zN3U>%08<0e4^ydYR?^DZ=)jn$su40g9txDRH73ZIRtohTwP%IhZ21nUOY&SAC_CX| z1c)Pq*Ta449I0vIk8;8E01E&Y&K(bzQ6k; zVmPZpPUl#~#~NkeCH1C^P7%{%%pjrmu)gxNy?cR6;x?e+%#K5S*1VF{Ba)o5e3;^v z)X+_PdCKNSCwPmBkbL{wZ{=DCUV~@x>WAYx-&ZYMrpyk*@UwJ|U1~=(CFsg*vYfqs zaYt0Qq@Zi?I-$0-SMac)B5BXAZ)Re&b9on4lSq22pNPqF_Y&jkwnGIeLbN#G{Bv)o?XaI9bq`K; z0VarXN|()iMZ6|hQy(+Vd7qo0$yATx`i>(Vz04MQyah)Sbxm*W?k-ca{AOZ=9_S#X zN$*EB^qE9cBCOm`;P%)eAssi22fHLZ6R&5_Kq}yeJu7)$Z;G&`VHxjQup@rYzV6rg zBVt{!z!>?;&st^M(#_ohVZGnI4+K!>{gR=k>+?Jq%bU~s z>udfDRcGcuX%8V!yL!{w#USdO7PMOTWdp*XUot%!rRxnm|Pxo@ZHZ zAl0(g<>@0uOAad_nkI{+CV7rW##CMc0^0;ojue*NhwN6QPLsJl7&KhZ__-epndvLlvrwM zQ-DIWQK>;|1bgi~5;>4dP)mq470RF=rGl_p$$@deH9O79Hun8Gg|I}9r*Sge>D4?u z-mHH)FiV?YU58N`=afciAgqw9f4e7se|op?hi&P#UYSC$8Yua_-kbE=fr+|em;x1~ zr!02eTUE<&N>N?}JD>QJm3W9}Zcb^vstve1@yhEsq!YvAmG^E*_B=RgDd&C!{8Fcm?fh9wWfGE=A|$IfL`uE3*}e z8uTts@%W~`R#ZkKY%)Foj&=J>q(;uZ(oQ7u4*I<}rQLgH^vzwma(G|pYk2o_G*&vmbhEUZe(3W=uq!V=UZBHa#_QSs#0lGg!ou(P;xHN zTFaYQ_0_}&B-UH?o%QWfXV;BgQ(xodmL-*}N=;Ur+yYf^OwsAuUs8Kc*Jm8?AX{9v zsJC6{{uikun*+3a0Tb{1NYYUmT{?zAJw}k2e*w{Gy}G^1zwD#qbnkXQK|d` zPfTO861Ml7$Fogf?K94Mjq$eO<+)f1?(C7jFUk+tBFLI1S$UyKp~`4vH<6mC74dn( zTNTNU5^tanr!)~aR-s4ldryS?N5S|nRzaR&Q2R1O3?z%-O+?SO__n%EbE&7$7tZG{ zT*T94c)qDh)G8lJU0^m@)BIM zCynt;oAE4ck{ud0Fee)pMqlbi^ZIcbPKg47%fV<{g?)&` zg@g2fn@A`f&o={iFaE=(gS`ytwtNIn-S4c-K~wmgNnumWxU%|{8n$0#6+`$>g)zcJ zi6#SVU}aJ_h_NYV7Iz30*q?5bJR6VUx;)lLP^0Q8Q#|XpaaN}FC6#7%oq9TkIi&81 zRDYaD2+0?mUAuwjm28;Y%xXlF^F{p~-;VH}nDnlDk_5W&66xL2ZmOV(x?~*Wx7^Gw z;UII5s|mYtOu+1;5m-w+C@!IE>L{NeW%`*Z`B(pn`J_X)LoqhmrfT-4ZnnZ)lde4; zI!WL?Y_7CR-m9SZ5$!^uW$h4@FpdMS?f8Y*Di6UM66%*b%a#~|3r8+8${E8LWZQ{( zW1ma-!19^!vLB4;7U^zHu&rEvy3DRnU-a;5Juywd_;k?NUSSf$D*9)?McKx{M$RcZ z2-qZI&b^uN9Vovz?cArg^|xY5S(W@PdJrdzqaWar%^$f7vhLvZyw3RG!Vv){i zVntwPv1fSSv2@X;sPH6!e7Q;2%e{(JHZ<@)J(sSO38xWqOLw7~V^gJ&@S`Y`oOL%+t1V ztx#HoF72TVUsTlqd$FMR&(&T#h6|bVH^9!e z`m_T7CfB#%&^LS)2 zI%9MlP-p)^J2&=!7pAte9yU~+b&i+6=;mqINY@5CsV0KtVY0Npz@LIQ)-&hi7~Ef1 zs2+WIR9Gu>rac6=T%Qx{j#y29Os0#REsL)edy65XxrfCVKxjb)3D}FWVLg0YPlg^) zucFv;E2o&i>0gzS<40sR36Gp{9-j=|3t+;T7kARx3?*s|1 z@bB2t!6Z!pByqNFO7>68vrJ-T&+=PEXNCa*+n=~DVXwEY6CH38V!df|C4C z&TH^R@|WzjQ&Vo5`&v)6Ijlqo9xu9kx!%Pma-#UNvTA!tiH+lJf{x(7c$b(PbXIp9o#=;26kvYh`^$^>nOy-lSjRFy-r-3x5z9>**@aG8-Nh z$gPLD8}`}0YS1@jW^WnGubsXABCNOlS~rVff-&`} zU?uX8Hk>fA?Y@>v-8*`9Yth56QDH6>8Mm3WOHCN{F~V=7`7`PDw`$}>IVomKK^ed| z4c9kA8CI1N>=di;AijaKsm1G9m8yrti=mj*jV8Av#zmFEUdkW04nZT2cZFjz$aQIQ z>8UbjsbBjL590UAUx#3z^XxJ|#j}m@ji0Xx9xq#Z5zFoFN&Wtd&H9vFQ3cGmf@AYV z$h%lNf{&%{Wqzj7Th4bbd#aQ9p13&$vXF?O7!y^>C;f-Q)t){A3#$g;jU%NgBt31G z*8OqC$gYrau`=4+oayqalWsCn&teU;E4jT5`HR16kJPxdP)O4QPCk_W!wR*|$8V#` zVJO0aqHS?P^Tk;>cpjPwa0lw@-(@?H=bUnq)D|y%vy5!9Tn~JCF7@J@Rt6cE_{a%A z`L)y1Do-#Q=W+}G9j1qlw3bW&1oR@wUu~x%kFWOvG)h0byuG*pg$}+IPdB)Ir*NH{ z690nEC)joA^zxO#DZ<4xX>GCNoQyA81p(0I9~*fRKhMcg_`6W-BKcA!shMt#;zx@O zsu*9$40w`iK`-QLn&7s_NrE{PqM@U1n~>c@z(Fs4aNI-4>L2imCqw31ong{<|GWP2 z;`^d7gDIWRL-Qsbgb{1IPlm!=3Bgy*CZ$==@>A+F?zYw$#tGv4J4pg>9B;yY3SmuJ zKXA?S<+hN`?aD~OX7NP4UcCP1y}_uBzx;3%4_(Uvv6guXfmI7*G!U-@(zYj!K>4~D zE1V%`8VQC^$#~B@BPbWUxzUeglj-LZ2>Mcu7jj5*sJYfqWprn@3$E)I)=9xIrgWIy}&hQ4OMIi)EAqQSl*<66c7(S(u=FSJ?6%o8()*u;Fs4SZP`&@%8F znM>Yj2!5hNy_bM_)nWqC;JlsODcX&jC4tSdPSs^1M*GH|y4qO?rruK#)zSf*Kp&SmEf3L0nY49hbL?=rDN+*(Es5=~tZd{aWJvq&?@Rk+jr?w6xl^ zS$tO)=S2aU%g^HcSqe#;&^uViIDcu`)V7~nSh{<@E#5#?+T=RBMFEKdMuu{uGox^8 zM$j;bEkmdmFI(3;dp%%mJ{iObdKfRVedsQhaTNdh)A>A4t@Wto`c0Qv-nzeMbN!2J zq}&)}G}wyO7U|znqvJ7^NJum2e{z`oq#P*}%SP(X#>R9$mN{3qm3PBnr_;yvk1O-h z%%N(S-!Xv+$W!l6*E5uzD|aTYi5i*hTu?g9>WIuIg8aHJ!u5^@^C(47Tn>=~f@llY zmt=i}4!5@9;n*ASX|}B-uA0Jii!kx$Tm(0224x$223yy?JGm1z*h3e=@`Ub)?M-vw z$I>!TKeVWB>&Nj|)V6`|_p;_t=1h&U37s^)p>66?X2-+_rO9*^h<87?$VnDW<`! zVlCW7%F5nyKcj;hiO0AC0C1J@-*Mf)io_{&GdVAzSM?q4xS%>i?os=smMQb~q73xY zoay|wm=^K3ZcafvZz}`d7w;xmMw@=UV*>V`@rl(MspZ_=^}b@qKo7NL}M8X;;K&sZ)nnY8WcGSuXqk?8x8zE{;LPjC8T%(>hSGDE6!)^# zly;}Cvi+M4H;4Wm{>mZlz(75`>Q|f0w z!u_%&RZvVySQA>KKw)8A(QHiWw*0c)HAA8B@A{}}CXV{EnuzS+e+L#kWKif$VZvp(LsSX|m+&jg56Ie)^vq#ZOCc!YSYw415a`h?OCT;%?+GC!(VB; z1j_=U^4ce2?ZG!8-7CxMNFw)sAkpS~gfA48wH-RmLs#9UGK8~;T3U^l44ALCe22Du zmr(WS0o|;w8l-#9BJ&BH>ypXRsXoA2Z%Ul1yMFMwhg?uIPV1kR>uKMSRz}Z{L|WDa z!PVoLt7fh0r@{FfGrGVh-pD4kvc30#&HD%k?x_|s9M}ryjoLf7uqg{F$s>jJZ7gmi zy9hsp|0Xzb@2bgEk8)2VXevk(u>X7|^zU>fU-XiGT^KVGO2ZATNuph3x!Ek(m?$^9 z1&s|+e{K*95{DqPta=lPhnjtoHK$d9U(%<^alGss?)p|U+|_tlmKPjPwsnEEIXZsJ;Er~fNMsGFR3go$Ji}8jYuo-vq+2b>=kUR6c`LPua9X1F z$Laa~^*xVs$bnjo=PZtc#Nl!@GaFP}CyitkHQZCXwo)aD z-8PBbpgqHwH({RFW^}CmEM%BzP}yK++p|VSV84fWjolUs-9m+}Q2%LV;z zQpMsYT6=`}Mrc4Uwx!Z2S2Ir0r2j)522ZwK&MUJWO8yyD>75r3wn=0iAlBP@UC6>d z95IY87XTyj&BG69`F1JQBn%z5D2Y!t`%YoXZ9$_=OK(_cT>6B~k+;fIGa=6Uo!wAv z#-sH?kSk5Ri=2J8c)O|i#Ij_F=`KdIiBUt6ZULQBfl^%NO+C8?R~*Ca*-}AeWD^%0NRsRc5u>JbRa|eG z>uW;vJP-xlPOi4p)TWo6{8?6R^2C9VzHeyFd~x&pKwJ zN2L0CUId=^WtzSO+gd(i3NJeY%bb4SE5N(YU-2uVysiEF#*`$>m_6#HM6d`NHf=_; zsX+CtkDh%MT03>A9a;B;C*z^Y=oPxD;7YiSW*T!C$=mg+bf_#gO^m3(0w%h(Wj%()lXbEHd~%lA~$g7%P%%Us9S=9lK5x(Xg4az`jx%XZw= zY52%v$kck*XP0NFH>WhNmIQ*GgA`nGrYaVtZL0}G1AeSur)J@V!k%i@`WCfldEAf> z3Hv06=qJ0vS$#6LZN;cG$GKi)&(TuN-P;fT{-_N{Q zI!CYFx+Y6P54@>i?oT6(lPq_<0}5CB2BZbEv)bC<<5jX~FB*B8>)9v5WS6Y8EgK$8 z++Q-R|G@hTd_3Zby?Wgs5QM=QV-crBU3A|vkU9T%lSPD%f^SXR>chnL#_>3KbMvxO zCZjN*D<`7ubN>3@u4s&}vSt2Z&onfg|NW4WWy9poVQpt{mI933zMH11ZS!Ft!V^R# z-1Bj2!OYHVSJd7nT`<#fNMu8N+;n?Mp!G;!GScuD&^#qul7{EdQ7AOrLSmBS%v+iNg$nga zl&4S3XKd=^*q6gD213f(hAM#$qcoTMDJTJ_g{yhO1kT1}PS9rd7t*vwTr?6@(5c~% zSRfT|i;O@arOIN^uQ|}kiEDo^(>gVO*#4j61S)xEN3j%*K+kXXD?iOln8c;r4ywx1 z?~j1m-w==#4M^qO-@p>eDe^@Esl__(ru979hlG!oa#nU+)JiBX2$iZnejY^EiizvjhcT2 zwtXfbl6~LFI#r(Gf7Z9Z8X{-J$0geUTVxZ$lMW-bl}>(|}fpK83NAO&gR@?EI% zSo{kjoWNh~e4ET73(ni{iE^ZHx$gP;`}Y`KZcQRIy@$JF>Mx0Z2$7$UXDVy|q)DPK zx@*(Gs9ST?(5O-muzSCilR~2Fpd!yCqRG5-k$m8bT7X*&iY?icWjiTN2cM{9CO(%q z(TOR>%dVX7H!yJbUJxx77k=@-MxJUdKFg%dUY)moAD6E_zwyyHK?y&pKy*;=Szwtc zIXAYIi1q1&wa?8n&VRjT@>7DgA~7_^r2`bgA&u(|3%E~E{ozWN9Q65<{S4;8$6Ky7 zyjj&pGBTyR`Efr!>X8haB&uy*>~@KNLGk~AHrATWI|^b{6~|RJsn>I&%~+@2VExii zeq6%YAWg=0k8)SM`3=`OYg~I>6B-nuMrsg3in4|>qxI7SM_tPQ;r~qjU$E;(1I*^5 z2mZEi004jmqF@BEvxeA9*m~Kc8h`*Fzc>#cKM$Xf9>2JRu!w}97#AO(1RvisuiA2S*Jx3o`8wrUw?zTRz z_HGaf2`v=V8^B-w*vb3fF#oxxgoL9#*ufD3;1?Gl1b9WGFckkc#t>`=ar_6Fs(y)$ zf>8Yzh&tHS9unYT5BN{5cs<-4WE%`L{@Xn2dMFftUsy;)M37%pT#Og5m=6UZ{4Wq) zaG*VaPhLK?Nag@FWbj{x^mUX0Ah3%)>hXD9-5@UR4!j_1U$Cvan>X+OwllA&sGvQ+ zjkvJAuz)ql+J@gABrISjByJ-nW^2zc1hNC7B!DRW9zWq{{4*7Ot$2nU#pX`5o5T_!YuEd$|3;m$WG63M@(BV-4h^GUd-43X{yPUW$p*j523KZ- zCOIIr1lpp2c}jTCb!2Y?lG36n>Oy1hAm8MIR>hFtRoLk=w5|wRnFXdj(!7O--Hy6d!mIPZ+zxbx#AdW*J?MLl_T!9p zW=1;-678dS#4RMZ9lh9%dR~G5ct<>bgKsE@io4LegZLOk1YCpjJJ7Fl!IO_P8eDti zf#&NRFsL4xfQhmm%%TuvU4#N_k+p@OvmEXk$D3c{4wsWNtk&3f!J{ku6cpsg!ZT3HQTSiC0(d>G2~wZf13|B3}SZ%apnccqYD1>1JN=} zQrh!R(2O?p*EUr88)8`qt}lnauSNPMiL9q+-7D;RtY1R);J5y>p(+pAPoc9(0hVi z2K7wfBh!R;HSAXdzn&(d8<5)r7~=v|-;V{?Bc~gcsQR(+TgcD{qW>LXRRo#lfyvDpZY5m#47=2g zxm3W7L%3lkNH2l-O8AF5%+F{7QSivX>!CM; zM^`pA(@Y<(c1ezM6)yE=>|Nw$DNQ-WtcjgooVvmN=SRBn3a&!o&b=((5SRq5Q$S>S6nR;1STN^&M&(-E zlft+Mi_y5Cbj+7Mu3Rk4z#zr|vH*US4~>|tds464tP zN|jnB->rCRVAzPg>s)|ShEMh>v$BLh-5q7h-36D+9wwD!Bud+MUry+)YUUla;E%mFBB*KNuP8I;uWvwO}G7<=N+*az$Bg_56f`f<9?g z9mQlY?Yn*9?ybH3%a*L@f6<#qm75FiM9$3m7bJQtvJ5k*=y7emnX@nVEbnKK93{H(!;%=vG%&{oc4+WWTp( z9p#nU32%&g)$mKXyT32r$A|C1@k|681Nku#$A&6pyHE?MBJ2l8Su{2S>OV3)QC5?b zo-;gX5YF#LwzbuJtTz9cu`<2r@HkVPRUS6LQ)!IPG^^u6Ynw_(Q1{Ib3~A+@;Q($D zK8PMvTmV$Y{ z0WTjW%)GH4+ox08kf2dEWiB~&7Z3?o+4&u_0f6ciOJ-+}nB|a_!%Vhyrz}J$6S0G1 zMWh3mbcUlfoncM4^zp7i zS}fZyj1>WHkwS@xFO*1w!%gj|_EZOJM^iF`tu>ux&0v~(Gwe)5WwIDHjkbUPeyVhi zj{HPZqhlp6k4=&Z0i(H$exdP^L2R~5bZ~s6C`!g=dy!}yz$l;njrI@b)0%8{s7NXa zl>rP#ralmRlw=J5mkE%D$U^6kuF6#lNyPYX2wxg0k{yT<0iSk7i;0qKuG!)Fk34)o zk^&ekTRS@&hP|T$jZ#YfOaT4AA->XsB7n}}oV&2;EjhL0Z&Ut0Zh%-CAtH}Yi;R** zL`!I5;XY|_bW|MeKle{7f*e^Q7E>q|1~Eip7Bj@wG04FoSj4auhfqlcmE7NK Sx?a}Yg}H6@bWw5yNq+&Z&)6^k literal 0 Hc$@zMl`Tss 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 literal 0 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 O2{SP;*RRsO9`!%TI|qUQ literal 0 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 Rvi?q(o|chjrMffmzW~rpM~wgg literal 0 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ðg6+SCW?fPoWmhpLGPe3m(7`BXCVJ0U97) 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 z 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%0Ai3j5p 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 qo?dd&99 literal 0 Hc$@}-f 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 Of*I%e(*p literal 0 Hc$@${LOGFILE} - -${SCRIPTDIR}/kdedocs_indexer.py -v -l /home/docs/docs/languages \ - -d "${SCRIPTDIR}/omegaconf/data/default/" \ - -w /home/docs/website \ - &>${LOGFILE} diff --git a/search/kdedocs_indexer.py b/search/kdedocs_indexer.py deleted file mode 100755 --- a/search/kdedocs_indexer.py +++ /dev/null @@ -1,351 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015-2016 Luigi Toscano -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License or (at your option) version 3 or any later version -# accepted by the membership of KDE e.V. (or its successor approved -# by the membership of KDE e.V.), which shall act as a proxy -# defined in Section 14 of version 3 of the license. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -import argparse -import hashlib -import logging -import os -import re -import sys -import time -from collections import namedtuple - -from bs4 import BeautifulSoup -import unicodedata -import xapian - -SAMPLESIZE = 512 - -IDX_VAL_LASTMOD = 0 -IDX_VAL_MD5 = 1 -IDX_VAL_SIZE = 2 - -STEMMER_MAP = { - 'da': 'danish', - 'de': 'german', - # de alternative: german2 - 'en': 'english', - 'en_GB': 'english', - # en* alternatives: lovins porter - 'es': 'spanish', - 'fi': 'finnish', - 'fr': 'french', - 'hu': 'hungarian', - 'it': 'italian', - 'nb': 'norwegian', - 'nn': 'norwegian', - 'nl': 'dutch', - # nl alternative: kraaij_pohlmann - 'pt': 'portuguese', - 'pt_BR': 'portuguese', - 'ro': 'romanian', - 'ru': 'russian', - 'sv': 'swedish', - 'tr': 'turkish', -} - -ALL_BRANCHES = ['stable4', 'trunk4', 'stable5', 'trunk5'] - -LOGGER = logging.getLogger(__name__) - -DocDetails = namedtuple('DocDetails', ['content', 'md5', 'path', 'title', - 'mtime', 'size', 'description', - 'keywords', 'application']) - - -def get_normalized_branch(branch): - if branch.startswith('stable'): - return 'stable' - elif branch.startswith('trunk'): - return 'trunk' - else: - return '' - - -def get_stemmer_name(lang): - """ Returns the name of the stemmer for the specified language code. """ - return STEMMER_MAP.get(lang, 'none') - - -def opendb(dbfile): - database = xapian.WritableDatabase(dbfile, xapian.DB_CREATE_OR_OPEN) - indexer = xapian.TermGenerator() - return (database, indexer) - - -def get_doc_details(full_path, file_path_rel): - try: - html_file = open(full_path, 'r') - html_parsed = BeautifulSoup(html_file, "lxml") - except Exception as e: - LOGGER.error("Exception parsing %s: %s" % (full_path, str(e)), - exc_info=True) - return None - - hashf = hashlib.md5() - hashf.update(str(html_parsed)) - docmd5 = hashf.digest() - - dumptxt = ' '.join(html_parsed.findAll(text=True)) - doctxt = unicodedata.normalize('NFKC', dumptxt) - doctitle = html_parsed.title.string - docmtime = int(os.path.getmtime(full_path)) - docsize = os.path.getsize(full_path) - appname = os.path.basename(os.path.dirname(full_path)) - - # description - descriptions = html_parsed.findAll(attrs={"name": "description"}) - if descriptions: - docdescription = descriptions[-1]['content'] - else: - docdescription = doctxt - # keywords: - keywords = html_parsed.findAll(attrs={"name": "keywords"}) - dockeywords = [] - if keywords: - dockeywords = re.split('[,\s]+', keywords[-1]['content']) - - doc_details = DocDetails(doctxt, docmd5, file_path_rel, doctitle, docmtime, - docsize, docdescription, dockeywords, appname) - return doc_details - - -def do_index_file(file_path, file_path_rel, xdb, xidx, language, branch, - normalized_branch): - """ Check a single file and determine whether and how it should be - indexed. - """ - doc_urlterm = 'U%s' % (file_path_rel) - # check if a document with the same U tag already exists - # in the database, and the respective timestamp (mtime) - currdoc_mtime = int(os.path.getmtime(file_path)) - postlist = xdb.postlist(doc_urlterm) - try: - existing_doc_iter = next(postlist) - existing_doc_id = existing_doc_iter.docid - existing_doc = xdb.get_document(existing_doc_id) - existing_doc_lastmod = float(existing_doc.get_value(IDX_VAL_LASTMOD)) - except StopIteration: - existing_doc_id = None - existing_doc_lastmod = None - LOGGER.debug('Looking for existing occurrencies of %s (timestamp %s): ' - 'found %s (timestamp: %s)' % (file_path_rel, currdoc_mtime, - existing_doc_id, - existing_doc_lastmod)) - - if existing_doc_id and (existing_doc_lastmod >= currdoc_mtime): - LOGGER.info('Doc %s already in the db and up-to-date' % (doc_urlterm)) - return - - doc_details = get_doc_details(file_path, file_path_rel) - if not doc_details: - LOGGER.error('Error accessing %s, skipping...' % (file_path)) - - doc = xapian.Document() - - xidx.set_document(doc) - - sample = doc_details.description[0:SAMPLESIZE - 1] - - record_data = [ - 'url=%s' % (doc_details.path), - 'sample=%s' % (sample), - 'type=text/html', - 'modtime=%d' % (doc_details.mtime), - 'size=%d' % (doc_details.size) - ] - if doc_details.title: - record_data.append('caption=%s' % ( - doc_details.title[0:SAMPLESIZE - 1])) - - doc.set_data('\n'.join(record_data)) - - # Index the text of the document and also various additional information - # (title, keywords, file name) - if doc_details.title: - xidx.index_text(doc_details.title, 5) - xidx.increase_termpos(100) - - if doc_details.content: - xidx.index_text(doc_details.content) - - xidx.increase_termpos(100) - # print "keywords: %s" % (' '.join(doc_details.keywords)) - xidx.index_text(' '.join(doc_details.keywords)) - - # the file name with no extension (which is always .html) - xidx.increase_termpos(100) - xidx.index_text(os.path.basename(doc_details.path)[:len('.html')]) - - # add boolean, add values - doc.add_boolean_term('Ttext/html') - - file_timestamp = time.gmtime(doc_details.mtime) - doc.add_boolean_term('D%s' % (time.strftime('%Y%m%d', file_timestamp))) - doc.add_boolean_term('M%s' % (time.strftime('%Y%m', file_timestamp))) - doc.add_boolean_term('Y%s' % (time.strftime('%Y', file_timestamp))) - - # URL/path - doc.add_boolean_term('P/') - doc.add_boolean_term(doc_urlterm) - - # extra details, specifically required for docs.kde.org search - doc.add_boolean_term('L%s' % (language)) - doc.add_boolean_term('XBRANCH%s' % (branch)) - doc.add_boolean_term('XBRANCHGENERIC%s' % (normalized_branch)) - - # used to sort by date - doc.add_value(IDX_VAL_LASTMOD, str(doc_details.mtime)) - - # used to collapse duplicate documents - doc.add_value(IDX_VAL_MD5, str(doc_details.md5)) - - # used to sort by size and for date ranges - doc.add_value(IDX_VAL_SIZE, str(doc_details.size)) - - # Finally, add the document to the database or replace it if already - # existed and it was updated. - if existing_doc_id: - # this means the document exists and its timestamp shows that it - # was updated. - LOGGER.info("Existing doc %s was updated" % (doc_urlterm)) - xdb.replace_document(existing_doc_id, doc) - else: - LOGGER.info("New doc %s was added" % (doc_urlterm)) - # not existing at all, regardless of the timestamp - add it anyway - xdb.add_document(doc) - - -def cleanup_unseen(xdb, seen_files): - # check all indexed documents and remove the ones not in seen_files - LOGGER.info('Looking for removed documents...') - removed_count = 0 - for doc_iter in xdb.postlist(''): - if not doc_iter.docid: - # This should not happen, but... - continue - doc_ref = xdb.get_document(doc_iter.docid) - # if no U term in the document have been seen, remove it - doc_urls = [term.term for term in doc_ref.termlist() - if term.term.startswith('U') and term.term in seen_files] - if len(doc_urls) == 0: - removed_count += 1 - LOGGER.debug('Removing %s (%s)' % (doc_iter.docid, [term.term - for term in doc_ref.termlist() - if term.term.startswith('U')])) - xdb.delete_document(doc_iter.docid) - LOGGER.info('Removed %d documents' % (removed_count)) - - -def do_index(dbfile, startdir, languages_list): - try: - (xdb, xidx) = opendb(dbfile) - - # array of files encountered while searching for html files; all the - # files not in this list after the end of the scan will be removed - # from the index - seen_files = set() - - # all branches, all languages, all html files - for branch in ALL_BRANCHES: - LOGGER.debug('Indexing branch %s' % (branch)) - # list all directories; each directory is a language - branch_dir = os.path.join(startdir, branch) - norm_branch = get_normalized_branch(branch) - all_lang_dirs = [ldir for ldir in os.listdir(branch_dir) - if os.path.isdir(os.path.join(branch_dir, - ldir)) and - (not languages_list or (languages_list and - ldir in languages_list))] - for lang in all_lang_dirs: - LOGGER.debug('Indexing language %s' % (lang)) - xidx.set_stemmer(xapian.Stem(get_stemmer_name(lang))) - lang_dir = os.path.join(branch_dir, lang) - # from here, get all html files and index them with the said - # branch/language if required - for walked_dir, subdirs, files in os.walk(lang_dir): - for found_file in files: - if not found_file.endswith('.html'): - continue - # mark the file as seen, and call the function which - # whether and how the file should be updated - file_path = os.path.join(walked_dir, found_file) - file_path_rel = os.path.join('/', os.path.relpath( - file_path, startdir)) - LOGGER.debug('Inspecting file %s' % (file_path_rel)) - seen_files.add('U%s' % (file_path_rel)) - try: - do_index_file(file_path, file_path_rel, xdb, xidx, - lang, branch, norm_branch) - except Exception as e: - LOGGER.error("Skipping file %s, exception: %s" % - (file_path_rel, str(e)), - exc_info=True) - cleanup_unseen(xdb, seen_files) - xdb.commit() - except Exception as e: - LOGGER.error("Exception: %s" % str(e), exc_info=True) - sys.exit(1) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('-v', '--verbose', action='store_true', default=False, - dest='verbose', help='verbose output') - parser.add_argument('-l', '--languages-file', default='languages', - dest='languages_file', required=True, - help='files containing the list of languages') - parser.add_argument('-d', '--database', default='db', dest='db', - required=True, metavar='DATABASE_DIR', - help='directory containing the Xapian database') - parser.add_argument('-w', '--website', default='website', dest='website', - required=True, metavar='WEBSITE_DIR', - help='website directory containing the documentation') - - args = parser.parse_args() - - # configure the logging system - logging_level = logging.INFO - if args.verbose: - logging_level = logging.DEBUG - logging.basicConfig(level=logging_level, - format='%(asctime)s:%(levelname)s:%(name)s:' - '%(message)s') - - try: - with open(args.languages_file) as lfile: - languages_list = [lang.strip() for lang in lfile] - if 'en' not in languages_list: - languages_list.insert(0, 'en') - except: - raise ValueError('languages file "%s" not found or invalid' % - (args.languages_file)) - languages_list = None - - if not os.path.isdir(args.db): - raise ValueError('%s is not a directory' % (args.db)) - if not os.path.isdir(args.website): - raise ValueError('%s is not a directory' % (args.website)) - do_index(args.db, args.website, languages_list) - - -if __name__ == '__main__': - main() diff --git a/search/omegaconf/README b/search/omegaconf/README deleted file mode 100644 --- a/search/omegaconf/README +++ /dev/null @@ -1,12 +0,0 @@ -This directory contains the configuration files required by omega. - -- omega.conf is used by Apache to configure Omega. It should be specified - in the apache (virtualhost) configuration as: - SetEnv OMEGA_CONFIG_FILE /srv/www/docs.kde.org/omega/omega.conf -- templates/ contains the Omega template used for search results, and few - required files. They all derived from the default templates directory as - shipped by Omega. -- cdb/ contains the source for the cdb files required by the templates. - They must be generated using the cdb utility (tinycdb package), the included - Makefile simplifies the generation. -- data/default will contain the generated indexes. diff --git a/search/omegaconf/cdb/Makefile b/search/omegaconf/cdb/Makefile deleted file mode 100644 --- a/search/omegaconf/cdb/Makefile +++ /dev/null @@ -1,7 +0,0 @@ - -CDB=branches.cdb languages.cdb - -all: ${CDB} - -%.cdb: %.csv - cdb -c -m $@ $< diff --git a/search/omegaconf/cdb/branches.csv b/search/omegaconf/cdb/branches.csv deleted file mode 100644 --- a/search/omegaconf/cdb/branches.csv +++ /dev/null @@ -1,6 +0,0 @@ -stable Released -trunk Development -stable4 Released (kdelibs4) -trunk4 Development (kdelibs4) -stable5 Released (Frameworks 5) -trunk5 Development (Frameworks 5) diff --git a/search/omegaconf/cdb/languages.csv b/search/omegaconf/cdb/languages.csv deleted file mode 100644 --- a/search/omegaconf/cdb/languages.csv +++ /dev/null @@ -1,28 +0,0 @@ -ca Catalan -cs Czech -da Danish -de German -en English -en_GB English UK -el Greek -es Spanish -et Estonian -fr French -gl Galician -hu Hungarian -it Italian -ja Japanese -lt Lituanian -nb Norwegian Bokmål -nl Dutch -nn Norwegian Nynorsk -pl Polish -pt Portuguese -pt_BR Brazilian Portuguese -ro Romanian -ru Russian -sr Serbian -sr@latin Serbian latin -sv Swedish -tr Turkish -uk Ukrainian diff --git a/search/omegaconf/omega.conf b/search/omegaconf/omega.conf deleted file mode 100644 --- a/search/omegaconf/omega.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Directory containing Xapian databases: -database_dir /srv/www/docs.kde.org/omega/data - -# Directory containing OmegaScript templates: -template_dir /srv/www/docs.kde.org/omega/templates - -# Directory to write Omega logs to: -log_dir /srv/www/docs.kde.org/omegalogs - -# Directory containing any cdb files for the $lookup OmegaScript command: -cdb_dir /srv/www/docs.kde.org/omega/cdb diff --git a/search/omegaconf/templates/inc/anyalldropbox b/search/omegaconf/templates/inc/anyalldropbox deleted file mode 100644 --- a/search/omegaconf/templates/inc/anyalldropbox +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/search/omegaconf/templates/inc/anyallradio b/search/omegaconf/templates/inc/anyallradio deleted file mode 100644 --- a/search/omegaconf/templates/inc/anyallradio +++ /dev/null @@ -1,2 +0,0 @@ - Matching any words - Matching all words diff --git a/search/omegaconf/templates/inc/toptermsjs b/search/omegaconf/templates/inc/toptermsjs deleted file mode 100644 --- a/search/omegaconf/templates/inc/toptermsjs +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/search/omegaconf/templates/query b/search/omegaconf/templates/query deleted file mode 100644 --- a/search/omegaconf/templates/query +++ /dev/null @@ -1,196 +0,0 @@ -$httpheader{Content-Type,text/html; charset=utf-8} -${ $setmap{boolprefix,la,L} -$setmap{boolprefix,branch,XBRANCHGENERIC} } -${ $setmap{prefix,branch,XBRANCHGENERIC} } - -$set{stemmer,none} -$set{flag_spelling,$ne{$cgi{SPELL},0}} -$set{flag_wildcard,1} -$set{thousand,$.}$set{decimal,.}$setmap{BN,,Any Country,uk,England,fr,France} -${ -$def{PREV, -$if{$ne{$topdoc,0},, -} -} - -$def{NEXT, -$if{$ne{$last,$msize},, -} -} - -$def{P,} -$def{PAGE,$if{$gt{$1,9},$if{$gt{$1,99},$P{$1,$div{$1,100}}}$P{$1,$mod{$div{$1,10},10}}}$P{$1,$mod{$1,10}}} - -$def{S,$1} -$def{SPAGE,$if{$gt{$1,9},$if{$gt{$1,99},$S{$1,$div{$1,100}}}$S{$1,$mod{$div{$1,10},10}}}$S{$1,$mod{$1,10}}} -} - -$def{PREV,$if{$ne{$topdoc,0},}} - -$def{PAGE,} - -$def{SPAGE,} - -$def{NEXT,$if{$ne{$last,$msize},}} - - -docs.kde.org - $if{$query,searching: $html{$query},search} -$if{$opt{topterms},$include{inc/toptermsjs}} - - - - - - - -
    - - -$log{query.log} diff --git a/src/Controller/.gitignore b/src/Controller/.gitignore new file mode 100644 diff --git a/src/Controller/MainController.php b/src/Controller/MainController.php new file mode 100644 --- /dev/null +++ b/src/Controller/MainController.php @@ -0,0 +1,312 @@ +render('index.html.twig', [ + 'modules_programs' => GeneratedData::modules_programs, + 'search_form' => $this->createSearchForm()->createView(), + 'all_application_names' => $this->getAllAplicationsName(), + ]); + } + + /** + * @Route("/{_locale}/search", name="search", defaults={"_locale": "en"}, requirements={"_locale": "en|ca"}) + * @param string $_locale + * @param Request $request + * @return Response + * @throws \Psr\Cache\InvalidArgumentException + */ + public function searchAction(string $_locale, Request $request): Response + { + // create search form + $search = new Search(); + $form = $this->createForm(SearchBarType::class, $search, [ + 'action' => $this->generateUrl('search'), + ]); + + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + // do the search with the provided search term + $searchTerm = $search->getSearchTerm(); + $cache = new FilesystemAdapter(); + $searchResult = []; + $searchTermSimpl = str_replace('/', '-', $searchTerm); + $searchResultCache = $cache->getItem('search.' . $searchTermSimpl); + + if (!$searchResultCache->isHit()) { + foreach (GeneratedData::modules_programs as $module => $moduleContent) { + foreach ($moduleContent as $submodule) { + $array = explode('/', $submodule); + $branch_available = GeneratedData::programs_docs[$submodule][$_locale]; + if (count($array) == 1 && stristr(($displayname = StaticAppData::appdisplayname[$submodule]) != null ? $displayname : $submodule, $searchTerm)) { + $searchResult[$module][$submodule] = ["branch" => $branch_available]; + } elseif (count($array) == 2 + && stristr(($displayname = StaticAppData::appdisplayname[$array[1]]) != null ? $displayname : $array[1], $searchTerm)) { + $searchResult[$module][$array[0]][$array[1]] = ["branch" => $branch_available]; + } + } + } + $searchResultCache->set($searchResult); + $cache->save($searchResultCache); + } else { + $searchResult = $searchResultCache->get(); + } + + + return $this->render('search.html.twig', [ + 'lang' => $_locale, + 'search_term' => $search->getSearchTerm(), + 'search_result' => $searchResult, + 'branch_descriptions' => GeneratedData::branch_description, + 'all_application_names' => $this->getAllAplicationsName(), + 'app_display_name' => StaticAppData::appdisplayname, + 'search_form' => $this->createSearchForm()->createView(), + ]); + } + + // no search term provided + // create page with only search form + return $this->render('search.html.twig', [ + 'lang' => $_locale, + 'search_result' => null, + 'search_form' => $this->createSearchForm()->createView(), + ]); + + } + + /** + * @Route("/{_locale}/{module}", name="module", defaults={"_locale": "en"}, requirements={"_locale": "en|ca"}) + * @param string $_locale + * @param string $module + * @return Response + * @throws \Exception + */ + public function moduleAction(string $_locale, string $module): Response + { + if (!in_array($_locale, GeneratedData::languagelist)) { + throw new \Exception("Language is not supported"); + } + + if (!array_key_exists($module, GeneratedData::modules_programs)) { + throw new \Exception("Module is unknow"); + } + + $submodules = []; + + foreach (GeneratedData::modules_programs[$module] as $submodule) { + $array = explode('/', $submodule); + $branch_available = GeneratedData::programs_docs[$submodule][$_locale]; + if (count($array) == 1) { + $submodules[$submodule] = ["branch" => $branch_available]; + } elseif (count($array) == 2) { + $submodules[$array[0]][$array[1]] = ["branch" => $branch_available]; + } + } + + return $this->render('module.html.twig', [ + 'lang' => $_locale, + 'module' => $module, + 'categories' => $submodules, + 'branch_descriptions' => GeneratedData::branch_description, + 'appdisplayname' => StaticAppData::appdisplayname, + 'search_form' => $this->createSearchForm()->createView(), + 'all_application_names' => $this->getAllAplicationsName(), + ]); + } + + /** + * @return SearchBarType + */ + private function createSearchForm(): Form + { + // create search form + $search = new Search(); + $form = $this->createForm(SearchBarType::class, $search, [ + 'action' => $this->generateUrl('search'), + ]); + return $form; + } + + private function getAllAplicationsName(): string + { + $cache = new FilesystemAdapter(); + $applicationsNameCache = $cache->getItem('applicationsName'); + + if (!$applicationsNameCache->isHit()) { + $applicationsName = []; + foreach (GeneratedData::modules_programs as $module => $moduleContent) { + foreach ($moduleContent as $submodule) { + $array = explode('/', $submodule); + $branch_available = GeneratedData::programs_docs[$submodule]['en']; + if (count($array) == 1) { + $displayname = (StaticAppData::appdisplayname[$submodule] != null ? StaticAppData::appdisplayname[$submodule] : $submodule); + $applicationsName[] = $displayname; + } elseif (count($array) == 2) { + $displayname = (StaticAppData::appdisplayname[$array[1]] != null ? StaticAppData::appdisplayname[$array[1]] : $array[1]); + $applicationsName[] = $displayname; + } + } + } + $applicationsNameString = ''; + foreach ($applicationsName as $name) { + $applicationsNameString .= $name . ', '; + } + $applicationsNameCache->set($applicationsNameString); + $cache->save($applicationsNameCache); + return $applicationsNameString; + } else { + return $applicationsNameCache->get(); + } + + + } + + /** + * Compare branches (priority), used by usort()/uasort() + * @param string $b1 + * @param string $b2 + * @return string + */ + function cmp_branches(string $b1, string $b2): string + { + $base_array = array('trunk5' => 0, 'stable5' => 1, 'trunk4' => 2, 'stable4' => 3); + if (in_array($b1, $base_array) && in_array($b2, $base_array)) { + return $base_array[$b1] - $base_array[$b2]; + } + } + + + /** + * Return the proper package/namespace for the specified application and + * branch, using the knowledge generated by the documentation + * generator. + * @param string $application + * @param string $branch + * @return string + */ + function get_namespace(string $application, string $branch): string + { + if (array_key_exists($application, GeneratedData::programs_multiplemodules)) { + // multiple packages/namespaces: check in the special list of programs_docs + // with multiple modules if there is specific module for the current branch. + foreach (GeneratedData::programs_multiplemodules[$application] as $s_branch => $s_module) { + if ($s_branch == $branch) { + return $s_module; + } + } + } else { + global $modules_programs; + // single module for all branches, find it + foreach ($modules_programs as $module => $module_apps) { + if (in_array($application, $module_apps)) { + return $module; + } + } + } + } + + function build_url(string $application = '', string $package = '', string $lang = '', string $branch = '', string $html_path = ''): string + { + $params = array(); + if (strlen($branch) > 0) + $params[] = "branch=" . $branch; + if (strlen($lang) > 0) + $params[] = "language=" . $lang; + if (strlen($package) > 0) + $params[] = "package=" . $package; + if (strlen($application) > 0) + $params[] = "application=" . $application; + if (strlen($html_path) > 0) + $params[] = "path=" . $html_path; + return "/index.php?" . implode('&', $params); + } + + /** + * Get path to handbook + * @param string $branch + * @param string $lang + * @param string $application + * @param string $html_path + * @return string + */ + function build_path(string $branch = '', string $lang = '', string $application = '', string $html_path = ''): string + { + $package = get_namespace($application, $branch); + return $branch . + "/" . $lang . + "/" . $package . + "/" . $application . + "/" . $html_path; + } + + /** + * Check if translation exist + * @param string $app + * @param string $lang + * @return bool + */ + function language_for_application_exist(string $app, string $lang): bool + { + return (array_key_exists($lang, $this->programs_docs[$app])); + } + + /** + * Check if text exist for the specified branch and language + * @param $app + * @param $lang + * @param $branch + * @return string the branch + */ + function branch_exist($app, $lang, $branch): string + { + // no translations for the specified application in the current language + if (!language_for_application_exist($app, $lang)) { + return ""; + } + // Handle old URL - compatibility with the old schema + $compatibility_branches = array( + "development" => array("trunk5", "trunk4"), + "stable" => array("stable5", "stable4"), + ); + // Search in compatibility branches first + if (array_key_exists($branch, $compatibility_branches)) { + foreach ($compatibility_branches[$branch] as $comp_branch) { + # echo "Looking for $comp_branch into ".var_dump($this->programs_docs[$app][$lang]); + if (in_array($comp_branch, $this->programs_docs[$app][$lang])) { + return $comp_branch; + } + } + } + // Normal branch + if (in_array($branch, $this->programs_docs[$app][$lang])) { + return $branch; + } + return ""; + } +} + diff --git a/src/Data/GeneratedData.php b/src/Data/GeneratedData.php new file mode 100644 --- /dev/null +++ b/src/Data/GeneratedData.php @@ -0,0 +1,876 @@ + + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/cache' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/mailto' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kmenuedit' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kwinscreenedges' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/cursortheme' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/workspaceoptions' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/cookies' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kdesu' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kcmlaunchfeedback' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kinfocenter' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kdebugdialog5' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/windowbehaviour' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/clock' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/keys' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'knetattach' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/formats' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/windowspecific' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/solid-device-automounter' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/autostart' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'plasma-desktop' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kcmaccess' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/screenlocker' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/desktop' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/proxy' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'systemsettings' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/help/documentationnotfound' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/file' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/translations' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kcmsmserver' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kded' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kcmstyle' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kwintabbox' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/filetypes' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kfontview' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/solid-actions' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/fonts' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/desktopthemedetails' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/baloo' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/help' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/mouse' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/splashscreen' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/webdav' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/useragent' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/data' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/webshortcuts' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/telnet' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kwindecoration' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/trash' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/colors' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/componentchooser' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/icons' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'ksysguard' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/keyboard' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/emoticons' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/ftp' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kwineffects' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/plasma-pa' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/paths' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/joystick' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'klipper' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/smb' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/fontinst' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/netpref' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kioslave5/http' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/spellchecking' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/kgamma5' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/powerdevil' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/khotkeys' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol/phonon' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), + 'kcontrol5/kcm_ssl' => + array ( + 'ca' => + array ( + 0 => 'trunk5', + ), + 'en' => + array ( + 0 => 'trunk5', + ), + ), +); + const modules_programs = array ( + 'frameworks' => + array ( + 0 => 'kdebugdialog5', + 1 => 'kioslave5/data', + 2 => 'kioslave5/file', + 3 => 'kioslave5/ftp', + 4 => 'kioslave5/help', + 5 => 'kioslave5/help/documentationnotfound', + 6 => 'kioslave5/http', + 7 => 'kioslave5/mailto', + 8 => 'kioslave5/telnet', + 9 => 'kioslave5/webdav', + 10 => 'kcontrol5/cache', + 11 => 'kcontrol5/cookies', + 12 => 'kcontrol5/netpref', + 13 => 'kcontrol5/proxy', + 14 => 'kcontrol5/smb', + 15 => 'kcontrol5/trash', + 16 => 'kcontrol5/useragent', + 17 => 'kcontrol5/webshortcuts', + 18 => 'kcontrol5/kcm_ssl', + ), + 'kde-workspace' => + array ( + 0 => 'kcontrol/autostart', + 1 => 'kcontrol/baloo', + 2 => 'kcontrol/clock', + 3 => 'kcontrol/colors', + 4 => 'kcontrol/componentchooser', + 5 => 'kcontrol/cursortheme', + 6 => 'kcontrol/desktopthemedetails', + 7 => 'kcontrol/emoticons', + 8 => 'kcontrol/fontinst', + 9 => 'kcontrol/fonts', + 10 => 'kcontrol/formats', + 11 => 'kcontrol/icons', + 12 => 'kcontrol/joystick', + 13 => 'kcontrol/kcmaccess', + 14 => 'kcontrol/kcmlaunchfeedback', + 15 => 'kcontrol/kcmnotify', + 16 => 'kcontrol/kcmsmserver', + 17 => 'kcontrol/kcmstyle', + 18 => 'kcontrol/kded', + 19 => 'kcontrol/keyboard', + 20 => 'kcontrol/keys', + 21 => 'kcontrol/mouse', + 22 => 'kcontrol/paths', + 23 => 'kcontrol/phonon', + 24 => 'kcontrol/solid-actions', + 25 => 'kcontrol/solid-device-automounter', + 26 => 'kcontrol/spellchecking', + 27 => 'kcontrol/splashscreen', + 28 => 'kcontrol/translations', + 29 => 'kcontrol/workspaceoptions', + 30 => 'kcontrol/kgamma5', + 31 => 'kcontrol/khotkeys', + 32 => 'kcontrol/desktop', + 33 => 'kcontrol/kwindecoration', + 34 => 'kcontrol/kwinscreenedges', + 35 => 'kcontrol/kwintabbox', + 36 => 'kcontrol/windowbehaviour', + 37 => 'kcontrol/windowspecific', + 38 => 'kcontrol/kwineffects', + 39 => 'kcontrol/screenlocker', + 40 => 'kcontrol/powerdevil', + 41 => 'kcontrol/plasma-pa', + 42 => 'kfontview', + 43 => 'knetattach', + 44 => 'plasma-desktop', + 45 => 'kdesu', + 46 => 'kcontrol5/filetypes', + 47 => 'kinfocenter', + 48 => 'kmenuedit', + 49 => 'ksysguard', + 50 => 'klipper', + 51 => 'systemsettings', + ), +); + const programs_multiplemodules = array ( +); + const languagelist = array ( + 0 => 'en', + 1 => 'ca', +); + const branch_description = array ( + 'stable5' => 'Stable (Frameworks 5)', + 'trunk5' => 'Development (Frameworks 5)', +); +}?> diff --git a/src/Data/StaticAppData.php b/src/Data/StaticAppData.php new file mode 100644 --- /dev/null +++ b/src/Data/StaticAppData.php @@ -0,0 +1,516 @@ + "System Settings Modules", + "kcontrol5" => "System Settings Modules", + "kioslave" => "Kioslaves", + "kioslave5" => "Kioslaves", + + #kdelibs + "sonnet" => "Check Spelling", + "data" => "Data URLs", + "http" => "http/https", + "file" => "file", + "ftp" => "FTP", + "help" => "help", + "mailto" => "mailto", + "rlogin" => "rlogin", + "telnet" => "telnet", + "webdav" => "webdav/webdavs", + + #kdepimlibs + "kresources" => "KDE PIM Resources (deprecated)", + "imap" => "imap", + "ldap" => "ldap", + "mbox" => "mbox", + "nntp" => "nntp", + "pop3" => "pop3", + "sieve" => "sieve", + "smtp" => "smtp", + + #applications + "kdepasswd" => "Password &, User Account", # move to kcontrol, it is a kcm + "kate" => "Kate", + "katepart" => "Kate Part", + "kfind" => "KFind", + "konsole" => "Konsole", + "konqueror" => "Konqueror", + "kwrite" => "KWrite", + "dolphin" => "Dolphin", + "keditbookmarks" => "Bookmark Editor", + + #kde-runtime + "kdebugdialog" => "KDebugDialog", + "kdebugdialog5" => "KDebugDialog", + "knetattach" => "KNetAttach", + "documentationnotfound" => "Documentation not found", + "onlinehelp" => "Online Help", + "khelpcenter" => "KHelpCenter", + "kdesu" => "KDE su", + "fundamentals" => "KDE Fundamentals", + + #kde-runtime kcontrol + "attica" => "Social Desktop", + "bookmarks" => "Bookmarks", + "cache" => "Cache", + "componentchooser" => "Default Applications", + "cookies" => "Cookies", + "ebrowsing" => "Web Shortcuts", + "emoticons" => "Emoticons", + "filemanager" => "File Management", + "filetypes" => "File Associations", + "formats" => "Formats", + "history" => "History", + "icons" => "Icons", + "kcmcgi" => "CGI Script", + "kcmcss" => "Appearance", + "kcmlaunchfeedback" => "Launch Feedback", + "kcmnotify" => "System Notification", + "kcm_ssl" => "SSL Preferences", + "kded" => "Service Manager", + "khtml-adblock" => "AdBlocK Filters", + "khtml-behavior" => "Web Browsing", + "khtml-general" => "General Konqueror Behavior", + "khtml-java-js" => "Java and JavaScript", + "khtml-plugins" => "Browser Plugins", + "kwineffects" => "Desktop Effects", + "language" => "Country/Region & Language", + "nepomuk" => "Desktop Search", + "netpref" => "Connection Preferences", + "performance" => "Performance", + "phonon" => "Audio and Video Settings", + "proxy" => "Proxy", + "smb" => "Windows Shares", + "solid-device-automounter" => "Removable Devices", + "spellchecking" => "Spell Checker", + "translations" => "Translations", + "trash" => "Trash", + "useragent" => "Browser Identification", + + #kde-runtime kioslaves + "bookmarks" => "bookmarks", + "bzip2" => "bzip2 / bzip", + "cgi" => "cgi", + "finger" => "finger", + "fish" => "fish", + "floppy" => "Floppy", + "gzip" => "gzip", + "info" => "Info", + "man" => "Man", + "nepomuksearch" => "nepomuksearch", + "network" => "network", + "nfs" => "nfs", + "sftp" => "sftp", + "smb" => "SMB", + "tar" => "tar", + "thumbnail" => "thumbnail", + "xz" => "xz / lzma", + + #kde-workspace + "plasma-desktop" => "Plasma Manual", + "plasma-pa" => "Audio Volume", + "systemsettings" => "System Settings", + "kfontview" => "Font Viewer", + "klipper" => "Klipper", + "kdm" => "KDM Login Manager", + "kinfocenter" => "KDE Info Center", + "kmenuedit" => "KDE Menu Editor", + "ksysguard" => "System Monitor", + "PolicyKit-kde" => "PolicyKit-kde", + #kde-workspace kcontrol + "autostart" => "Autostart", + "baloo" => "File Search Settings", + "bell" => "System Bell", + "clock" => "Date & Time", + "colors" => "Colors", + "cursortheme" => "Cursor Theme", + "desktop" => "Virtual Desktops", + "desktopthemedetails" => "Desktop Themes", + "fontinst" => "Font Management", + "fonts" => "Fonts", + "joystick" => "Joystick", + "kcmaccess" => "Accessibility", + "kcmsmserver" => "Session Management", + "kcmstyle" => "Style", + "keyboard" => "Keyboard", + "keys" => "Shortcuts", + "kgamma5" => "Monitor Gamma", + "khotkeys" => "Custom Shortcuts", + "kwincompositing" => "Desktop Effects", + "kwindecoration" => "Window Decorations", + "kwinscreenedges" => "Screen Edges", + "kwintabbox" => "Task Switcher", + "mouse" => "Mouse", + "paths" => "Paths", + "powerdevil" => "Power Management", + "screenlocker" => "Screen Locker", + "screensaver" => "Screen Locker", + "solid-actions" => "Device Actions", + "solid-hardware" => "Information Sources", + "splashscreen" => "Splash Screen", + "webshortcuts" => "Web Shortcuts", + "windowbehaviour" => "Window Behavior", + "windowspecific" => "Window Rules", + "workspaceoptions" => "Workspace", + + #kdeaccessibility/ + "jovie" => "Jovie", + "kmag" => "KMagnifier", + "kmousetool" => "KMouseTool", + "kmouth" => "KMouth", + + #kdeadmin/ + "kcron" => "Task Scheduler", # move to kcontrol, it is a kcm + "ksystemlog" => "KSystemLog", + "kuser" => "KUser", + + #kdeedu + "artikulate" => "Artikulate", + "blinken" => "Blinken", + "cantor" => "Cantor", + "kalgebra" => "KAlgebra", + "kalzium" => "Kalzium", + "kanagram" => "Kanagram", + "kbruch" => "KBruch", + "kgeography" => "KGeography", + "khangman" => "KHangMan", + "kig" => "Kig", + "kiten" => "Kiten", + "klettres" => "KLettres", + "kmplot" => "KmPlot", + "kstars" => "KStars", + "ktouch" => "KTouch", + "kturtle" => "KTurtle", + "kwordquiz" => "KWordQuiz", + "marble" => "Marble", + "minuet" => "Minuet", + "pairseditor" => "Pairs Editor", + "parley" => "Parley", + "rocs" => "Rocs", + "step" => "Step", + + #kdegames + "bomber" => "Bomber", + "bovo" => "Bovo", + "granatier" => "Granatier", + "kajongg" => "Kajongg", + "kapman" => "Kapman", + "katomic" => "KAtomic", + "knavalbattle" => "Naval Battle", + "kblackbox" => "KBlackbox", + "kblocks" => "KBlocks", + "kbounce" => "KBounce", + "kbreakout" => "KBreakout", + "kdiamond" => "KDiamond", + "kfourinline" => "KFourInLine", + "kgoldrunner" => "KGoldrunner", + "kigo" => "Kigo", + "killbots" => "Killbots", + "kiriki" => "Kiriki", + "kjumpingcube" => "KJumpingCube", + "klickety" => "Klickety", + "knights" => "Knights", + "klines" => "Kolor Lines", + "kmahjongg" => "KMahjongg", + "kmines" => "KMines", + "knetwalk" => "KNetwalk", + "kolf" => "Kolf", + "kollision" => "Kollision", + "konquest" => "Konquest", + "kpat" => "KPatience", + "kreversi" => "KReversi", + "kshisen" => "Shisen-Sho", + "ksirk" => "KSirk", + "kspaceduel" => "KSpaceDuel", + "ksquares" => "KSquares", + "ksudoku" => "KSudoku", + "ktron" => "KSnakeDuel", + "ktuberling" => "KTuberling", + "kubrick" => "Kubrick", + "lskat" => "LSkat", + "palapeli" => "Palapeli", + "picmi" => "Picmi", + + #kdegraphics + "gwenview" => "Gwenview", + "kolourpaint" => "KolourPaint", + "kruler" => "KRuler", + "ksnapshot" => "KSnapshot", + "okular" => "Okular", + "spectacle" => "Spectacle", + + #kdegraphics kcontrol + "kamera" => "Digital Camera", + "kgamma" => "Monitor Gamma", + + #kdemultimedia + "dragonplayer" => "Dragon Player", + "juk" => "JuK", + "kdenlive" => "Kdenlive", + "kmix" => "KMix", + "kwave" => "Kwave", + + #kdemultimedia kcontrol + "cddbretrieval" => "CDDB Retrieval", + "cddbretrieval5" => "CDDB Retrieval", + + #kdemultimedia kioslave + "audiocd" => "audiocd", + + #kdenetwork + "kget" => "KGet", + "kopete" => "Kopete", + "kppp" => "KPPP", + "krdc" => "KRDC", + "krfb" => "Desktop Sharing", + "recentdocuments" => "Recent Documents", + + #kdepim + "akonadi_archivemail_agent" => "Archive Mail Agent", + "akonadi_followupreminder_agent" => "Follow Up Reminder Agent", + "akonadi_folderarchive_agent" => "Folder Archive Agent", + "akonadi_notes_agent" => "Notes Agent", + "akonadi_sendlater_agent" => "Send Later Agent", + "akregator" => "Akregator", + "blogilo" => "Blogilo", + "contactthemeeditor" => "Contact Theme Editor", + "headerthemeeditor" => "Header Theme Editor", + "importwizard" => "Import Wizard", + "kabcclient" => "KABC-Client", + "kalarm" => "KAlarm", + "kjots" => "KJots", + "kleopatra" => "Kleopatra", + "kmail" => "KMail", + "kmail2" => "KMail", + "kmailcvt" => "KMailCVT", + "knode" => "KNode", + "knotes" => "KNotes", + "konsolekalendar" => "KonsoleKalendar", + "kontact" => "Kontact", + "kontact-admin" => "Kontact Administrator's Guide", + "korganizer" => "KOrganizer", + "ktimetracker" => "KTimeTracker", + "ktnef" => "KTnef", + "kwatchgnupg" => "KWatchGnuPG", + "pimsettingexporter" => "PIM Setting Exporter", + "sieveeditor" => "Sieve Script Editor", + + #kdepim kioslave + "news" => "news", + #kdesdk + + "cervisia" => "Cervisia", + "kapptemplate" => "KAppTemplate", + "kcachegrind" => "KCachegrind", + "kompare" => "Kompare", + "lokalize" => "Lokalize", + "okteta" => "Okteta", + "umbrello" => "Umbrello", + + #kdetoys + "amor" => "Amor", + "kteatime" => "KTeatime", + + #kdeutils + "ark" => "Ark", + "filelight" => "Filelight", + "kbackup" => "KBackup", + "kcalc" => "KCalc", + "kcharselect" => "KCharSelect", + "kdf" => "KDiskFree", + "kfloppy" => "KFloppy", + "kgpg" => "KGpg", + "ktimer" => "KTimer", + "kwallet" => "KWallet", + "kwallet5" => "KWallet", + "kwalletmanager" => "KWallet Manager", + "sweeper" => "Sweeper", + + #kdeutils kcontrol + "blockdevices" => "Block Devices", + "kremotecontrol" => "Remote Control", + + #kdewebdev + "kfilereplace" => "KFileReplace", + "kimagemapeditor" => "KImageMapEditor", + "klinkstatus" => "KLinkStatus", + + #calligra + "sheets" => "Calligra Sheets", + "calligra" => "Calligra", + "kexi" => "Kexi", + "stage" => "Calligra Stage", + + #extragear-accessibility + "afaras" => "Afaras", + "ssc" => "Sample Acquisition Tool", + "sscd" => "Sample Acquisition Tool Daemon", + "simond" => "Simon Daemon", + "simon" => "Simon Speech Recognition Tool", + "sam" => "Simon Accoustic Model Manager", + "ksimond" => "Simon Daemon Frontend", + + #extragear-base kcontrol + "wacomtablet" => "KCM Tablet", + + #extragear-edu + "gcompris" => "GCompris Administration", + "labplot2" => "LabPlot", + + #extragear-games + + #extragear-graphics + "digikam" => "digiKam", + "kcoloredit" => "KColorEdit", + "kgraphviewer" => "KGraphViewer", + "kiconedit" => "KIconEdit", + "kipi-plugins" => "Kipi Plugins", + "kphotoalbum" => "KPhotoAlbum", + "kpovmodeler" => "KPovModeler", + "kuickshow" => "KuickShow", + "kxstitch" => "KXStitch", + "showfoto" => "Showfoto", + "skanlite" => "Skanlite", + "SymbolEditor" => "SymbolEditor", + + #extragear-kdevelop + "kdevelop" => "KDevelop", + + #extragear-multimedia + "amarok" => "Amarok", + "k3b" => "K3b", + "kaffeine" => "Kaffeine", + "kamoso" => "Kamoso", + "kaudiocreator" => "KAudioCreator", + "kmid" => "KMid", + "kmplayer" => "KMPlayer", + "kplayer" => "KPlayer", + + #extragear-network + "choqok" => "Choqok", + "kopete-cryptography" => "Cryptography Plugin", + "rekonq" => "rekonq", + "konversation" => "Konversation", + "ktorrent" => "KTorrent", + "smb4k" => "Smb4K", + + #extragear-network kioslave + "gopher" => "gopher", + "gdrive" => "gdrive", + + #extragear-office + "kbibtex" => "KBibTeX", + "kile" => "Kile", + "kmymoney" => "KMyMoney", + "skrooge" => "Skrooge", + "tellico" => "Tellico", + + #extragear-pim + "ksig" => "KSig", + "trojita" => "Trojita", + + #extragear-sdk + "xsldbg" => "xsldbg", + "kxsldbg" => "KXSLDbg", + + #extragear-sysadmin + "partitionmanager" => "Partition Manager", + "kiosktool" => "KIOSK Admin Tool", + + #extragear-utils + "katimon" => "Katimon", + "kdesrc-build" => "kdesrc-build Script", + "keurocalc" => "KEuroCalc", + "kpager" => "KPager", + "krecipes" => "Krecipes", + "kronometer" => "Kronometer", + "krusader" => "Krusader", + "nepomukshell" => "Nepomuk Shell", + "rsibreak" => "RSIBreak", + "kdiff3" => "KDiff3", + "kdots" => "KDots", + "kpeg" => "KPeg", + "rkward" => "RKWard", + "rkwardplugins" => "RKWard Plugins", + ]; + + const package_no_application_array = array("kdepimlibs", "kdepim-runtime"); +} + +?> diff --git a/src/Entity/.gitignore b/src/Entity/.gitignore new file mode 100644 diff --git a/src/Entity/Search.php b/src/Entity/Search.php new file mode 100644 --- /dev/null +++ b/src/Entity/Search.php @@ -0,0 +1,26 @@ +searchTerm; + } + + /** + * @param string|null $search + */ + public function setSearchTerm(?string $search): void + { + $this->searchTerm = $search; + } +} + + diff --git a/src/Form/SearchBarType.php b/src/Form/SearchBarType.php new file mode 100644 --- /dev/null +++ b/src/Form/SearchBarType.php @@ -0,0 +1,24 @@ +add('search_term', SearchType::class) + ->add('Search', SubmitType::class) + ; + } +} \ No newline at end of file diff --git a/src/Kernel.php b/src/Kernel.php new file mode 100644 --- /dev/null +++ b/src/Kernel.php @@ -0,0 +1,58 @@ +getProjectDir().'/var/cache/'.$this->environment; + } + + public function getLogDir() + { + return $this->getProjectDir().'/var/log'; + } + + public function registerBundles() + { + $contents = require $this->getProjectDir().'/config/bundles.php'; + foreach ($contents as $class => $envs) { + if ($envs[$this->environment] ?? $envs['all'] ?? false) { + yield new $class(); + } + } + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) + { + $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); + $container->setParameter('container.dumper.inline_class_loader', true); + $confDir = $this->getProjectDir().'/config'; + + $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); + } + + protected function configureRoutes(RouteCollectionBuilder $routes) + { + $confDir = $this->getProjectDir().'/config'; + + $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + } +} diff --git a/src/Migrations/.gitignore b/src/Migrations/.gitignore new file mode 100644 diff --git a/src/Repository/.gitignore b/src/Repository/.gitignore new file mode 100644 diff --git a/styles/darkbackground.css b/styles/darkbackground.css deleted file mode 100644 --- a/styles/darkbackground.css +++ /dev/null @@ -1,273 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann and Olaf Schmidt - */ - -/* common (X)HTML formats */ - -body { -font-size: 100%; -line-height: 1.2em; /* Note: it is inherited as is, not recalculated! */ -background-color: #000022; -color: white; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -padding: 0; -margin: 0; -text-align: left; -background-color: black; -} - -input, select { -font-size: 0.8em; -line-height: 1em; -} - -form { -margin: 0; -padding: 0; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #CCCCFF; -text-decoration: underline; -} - -a:visited { -color: #FFCCFF; -text-decoration: underline; -} - -a:hover { -text-decoration: underline; -} - -/* navigation header, this is the combined area with logo and section links */ - -#nav_header_top { -text-align: right; -} - -#nav_header_bottom { -clear: left; -padding: 0.3em; -background-color: black; -text-align: left; -} - -#nav_header_logo, #nav_header_logo_right { -display: none; -} - -/* title text */ -#nav_header_title { -float: left; -font-size: 2em; -line-height: 1.4em; -padding-left: 0.2em; -} - -/* location combo */ -#nav_header_location { -} - -/* location URL */ -#nav_header_bottom_left { -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* place for the links to contact, sitemap, ... s*/ -#nav_header_bottom_right { -float: right; -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* main color definitions */ - -.menuheader { -height: 0; -line-height: 0; -margin: 0; -padding: 0; -font-size: 0; -} - -#leftmenu, #rightmenu { -width: 20%; -} - -#leftmenu h2, #rightmenu h2 { -font-size: 1em; -padding-left: 1em; -vertical-align: middle; -background-color: #000022; -color: white; -margin-top: 0; -} - -#rightmenu h3 { -padding: 0.3em 0.8em; -font-size: 1em; -} - -#leftmenu ul, #rightmenu ul { -margin: 0; -padding-left: 0.5em; -padding-bottom: 1em; -} - -#leftmenu ul { -list-style-type: none; -} - -#rightmenu ul { -list-style-type: none; -} - -#leftmenu li, #rightmenu li { -font-size: 0.8em; -} - -#leftmenu li { -margin-left: 1em; -} - -#rightmenu li { -margin-left: 1.5em; -} - -#leftmenu ul ul, #rightmenu ul ul { -margin: 0; -padding-left: 0; -} - -#leftmenu li li, #rightmenu li li{ -font-size: 0.8em; -margin-left: 2em; -list-style-type: square; -} - -/** - * page footer - */ - -/* background + border at top */ -#footer { -background-color: #000022; -} - -/* footer text stuff + image */ -#footer_text { -display: none; -} - -/* classes */ - -/* static IDs, ordered top to bottom */ - -#content { -border: 1px solid white; -padding: 0em 0.7em 1.5em 0.7em; -text-align: justify; -background-color: black; -} - -#content td, #content th { -font-family: sans-serif; -padding: 0.25em; -margin: 0; -text-align: left; -} - -#content h4, #content h3, #content h2, #content h1 { -text-align: left; -line-height: 1em; /* without this lines stick in each other for headings */ -} - -#quicklinks { -font-size: 1em; -text-align: center; -margin-top: 1em; -margin-left: 0.5em; -margin-bottom: 0.5em; -margin-right: 0.5em; -} - -.menu_box { -background-color: black; -} - -#search { -text-align: center; -padding: 0.2em 0.2em 0.2em 0.2em; -} - -#search label { -display: none; -} - -#search input, #search select { -width: 95%; -margin-bottom: 2px; -} - -#hotspot { -font-size: 0.8em; -line-height: 1em; -text-align: center; -padding: 0 0 0.8em 0; -} - -#rightmenu h3 { -margin-bottom: 0; -} - -.newsbox1 { -background-color: #000022; -margin-top: 1em; -margin-bottom: 0.5em; -} - -.newsbox2 { -background-color: black; -margin-top: 1em; -margin-bottom: 0.5em -} - -/* common style for tables used in the page */ -.table_box { -background-color: #000022; -border: 0; -padding: 0; -margin: 0; -border-spacing: 0; -} - -.table_box th { -background-color: #000022; -color: white; -} - -/* hidden stuff */ -.doNotDisplay { -display: none; -} - -@media aural { .doNotDisplay { -display: inline; -}} diff --git a/styles/print-rtl.css b/styles/print-rtl.css deleted file mode 100644 --- a/styles/print-rtl.css +++ /dev/null @@ -1,63 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann - */ - -/* common (X)HTML formats */ - -body { -background-color: white; -color: black; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -line-height: 1em; -padding: 0; -margin: 0; -text-align: left; -} - -input, select, textarea { -font-family: sans-serif; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #036; -} - -a:visited { -color: #555AAA; -} - -/* main color definitions */ - -.invisible, #nav_header_logo, #nav_header_location, #nav_header_bottom, #footer, .menuheader, #leftmenu, #rightmenu, #leftmenu h2, #leftmenu ul, #search { -display: none; -width: 0; -overflow: hidden; -} - -#content { -background-color: white; -text-align: justify; -line-height: 1.5em; -background-color: white; -padding-right: 2em; -} - -/* static IDs, ordered top to bottom */ - -/* div { border: 1px solid black; } */ - -/* hidden stuff */ -.doNotDisplay { - display: none; -} \ No newline at end of file diff --git a/styles/print.css b/styles/print.css deleted file mode 100644 --- a/styles/print.css +++ /dev/null @@ -1,63 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann - */ - -/* common (X)HTML formats */ - -body { -background-color: white; -color: black; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -line-height: 1em; -padding: 0; -margin: 0; -text-align: left; -} - -input, select, textarea { -font-family: sans-serif; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #036; -} - -a:visited { -color: #555AAA; -} - -/* main color definitions */ - -.invisible, #nav_header_logo, #nav_header_location, #nav_header_bottom, #footer, .menuheader, #leftmenu, #rightmenu, #leftmenu h2, #leftmenu ul, #search, #footer { -display: none; -width: 0; -overflow: hidden; -} - -#content { -background-color: white; -text-align: justify; -line-height: 1.5em; -background-color: white; -padding-right: 2em; -} - -/* static IDs, ordered top to bottom */ - -/* div { border: 1px solid black; } */ - -/* hidden stuff */ -.doNotDisplay { - display: none; -} \ No newline at end of file diff --git a/styles/standard-rtl.css b/styles/standard-rtl.css deleted file mode 100644 --- a/styles/standard-rtl.css +++ /dev/null @@ -1,360 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann and Olaf Schmidt - */ - -/* common (X)HTML formats */ - -body { -font-size: 100%; -line-height: 1.2em; /* Note: it is inherited as is, not recalculated! */ -background-color: white; -color: black; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -padding: 0; -margin: 0; -} - -input, select { -font-size: 0.8em; -line-height: 1em; -} - -form { -margin: 0; -padding: 0; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #0000C0; -text-decoration: none; -} - -a:visited { -color: #800080; -text-decoration: none; -} - -a:hover { -text-decoration: underline; -} - -/* navigation header, this is the combined area with logo and section links */ - -#nav_header_top { -height: 52px; -background-color: #418ade; -border-bottom: 1px solid #000000; -} - -#nav_header_bottom { -padding: 6px 6px 6px 84px; -background-color: #dfe7f3; -border-bottom: 1px solid #000000; -} - -#nav_header_logo { -float: left; -padding: 10px; -} - -#nav_header_logo a img { -width: 64px; -height: 64px; -} - -#nav_header_logo_right { -float: right; -padding: 10px; -} - -/* title text */ -#nav_header_title { -position: absolute; -top: 12px; -left: 86px; -border: 0px; -font-size: 32px; -font-weight: bold; -color: white; -white-space: nowrap; - -line-height: 36px; -} - -/* location combo */ -#nav_header_location { -position: absolute; -top: 12px; -right: 8px; -border: 0px; -color: #444; -vertical-align: middle; -white-space: nowrap; - -font-size: 14px; -} - -/* location URL */ -#nav_header_bottom_left { -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* place for the links to contact, sitemap, ... s*/ -#nav_header_bottom_right { -float: left; -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* main color definitions */ - -.menuheader { -height: 0; -line-height: 0; -margin: 0; -padding: 0; -font-size: 0; -} - -#leftmenu, #rightmenu { -width: 20%; -} - -#leftmenu h2, #rightmenu h2 { -font-size: 1em; -padding-right: 1em; -vertical-align: middle; -background-color: #418ade; -border-top: 0.3em solid #418ade; -border-bottom: 0.3em solid #418ade; -color: white; -margin-top: 0; -} - -#rightmenu h3 { -padding: 0.3em 0.8em; -font-size: 1em; -margin-bottom: 0; -} - -#leftmenu ul, #rightmenu ul { -margin: 0; -padding-right: 0.5em; -padding-bottom: 1em; -} - -#leftmenu ul { -list-style-type: none; -} - -#rightmenu ul { -list-style-type: none; -} - -#leftmenu li, #rightmenu li { -font-size: 0.8em; -} - -#leftmenu li { -margin-right: 1em; -} - -#rightmenu li { -margin-right: 1.5em; -} - -#leftmenu ul ul, #rightmenu ul ul { -margin: 0; -padding-right: 0; -} - -#leftmenu li li, #rightmenu li li { -font-size: 0.8em; -margin-right: 2em; -} - -li.here a:link, li.here a:visited, li.here li.here a:link, li.here li.here a:visited { -text-decoration: underline; -} - -li.here li a:link, li.here li a:visited { -text-decoration: none; -} - -li.here a:hover, li.here li a:hover, li.here li.here a:hover { -text-decoration: underline; -} - -/** - * page footer - */ - -/* background + border at top */ -#footer { -border-top: 1px solid #000000; -background-image: url(../images/footer_bg.png); -background-repeat: repeat-x; -background-position: bottom left; -width: 100%; -height: 100px; -} - -/* left footer, contains the text */ -#footer_text { -left: 0px; -text-align: right; -padding: 0em 1.5em 0em 1.5em; -clear: both; -background-image: url(../images/footer_left.png); -background-repeat: no-repeat; -background-position: bottom left; -width: 100%; -height: 100px; -bottom:0px; -} - -/* classes */ - -#main, #content { -clear: both; -} - -#content { -background-color: white; -padding: 0.5em 0.7em 1.5em 0.7em; -text-align: justify; -} - -#content td, #content th { -font-family: sans-serif; -padding: 0.25em; -margin: 0; -text-align: left; -} - -#content h4, #content h3, #content h2, #content h1 { -color: #418ade; -line-height: 1em; /* without this lines stick in each other for headings */ -} - -#quicklinks { -background-color: #E6F0F9; -font-size: 1em; -padding: 1em; -text-align: center; -margin-top: 1em; -margin-left: 0.5em; -margin-bottom: 0.5em; -margin-right: 0.5em; -} - -#leftmenu, #rightmenu { -background-color: white; -color: #036; -} - -.menu_box { -border-top: 8px solid white; -border-right: 8px solid white; -border-left: 8px solid white; - -background-color: #dfe7f3; -} - -#search { -text-align: center; -padding: 0.2em 0.2em 0.2em 0.2em; -} - -#search label { -display: none; -} - -#search input, #search select { -width: 95%; -margin-bottom: 2px; -} - -#hotspot { -font-size: 0.8em; -line-height: 1em; -text-align: center; -padding: 0 0 0.8em 0; -} - -.newsbox1 { -background-color: #E6F0F9; -margin-top: 1em; -margin-bottom: 0.5em; -} - -.newsbox2 { -background-color: white; -margin-top: 1em; -margin-bottom: 0.5em -} - -/* common style for tables used in the page */ -.table_box { -background-color: #dfe7f3; -border: 0; -padding: 0; -margin: 0; -border-spacing: 0; -} - -.table_box th { -background-color: #418ade; -color: white; -} - -/* needed for edu.kde.org */ -.contentheader, #content h4.contentheader { -font-size: 1em; -font-weight: bold; -line-height: 1.2em; -padding: 0.1em 0 0.2em 1em; -vertical-align: middle; -background-color: #418ade; -color: white; -margin: 0; -} - -/* Very common pattern on developer.kde.org: a list of links - to other pages with a brief italicized description below the link. - Can be created with
  1. link

  2. */ - -ul.linklist p { - font-size: small; - font-style: italic; -} - -ul.linklist p em { - font-style: normal; - font-weight: bold; -} - -/* hidden stuff */ -.doNotDisplay { -display: none; -} - -@media aural { .doNotDisplay { -display: inline; -}} diff --git a/styles/standard.css b/styles/standard.css deleted file mode 100644 --- a/styles/standard.css +++ /dev/null @@ -1,368 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann and Olaf Schmidt - */ - -/* common (X)HTML formats */ - -body { -font-size: 100%; -line-height: 1.2em; /* Note: it is inherited as is, not recalculated! */ -background-color: white; -color: black; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -padding: 0; -margin: 0; -text-align: left; -} - -input, select { -font-size: 0.8em; -line-height: 1em; -} - -form { -margin: 0; -padding: 0; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #0000C0; -text-decoration: none; -} - -a:visited { -color: #800080; -text-decoration: none; -} - -a:hover { -text-decoration: underline; -} - -/* navigation header, this is the combined area with logo and section links */ - -#nav_header_top { -height: 52px; - -text-align: right; - -background-color: #418ade; -border-bottom: 1px solid #000000; -} - -#nav_header_bottom { -padding: 6px 6px 6px 84px; -background-color: #dfe7f3; -border-bottom: 1px solid #000000; - -text-align: left; -} - -#nav_header_logo { -float: left; -padding: 10px; -} - -#nav_header_logo a img { -width: 64px; -height: 64px; -} - -#nav_header_logo_right { -float: right; -padding: 10px; -} - -/* title text */ -#nav_header_title { -position: absolute; -top: 12px; -left: 86px; -border: 0px; -font-size: 32px; -font-weight: bold; -color: white; -white-space: nowrap; - -line-height: 36px; -} - -/* location combo */ -#nav_header_location { -position: absolute; -top: 12px; -right: 8px; -border: 0px; -color: #444; -vertical-align: middle; -white-space: nowrap; - -font-size: 14px; -} - -/* location URL */ -#nav_header_bottom_left { -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* place for the links to contact, sitemap, ... s*/ -#nav_header_bottom_right { -float: right; -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* main color definitions */ - -.menuheader { -height: 0; -line-height: 0; -margin: 0; -padding: 0; -font-size: 0; -} - -#leftmenu, #rightmenu { -width: 20%; -} - -#leftmenu h2, #rightmenu h2 { -font-size: 1em; -padding-left: 1em; -vertical-align: middle; -background-color: #418ade; -border-top: 0.3em solid #418ade; -border-bottom: 0.3em solid #418ade; -color: white; -margin-top: 0; -} - -#rightmenu h3 { -padding: 0.3em 0.8em; -font-size: 1em; -margin-bottom: 0; -} - -#leftmenu ul, #rightmenu ul { -margin: 0; -padding-left: 0.5em; -padding-bottom: 1em; -} - -#leftmenu ul { -list-style-type: none; -} - -#rightmenu ul { -list-style-type: none; -} - -#leftmenu li, #rightmenu li { -font-size: 0.8em; -} - -#leftmenu li { -margin-left: 1em; -} - -#rightmenu li { -margin-left: 1.5em; -} - -#leftmenu ul ul, #rightmenu ul ul { -margin: 0; -padding-left: 0; -} - -#leftmenu li li, #rightmenu li li { -font-size: 0.8em; -margin-left: 2em; -} - -li.here a:link, li.here a:visited, li.here li.here a:link, li.here li.here a:visited { -text-decoration: underline; -} - -li.here li a:link, li.here li a:visited { -text-decoration: none; -} - -li.here a:hover, li.here li a:hover, li.here li.here a:hover { -text-decoration: underline; -} - -/** - * page footer - */ - -/* background + border at top */ -#footer { -border-top: 1px solid #000000; -background-image: url(../images/footer_bg.png); -background-repeat: repeat-x; -background-position: bottom left; -width: 100%; -height: 100px; -} - -/* left footer, contains the text */ -#footer_text { -left: 0px; -text-align: left; -padding: 0em 1.5em 0em 1.5em; -clear: both; -background-image: url(../images/footer_right.png); -background-repeat: no-repeat; -background-position: bottom right; -width: 100%; -height: 100px; -bottom:0px; -} - -/* classes */ - -#main, #content { -clear: both; -} - -#content { -background-color: white; -padding: 0.5em 0.7em 1.5em 0.7em; -text-align: justify; -} - -#content td, #content th { -font-family: sans-serif; -padding: 0.25em; -margin: 0; -text-align: left; -} - -#content h4, #content h3, #content h2, #content h1 { -color: #418ade; -text-align: left; -line-height: 1em; /* without this lines stick in each other for headings */ -} - -#quicklinks { -background-color: #E6F0F9; -font-size: 1em; -padding: 1em; -text-align: center; -margin-top: 1em; -margin-left: 0.5em; -margin-bottom: 0.5em; -margin-right: 0.5em; -} - -#leftmenu, #rightmenu { -background-color: white; -color: #036; -} - -.menu_box { -border-top: 8px solid white; - -border-right: 8px solid white; -border-left: 8px solid white; - -background-color: #dfe7f3; -} - -#search { -text-align: center; -padding: 0.2em 0.2em 0.2em 0.2em; -} - -#search label { -display: none; -} - -#search input, #search select { -width: 95%; -margin-bottom: 2px; -} - -#hotspot { -font-size: 0.8em; -line-height: 1em; -text-align: center; -padding: 0 0 0.8em 0; -} - -.newsbox1 { -background-color: #E6F0F9; -margin-top: 1em; -margin-bottom: 0.5em; -} - -.newsbox2 { -background-color: white; -margin-top: 1em; -margin-bottom: 0.5em -} - -/* common style for tables used in the page */ -.table_box { -background-color: #dfe7f3; -border: 0; -padding: 0; -margin: 0; -border-spacing: 0; -} - -.table_box th { -background-color: #418ade; -color: white; -} - -/* needed for edu.kde.org */ -.contentheader, #content h4.contentheader { -font-size: 1em; -font-weight: bold; -line-height: 1.2em; -padding: 0.1em 0 0.2em 1em; -vertical-align: middle; -background-color: #418ade; -color: white; -margin: 0; -} - -/* Very common pattern on developer.kde.org: a list of links - to other pages with a brief italicized description below the link. - Can be created with
  3. link

  4. */ - -ul.linklist p { - font-size: small; - font-style: italic; -} - -ul.linklist p em { - font-style: normal; - font-weight: bold; -} - -/* hidden stuff */ -.doNotDisplay { -display: none; -} - -@media aural { .doNotDisplay { -display: inline; -}} diff --git a/styles/yellowonblue.css b/styles/yellowonblue.css deleted file mode 100644 --- a/styles/yellowonblue.css +++ /dev/null @@ -1,273 +0,0 @@ -/** - * based on code by Sebastian Faubel - * modified by Christoph Cullmann and Olaf Schmidt - */ - -/* common (X)HTML formats */ - -body { -font-size: 100%; -line-height: 1.2em; /* Note: it is inherited as is, not recalculated! */ -background-color: #000099; -color: #ffff00; -font-family: sans-serif; -padding: 0; -margin: 0; -} - -table, td, th { -font-family: sans-serif; -padding: 0; -margin: 0; -text-align: left; -background-color: #000066; -} - -input, select { -font-size: 0.8em; -line-height: 1em; -} - -form { -margin: 0; -padding: 0; -} - -optgroup { -font-style: normal; -} - -a:link { -color: #99ff00; -text-decoration: underline; -} - -a:visited { -color: #ff9900; -text-decoration: underline; -} - -a:hover { -text-decoration: underline; -} - -/* navigation header, this is the combined area with logo and section links */ - -#nav_header_top { -text-align: right; -} - -#nav_header_bottom { -clear: left; -padding: 0.3em; -background-color: #000066; -text-align: left; -} - -#nav_header_logo, #nav_header_logo_right { -display: none; -} - -/* title text */ -#nav_header_title { -float: left; -font-size: 2em; -line-height: 1.4em; -padding-left: 0.2em; -} - -/* location combo */ -#nav_header_location { -text-align: right; -} - -/* location URL */ -#nav_header_bottom_left { -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* place for the links to contact, sitemap, ... s*/ -#nav_header_bottom_right { -float: right; -vertical-align: middle; - -font-size: 0.8em; -line-height: 1.1em; -} - -/* main color definitions */ - -.menuheader { -height: 0; -line-height: 0; -margin: 0; -padding: 0; -font-size: 0; -} - -#leftmenu, #rightmenu { -width: 20%; -} - -#leftmenu h2, #rightmenu h2 { -font-size: 1em; -padding-left: 1em; -vertical-align: middle; -background-color: #000099; -color: #ffff00; -margin-top: 0; -} - -#rightmenu h3 { -padding: 0.3em 0.8em; -font-size: 1em; -} - -#leftmenu ul, #rightmenu ul { -margin: 0; -padding-left: 0.5em; -padding-bottom: 1em; -} - -#leftmenu ul { -list-style-type: none; -} - -#rightmenu ul { -list-style-type: none; -} - -#leftmenu li, #rightmenu li { -font-size: 0.8em; -} - -#leftmenu li { -margin-left: 1em; -} - -#rightmenu li { -margin-left: 1.5em; -} - -#leftmenu ul ul, #rightmenu ul ul { -margin: 0; -padding-left: 0; -} - -#leftmenu li li, #rightmenu li li{ -font-size: 0.8em; -margin-left: 2em; -list-style-type: square; -} - -/** - * page footer - */ - -/* background + border at top */ -#footer { -background-color: #000099; -} - -/* footer text stuff + image */ -#footer_text { -display: none; -} - -/* classes */ - -/* static IDs, ordered top to bottom */ - -#content { -border: 1px solid #ffff00; -padding: 0em 0.7em 1.5em 0.7em; -text-align: justify; -background-color: #000066; -} - -#content td, #content th { -font-family: sans-serif; -padding: 0.25em; -margin: 0; -text-align: left; -} - -#content h4, #content h3, #content h2, #content h1 { -text-align: left; -line-height: 1em; /* without this lines stick in each other for headings */ -} - -#quicklinks { -font-size: 1em; -text-align: center; -margin-top: 1em; -margin-left: 0.5em; -margin-bottom: 0.5em; -margin-right: 0.5em; -} - -.menu_box { -background-color: #000066; -} - -#search { -text-align: center; -padding: 0.2em 0.2em 0.2em 0.2em; -} - -#search label { -display: none; -} - -#search input, #search select { -width: 95%; -margin-bottom: 2px; -} - -#hotspot { -font-size: 0.8em; -line-height: 1em; -text-align: center; -padding: 0 0 0.8em 0; -} - -#rightmenu h3 { -margin-bottom: 0; -} - -.newsbox1 { -background-color: #000099; -margin-top: 1em; -margin-bottom: 0.5em; -} - -.newsbox2 { -background-color: #000066; -margin-top: 1em; -margin-bottom: 0.5em -} - -/* common style for tables used in the page */ -.table_box { -background-color: #000099; -border: 0; -padding: 0; -margin: 0; -border-spacing: 0; -} - -.table_box th { -background-color: #000099; -color: #ffff00; -} -/* hidden stuff */ -.doNotDisplay { -display: none; -} - -@media aural { .doNotDisplay { -display: inline; -}} diff --git a/templates/base.html.twig b/templates/base.html.twig new file mode 100644 --- /dev/null +++ b/templates/base.html.twig @@ -0,0 +1,145 @@ + + + + + + {% block title %}Welcome!{% endblock %} + {% block stylesheets %} + {{ encore_entry_link_tags('app') }} + {% endblock %} + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +
    + {{ form_start(search_form, {'attr': {'class': 'form-row', 'novalidate': 'novalidate'}}) }} +
    + {{ form_widget(search_form.search_term, {'attr': {'aria-label': 'Search', 'placeholder': 'Search', 'class': 'form-control mb-2', 'value': search_term is defined ? search_term : '', 'id': 'autocomplete'}} ) }} +
    +
    + {{ form_widget(search_form.Search, {'attr': {'id': 'autocomplete', 'class': 'btn btn-outline-success mb-2 col-md-12'}}) }} +
    + {{ form_end(search_form) }} +
    + {% block body %}{% endblock %} +
    +
    +
    -
    - - - -
    -$if{true,$include{inc/anyalldropbox},$include{inc/anyallradio}} -- Results per page: $set{hitvalues,$split{10 20 50}} - -
    -
    -Language: - -Branch: - -
    -$if{$opt{topterms}, -
    - $map{$topterms,$html{$prettyterm{$_}} } -
    -
    -} -
    -$if{$suggestion,Did you mean:
    $html{$suggestion}
    } -$or{$html{$error}, -$if{$eq{$msize,0}, -$if{$query,No documents match your query, -
    Searching $nice{$dbsize} documents -}, -$if{$not{$msizeexact}, - $nice{$add{$topdoc,1}}-$nice{$last} of about $nice{$msize} matches, - $if{$and{$eq{$last,$msize},$eq{$topdoc,0}}, - All $nice{$msize} matches, - $nice{$add{$topdoc,1}}$if{$ne{$add{$topdoc,1},$last},-$nice{$last}} of exactly $nice{$msize} matches} -} -
    -
    -$list{$map{$queryterms,$list{$html{$uniq{$unstem{$_}}},,/,}: $nice{$freq{$_}}},Term frequencies: ,$. ,} -
    Search took $time seconds - -$hitlist{ -${ $set{docurl,$transform{\/(^\/+)/(^\/+)/(^\/+)/(^.+)/(^\/+)$,/index.php?branch=\1&language=\2&application=\4&page=\5,$html{$field{url}}}} } -${ $set{docurl,$transform{\/([^\/]\+)\/([^\/]\+)\/([^\/]\+)\/(.\+)\/([^\/]\+)$,/index.php?branch=\1&language=\2&application=\4&page=\5,$html{$field{url}}}} } -$set{docurl,$transform{/([^/]+)/([^/]+)/([^/]+)/(.+)/([^/]+),/index.php?branch=\1&language=\2&application=\4&path=\5,$html{$field{url}}}} -} -
    -${$percentage%} -
    -
    -
    -
    -$if{$and{$field{modtime},$ne{$field{modtime},-1}}, - -
    -} -$if{$field{language},Language: $html{$field{language}}
    } -$if{$field{size},Size: $html{$filesize{$field{size}}}
    } -${
    - -
    } -
    -
    $html{$or{$field{caption},$field{title},$prettyurl{$field{url}},Untitled}}
    -$highlight{$field{sample},$terms}$if{$field{sample},...}
    -$opt{docurl}
    - -matching: -$list{$map{$terms,$html{$prettyterm{$_}}},$. , and }${for lynx:}

    - -
    - -${suppress next, prev, and page links if there's only one page} -$if{$ne{$lastpage,1}, -$set{a,$if{$opt{pagelink_height}, HEIGHT=$opt{pagelink_height}}$if{$opt{pagelink_width}, WIDTH=$opt{pagelink_width}}} - -${1-W ... X-(this)-Y ...} -$set{w,$min{3,$add{$thispage,-1}}} -$set{x,$max{$add{$opt{w},1},$add{$thispage,-3}}} -$set{y,$min{$lastpage,$add{$thispage,8}}} -$PREV -$map{$range{1,$opt{w}},$PAGE{$_}} -$if{$ne{$add{$opt{w},1},$opt{x}},...} -$map{$range{$opt{x},$add{$thispage,-1}},$PAGE{$_}} -$SPAGE{$thispage} -$map{$range{$add{$thispage,1},$opt{y}},$PAGE{$_}} -$if{$ne{$opt{y},$lastpage},...} -$NEXT -} -}} -

    -$if{$dbname,} -$if{$ne{$topdoc,0},} -$if{$ne{$hitsperpage,10},} -$if{$fmt,} -$if{$cgi{COLLAPSE},} -$if{$queryterms,} - - -$list{$relevants,} -$if{$cgi{THRESHOLD},} -${Preserve any B filters used - this needs modifying if you modify this template - to have B on radio buttons, SELECT, etc} -${ $map{$cgilist{B},} } -

+ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/public/browserconfig.xml b/public/browserconfig.xml new file mode 100644 --- /dev/null +++ b/public/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/docs.css b/public/docs.css rename from docs.css rename to public/docs.css diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5356035d631768d7b8b659b1ef35b57c3781d2 GIT binary patch literal 1175 zc${^Ue@s(X6vwZT5k(10wh1a|83InzAFohoU&INtK!;^etK!sz{&@W{>5sK#1RM() zGTey4&29V=G@xQ4f&~eV9|oapjsPMICeDl~OBhT=d3~?1?>*MN^3Ryd{i000C^)5LPdzV2J=)-wA}cF+OF_~{a5i2yh%Hqgq~7=MjTo|*(& zMnmTrhow%F%K#{h0-*R503;JC{sVwK9smnD0KioM1Y6E`W$j^fdo%YdBw^KPXf?X6 z292sicU^F?YSGXtbZZs5@2acs3F-LNv$Gz3ryi{vCz>C46b>xB77eLH_qSlUhaO)b zcVBRo-E}W7)4wfJY0X%6J9d5AbF2ejBIuDhGPehRhEXrvH1a*Zr3(G98z(6G$xG_o z2(gG$b0{^lNRbqM`X~3cYIJiY>YOEuoNl=TBS_jq(TCfy?KSB8tyuYxJK{V#`6t=> z(BoaEp$1oUJ?iz+wf6~G3x*Q(=p31H4ZA;2djF!U$B3*OSk*n^%9IE5&|~vtbRDX? zg{wO8+mFek9k}3AUbpzH?jtv`%aa5~(p@ti_C=Sm7ay1< zO}+TnBgDi4Y3Rnk9VPl6lfug`Rt=ia&CS~%Y)Z)T7VmSgzRRJ`X5KhC zJfYhkeAu^@TpgzHhY!Qpe5XUf2v|!QCiuV1VS~o5_aPI_;p-S=^D0DUFe3H>3j$WE;#y3) zciRqSypl(zU?>0yV&mdspm>pxyP=W!vmj^{a==iC0A5nkHw}BAGDnA29UYWQf!2_V zFzs`VCVQ?~$JHu7HmJ=e8~2|%bK~P<5J)8wAOgNpt5iXVR>0T9ic~_O8i8W98V;l2 VF!gyW0xNw3lS(qgElD|_{S6A@PUeNtSHqYf@no61QDy^11gH%oBPPUNN@a8+fHZBo}E4W?Vde5J7;rZ zLd@7PK4Sm?W5uyiNsMMY#dQR;M_KZl7&TH85g!4-u|juRK8mqfhNPHCP)>`SOWpjF9SeS3V>%;dA(#d04}V=g~`!Vb|RB^BEF@_$7RST z<;dhx#HSQVIAX87MeM&rp1V&LwGr%H$QMWK8=LWzIyC-*r z)G{P^FZye*NA)eRU;)5p8X@|(mEO_LP;!xj9aUC7Zc(s&U^2-^BP zF>N<8XFvK=JE5t^Ja-^Ry2$%4so^0y%!-Cu(2EZogE$plgU+o+O~2q2O&_+AA$!q3 z2C4Rb$IuY{V35kaf;%WWs{u1yz;Fls0;AS7;(ZA93a2TGF1}8j>?Y->v3`^iAF}(H zk(EDV`UdRDYibau%We|U2kmzUs9GE8SB_+y$CjVQPTnJXUQ$9U+WN%N{elu7wjbyu zUlX+Sm|b=n8?aMnddR>^^gsvs5~CK>+CSWhY`;!yX~Cb{DZ)W3&R_!=_33WpB}V68 z#gE-3Q;*x9A=Hg$j@kQB-Fd8QfNFf`SlfuhXR*R-#O`(?^E}3_LMv_&f7+?E6WEG# zSj-{2ml>H?jaGM%?R}1ACo$1J^k$#q(JQL@4!OPw|L!tgb(^^Nf?8N>fB1@OctF;4 zkgBs-Q?G-w2i?|2`2U35?ssfx!UHPM<)<)=q_yWTz6JFwLmm!NPZ27j2F+{6hlhtF zTN-)JDN-zmi8|0QI<J(PqvVt?rxVVd>B9aBIN?B#FOr?;iS=_}- zY@Lg_k9T$o1!vEgyu3Qs2?=778@_ zvbSUsw8B*2MI2?_W9u}Z>7M@iwD84zezX~U*BEXxSu16gAI&e7ER-o8x{Y-&l;!4* z$Se7|$oNUV?_Oh-a`xkqQy<7C`M!rnf8$b@A0_d)WKr=qxqRDHl03_F>4eeJ+%i72 zq~+Rr|HQWItoq2gVZM8ED$=HLE`*QYmm>~uPwc6MM#`0_8!E z4eYwvX=z7`tl6`Qzsh5;)R+t8+2i5_5M;+#Lz$iP>d`TNzoe125AWAn`Ath&j5bLO)Qy)6e^M}L#kR$tVMYNS#1#fY+(0NKnJW~9@QPZc6m2n0%)8=_VPF%dybeZz%g Q&CZ62qZ6WPBW3IV0+uc+%m4rY literal 0 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 literal 0 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 literal 0 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 +$response->send(); +$kernel->terminate($request, $response); diff --git a/public/kde-icon.zip b/public/kde-icon.zip new file mode 100644 index 0000000000000000000000000000000000000000..22cb89a640c2ce33df2040061f0630d932ce0159 GIT binary patch literal 145884 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

+ + + + +
+ + KDE + © and the K Desktop Environment + © logo ( +
K
+ ) are registered trademarks of + KDE e.V. +
+ + Legal + +
+ +{% block javascripts %} + {{ encore_entry_script_tags('app') }} +{% endblock %} + + diff --git a/templates/index.html.twig b/templates/index.html.twig new file mode 100644 --- /dev/null +++ b/templates/index.html.twig @@ -0,0 +1,21 @@ +{% extends 'base.html.twig' %} + +{% block body %} +

Welcome

+

Welcome to the KDE documentation site. This page holds the complete KDE User Documentation in over 25 + languages. Thanks to the enormous efforts by our documentation and translation teams you can access + thousands of pages of documentation.

+ +

Before you start searching the library or asking questions on the mailing lists, there is a good chance your + answer is already in the KDE UserBase or the KDE Community Forums.

+ +

If you are looking for developer documentation, the KDE Techbase is + the place where you get what you are looking for.

+

Categories

+
    + {% for category in modules_programs|keys %} +
  • {{ category }}
  • + {% endfor %} +
+{% endblock %} diff --git a/templates/module.html.twig b/templates/module.html.twig new file mode 100644 --- /dev/null +++ b/templates/module.html.twig @@ -0,0 +1,41 @@ +{% extends 'base.html.twig' %} + +{% block body %} +

Module: {{ module }}

+ {% for category,submodules in categories %} +

{{ appdisplayname[category] is defined ? appdisplayname[category] : category }}

+ {% if submodules.branch is defined %} + + {% else %} +
+ {% for submodule,branchs in submodules %} + {% if loop.index0 % 2 == 0 and loop.index0 != 0 %} +
+
+ {% endif %} +
+ {{ appdisplayname[submodule] is defined ? appdisplayname[submodule] : submodule }} + +
+ {% endfor %} +
+ {% endif %} + {% endfor %} +{% endblock %} diff --git a/templates/search.html.twig b/templates/search.html.twig new file mode 100644 --- /dev/null +++ b/templates/search.html.twig @@ -0,0 +1,46 @@ +{% extends 'base.html.twig' %} + +{% block body %} + {% if search_result is not defined %} + {% for module, moduleContent in search_result %} + {% for category, submodules in moduleContent %} +

{{ app_display_name[category] is defined ? app_display_name[category] : category }}

+ {% if submodules.branch is defined %} + + {% else %} +
+ {% for submodule,branchs in submodules %} + {% if loop.index0 % 2 == 0 and loop.index0 != 0 %} +
+
+ {% endif %} +
+ {{ app_display_name[submodule] is defined ? app_display_name[submodule] : submodule }} + +
+ {% endfor %} +
+ {% endif %} + {% endfor %} + {% endfor %} + {% else %} + TODO ADD TEXT + {% endif %} +{% endblock %} diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 diff --git a/translations/.gitignore b/translations/.gitignore new file mode 100644 diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,39 @@ +var Encore = require('@symfony/webpack-encore'); + +Encore + // directory where compiled assets will be stored + .setOutputPath('public/build/') + + // public path used by the web server to access the output path + .setPublicPath('/build') + + .addEntry('app', './assets/js/app.js') + + // will require an extra script tag for runtime.js + // but, you probably want this, unless you're building a single-page app + .enableSingleRuntimeChunk() + + /* + * FEATURE CONFIG + * + * Enable & configure other features below. For a full + * list of features, see: + * https://symfony.com/doc/current/frontend.html#adding-more-features + */ + .cleanupOutputBeforeBuild() + .enableBuildNotifications() + .enableSourceMaps(!Encore.isProduction()) + // enables hashed filenames (e.g. app.abc123.css) + .enableVersioning() + + // enables Sass/SCSS support + .enableSassLoader() + + // uncomment if you use TypeScript + //.enableTypeScriptLoader() + + // uncomment if you're having problems with a jQuery plugin + .autoProvidejQuery() +; + +module.exports = Encore.getWebpackConfig();