diff --git a/.arcconfig b/.arcconfig new file mode 100644 --- /dev/null +++ b/.arcconfig @@ -0,0 +1,4 @@ +{ + "phabricator.uri" : "https://phabricator.kde.org/" +} + diff --git a/.env b/.env new file mode 100644 --- /dev/null +++ b/.env @@ -0,0 +1,7 @@ + +###> symfony/framework-bundle ### +APP_ENV=dev +APP_SECRET=87b885b76ea9992c5ef17c9eea8a8c65 +#TRUSTED_PROXIES=127.0.0.1,127.0.0.2 +#TRUSTED_HOSTS='^localhost|example\.com$' +###< symfony/framework-bundle ### diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -1 +1,35 @@ *.pyc +*.lock +vendor +bin +var +logs +src/Data/ +config/services.php +public +work +build +breeze-icons +search/omegaconf/data/ +.idea/ +kdelibs/docbookl10nhelper +kdelibs/meinproc4_simple + +###> symfony/webpack-encore-bundle ### +/node_modules/ +/public/build/ +npm-debug.log +yarn-error.log +###< symfony/webpack-encore-bundle ### +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/public/bundles/ +/var/ +/vendor/ +###< symfony/framework-bundle ### + +###> symfony/web-server-bundle ### +/.web-server-pid +###< symfony/web-server-bundle ### diff --git a/.gitmodules b/.gitmodules new file mode 100644 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "assets/breeze-icons"] + path = assets/breeze-icons + url = git://anongit.kde.org/breeze-icons.git diff --git a/404.php b/404.php deleted file mode 100644 --- a/404.php +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/README b/README --- a/README +++ b/README @@ -20,7 +20,7 @@ Git (for English) and Subversion (for other languages) and build HTML and PDF files from the DocBook sources. -A PHP framework to display the built documentation in a easy to use interface. +A PHP framework (build with symfony) to display the built documentation in a easy to use interface. The Python script and the related modules replace the Bash script (generator) which was in use from 2005 to 2015. diff --git a/apache-docs.kde.org.conf b/apache-docs.kde.org.conf --- a/apache-docs.kde.org.conf +++ b/apache-docs.kde.org.conf @@ -1,7 +1,7 @@ ServerAdmin webmaster@kde.org ServerName docs.kde.org - DocumentRoot /srv/www/docs.kde.org/html/ + DocumentRoot /srv/www/docs.kde.org/public ErrorLog ${APACHE_LOG_DIR}/docs.kde.org-error.log CustomLog ${APACHE_LOG_DIR}/docs.kde.org.log combined @@ -12,7 +12,7 @@ ServerAdmin webmaster@kde.org ServerName docs.kde.org - DocumentRoot /srv/www/docs.kde.org/html/ + DocumentRoot /srv/www/docs.kde.org/public ScriptAlias /docsearch/ /usr/lib/cgi-bin/omega/ Alias /images/xapian-omega /usr/share/images/xapian-omega @@ -22,34 +22,19 @@ CustomLog ${APACHE_LOG_DIR}/docs.kde.org.log combined RewriteEngine On - RewriteRule ^/docs/([^/]*)/?$ /index.php?branch=stable&language=$1 [L,QSA] - RewriteRule ^/(development|stable|kde3)/common/ - [L] - RewriteRule ^/development/([^/]*)/?$ /index.php?branch=development&language=$1 [L,QSA] - RewriteRule ^/development/([^/]*)/([^/]+)/?$ /index.php?branch=development&language=$1&package=$2 [L,QSA] - RewriteRule ^/development/([^/]*)/([^/]+)/([^/]+)/?$ /index.php?branch=development&language=$1&package=$2&application=$3 [L,QSA] - RewriteRule ^/development/([^/]*)/([^/]+)/([^/]+)/(.+)$ /index.php?branch=development&language=$1&package=$2&application=$3&path=$4 [L,QSA] - RewriteRule ^/stable/([^/]*)/?$ /index.php?branch=stable&language=$1 [L,QSA] - RewriteRule ^/stable/([^/]*)/([^/]+)/?$ /index.php?branch=stable&language=$1&package=$2 [L,QSA] - RewriteRule ^/stable/([^/]*)/([^/]+)/([^/]+)/?$ /index.php?branch=stable&language=$1&package=$2&application=$3 [L,QSA] - RewriteRule ^/stable/([^/]*)/([^/]+)/([^/]+)/(.+)$ /index.php?branch=stable&language=$1&package=$2&application=$3&path=$4 [L,QSA] - RewriteRule ^/kde3/([^/]*)/?$ /index.php?branch=kde3&language=$1 [L,QSA] - RewriteRule ^/kde3/([^/]*)/([^/]+)/?$ /index.php?branch=kde3&language=$1&package=$2 [L,QSA] - # Temporary rule for umbrello - remove not later than 6 months after the first Qt5release of Umbrello for Windows - # or the end of 2018, whatever it happens first. - RewriteRule ^/stable4/([^/]*)/kdesdk/umbrello/(.+)$ /index.php?branch=development&language=$1&application=umbrello&path=$2 [L,QSA] - - - Options +SymLinksIfOwnerMatch + + AllowOverride None - Order allow,deny + # Order allow,deny Allow from all Require all granted + FallBackRessource /index.php Options +ExecCGI AllowOverride None - Order deny,allow + # Order deny,allow Allow from all Require all granted @@ -59,4 +44,10 @@ Include /etc/apache2/common/ssl-star-kde-org.conf # Handle shared Capacity configuration Include /etc/apache2/common/capacity.conf + + # uncomment the following lines if you install assets as symlinks + # or run into problems when compiling LESS/Sass/CoffeeScript assets + + Options FollowSymlinks + diff --git a/assets/breeze-icons b/assets/breeze-icons new file mode 160000 --- /dev/null +++ b/assets/breeze-icons @@ -0,0 +1 @@ +Subproject commit 93a4e1e35c00cb4ac0d3526e54f19a8cbec4cb7c diff --git a/assets/css/aetherCore.scss b/assets/css/aetherCore.scss new file mode 100644 --- /dev/null +++ b/assets/css/aetherCore.scss @@ -0,0 +1,475 @@ +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: normal; + src: url('/css/Noto-Sans-regular/Noto-Sans-regular.eot'); + src: url('/css/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix') format('embedded-opentype'), + local('Noto Sans'), + local('Noto-Sans-regular'), + url('/css/Noto-Sans-regular/Noto-Sans-regular.woff2') format('woff2'), + url('/css/Noto-Sans-regular/Noto-Sans-regular.woff') format('woff'), + url('/css/Noto-Sans-regular/Noto-Sans-regular.ttf') format('truetype'), + url('/css/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: normal; + src: url('/css/Noto-Sans-700/Noto-Sans-700.eot'); + src: url('/css/Noto-Sans-700/Noto-Sans-700.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold'), + local('Noto-Sans-700'), + url('/css/Noto-Sans-700/Noto-Sans-700.woff2') format('woff2'), + url('/css/Noto-Sans-700/Noto-Sans-700.woff') format('woff'), + url('/css/Noto-Sans-700/Noto-Sans-700.ttf') format('truetype'), + url('/css/Noto-Sans-700/Noto-Sans-700.svg#NotoSans') format('svg'); +} + +body { + padding: 0px; + font-family: 'Noto Sans', sans-serif; + font-size: 14px; + color: #31363b; +} + +p { + margin: 0px; + margin-bottom: 1em; + max-width: 900px; +} + +p + p { + margin-top: 5px; +} + +a { + text-decoration: none !important; + color: #3b85b5; +} + +/* +a:visited { + color: #7cbcec; +} +*/ + +a:hover { + color: #3daefd; +} + +h1:not(.card-header), h2:not(.card-header), h3:not(.card-header) { + margin-top: 20px; + margin-bottom: 10px; +} + +h1 { + display: block; + font-size: 20px; + font-weight: normal; +} + +h2 { + font-size: 18px; + font-weight: normal; +} + +h3 { + font-size: 14px; + font-weight: bold; +} + +h4 { + font-size: 12px; + font-weight: bold; + font-style: italic; + color: #536161; + margin: 0px; + margin-top: 20px; +} + +.learn-more:after { + content: ">"; + font-family: "glyph"; + font-size: 80%; + font-weight: bold !important; + vertical-align: middle; + padding-left: 1em; +} + +.learn-more { + display: inline-block; +} + +a.button { + position: relative; + display: inline-block; + background-color: #54a3d8; + color: #fcfcfc; + padding: 5px 10px; + border-radius: 2px; + border: solid 1px rgba(0,0,0,.1); + transition: background-color .2s; +} + +a.button:hover { + background-color: #7cbcec; +} + +a.button.expand { + display: block; + padding-right: 20px; +} + +a.button:after { + color: #fcfcfc +} + +a.button.expand:after { + position: absolute; + top: 50%; + right: 10px; + margin-top: -.8ex; +} + +@media (max-width: 768px) { + a.button { + display: block; + padding-right: 20px; + } + + a.button:after { + position: absolute; + top: 50%; + right: 10px; + margin-top: -.8ex; + } +} + +main section { + margin-top: 40px; +} + +#kSocial { + + border-top: solid 1px #cfd5d5; + +} + +#kPatrons h3, #kLinks h3 { + font-size: 12px; + font-weight: bold; + margin: 10px 0px 10px 0px; +} + +#kPatrons a, #kPatrons span { + text-align: center; + padding: 0px 20px; + display: block; + min-width: 200px; +} + + +#kPatrons img { + width: 100%; + max-width: 300px; +} + +#donateAmountField, #donateSubmit, #kMetaStore .button { + border: solid 1px rgba(0,0,0,.2); + background-color: #FAFAFA; + padding: 5px 10px; + border-radius: 2px; + background-clip: padding-box; + position: relative; + color: #333; +} + +#donateSubmit, #kMetaStore .button { + cursor: pointer; +} + +#donateAmountField:focus, #kMetaStore .button:focus { + border-color: #7cbcec; + background-color: #FFF; +} + +#donateSubmit:hover, #kMetaStore .button:hover { + background-color: #FFF; +} + +#donateSubmit:active, #kMetaStore .button:active { + background-color: #EEE; + top: 1px; +} + +#kLegal small { +min-width: 300px; +} + +#kLegal { + color: #6f8181; +} + +footer { + background-color: #EFF1F1; + position: relative; + padding-top: 2px; + font-size: 12px; +} + + +#headerCarousel { + margin-bottom: 20px; + height: 700px; +} + + +@media (max-width: 1700px) { + #headerCarousel { + height: 600px; + } +} + +@media (max-width: 1140px) { + #headerCarousel { + height: 500px; + } +} + +@media (max-width: 800px) { + #headerCarousel { + height: 400px; + } +} + + +#headerCarousel .carousel-inner { + width: 100%; + height: 100%; +} + +#headerCarousel .carousel-item.dark-text { + color: #333; + text-shadow: none; +} + + +#headerCarousel .carousel-item { + color: #EEE; + text-shadow: 0px 1px 2px rgba(0,0,0,.6); + top: 0px !important; + + width: 100%; + height: 100%; + + padding: 40px 50px; +} + +#headerCarousel .carousel-item > h1 { + margin: 10px auto; + text-align: center; + display: block; +} + +#headerCarousel .carousel-item .alignBottom { + position: absolute; + bottom: 0px; + width: 100%; + left: 0px; + padding: 40px 50px; + + text-align: center; +} + +#headerCarousel .carousel-control-prev, #headerCarousel .carousel-control-next { + top: 50%; + width: 30px; + height: 100px; + margin-top: -50px; + + background-color: #FAFAFA; + opacity: 1; + + font-family: "glyph"; + + color: #333; + padding: 0px; + transition: width .2s; +} + +#headerCarousel .carousel-control-prev:hover, #headerCarousel .carousel-control-next:hover { + width: 50px; +} + +#headerCarousel .carousel-control-prev:before { + content: "<"; + width: 100%; + text-align: center; +} + +#headerCarousel .carousel-control-next:before { + content: ">"; + width: 100%; + text-align: center; +} + +#headerCarousel .carousel-control-prev { + border-right: solid 2px #3daefd; +} + +#headerCarousel .carousel-control-next { + border-left: solid 2px #3daefd; +} + + +#kSocial { + text-align: right; + padding-top: 0px !important; + padding-bottom: 0px !important; +} + +#kSocial a { + padding: 0px 20px; + text-indent: -9999px; + text-align: left; +} + +#kSocial a:after { + text-align: center; +} + +#kFooterIncome { + display: flex; + flex-direction: row; + align-items: stretch; + background-color: #abf9c7; + border: solid 1px #7ceca4; + border-radius: 2px; + margin-top: 10px; + padding: 0px !important; +} + +#kDonateForm, #kMetaStore { + padding: 20px; + margin: 0px; + width: 50%; + display: flex; + flex-direction: row; + align-items: center; +} + +#kDonateForm { + border-right: solid 1px #7ceca4; +} + +#kFooterIncome .center { + text-align: center; + width: 100%; +} + +#kMetaStore .button { + width: auto !important; + display: inline-block !important; +} + +@media (max-width: 768px) { + #kFooterIncome { + flex-direction: column; + } + #kDonateForm, #kMetaStore { + width: 100%; + } + + #kDonateForm { + border-right: none; + border-bottom: solid 1px #7ceca4; + } +} + +#kFooterIncome h3 { + font-size: 14px; + color: #377d50; + padding: 0px 0px 10px; + margin: 0px; +} + +#kFooterIncome h3 a { + color: auto; + font-weight: normal; + margin-left: 20px; +} +#kDonateForm h3 a:before { + content: "( "; + color: #377d50; +} +#kDonateForm h3 a:after { + content: " )"; + color: #377d50; +} + +#kFooterIncome p { + margin-bottom: 10px; +} + +header:after { + bottom: 0px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAFCAYAAACzSkmrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACkSURBVDiN7dExDsIwDEbh9we1soXE6eCEbJyInQNwgKgxQ9WWFrIShr7ZkewvYm/V5fbwLj8NoKTec0lGzp66ZAzJS8jQ4EKG5KLY+FIeYBAOMoRHyFC4YJwpcqVixGYWnHHG1ebs700YHxBAHWM6DqoYHxBvswvGEegbnL1q/pAqxgQB1DE2EEAdY4aABeMEHH57+n+m8/UerZfYW0qtF9hb9wI2bU03vw4M8QAAAABJRU5ErkJggg=="); + +} + +footer:before +{ + top: 0px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAFCAYAAACzSkmrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADOSURBVDiN7ZExTsRQDESfHSJqWq7AKfYOiAtScgmOwQno0CqKIlt/Iw8NYZVF25IU+yoXLmbe2PPrh7ixG3zrADfW3G0dYIckEOtbCRYGiSlUnrhCkMgCwEyJLn5RCE+kABBK1IWbkq6iTpX0ffRe6dXi1D/k3gZZZKxEAFyTcRYB12RcigD4K6Ob3l6e2ka9f1kGGYACJqCdRWg2YwQQdgSgGGU2g36K04DJoEADAOaDSiVsQtYWEXP57G4jwD15BPh8/BrfD4f5P0vvmW/7cKBf79wHGwAAAABJRU5ErkJggg=="); + +} + +header:after, footer:before { + content: ""; + display: block !important; + background-size: 100% 5px; + position: absolute; + height: 5px; + width: 100%; + left: 0px; +} + +#cookieWarning { + display:none; + border-top: solid 1px #ffc169; + background-color: #ffdaa5; + width: 100%; + position: fixed; + bottom: 0px; + left: 0px; + right: 0px; + padding: 10px 20px; + z-index: 999; + color: #884d2c; +} + + +#cookieWarning button { + float: right; + border: solid 1px #ffc169; + border-radius: 2px; + background-color: #fff3e1; + color: #884d2c; + padding: 10px 20px; +} + +main:after { + content: ""; + display: block !important; + height: 40px; + margin: 40px 10px 10px 10px; + background-repeat: no-repeat; + background-position: center; + background-clip: content-box; + background-size: contain; + + background-image: url("data:image/svg+xml;utf8,"); + +} + 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 @@ +@import './base'; diff --git a/assets/css/base.scss b/assets/css/base.scss new file mode 100644 --- /dev/null +++ b/assets/css/base.scss @@ -0,0 +1,656 @@ +@import '~bootstrap/scss/bootstrap'; +@import '~jquery-ui/themes/base/all.css'; +@import './aetherCore.scss'; + +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,1) +} +.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 + } + + a.nav-link.active { + color:#FFF + } + + a.nav-link.active:hover { + color:#FFF + } + + a.nav-link:focus, .navbar-nav:focus, { + border: 1px solid #3daefd; + } +} +a:focus { + border: 1px solid #3daefd; +} + +#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 .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, .contentBody { + margin:auto; + margin-bottom:50px; + width:100%; + max-width:1140px; + padding:0 30px +} +@media (min-width: 1140px) { + main.main, .contentBody { + padding-left:0; + padding-right:0 + } +} +main .block, .contentBody .block { + padding:30px 20px +} +main.navfix, .contentBody.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 +} +.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-up(md) { + #languages-dropdown { + width: 350px; + } +} + +@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" +} + +@include media-breakpoint-up(md) { + .row.m-0 .list-group-item { + border-radius: 0; + border-left-width: 0; + } + .row.m-0 .list-group-item:nth-child(even) { + border-right-width: 0; + } + + .row.m-0 .list-group-item:nth-child(-n + 2) { + border-top-width: 0 + } + + .row.m-0 .list-group-item:nth-last-child(1), + .row.m-0 .list-group-item:nth-child(2n+1):nth-last-child(1) { + border-bottom-width: 0 + } +} + +@include media-breakpoint-down(sm) { + .row.m-0 .list-group-item { + border-radius: 0; + border-left-width: 0; + border-right-width: 0; + border-bottom-width: 0; + } + .row.m-0 .list-group-item:hover { + border-bottom-width: 1px; + } + .row.m-0 .list-group-item:first-child { + border-top-width: 0; + } +} + +.konqi { + float: right; + width: 250px; + margin-top: -50px; + margin-left: 40px; +} diff --git a/assets/css/doc.scss b/assets/css/doc.scss new file mode 100644 --- /dev/null +++ b/assets/css/doc.scss @@ -0,0 +1,456 @@ +@import "base"; + +/* Actual documentation styling */ +div.table table { + text-align: left; /* Disable justification */ + border: 1px solid black; + border-collapse: collapse; +} + +/* Give alternating row colors */ +div.table tr:nth-child(odd) { + background-color: #eee; +} + +div.table tr:nth-child(even) { + background-color: white; +} + +div.table th { + background-color: white; + font-weight: normal; + text-align: center; + vertical-align: middle; + border-bottom: 1px solid black; +} + +div.table td { + text-align: left; + padding: 4px; +} + + +// alert copied from bootstrap 4 + +$theme-colors: (note: #27ae60, tip: #3daee9, important: #f67400, warning: #da4453); + +@each $color, $value in $theme-colors { + div.#{$color} { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + // Headings for larger alerts + .title { + // Specified to prevent conflicts of changing $headings-color + color: inherit; + } + a { + font-weight: $alert-link-font-weight; + } + } +} + +/* Make the content wrapping div have a nice margin. */ +body div.chapter, body div.sect1, body div.book, body div.article { + width: 90%; + max-width: 1000px; + margin-left: auto; + margin-right: auto; +} + +div.sect2 { + width: 100%; +} + +.programlisting { + + /* This will work someday */ + border-radius: 7px; + + /* To support border radius on our OSS browser friends when + * viewing online */ + -webkit-border-radius: 7px; + -moz-border-radius: 7px; +} + +.programlisting { + border: 1px solid black; + background: white; +} + + +.guimenu, .guimenuitem, .guisubmenu, +.guilabel, .interface, .guibutton { + background-color: rgb(220, 220, 220); + color: black; + border: 1px solid rgb(190, 190, 190); + border-radius: 3px; +} + +.shortcut { + background-color: #DDF; + border: 1px dotted #BBF; + font-weight: normal; + border-radius: 2px; +} + +.keycap, .keysym { + background-color: #DFDFFF; + font-weight: bold; + border-radius: 2px; +} + +.informalexample { + margin: 0; + border: 0; + border-left: 1px dotted black; + padding: 0 0 0 4px; +} + +div.tip { + margin-bottom: 12pt; +} + +div.titlepage { + margin-left: 0; +} + +h3.title { + margin-left: 0; +} + +.screenshot, .informalfigure { + border: 1px solid gray; + background-color: rgb(240, 240, 240); +} + +/* We no longer render
s around s, but this hides them in case + * old generated HTML is displayed with the new style. + */ +.mediaobject hr, .mediaobjectco hr { + display: none; +} + +/* Used for the text and footer area at the bottom. */ +#footer { + width: 100%; +} + +/* + KDE-wide default CSS for HTML documentation (all media types). + Copyright (C) 2000 Frederik Fouvry + + 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) any later version. + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Send comments, suggestions, etc. to Frederik Fouvry + . */ + +/* + Important note: these setting may be overridden by localised CSS. Do not + add here any localization-sensitive style declarations. + + Any updates should be validated, e.g. http://jigsaw.w3.org/css-validator/ */ + +/* Note: "should be inherit" means that in a proper browser inherit should work. + Somehow Netscape manages to interpret "inherit" as bright green. + Yuck. */ + +.legalnotice, .copyright { + padding: 0; + margin: 0; +} + +.abstract { + font-weight: bolder; + padding-right: 1em; +} + +.toc, .list-of-tables { + padding-left: 1em; +} + +.sect1, .chapter, .synopsis, .appendix, .preface, .article, .refsect1, .index, .glossary, .glossdiv, .gloss-article, .section { + padding-left: 1em; +} + +.gloss-article, .glossdiv { + padding-right: 1em; +} + +.toc .chapter { + padding: 0 0 0 1em; +} + +.author { + color: rgb(82, 80, 82); + font-weight: bolder; + padding: 0; + margin: 0; +} + +.othercredit { + line-height: 1em; +} + +.chapter .sect1, .chapter .titlepage, .sect1 .titlepage, .article .titlepage { + padding: 0em; +} + +.titlepage { + padding-left: 1em; + padding-right: 1em; +} + +/* Links in Navigation */ + +.navLeft a:link, .navCenter a:link, .navRight a:link, .bottom-nav a:link, .bottom-nav a:visited { + color: #41597A; + font-weight: bold; +} + + +/* Nice link colors for the main text */ + +:link { + color: #41597A; +} + +:visited { + color: #597ba8; +} + +.navLeft { + position: absolute; + left: 20px; +} + +.navRight { + position: absolute; + right: 20px; +} + +.navCenter { + text-align: center; + align: center; +} + +.bannerBottomLeft { + position: absolute; + left: 0px; +} + +.bannerBottomRight { + position: absolute; + right: 0px; +} + +/* A little bit of padding makes the tables for keybindings etc much easier to read */ + +table { + padding: 5px; +} + +dl { + margin-top: 0em; + margin-bottom: 0.5em; + margin-left: 0.5em; +} + +dd { + margin-left: 1.5em; +} + +dt { + margin-top: 1em; +} + +div.toc dt { + margin-top: 0px; +} + +div.screenshot { + margin-bottom: 1em; + margin-top: 1em; +} + +div.informalexample { + border-style: dotted; + padding: 10px; +} + +/* But no padding for navigation elements */ + +.toplogo, .navbackground { + padding: 0px; +} + +table.programlisting +table.screen { + border-style: none; + background-color: rgb(224, 224, 224); + table-layout: auto; /* 100%? */ + color: rgb(0, 0, 0); /* should be inherit */ +} + +/* Same as previous block, but more general (previous is HTML only) + Not all browsers understand this yet. + TABLE[class~=programlisting] + TABLE[class~=screen] { border-style: none; + background-color: rgb(224,224,224); + table-layout: auto; + color: inherit; +} +*/ + +p { + text-align: justify; +} + +/* More specific settings */ +p, h1, h2, h3, h4, h5, h6, td, th { + font-family: "Noto Sans", sans-serif; +} + +/* Visual cues for GUI elements etc in the text */ + +.guimenu, .guimenuitem, .guisubmenu { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); /* should be inherit */ +} + +.guilabel, .interface, .guibutton, .guiicon { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); /* should be inherit */ +} + +.shortcut { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); /* should be inherit */ +} + +.shortcut .keycap { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); /* should be inherit */ +} + +.question { + font-weight: bolder; +} + +.accel { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); + text-decoration: underline; +} + +.option, .command { + background-color: rgb(255, 255, 255); + color: rgb(0, 96, 160); + font-weight: bold; +} + +h1, h2, h3, h4, h5, h6 { + color: rgb(82, 80, 82); + background-color: transparent; +} + +.arg, .parameter, .replaceable { + background-color: rgb(255, 255, 255); + color: rgb(0, 128, 64); + font-style: italic; +} + +.screen, .programlisting { + background-color: rgb(220, 220, 220); + color: rgb(0, 0, 0); /* should be inherit */ + border-style: dotted; + border-color: rgb(0, 0, 0); + border-width: thin; + padding: 5px; +} + + +/* This one is set in inches because the admonitions are set in inches + and they're more difficult to change. We can live with it in here, + for the meantime, it gives consistent margins */ + +.example { + margin-left: 0.5in; + margin-right: 0.5in; +} + +div.mediaobject, div.mediaobjectco { + /* float: right; */ + /* might make it much nicer. although someone has to + understand the rules ;-) You also don't want it to be + surrounded by text it doesn't refer to ... But that + may be among others a question of writing style. */ + text-align: center; + /* a bit of a hack: it should + position _images_ */ + + img { + max-width: 100%; + } +} + +.caption { + margin: 0em 2em 0em 2em; + text-align: center; +} + +.inlinemediaobject { + vertical-align: baseline; +} + + +/* An idea that could be nice: a search engine looking for specific +classes could display them in some conspicuous color. All that is +needed is an on the fly generated style element/style sheet. */ + +/* Only used in the hand-made HTML license texts */ +body.license { + background-color: rgb(255, 255, 255); + text-align: justify; + color: rgb(0, 0, 0); +} + +pre.license { + background-color: rgb(255, 255, 255); + font-family: "Noto Sans", monospace; + color: rgb(0, 0, 0); +} + +.pagination { + margin-left: auto; + margin-right: auto; +} + +.contentBody { + margin-left: 5%; + margin-right: 5%; + width: 90%; +} + +.figure-float { + margin-right: 1em; +} + +.listitem p { + margin-bottom: 0; +} 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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 literal 0 Hc$@i6Pw$_=#+^^5$#M|oG=kVLk^!WO2 zsn6%|^|sUIQ<%mpfx7hf`9_h$@AddGg}n3k`Oo6+qQ~FI-RmrZx@o1&`}_Rp@by29 z!0+_hbon(dE|W@KKk=E`z(;=<$@l+t=suRGG$JpUTZi)#GKIX8zT01*%GKrYU7pF*$=tFd$7}ox7W4O<#epkpvK=mjKH+g`-qsZVrjKFiN&|{*@lD^w( zr_SK)^Mtn6rpe%cv(<>W*F=!QjJnxvsLwizzIm_Hyw>PXmc^{i<7A`EaH`ONv(=Hk z+JdyzcCFIB*yxzS+_=={b*<5EsL!j+;&`so=tF1Q000VUNklbFmyIcb7D!@5q7cYMg%U$)5+GEnD9ELV+!{bp5G_?y z1dCF|7Da9ryx|2bwHIq||3o*t$+c845;jTFcCd17TT{CQtE15+Fe#Xey;)Vsq`}lL2b*@pn;9fccXB zlL1Pw;dfI`0Erch29S)4UN8stFSCNt0GctuRrkRDrB*N+z`dAY7v%(yTES=l3yrah zT44WjD;N!6u_1H`|aC$ z3-hliEq!aP0d%S{KZpH`s9*;FeziVi31D3)Afkfd{QGTt(754wgFZuhw z8R{^3u0LYi6E*&iFu?X;vej~q4-twGl?z>eUTkqjSzSP}lwZIrq> zC>UVZz+XMP;S{3o!S-+fm^JX%U%?rK-GlX)umhy||F|~=Od#+ctcV@p9)zM6g6&1# zgLx{M0rnx!ez?8RS;P_W!8ZZ00WF1_3!X)!O~O(EDxaDPwiZ2$xUHFDKYtHAlvoF! z0AebbRxxn@6-$C)l;sMd#8fbyo(8&aKQI(!6F|l+VrD+6_l#%MD0=`s+av%GXA+*( zo_@9fat_MykEXTaI`_GB`$_BoNSj4Ggz0?7Xnl+wfafInN61)8GY*G^*Z}Z7FAd;@ zvar5uejOfS=LmEjkw)+veb2SVc~V;^afLL1t`*vT8(%a=*aGm~B#q!DO}8zZF#-1K zz?>zr0Ae-09>oRNti+X)_Vz_-{5^)3?{T0B4FHXY0r(9mPFLq95w=u8ry3Oiy#o_8|DN6Z zk-R^g0hWT?o0tGzDS-(}*#Rgee;3r24uIyu>6Lex0Vo|5LTya|p!eYX>_Z9)zzJ4> zwHRQ=oYvWwjl+aI-LtZ)i}5pH_MtCoH~gM0D3+j?q=aJQ28z_#WA(78sqqw}^GKH$8ocmbd>ltW;9NCBtK0oz&u z@K83u+8$Dr!D&zP0zeJ5a8Gs@J}%q|rtRhiK;4IwV0Yo;Tv6X*V%CfN0MI20!TStD zigPDEz^-g7f8+?zTTdZioTWG&Q&?bFTIqpWSOh?$DF94Eioq|b+Et*t0r6et2!P@! z1UzOb5So|gN>ewTUEv9^>0Sx}w}p>Mp_CJN0-z5m%YPhZDS}d`)Mfy?d#nS5zZS+I z`$G!7qSOt@MO*>O@23#(TKH%RWd!bNYyhBW+TLvN!fjr&LkWEch(UG$w9C(U@mcuj zRd2+}r?D-7#MdbRbGTef(Uwp`_c>kw!TsuIp^d@rkz+XR1*uk(zQ+roJ^1FJk4VkR z&J^+a_6Ow23gvCt%Lm|N<&(fMz%PQ&EG^>uM8T(O?(KxdEIh#U?HjRE!sQ)`ay9U2 z%K7j%$$RqZxVraio90I0GgAOlv-ZzFzMA-C(sTY0-%Ejyr*!R>x%LWq+nnYQhQSSZn?9&`(Y<+zBwE1MAZK&4*|9)3FzkBj^f$jr+X!R9aGWE3v z^}PY0MZ&j$FVMfv&Rxxt>?=*CH&_x`(4WGtbj1vhzF*U=5ER)@WI@JBkXqXW*Ytyj z+6D>!FJoQ@mv3|D{E6_vPr8JcjGn>OSht;>Zl1BmL}P^eC+*URTWd8_KkfnRGLe`6 z0bM8VlUZqTW&LmmHqGsaKRtOvAi#2ks2LY5jJgtCzzt-RxHI990%=*E**tkGz(kWp z`Hw0A`&E3GOdb6vDKAChb?<1@pB0*XyZ2IZcs@+0W>NaY`2U*TvtJLN0%lDYEL~+L zM+@z1u%&+5{N<3`&&J-soQK{AFU+D%APy;;X_Em#S50;vQ2qMcXU>MkmDg|l<-Vj0 zEA0imn&$zt-=0SK39X&ktJ=8ZRtS337j1bS+6X^i68viWG-WDtA3iAcE#CeK1dU;1 z&`rnx0bVpGmR`}n#ojx+QIdZw!KDSpu(jWk{m;g{+3kxplKdkyZKS@Rjz!q8SBd`J z_-W>tup*uMjTrx71jV_8N0_UKC&CUw-pl`#<6lRRPJRgi@jdY5H^0QxOYyG~Btw%> zg(LuA60bK-ivK}^ltOR<^Iru2E#RHjp=25U{RCT-cFGLIK>`3}bP)A{xa*Hj)K}+W&A+6!p`#+Z8--HN7``?lFWm?~2{rh?&?aQ>TVFBXV6U$Nq7T{{6ZCOwW4uJar zS)i~_d&*e8;3eFyhYt3%^0Wv8@SjMVvZCu4fd59?lqF&IEbnB`Dp92d|IO@4Wy<(U z#f_1+WKG=$fQ#%&Won+`NzcgqUljJ$rzh|&kF+62jvP61QHz1Agbm U+Ku$>l>h($07*qoM6N<$g2Kow-2eap literal 0 Hc$@nRPQqTET zT@0?dnbPc-!}TuVMc4K_=YG_QpxbA0^rIP&z-qhX=BdS%we^k7%}t3!oXr-T^Q9uf zK2&y&iPqMKXTH(~EsAEszv%Wi=1Q)b?*}ZHl+Hl9~MT{@rs{gNm$I@}s_P9K0IK{5U+@H@;w#)O0z#F12CcVKz6taZoL!mfAHg zTomE6INITLW$mLgOQQI?&v(+;X{>=zYVXFzrcX&H*coSNCaSg{o6&kVz2)odw+h~v zeiWl;Y+fRfG<=@IX12DE%yI>@dXe>yiaXc?(<`g%u%POKwh{5xCU~>Lwh`2e`qSQ( zw^P|wontD`Xn$7rRCkXrtgN}_f6@s3@M(C~Ho3WwJHqUr;!iD_y<{0gGjN%$VbtFD z9iwkK!-)*OWkTbiaEbYO>PiHCY;JjZb=|+bD}~8F<5Lw;-IvoM@OsD73a@M83n%7R z?xnZ9VGlhn=G{nY;(eVniEFr(%FbvSY#ErIT3GQb>pbgQ^{A+W)-`S#&q`!`Nog2R zc~%`z-lZEs|2(-kAY3wvVS>N1zOmu(rfo>L)IYHhT+#ii{)_o5R!~JZ@m2Y52=l;>C0{rT#Iiojc@1}ne%?fyAVJV zi?<|VabD{%rJ&utuzhrHIf=oq(NmZqAFNj+O9WprlkP`l>%cR7Y;x02T~ta` z{soa(aQtcmuyT?vm9gt*(l>LNhyFj|F54>-?G~X2o>>J)0uzT+WwQGfzuzh+??m>;1hzaOnZ=rz z))dGKsQ=m&)=+F-*yr6cJG>v~2lYj+F!aM;U9gc4(o;RBj(Xnea8K#rHN)vAsIQ~v z8J$pB+oICyp*bl#@x$5B!rwnlD99Em-^zhh>}KAn!(<^Ev)h8BqQWYwe#PHr$yt{= zX?f}=sGQkpt&}(CQI7glW@YN#GkXJBZkXx)y0%cdabsrye&aSLYjM}lhw$&1^3u5) z!(+IPtUTqgqx%2UGUI4SrP6ih39iV*l>Ka^^z~F7x0l5hPZVt4c0hI0rjA|Zk8>Sg z9=!kB0Kz!pCgYed+#TmKxfq|{Q#3eF@=$0oI8PpU`|i;%fk(Z_!V%mokb8I6;9YHt zFUz7Bv{XiMeZm_>(Mi={emIk>H-CkqrVUR_3O{LeALeNUk@LFq$>Zb zV{)OM-6g+$seRMQhBNfCozW(%V!fEB>$+N9cW%wmXOJPbUYxofh~u89mb5<)V!`=T zpy=CC>@gHP0_Tbc9RP>IG?k$+Wf;sFrjAh6L|oK74}~J2(9}c(@4p02WP1|f@&6Z0 zHw2JDfx))GjZC0;VqEcnu@i=fH^mT1I7c}(6?GL2WlcG-f~qp~k}?b~X8}`_bD&UM z5D6>On|At6tB_rZUxH`Ag22)3iq;P9PFMs2O~$!9;hiZ6ggJ=10k9lNHRNy1 z_cIX)2Rw=BKmlNy@I!!W5Xc<)U&fYXPjT2rcm?uOAoA-Eh$+blPkHQu2flX&ad9SI zDZOF#w>qZQAO*lKsj9=_8k*{wCFwOZ5IOV%Vnup_2cRfaT&B)6n7Z*p%ErRIaB^16CnhQ2MI@Zc7y!qogp|pR1<@P!!cMG77xd&;V>5o8gM)mdkKn%!8Pnv YK!pm}Ul`f@?Dm5h>zkpAP!9tB4JygGdH?_b literal 0 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 literal 0 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

0xSSj;#jCVb{>zWD27m(b@IwW7d0~PA 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 literal 0 Hc$@EkTAFgch}%fkO0BmLvVMO1o)cs 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 literal 0 Hc$@Z7JXTRw&;rWT`vd$C_@wNnX8;P2 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 SL*$Pa%s|&f=b4ss)PDeal+pbF literal 0 Hc$@eRVWvO~@!?w2 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 literal 0 Hc$@4J9A^w5+lML`51pmanj7syYS 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 literal 0 Hc$@?v3uQjT$j} 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 L{an^LB{Ts5M!yLs literal 0 Hc$@h1qof0Hxln<;d>$%`x#ABd`=7j(@puY28T9-CWE zt{$-Ynd_R)4=?Hc+pVU-NyWm-`sMu2Z?jufYIVclbj{02#?x-;j56^>e^uW^Dpz88 ztp*v-F76x~omEmFcMMJ`);3gSU9ypxCHBin&pU#FiAC4+#)r+L2cxUbXA1d}>4}9E zue;5yQn_+%qiJXc5zi*&ith7AR@YUmioUES>Creg?s{Ee$J^yK)uvW+|-^4f-UR{2d<>(lnP8IDI0u zftbn{jml~N>hS-)-Qfn0FPS;_KzJa!$}PRIe|%A=)lM$1{!}Ku_^_?GV{B$=wfpV- zJ^sj@hGA?{?SsY<#p*^y&-l3qEy#FIL}~BJx~jH+$||Y$Vs`8CUwC5Kf?aYQ?Qw@r zr+p-R{agKzPN#FI4rb|xjeN?LSTzEUQQ^Rd;pQ6(d$)IXvh@cCc&hB(iB3K^(Qmgl zzAV5ALFRi z5*NWm`J0Hy7zwrR;o8W8y0aE&!X3XTBnYfuW~$npOg%CX;vzA%y$R$D`#uYultEix z)LczVjWBV%8I`tk=dN6LUR0ZmY(zM> zd&`Q3Ihj@$s<+NAiHe?+AxLUz{Nw^R3GK%{n{Oa5oan1Bu_(*N4kYD#&#Sz0t3f(} zn8`Jj?9FShFV4WQxh8vo?8)!7EZ4S!=T;ae0)7t6KR*`y^_K4$YUJhATz|=DgYmf^ z?zFZM-FQCrlc86av_HC-!Th8|d;fFR>(|7{pk&MBOPaRXao*n8Zmd|Mhc zj@xJOv~A4jUQbjDj-<>qOR&tMIi_4K@N@6ROKHopg86*|v@eZwtf-Z~St9ox-X@(# zb{l?L?IwIIGT}*&WTyL#5)Z`{JX*6%%4P^EOB@o8aR=0mb{`J2X%_U9D*N<;g%^7q z?SIUload@Nd#7>Iqsl*>;5VK$GWhN<`G^xqUXp!ZvG~>N&((vA425#{eyVId$0KG$ z!8*OaG;Z#*>xO5FN)IHc4OAxl2UQEwnAp#cM^Aja$1N`pRrz>VBa4?-dcZV?9(J3h zBNwdk7n?(7Q?G*`DyR4|<$`v7-qf4&$+Y)YAsp8Aw zfih>hoM-xzm=J*y0>KVo(HJ}ejX_{AJ{UWKHJ)IFKY~UR(CDmt1o3|fg6RIVfQbJu zkT=EAVZlkgAe0`!3@3#^z&(gWg*-@98s!HwTcjNlhrpY`6|50x8w3Vx=7q5}3uH1G z1QaSfJRC{W(?RcOBt3*WoHPd)1g83mK7nCDWCDRmr-TJT!At_d6GlS;CSS)v{egLR zCV>zL(Wrq;fWc#TfRIF(+5NxFIhsE+P>+a~-|xG=Yp$8+n&-LCnKLubxzBwfRaNBhaVc>@AP~MhLRt+NjsKqD2f%eD#S;b$ zn3j^tk|0oJEZ&U?7I1&hRZR{KDj#{W4cyR~A=H#XARi_WC@2I3x(23#wm=|vZV+e( z@FbK10+BmqG`$i579N-?%1MLn{vID&3le}C94CaXD=;GdIc588#Xun9eR*j~4X@e# zOm91bY4@JMi(!?Kcb)Xzng+F8bsnjDcHQz%=bWjYs;oRyc_QFoR^Tv3$C3uJM{^=@ zYpnF3h;Ixr>D?;h(8yIGRy*vv)!g{nSIr!eycaU_f>I-5CmTO+k1S+!&ErpKETz>a zu@g|)_4A%>zN4a>^R6*nVP67tUGNkiAd9dM@2Km+I;Qgs#*xl%gBW`_Fp?<#PUs~2 zfUd%ZZZYVSe4uz{Gmv+Lr7hQi2=B84cDQjh*p3XVSyPgbn^f~#uD5`k!dR{}7!rYk zG_ivr7-)O4JuR$o&GyxrW%s;5v|VD8U80bEVneBy;S0ZR52E6p zG4ga9g{{;GZV~FI6x#BIlwegz?wvl#!Wkw4Cy$fLNUR~L_Ie!i7I;d;FAFj{sa%%%CS|%LL^w7=RE>0qo7m~ z?tP7$kcu!Oit;vS=zPnanh$K<}_N+C5a8^#LWlF54|8<}Wv9UMA z7-PI^qeQ;HnA9Pwr6l#(^mm52rMAg+h2aaVh@BgFChKj@CaqgQygSv1g|zgDi9u zPb3oJlhCHOmlAlS4%iQvxIW^2vE&{4a?_N+rv5FX?8Dw4MUFx^eKHmuV`A>vEz=tx zTDQ4Cp`^9Nz`5a>cGk|0@buK6Cl+612t{ggV%|_i?fTyq%Dn>8o7*q|1S zT8N#>4lOyIl@$~+v}hI@<0}Ha_%0mFd#p7VUg1;VGqxmrE~nO3_a^)xJ_gV0HBmTA zaj)C(cL<lnpl66F)nNTGJ&YRvqNfb_lKJH zfM?A4@lGC(fd`&vIp=0uwC0oTthMdV){UNo7%hcoWHN_w`?d4+MFR~BFNO8*&eJ(Z z9;LX}ZAjg|Fu7N0j{asWVmTSt=-^)){-woH^gv%*-n%k-xRw#NueI<5H*Mi5FTELS zcI`}WP8mL|j7+LJFu(e2ygRP@gLvEhW7!}O%K7~P_3mn26H&292@UYEd50%8k$;v4xvu!mpcMo`Vb@O` z2MDysP_GH|aB6Pdh!4UvuvJL@G9-io)4w+CiY(q(;j_z`Y|hXb=GJFmH9siKM{ zPL+|wQ4KM+dfpQ|`yhfzz1qTER{77aW7FmOl?k-*bY_SQORT0lqt{MPHZ(BwtF?N0 zwS^kx&E*+P|PMg(Ij1u#rP=xQ~uV4+?xV;Z85p-Uy{uySX z0n+rMO7vbQ1JFg`S-HKmKg{GhB<;PPrE8+L&&fy=^qexT0zOKUw-sBLmbr}%)DvRd z#9`j~J8U&6H$vWh!q3c@NIG*hZ#Z1~dYSV_z-JZ=-j1oYJX2(!nUA$aK9 zk(M}vh9nQ8=1lVPzsoDi@C>iZKnw0lorGEH^euj-tMWhcR0bUA3}JdJNf4sW;~;m= zxyj;RJTo0usR(mJE*uNjI#l0T#$2ptVoG7MU;rGXtG%9`_bDRj*ffm|U33g%@z8Oe zJ;mZb;eK|Xo(`hy(j@M*y6=CF%ZLK$+nS7BKS|l7iJ?*wDyL6nMT_H->+512^DGb3 zu`;v5-|6XYi71e*At{EX+(vzpbX)0B+)&a@S!_y7po;iyB50{>6@IANvlD0}#P1L> zzg(Dve-KZbR+Sm?4Z^e|lXQ>d^Q}o1m59R=j)6;DNQWS3_;4Tk7ed@(!o9AeX;789 z%RE+URjuuVmgmrws&y_66EET#Jve*JWc z&{`^<0K2fBvOLDOHGDjmR$@$_m9H1E=SLf)t4TUc8b{&2RE-=jv(Z$tK}?L!n$625 z8@pmU;OiU0ETMTRI-8qP0jlB#K5+n{N2`h$o!){4%<+u4GO0i0V^sbyZ&;CB#c9gk zgTu`#^_IaYt-q5CgxU1+crP+Qg#c4Y7doTbJ=-1n+=WR3l=i?zL5c+(V1qQCCzDxn zpHZT&BF9Lr2I}=0H{pwNG;cPV`COpdMy7K651l6lrjks8-|BScO+(p->No0_o$_jF zS=Y(*=4}UsobG7@3Y;V)^ssT!{@9m~D4uf+12r0-pC;?aqEckPYAF3nSlsw!_m#=( zHW<3sI&Wdu)UY<({k_AKrnl8$Ba5@1^DO&xE$KTVU^}o>=_90TP`OvBlDv#pqjmQH zx3OEjjBIaXNo4ALzWcAxO6ou`6b6 zH&G5}e)m1OvG7FbNRCKgo+=9u9aO2B;Yhs$?6#C0A~V(~A}1Y=n>HXoYc>SfA4h+@ z)+iVe|F%;yAYcRc?yzL=W_xtRwZ@m1%56gb>yIB=2Zp>RqpX4w~RkB3J;F;6Nh_5ZF*?c(nC{klwi@CTJ>u1?W~>K-HN z59TM`)7KnfOP0mw@{GHEKhwom&#X>anJWuTH5JNtad1NCHhr#T%mXNi&C4&4IPgR~ z8Md&xdBvywqp2#xXNXs|D zen5-;vO1=p$le7MDUi$!+$2L~8wy)f$qKC!?my3Y7jbB2~@7lWg;Usr%jL#6c{gX+Y@ z9b?15((#39L%2V;y_%--(J95-`;3jVB97THVKaRjZA>qwyvCsNw$-uW9^a43q(luUaE~){ zTK@)PxN0)%bC$XwNH$Q{31vH_l9lKYnVVaYA{=_ItA^=krHFt3mPH))Emla*BLi~X zeytwvQ#Bn?Lo-nLlriVTH6+ov8dt2gIe4+PjIw?5enISkL4Rs6>myHcKiTT3wkc9#$EsGWOyTz-^A2C86&_qLRE+)o?J+iEZ>Qq1`m}-)#$kab)pgLE@ z#0wMKAZq(rj6F^>$JhKSoXI3~t{ouwLRNPo`TVUcFfqEIiprtweiPPHAccQMBmLa; zsgnd3;#cYJl9qakx@7cre{ZYlMc;GnqI;uY?% z3LUMM&A2Zk7g9(cCjadvN+8oW{(wa}3`~6eACq=_2=#O*^~S&Jr3_YDk;tit5O4G) zB{(Q8=;QJ9L4T5PmEpOy`b*D13*jVkCs?XVhry0sn(%}keoactIH=Uc0=l#Ye>O_6(fKC|G!R95id zPdXZl5h_K;S1a@z)Y<1H^Rvz0IQC+4Wl*i0N(2=Z;`U*cr7N`sCAHO+_VvU(;3AlR zEoECxP~U08V&B?lAqj2=NZqB-47J*N>*<{5rx&r_?Qv`DnA6x{RZeEVSYL$xQ{vac zPqOB;iCOUb{^@m2({_=~boW8oHnBi`rvmWK)cCK@>k_Lgd)~~M$S7EQiTLc~<&Li| zO_br+#D=8AtP7MeRbaBdovO%EWTE*; z6^RsctMX)CCr78LF)Oz*6f06E!t8x=wbD5*qx!9_MAWJ(@-lp1XdNY}zqumOy#KC-@r?3{6{ysW<)NCs)Dr0n z+S7(;P4J%9{T;&0wQ$d}+_KS^(+x+`izs3`MnG!hci4|Mb}PxUtY*WwGHCN{MTY*Q z7ynQ@$b;F(TcleWO;mU@mG5VX?NVDabC75YPSP%2@ky0B&3Sui`!`YfI^;~|n!D$v z3#a)39CzaJDOmu6g#L1}`_+`T_vK;TEEWg84A|5L{nRkQ?@ou7`8UQhjc7p0{+QTX zUFuP&D?3$tZ726Cirjz={?UeVwH>qI`u@#M2TQLH(~(>}pr-n7S!w1b`hME7In9!t zivxvgVRuv7F#u0dTI`NhN?DM8 z0!mifsHJNz=W3riPFq|8ED23r+51WYwB%=#S-L#LGGL6jXX3)Hp%q__UxW)WMU+(A zzB%)1qbrh^edDZh_VShfj=80o?l1p{AV86x?05PML@p=<)QQuF&}G}S@I!|q7eJip zp%09{x$9D)AsJg|C$$)0THGaUfc_B$6(B!zeQJ*qxWOcBW^?nm+;5;}HyTfO4c)$r zj~_YWuFMS+4QGea(~+n*!bCEo7l%AKzOH|xGxD#@Tx|^i`a@&;JYmrXhL?Y52C*Ok zlHi6UOy!P|2V6imvy!|S{+OV*+MmuP7&69B!<3;~Nj^hXLyv_zazd3KAx4_?2vG=z z?i0%}m;h`T=&a_ev;S7y+h2Ku1~m9&rMbn%%Ueowseu8t_vFwKBI{Fag?r&Qe+HAiuR6eQf+<9aulNKPU#VdEx?JZlY>T<@iI4w~ zI?WmW6^T%}uvK$$h9RDrl;iTb_V@yMn-$r2yhjctX81jL^XHp6dZh9YmF|?k+Ml=l zF`%sf0+-Bl0Es#H$-gymjGyrJ=Qj6%2HmO zv81o?8r9$mtqZY)f%3O0Dr31f+S**xeL93=!jIQioR;m*;l{cU(DlQ+?kjpg?1^nY z05mqnt5yE5ijhbukc84?gmUkuTX*@!Lk?PYHjMI(&;=14n)E~ED1A(J9tXnDT@5l{ ziB`$(DgHBYOVCcH=h?tst^xvq7~N!a+{{hfkV0lINMHc*a`OmsaPx5R@M!P|2tfsf z_ypOwxrMm7GgE~o{+EHhqq(((_y2FO*M)Kf3}pWrxH?+6d78K&LGtz{mPln2OKUS* zx)+=RoG=bSI=};zgPWg&hnMaZ&kH&$H#a9CE-p_`PfqKI&j1xNGM6FU&vB6cVyRT3cGVfp`RY2|zBP0EYbk zVzjNz-K_pXCQ9kS0Oaw%Aj;PENH=dMB

0xSSj;#jCVb{>zWD27m(b@IwW7d0~PA zf|Vayng9sFzaZ+?K1dKZ9G>_|Y!6t{`qz@CnmowD+71c4K9{|No1LR2mxYOkwV9)X zE7$*gXD%}&x1fm`FRzIyk13MZ^o5xTp9PE;$!*HdjpX5lnR5aboIreNM?a>&A530G KMYp#Px&+E*4P=SScPjoh;0pOS;ErVN+XH|TD1H6^mBgmpxW5#!QacY^X9$z=9`)CNzy#J%E~1AT_hc! zFG&j}Nm7wfh$2dy4?XKypxE3oo?nhqX3#8U``bH(rh>6b#lGpnY7DklqW@t9Ow}tD zysBl&J0)_>S~YC??OgMPZVO^TKOzA)y6QJ`Zuga4u+*+EjzM)t4fTjjdf_(e;OoAD zWOx#ZZ~#7A6U8nup2yUX=UC7y;SW5jKsJ*^;@bpc*_-#m-n55(5lcp<;A%Sw!@0$O za4=|=FwfuzCtMFsqpNNMMmy^;__&h%jd*+S7{=_k;k8{S|0pcf>l}udmGjmCc&%6Q zx$gn(`737m)BI92|CWPF5lGpI0*%@lA;T fcWo!|>e_C?Tl>%NQS3xmUaLYcBK8}1=|9g;JYdlH literal 0 Hc$@ + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/assets/images/konqi-docbook.png b/assets/images/konqi-docbook.png new file mode 100644 index 0000000000000000000000000000000000000000..08ee21348725a3492fc8418eaf3b0413e46c9193 GIT binary patch literal 70601 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

g4Pz4T@qhx27Tc&w_ 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 literal 0 Hc$@EkTAFgch}%fkO0BmLvVMO1o)cs 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 literal 0 Hc$@tpPw+J6p}0q18R5d9x@C3#)H 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 KrD_Gs@c#oSgxSFW literal 0 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 literal 0 Hc$@ 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 literal 0 Hc$@ { + $('#search_bar_search_term').val(ui.item.value); + $('form[name=search_bar]').submit(); + } + }); +}); diff --git a/composer.json b/composer.json new file mode 100644 --- /dev/null +++ b/composer.json @@ -0,0 +1,73 @@ +{ + "type": "project", + "license": "AGPL3", + "require": { + "php": "^7.1.3", + "ext-ctype": "*", + "ext-iconv": "*", + "sensio/framework-extra-bundle": "^5.2", + "symfony/asset": "4.2.*", + "symfony/console": "4.2.*", + "symfony/dotenv": "4.2.*", + "symfony/flex": "^1.1", + "symfony/form": "4.2.*", + "symfony/framework-bundle": "4.2.*", + "symfony/process": "4.2.*", + "symfony/translation": "4.2.*", + "symfony/twig-bundle": "4.2.*", + "symfony/web-link": "4.2.*", + "symfony/webpack-encore-bundle": "^1.0", + "symfony/yaml": "4.2.*" + }, + "require-dev": { + "symfony/debug-pack": "*", + "symfony/maker-bundle": "^1.0", + "symfony/profiler-pack": "*", + "symfony/web-server-bundle": "4.2.*" + }, + "config": { + "preferred-install": { + "*": "dist" + }, + "sort-packages": true + }, + "autoload": { + "psr-4": { + "App\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "App\\Tests\\": "tests/" + } + }, + "replace": { + "paragonie/random_compat": "2.*", + "symfony/polyfill-ctype": "*", + "symfony/polyfill-iconv": "*", + "symfony/polyfill-php71": "*", + "symfony/polyfill-php70": "*", + "symfony/polyfill-php56": "*" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + }, + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "conflict": { + "symfony/symfony": "*" + }, + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.2.*" + } + } +} diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,51 @@ +=1.2) +if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) { + $_SERVER += $env; + $_ENV += $env; +} elseif (!class_exists(Dotenv::class)) { + throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.'); +} else { + $path = dirname(__DIR__).'/.env'; + $dotenv = new Dotenv(); + + // load all the .env files + if (method_exists($dotenv, 'loadEnv')) { + $dotenv->loadEnv($path); + } else { + // fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added) + + if (file_exists($path) || !file_exists($p = "$path.dist")) { + $dotenv->load($path); + } else { + $dotenv->load($p); + } + + if (null === $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) { + $dotenv->populate(array('APP_ENV' => $env = 'dev')); + } + + if ('test' !== $env && file_exists($p = "$path.local")) { + $dotenv->load($p); + $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env; + } + + if (file_exists($p = "$path.$env")) { + $dotenv->load($p); + } + + if (file_exists($p = "$path.$env.local")) { + $dotenv->load($p); + } + } +} + +$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: '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,13 @@ + ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::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/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/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/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/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/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/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/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,32 @@ +# 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 + +imports: + - { resource: 'services.php' } + +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 @@ -2,6 +2,7 @@ +Copyright 2019 Carl Schwan Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby @@ -28,28 +29,87 @@ # (generated_used.inc.php) used by the website. define("JSONFILE_PREFIX", "SITEDATA"); +/** + * Weights of packages: helper function for cmp_packages() + */ +function package_weight(string $p): int +{ + $weights = [ + 'frameworks' => 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(string $p1, string $p2): int +{ + $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; + } +} function extract_from_json($json_dir, $json_file) { $json_content = file_get_contents($json_dir."/".$json_file); $json_array = json_decode($json_content, true); - $array_string = var_export($json_array, true); # 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"; + if ($var_name == 'modules_programs') { + // sort modules_prgrams + uksort($json_array, 'cmp_packages'); + } + $array_string = var_export($json_array, true); + + echo "const $var_name = $array_string;\n"; + + if ($var_name == 'languagelist') { + // create special variable for routing parameter _locale in config/services.php + $string = ''; + foreach ($json_array as $lang) { + $string .= $lang . '|'; + } + $string = rtrim($string,"|"); + + // save content + $parameterFile = fopen("./config/services.php", "w"); + fwrite($parameterFile, "setParameter('app.locales', '$string');\n"); + fclose($parameterFile); + } } function convert_files($json_dir) { $all_files = scandir($json_dir); echo "\n"; + echo "}\n"; } $json_files_dir = "."; diff --git a/crontab b/crontab --- a/crontab +++ b/crontab @@ -1,7 +1,7 @@ # m h dom mon dow command MAILTO=sysadmin@kde.org 15 01 * * thu cd /home/docs/docs && git pull --rebase -q 1>/home/docs/logs/git.log 2>&1 -15 02 * * thu cd /home/docs/docs && ./kdedocgen.py -r -g -s -l doclogconfig.ini -c docgen_conf.ini &>/dev/null -15 16 * * thu cd /home/docs/docs && ./create_generated_used.php /home/docs/docs/work >/home/docs/website/generated_used.inc.php 2>/home/docs/logs/genused.log +15 02 * * thu cd /home/docs/docs && ./kdedocgen.py -r -g -s -l doclogconfig.ini -c docgen_conf.ini &>/dev/null && yarn encore production +15 16 * * thu cd /home/docs/docs && composer update && ./create_generated_used.php /home/docs/docs/work > /home/docs/docs/src/Data/GeneratedData.php 2>/home/docs/logs/genused.log 30 16 * * thu cd /home/docs/docs/search && nice -n 19 ./do_xapian_index.sh 30 19 * * thu cd /home/docs/docs && ./rsyncsite 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 @@ -3,10 +3,10 @@ website_dir=/home/docs/website # If the following options are not specified, languages and packages # are read from the files with the same name -#languages= -#packages= +languages=en,fr +packages=calligra branches=stable4,trunk4,stable5,trunk5 -static_files=404.php,docs.css,favicon.ico,images,include,index.php,intro.inc.html,robots.txt,styles +static_files=index.php,robots.txt,favicon.ico excluded_lang_pdf=es,ja [env.kdelibs4] diff --git a/docs.css b/docs.css deleted file mode 100644 --- a/docs.css +++ /dev/null @@ -1,436 +0,0 @@ - - - -#content { -background-color: white; -/* padding: 0.5em 0.7em 1.5em 0.7em; */ -padding:0; -margin:0; -text-align: justify; -} - -#content td, #content th { -font-family: sans-serif; -padding: 0; -margin: 0; -text-align: left; -} - -#nav_header_logo { -float: left; -padding: 10px; -padding-bottom: 5px; -} - -#nav_header_logo_right { -float: right; -padding: 10px; -padding-bottom: 5px; -} - -/** - * page footer - */ - - - - -/* +++++++++++++++++++++++++++++++++++++++++++++ */ -/* - docs.kde.org styles -*/ -/* +++++++++++++++++++++++++++++++++++++++++++++ */ - -.subdocs { - font-style: italic; - color: #505050; - font-size: 7pt; -} - -.notfinished { - color: #A0A0A0; -} - - -ul.branchmenu { -/* height: 20pt; */ - width: 100%; - background-color: #418ADE; /*#009754;*/ - color:#FFFFFF; - font-size: 12pt; - font-family: sans-serif; /* 'Trebuchet MS'; */ - font-weight: bold; - text-decoration: none; - padding: 3px 5px 3px 5px; - margin:0; -} - -ul.branchmenu li { - display: inline; - margin: 0 10px 0 10px; -} - -.branchmenu li.current { - background-color: #DFE7F3; /*#80C39B; */ - color: #FFFFFF; -} - -.branchmenu a { - color: #FFFFFF; - margin: 0 5px 0 5px; -} - -.branchmenu li.current a { - color: #FFFFFF; -} - - -.languagemenu { - width: 100%; - background-color: #DFE7F3; /*#80C39B;*/ - font-size: 10pt; - font-family: sans-serif; /*'Trebuchet MS';*/ - font-weight: bold; - padding: 2px 5px 2px 5px; - margin:0; -} - -.languagemenu li { - display: inline; - margin: 0 5px 0 5px; -} - -.languagemenu li.current { - background-color: #DFE7F3; /*#80C39B; */ - color: #FFFFFF; -} - -.languagemenu a { - color: #FFFFFF; - margin: 0 5px 0 5px; -} - -.languagemenu li.current a { - background-color:#FFFFFF; - color:#418ADE; /*#009754; */ - margin: 0 5px 0 5px; -} - - - - -#appswrapper { - position:absolute; - top: 90px; - left: 180px; - right: 190px; - margin:0; - padding:0; -/* float:left; */ -/* width:66%; */ -/* min-height:700px; */ -/* margin-right:210px; */ -/* border-left-color:#418ADE; - border-left-width: 7px; - border-left-style: solid;*/ -/* margin-bottom:-8px; */ - -} - -ul.apps { -/* position: absolute; - left: 18%; - top: 150px;*/ - float:left; -/* width: 97%; */ - border: #418ADE /*#009754;*/ 1px solid; -/* border-left-color:#418ADE; /*#009754; */ -/* border-left-width: 0px; */ - font-size: 10pt; - font-family: sans-serif; /* 'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - margin:0px; - margin-bottom:10px; - padding:5px; - list-style-type:none; -/* min-height: 500px; */ - width: 98%; -} - -ul.apps li.appbox { - background-color: #FFFFFF; - border: #418ADE 1px solid; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - /*display: inline;*/ - margin:0px; - padding:0px; - float:left; - width: 49%; -} - -ul.apps li.appbranch { - background-color: #FFFFFF; - margin:0px; - padding:0px; -} - -ul.apps li a { - padding-left:2px; - color:#1b2D83; -} - -div.intro { - float:left; - border: #418ADE 1px solid; - font-size: 10pt; - font-family: sans-serif; /* 'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - margin:0px; - margin-bottom:10px; - padding:10px; - list-style-type:none; -} - -div.error { - float:left; - border: #E72300 1px solid; - font-size: 10pt; - font-family: sans-serif; /* 'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - margin:0px; - margin-bottom:10px; - padding:10px; - list-style-type:none; -} - - - -#appswrapper h3 { - color: #505050; - font-size: 10pt; - margin:0; - padding:0; - margin-bottom: 2px; - padding-left: 7px; - font-weight:normal; - clear:both; -} - - -#menu { - position:absolute; - top: 90px; - right: 10px; -/* float:left; */ -/* width: 16%; */ - width:160px; - text-align:left; - font-size: 8pt; - font-family: sans-serif; /* 'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - border: 1px solid #418ADE; - margin: 0px; - padding:5px; -} - -#docs_search { - padding:0; - margin:0; - margin-top:5px; - list-style-type: none; - font-size: 8pt; - font-weight:normal; -/* background-color: #418ADE; */ - border: 1px dotted #418ADE; - color: #000000; -} - -#docs_search li { - padding: 5px; -} - -#docs_search select { - width: 80%; -} - -#docs_search .text_input { - width: 95%; -} - -#docs_search .search_button { - text-align: right; - font-size: 9pt; -} - -#important { - padding:0px; - margin:0px; - list-style-type: none; - font-size: 12pt; - font-weight:bold; -/* background-color: #418ADE; */ - border: 1px dotted #418ADE; - color: #FFFFFF; -} - -#important h3 { - font-size: 12pt; -} - -#important li { - padding: 5px; -} - -#important a { - color: #418ADE; -} - -.smalllanguage { - font-style: italic; - color: #A0A0A0; - font-size: 7pt; -} - -#legal { - -background-color: #418ADE; -color: #FFFFFF; -padding: 5px; -} - -#navigation { - position:absolute; - top: 90px; - left: 10px; -/* float:left; */ -/* width: 14%; */ - width: 150px; - text-align:left; - font-size: 8pt; - font-family: sans-serif; /* 'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - border: 1px solid #418ADE; /*#009754; */ - margin: 0px; - padding:5px; - -} - -#selectionform { - font-size: 10pt; - font-family: sans-serif; /*'Trebuchet MS';*/ - font-weight: normal; - background-color: #418ADE; /*#009754; */ - color:#FFFFFF; - border: 1px solid #418ADE; /*#009754; */ - margin: 0; - margin-bottom: 5px; - padding:0; - padding-bottom: 3px; - list-style-type:none; - min-width: 150px; -} - -#selectionform li { - padding: 1px 5px 1px 5px; -} - -#selectionform #applybutton { - margin-top: 3px; - text-align: right; - font-size: 9pt; -} - -#applicationform { - font-size: 10pt; - font-family: sans-serif; /*'Trebuchet MS';*/ - font-weight: normal; - background-color: #418ADE; /*#009754; */ - color:#FFFFFF; - border: 1px solid #418ADE; /*#009754; */ - margin: 0; - margin-bottom: 5px; - padding:0; - padding-bottom: 3px; - list-style-type:none; - min-width: 150px; -} - -#applicationform .ui-autocomplete .ui-menu-item { - font-size: 10pt; -} - -#applicationform li { - padding: 1px 5px 1px 5px; -} - -#applicationform input { - width: 69%; -} - -#applicationform #openbutton { - text-align: right; - font-size: 7pt; - width: 29%; -} -ul.packagemenu { -/* background-color: #418ADE; */ -/* text-decoration: none; */ -/* float: left; */ -/* width: 15%; */ - font-size: 10pt; - font-family: sans-serif; /*'Trebuchet MS';*/ - font-weight: normal; - color:#000000; - border: 1px dotted #418ADE; /*#009754; */ - margin: 0; - padding:0; - list-style-type:none; - min-width: 150px; -} - -ul.packagemenu a { - color:#000000; - display:block; -} - - -ul.packagemenu li { - padding: 1px 5px 1px 5px; -} - -ul.packagemenu li:hover { - background-color: #DFE7F3; /*#80C39B; */ -} - -.packagemenu li.current { - background-color: #418ADE; /*#009754; */ - color: #FFFFFF; -/* margin-right: -12px; */ -} - -.packagemenu li.current a { - background-color: #418ADE; /*#009754; */ - color: #FFFFFF; - display:block; -} - -a.pdf_link { - color: #A0A0A0; - font-size: 0.8em; -} - -a.pdf_link_sub:link { - font-style: italic; - color: #505050; - font-size: 7pt; -} - - - diff --git a/favicon.ico b/favicon.ico index 2c9dd50e4d961b11292cae22cc765d531f4d0d93..15ff1d165ef37c35fe1661941813ec21da32ae0f GIT binary patch literal 1150 zc$}qE$xl;p5Pl~90UV5H4=#02T@#H_^yooNT#g>p#Px&+E*4P=SScPjoh;0pOS;ErVN+XH|TD1H6^mBgmpxW5#!QacY^X9$z=9`)CNzy#J%E~1AT_hc! zFG&j}Nm7wfh$2dy4?XKypxE3oo?nhqX3#8U``bH(rh>6b#lGpnY7DklqW@t9Ow}tD zysBl&J0)_>S~YC??OgMPZVO^TKOzA)y6QJ`Zuga4u+*+EjzM)t4fTjjdf_(e;OoAD zWOx#ZZ~#7A6U8nup2yUX=UC7y;SW5jKsJ*^;@bpc*_-#m-n55(5lcp<;A%Sw!@0$O za4=|=FwfuzCtMFsqpNNMMmy^;__&h%jd*+S7{=_k;k8{S|0pcf>l}udmGjmCc&%6Q zx$gn(`737m)BI92|CWPF5lGpI0*%@lA;T fcWo!|>e_C?Tl>%NQS3xmUaLYcBK8}1=|9g;JYdlH literal 1150 zc$|flZBUd|6vx+@W>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/images/docs.png b/images/docs.png deleted file mode 100644 index 6ea007cf8c64d1424a2d5273b39dc178838109e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 diff --git a/images/kde_gear_64.png b/images/kde_gear_64.png deleted file mode 100644 index dcfb4c14db353825aac188ec243f61a96e3ca4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 - - - - - - - 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,467 +0,0 @@ - diff --git a/index.php b/index.php --- a/index.php +++ b/index.php @@ -1,546 +1,27 @@ 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]; - } + Debug::enable(); } -/* - 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; - } - } - } +if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) { + Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); } -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); +if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) { + Request::setTrustedHosts([$trustedHosts]); } -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 "" -?> - - +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); +$request = Request::createFromGlobals(); +$response = $kernel->handle($request); +$response->send(); +$kernel->terminate($request, $response); 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/kde-chunk-online.xsl b/kde-chunk-online.xsl --- a/kde-chunk-online.xsl +++ b/kde-chunk-online.xsl @@ -44,7 +44,7 @@ 0 0 /HEAD/common/ - + 1 @@ -65,6 +65,8 @@ + + diff --git a/kde-navig-online.xsl b/kde-navig-online.xsl --- a/kde-navig-online.xsl +++ b/kde-navig-online.xsl @@ -1,8 +1,8 @@ - - - + version="1.0"> + + + @@ -34,156 +34,157 @@ - - + + - +
+ +
- +
- + - - - - - + + + + + - - - - + + +
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/rsyncsite b/rsyncsite --- a/rsyncsite +++ b/rsyncsite @@ -1,12 +1,38 @@ #!/bin/bash DOCSERVER=docsadmin@olios.kde.org +SERVERPATH=/var/www/docs.kde.org +LOCALPATH=/home/docs/docs +HTMLPATH=/home/docs/website + +DOCSERVER=carl@vps569455.ovh.net +SERVERPATH=/var/www/docs.carlschwan.eu LOGFILE="/home/docs/logs/rsync_$(date +%Y%m%d_%H%M).log" -/usr/bin/rsync -azC --delete /home/docs/website/ ${DOCSERVER}:/srv/www/docs.kde.org/html \ +SYNC_RESULT=0 + +# Copy static assets to websites +rm -rf ${HTMLPATH}/build +cp -r ${LOCALPATH}/build ${HTMLPATH} + +# Copy php server +/usr/bin/rsync -azC --delete ${LOCALPATH}/{src,translations,templates,config,vendor,bin,composer.json} ${DOCSERVER}:${SERVERPATH}/ \ + &>${LOGFILE} +let SYNC_RESULT+=$? + +# Remove old cache (if existing) +ssh ${DOCSERVER} "cd ${SERVERPATH}; rm -rf var/cache/{dev,prod}/*" + +# Create var directories (if not existing) +ssh ${DOCSERVER} "cd ${SERVERPATH}; mkdir -p var/{log,cache/{prod,dev}}; touch var/log/{dev,prod}.log; chmod 777 var/{log,cache/{dev,prod}};" + +# Copy generated html and pdf +/usr/bin/rsync -azC --delete ${HTMLPATH}/ ${DOCSERVER}:${SERVERPATH}/public \ &>${LOGFILE} -SYNC_RESULT=$? -/usr/bin/rsync -azC --delete /home/docs/docs/search/omegaconf/ ${DOCSERVER}:/srv/www/docs.kde.org/omega \ +let SYNC_RESULT+=$? + +# Copy search database +/usr/bin/rsync -azC --delete ${LOCALPATH}/search/omegaconf/ ${DOCSERVER}:${SERVERPATH}/omega \ &>${LOGFILE} let SYNC_RESULT+=$? diff --git a/search/do_xapian_index.sh b/search/do_xapian_index.sh --- a/search/do_xapian_index.sh +++ b/search/do_xapian_index.sh @@ -2,13 +2,14 @@ SCRIPTDIR="$(dirname $0)" LOGFILE="/home/docs/logs/xapianindex_$(date +%Y%m%d_%H%M).log" +echo "$SCRIPTDIR" # Create the directory which holds the indexes mkdir -p "${SCRIPTDIR}/omegaconf/data/default/" make -C "${SCRIPTDIR}/omegaconf/cdb/" &>${LOGFILE} -${SCRIPTDIR}/kdedocs_indexer.py -v -l /home/docs/docs/languages \ +python2 ${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 --- a/search/kdedocs_indexer.py +++ b/search/kdedocs_indexer.py @@ -62,7 +62,7 @@ 'tr': 'turkish', } -ALL_BRANCHES = ['stable4', 'trunk4', 'stable5', 'trunk5'] +ALL_BRANCHES = ['stable5', 'trunk5'] LOGGER = logging.getLogger(__name__) 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,286 @@ +render('index.html.twig', [ + 'modules_programs' => GeneratedData::modules_programs, + 'lang' => $_locale, + 'search_form' => $this->createSearchForm()->createView(), + 'all_application_names' => $this->getAllApplicationsName($_locale, $translator), + 'languages' => GeneratedData::languagelist, + 'branch_descriptions' => GeneratedData::branch_description, + ]); + } + + /** + * Return the dropdown menu in case the user has noScript + * @Route("/{_locale}/menu", name="menu", defaults={"_locale": "en"}, requirements={"_locale": "%app.locales%"}) + * @param string $_locale + * @param TranslatorInterface $translator + * @return Response + */ + public function menuAction(string $_locale, TranslatorInterface $translator): Response + { + return $this->render('menu.html.twig', [ + 'lang' => $_locale, + 'search_form' => $this->createSearchForm()->createView(), + 'all_application_names' => $this->getAllApplicationsName($_locale, $translator), + 'languages' => GeneratedData::languagelist, + ]); + } + + + /** + * @Route("/{_locale}/search", name="search", defaults={"_locale": "en"}, requirements={"_locale": "%app.locales%"}) + * @param string $_locale + * @param Request $request + * @param TranslatorInterface $translator + * @return Response + * @throws \Psr\Cache\InvalidArgumentException + */ + public function searchAction(string $_locale, Request $request, TranslatorInterface $translator): 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 = []; + $searchTermSimple = str_replace('/', '-', $searchTerm); + $searchResultCache = $cache->getItem('search.' . $_locale . '.' . $searchTermSimple); + $searchResultCache->expiresAt(new \DateTime('tomorrow')); + + if (!$searchResultCache->isHit()) { + foreach (GeneratedData::modules_programs as $module => $moduleContent) { + foreach ($moduleContent as $submodule) { + $array = explode('/', $submodule); + if (array_key_exists($_locale, GeneratedData::programs_docs[$submodule])) { + $branch_available = GeneratedData::programs_docs[$submodule][$_locale]; + + if (count($array) == 1 && strpos(($displayName = $translator->trans($submodule, [], "modules")), $searchTerm) !== false) { + $searchResult[$module][$submodule] = ["branch" => $branch_available]; + } elseif (count($array) == 2 + && strpos(($displayName = $translator->trans($array[1], [], "modules")), $searchTerm) !== false) { + $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->getAllApplicationsName($_locale, $translator), + 'search_form' => $this->createSearchForm()->createView(), + 'languages' => GeneratedData::languagelist, + ]); + } + + // no search term provided + // create page with only search form + return $this->render('search.html.twig', [ + 'lang' => $_locale, + 'search_result' => null, + 'all_application_names' => $this->getAllApplicationsName($_locale, $translator), + 'search_form' => $this->createSearchForm()->createView(), + 'languages' => GeneratedData::languagelist, + 'branch_descriptions' => GeneratedData::branch_description, + ]); + + } + + /** + * @Route("/{_locale}/{module}", name="module", defaults={"_locale": "en"}, requirements={"_locale": "%app.locales%"}) + * @param string $_locale + * @param string $module + * @param TranslatorInterface $translator + * @return Response + * @throws \Exception + */ + public function moduleAction(string $_locale, string $module, TranslatorInterface $translator): Response + { + if (!array_key_exists($module, GeneratedData::modules_programs)) { + throw new \Exception("Module is unknown"); + } + + $submodules = []; + $subsubmodules = []; // contains submodules with a bigger hierarchy + + // first add all submodules that aren't kcm + foreach (GeneratedData::modules_programs[$module] as $submodule) { + if (in_array($module . '/' . $submodule, StaticAppData::ignore_array)) { + continue; + } + $array = explode('/', $submodule); + if (count($array) === 1 && $array[0]) { + if (array_key_exists($_locale, GeneratedData::programs_docs[$submodule])) { + $branch_available = GeneratedData::programs_docs[$submodule][$_locale]; + $submodules[$submodule] = ["branch" => $branch_available]; + } + } + } + + // now add the others submodules + foreach (GeneratedData::modules_programs[$module] as $submodule) { + if (in_array($module . '/' . $submodule, StaticAppData::ignore_array)) { + continue; + } + $array = explode('/', $submodule); + if (count($array) !== 1 && array_key_exists($_locale, GeneratedData::programs_docs[$submodule])) { + $branch_available = GeneratedData::programs_docs[$submodule][$_locale]; + $subsubmodules[$array[0]][$array[1]] = ["branch" => $branch_available]; + } + } + + return $this->render('module.html.twig', [ + 'lang' => $_locale, + 'module' => $module, + 'categories' => $submodules, + 'subsubmodules' => $subsubmodules, + 'branch_descriptions' => GeneratedData::branch_description, + 'search_form' => $this->createSearchForm()->createView(), + 'all_application_names' => $this->getAllApplicationsName($_locale, $translator), + 'languages' => GeneratedData::languagelist, + ]); + } + + public function languageListDropdown() + { + return $this->render( + 'language_dropdown.html.twig', [ + 'languages' => GeneratedData::languagelist, + 'full_language_name' => StaticAppData::full_language_name, + ] + ); + } + + /** + * @return SearchBarType + */ + private function createSearchForm(): FormInterface + { + // create search form + $search = new Search(); + $form = $this->createForm(SearchBarType::class, $search, [ + 'action' => $this->generateUrl('search'), + ]); + return $form; + } + + private function getAllApplicationsName(string $_locale, TranslatorInterface $translator): string + { + $cache = new FilesystemAdapter(); + $applicationsNameCache = $cache->getItem('applicationsName.' . $_locale); + + if (!$applicationsNameCache->isHit()) { + $applicationsName = []; + foreach (GeneratedData::modules_programs as $module => $moduleContent) { + foreach ($moduleContent as $submodule) { + $array = explode('/', $submodule); + if (count($array) == 1) { + $applicationsName[] = $translator->trans($submodule, [], "modules"); + } elseif (count($array) == 2) { + $applicationsName[] = $translator->trans($array[1], [], "modules"); + } + } + } + $applicationsNameString = ''; + foreach ($applicationsName as $name) { + $applicationsNameString .= $name . ', '; + } + $applicationsNameCache->set($applicationsNameString); + $applicationsNameCache->expiresAt(new \DateTime('tomorrow')); + $cache->save($applicationsNameCache); + return $applicationsNameString; + } else { + return $applicationsNameCache->get(); + } + } + + + /** + * 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 (!$this->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/StaticAppData.php b/src/Data/StaticAppData.php new file mode 100644 --- /dev/null +++ b/src/Data/StaticAppData.php @@ -0,0 +1,90 @@ + "English", + "ca" => "Català", + "fr" => "Français", + "de" => "Deutsch", + "uk" => "українська", + ]; +} + +?> 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,25 @@ +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, [ + 'translation_domain' => 'app', + ]); + } +} + 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/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
  • link

  • */ - -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
  • link

  • */ - -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,256 @@ +{% trans_default_domain 'app' %} + + + + + + + {% block title %}KDE Documentation {% endblock %} + {% block stylesheets %} + {{ encore_entry_link_tags('app') }} + {% endblock %} + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + {# APPLICATIONS SEARCH #} + {{ 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_end(search_form) }} + + {# MAIN CONTENT #} + {% block body %}{% endblock %} + + {# OMEGA SEARCH #} +

    Advanced search

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + +
    +
    + +{% 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,23 @@ +{% extends 'base.html.twig' %} + +{% trans_default_domain 'app' %} + +{% block body %} +

    {% trans %}Welcome{% endtrans %}

    + +

    {% trans %}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.{% endtrans %}

    +

    {% trans %}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.{% endtrans %}

    +

    {% trans %}If you are looking for developer documentation, the KDE Techbase is the place where you get what you are looking for.{% endtrans %}

    +
    +

    + {% trans %}Categories{% endtrans %} +

    +
    + {% for category in modules_programs|keys %} + + {{ category|trans({}, "modules") }} + + {% endfor %} +
    +
    +{% endblock %} diff --git a/templates/language_dropdown.html.twig b/templates/language_dropdown.html.twig new file mode 100644 --- /dev/null +++ b/templates/language_dropdown.html.twig @@ -0,0 +1,12 @@ +
    + {% for language in languages %} + {% if loop.index0 % 3 == 0 and loop.index0 != 0 %} +
    +
    + {% endif %} + {# TODO there is probably a better way #} + {{ full_language_name[language] is defined ? full_language_name[language] : language }} + {% endfor %} +
    +
    diff --git a/templates/menu.html.twig b/templates/menu.html.twig new file mode 100644 --- /dev/null +++ b/templates/menu.html.twig @@ -0,0 +1,21 @@ +{% extends 'base.html.twig' %} + +{% trans_default_domain 'app' %} + +{% block body %} +
    + {% trans %}Help{% endtrans %} + {% trans %}Contact Us{% endtrans %} + {% trans %}Donate{% endtrans %} + +
    +{% 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,59 @@ +{% extends 'base.html.twig' %} + +{% trans_default_domain 'app' %} + +{% block body %} +
    +
    + Module: {{ module|trans({}, 'modules') }} +
    +
    + {% for category,submodules in categories %} +
    + {{ category|trans({}, 'modules') }} + {% if submodules.branch is defined %} + {% for branch in submodules.branch %} + + {% endfor %} + {% else %} + {% for submodule,branchs in submodules %} + {{ submodule|trans({}, 'modules') }} + {% for branch in branchs.branch %} + + {% endfor %} + {% endfor %} + {% endif %} +
    + {% endfor %} +
    +
    + {% for namespace, list in subsubmodules %} +
    +
    + {{ namespace|trans({}, 'modules') }} +
    +
    + {% for name, branchs in list %} +
    + {{ name|trans({}, 'modules') }} + {% for branch in branchs.branch %} + + {% endfor %} +
    + {% endfor %} +
    +
    + {% 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,48 @@ +{% extends 'base.html.twig' %} + +{% trans_default_domain 'app' %} + +{% block body %} + {% if search_result is defined %} + {% for module, moduleContent in search_result %} + {% for category, submodules in moduleContent %} +

    {{ category|trans({}, 'modules') }}

    + {% if submodules.branch is defined %} + + {% else %} +
    + {% for submodule,branchs in submodules %} + {% if loop.index0 % 2 == 0 and loop.index0 != 0 %} +
    +
    + {% endif %} +
    + {{ submodule|trans({},'modules') }} + +
    + {% endfor %} +
    + {% endif %} + {% endfor %} + {% endfor %} + {% else %} + TODO ADD TEXT + {% endif %} +{% endblock %} diff --git a/translations/.gitignore b/translations/.gitignore new file mode 100644 diff --git a/translations/app.ca.yaml b/translations/app.ca.yaml new file mode 100644 --- /dev/null +++ b/translations/app.ca.yaml @@ -0,0 +1,2 @@ +navbar: + language: Català \ No newline at end of file diff --git a/translations/app.de.yaml b/translations/app.de.yaml new file mode 100644 --- /dev/null +++ b/translations/app.de.yaml @@ -0,0 +1,15 @@ +index.welcome: __index.welcome +index.content1: __index.content1 +index.content2: __index.content2 +index.content3: __index.content3 +index.categories: __index.categories +navbar.help: __navbar.help +navbar.contact: __navbar.contact +navbar.donate: __navbar.donate +navbar.language: __navbar.language +'Donate to KDE': '__Donate to KDE' +'Why Donate?': '__Why Donate?' +'Get Involved in KDE': '__Get Involved in KDE' +'KDE on Facebook': '__KDE on Facebook' +'KDE on Twitter': '__KDE on Twitter' +'KDE on Google+': '__KDE on Google+' diff --git a/translations/app.en.yaml b/translations/app.en.yaml new file mode 100644 --- /dev/null +++ b/translations/app.en.yaml @@ -0,0 +1,56 @@ +language: English +'KDE Documentation': 'KDE Documentation' +'Toggle navigation': 'Toggle navigation' +'Homepage of the KDE non-profit Organization': 'Homepage of the KDE non-profit Organization' +'Donate to KDE': 'Donate to KDE' +'Why donate?': 'Why donate?' +'Get Involved in KDE': 'Get Involved in KDE' +'and the': 'and the' +'logo (': 'logo (:' +'are registered trademarks of': 'are registered trademarks of:' +Legal: Legal +Search: Search +'Search...': 'Search...' +Help: Help +'Contact Us': 'Contact Us' +Donate: Donate +'''Your donation is smaller than 2€. This means that most of your donation\nwill end up in processing fees. Do you want to continue?': '''Your donation is smaller than 2€. This means that most of your donation\nwill end up in processing fees. Do you want to continue?' +'Donate via PayPal': 'Donate via PayPal' +'Other ways to donate': 'Other ways to donate' +Products: Products +Plasma: Plasma +'KDE Applications': 'KDE Applications' +'Plasma Mobile': 'Plasma Mobile' +'KDE neon': 'KDE neon' +WikiToLearn: WikiToLearn +Develop: Develop +'TechBase Wiki': 'TechBase Wiki' +'Api Documentation': 'Api Documentation' +'Qt Documentation': 'Qt Documentation' +'Inqlude Documentation': 'Inqlude Documentation' +'News & Press': 'News & Press' +Announcements: Announcements +Kde.news: Kde.news +'Planet KDE': 'Planet KDE' +Screenshots: Screenshots +'Press Contact': 'Press Contact' +Resources: Resources +'Community Wiki': 'Community Wiki' +'UserBase Wiki': 'UserBase Wiki' +'Miscellaneous Stuff': 'Miscellaneous Stuff' +Support: Support +'International Websites': 'International Websites' +'Download KDE Software': 'Download KDE Software' +Destinations: Destinations +'KDE Store': 'KDE Store' +'KDE Free Qt Foundation': 'KDE Free Qt Foundation' +'KDE Timeline': 'KDE Timeline' +'KDE on Facebook': 'KDE on Facebook' +'KDE on Google+': 'KDE on Google+' +'KDE on Twitter': 'KDE on Twitter' +') are registered trademarks of': ') are registered trademarks of' +Welcome: Welcome +Categories: Categories +"Welcome to the KDE documentation site. This page holds the complete KDE User Documentation in over 25\n languages. Thanks to the enormous efforts by our documentation and translation teams you can access\n thousands of pages of documentation.": "Welcome to the KDE documentation site. This page holds the complete KDE User Documentation in over 25\n languages. Thanks to the enormous efforts by our documentation and translation teams you can access\n thousands of pages of documentation." +"Before you start searching the library or asking questions on the mailing lists, there is a good chance your\n answer is already in the KDE UserBase or the KDE Community Forums.": "Before you start searching the library or asking questions on the mailing lists, there is a good chance your\n answer is already in the KDE UserBase or the KDE Community Forums." +"If you are looking for developer documentation, the KDE\n Techbase is the place where you get what you are looking for.": "If you are looking for developer documentation, the KDE\n Techbase is the place where you get what you are looking for." diff --git a/translations/app.fr.yaml b/translations/app.fr.yaml new file mode 100644 --- /dev/null +++ b/translations/app.fr.yaml @@ -0,0 +1,55 @@ +language: Français +'KDE Documentation': 'Documentation de KDE' +'Toggle navigation': 'Basculer la navigation' +Help: Aide +Search...: 'Rechercher...' +Search: 'Rechercher' +'Contact Us': 'Contacter nous' +Donate: Donation +'Donate to KDE': 'Faire un don à KDE' +'Why donate?': 'Pourquoi donner ?' +'''Your donation is smaller than 2€. This means that most of your donation\nwill end up in processing fees. Do you want to continue?': '__''Your donation is smaller than 2€. This means that most of your donation\nwill end up in processing fees. Do you want to continue?' +'Donate via PayPal': 'Donner via PayPal' +'Other ways to donate': 'Autre moyen de donner' +Products: Produits +Plasma: Plasma +'KDE Applications': 'KDE Applications' +'Plasma Mobile': 'Plasma Mobile' +'KDE neon': 'KDE neon' +WikiToLearn: WikiToLearn +Develop: Développer +'TechBase Wiki': 'TechBase Wiki' +'Api Documentation': "Documentation de l'Api" +'Qt Documentation': 'Documentation de Qt' +'Inqlude Documentation': 'Documentation de Inqlude' +'News & Press': 'Nouvelles et presse' +Announcements: Annonce +Kde.news: Kde.news +'Planet KDE': 'Planet KDE' +Screenshots: "Capture d'écran" +'Press Contact': 'Contact presse' +Resources: Ressources +'Community Wiki': 'Community Wiki' +'UserBase Wiki': 'UserBase Wiki' +'Miscellaneous Stuff': 'Autres' +Support: Support +'International Websites': '__International Websites' +'Download KDE Software': '__Download KDE Software' +Destinations: __Destinations +'KDE Store': '__KDE Store' +'KDE Free Qt Foundation': '__KDE Free Qt Foundation' +'KDE Timeline': '__KDE Timeline' +'Get Involved in KDE': '__Get Involved in KDE' +'KDE on Facebook': '__KDE on Facebook' +'KDE on Google+': '__KDE on Google+' +'KDE on Twitter': '__KDE on Twitter' +'and the': 'et le ' +'logo (': 'logo (' +') are registered trademarks of': ') sont des marques déposées de ' +'Homepage of the KDE non-profit Organization': "Page d'accueil de l'organisation non-lucrative de KDE" +'Legal': 'Légal' +'Welcome': 'Bienvenue' +"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.": "__Welcome to the KDE documentation site. This page holds the complete KDE User Documentation in over 25\n languages. Thanks to the enormous efforts by our documentation and translation teams you can access\n 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.": "__Before you start searching the library or asking questions on the mailing lists, there is a good chance your\n 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.": "__If you are looking for developer documentation, the KDE\n Techbase is the place where you get what you are looking for." +Categories: Catégories diff --git a/translations/app.uk.yaml b/translations/app.uk.yaml new file mode 100644 --- /dev/null +++ b/translations/app.uk.yaml @@ -0,0 +1,2 @@ +navbar: + language: українська \ No newline at end of file diff --git a/translations/modules.en.yaml b/translations/modules.en.yaml new file mode 100644 --- /dev/null +++ b/translations/modules.en.yaml @@ -0,0 +1,461 @@ +kcontrol: 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 +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 +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 +kcmaudiocd: Audiocd IO Slave Configuration + +#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 + +#category +frameworks: Frameworks +applications: Applications +kde-workspace: Plasma Workspace +kdeadmin: Administration +kdeedu: Education +kdegames: Games +kdegraphics: Graphics +kdemultimedia: Multimedia +kdenetwork: Internet +kdesdk: KDE Sdk +kdeutils: Utilities +kdewebdev: Web Development +kdeaccessibility: Accessibility +pim: Kontact + +# calligra: key already present +extragear-accessibility: Extragear Accessibility +extragear-base: Extragear Base +extragear-edu: Extragear Education +extragear-graphics: Extragear Graphics +extragear-kdevelop: Extragear KDevelop +extragear-multimedia: Extragear Multimedia +extragear-network: Extragear Internet +extragear-office: Extragear Office +extragear-pim: Extragear Kontact +extragear-sdk: Extragear Sdk +extragear-sysadmin: System Administration +extragear-utils: Extragear Utilities +kdereview: KDE Review diff --git a/translations/modules.uk.yaml b/translations/modules.uk.yaml new file mode 100644 --- /dev/null +++ b/translations/modules.uk.yaml @@ -0,0 +1,429 @@ +kcontrol: System Settings Modules +kcontrol5: System Settings Modules +kioslave: Kioslaves +kioslave5: Kioslaves + +#kdelibs +sonnet: Check Spelling +data: Адреси даних +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 +cache: Cache +componentchooser: Типові програми +cookies: Куки +ebrowsing: Web Shortcuts +emoticons: Емоційки +filemanager: File Management +filetypes: Прив’язка файлів +formats: Формати +history: History +icons: Піктограми +kcmcgi: CGI Script +kcmcss: Appearance +kcmlaunchfeedback: Показ запуску +kcmnotify: Параметри системних сповіщень +kcm_ssl: Версія і сертифікати SSL +kded: Фонові служби +khtml-adblock: AdBlocK Filters +khtml-behavior: Web Browsing +khtml-general: General Konqueror Behavior +khtml-java-js: Java and JavaScript +khtml-plugins: Browser Plugins +kwineffects: Ефекти стільниці +language: Country/Region & Language +nepomuk: Desktop Search +netpref: Connection Preferences +performance: Performance +phonon: Параметри звуку та відео +proxy: Проксі +smb: Спільні ресурси Windows +solid-device-automounter: Портативні пристрої +spellchecking: Перевірка правопису +translations: Мова +trash: Смітник +useragent: Ідентифікація навігатора + +#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 +tar: tar +thumbnail: thumbnail +xz: xz / lzma + +#kde-workspace +plasma-desktop: Довідник з Плазми--output-format +plasma-pa: Гучність звуку +systemsettings: Системних параметрів +kfontview: Переглядач шрифтів +klipper: Klipper +kdm: KDM Login Manager +kinfocenter: Центр інформації +kmenuedit: Редактора меню KDE +ksysguard: System Monitor +PolicyKit-kde: PolicyKit-kde +#kde-workspace kcontrol +autostart: Автозапуск +baloo: Пошук у файлах +bell: System Bell +clock: Дата і час +colors: Кольори +cursortheme: Тема вказівника +desktop: Віртуальні стільниці +desktopthemedetails: Тема стільниці +fontinst: Керування шрифтами +fonts: Шрифти +joystick: Джойстик +kcmaccess: Доступність +kcmsmserver: Керування сеансами +kcmstyle: Стиль віджетів +keyboard: Клавіатура +keys: Скорочення +kgamma5: Гама монітора +khotkeys: Нетипові скорочення +kwincompositing: Ефекти стільниці +kwindecoration: Поведінка вікон +kwinscreenedges: Краї екрана +kwintabbox: Перемикання задач +mouse: Мишка +paths: Місця +powerdevil: Керування живленням +screenlocker: Блокування екрана +screensaver: Блокування екрана +solid-actions: Дії з пристроями +solid-hardware: Information Sources +splashscreen: Splash Screen +webshortcuts: Вебскорочення +windowbehaviour: Поведінка вікон +windowspecific: Правила вікон +workspaceoptions: Поведінка робочого простору + +#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 diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,46 @@ +var Encore = require('@symfony/webpack-encore'); + +Encore + // directory where compiled assets will be stored + .setOutputPath('build/') + + // public path used by the web server to access the output path + .setPublicPath('/build') + + .addEntry('app', './assets/js/app.js') + .addStyleEntry('doc', './assets/css/doc.scss') + + // 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 Sass/SCSS support + .enableSassLoader() + .autoProvidejQuery() // probably useless + + // copy icons + .copyFiles({ + from: './assets/breeze-icons/icons/actions/22/', + pattern: /(edit-find|languages).svg/, + to: 'icons/[name].[ext]' + }) + + // copy image + .copyFiles({ + from: './assets/images/', + to: '' + }); +; + +module.exports = Encore.getWebpackConfig();