mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit f77b83f7e043e339f524c8af84daf696e85ddd99
parent ae9c9f083784bcc7e1ad0891f62f150bef1f9616
Author: markseu <mark2011@mayberg.se>
Date:   Tue, 20 Jun 2023 13:06:25 +0200

Updated extensions and descriptions

Diffstat:
Msystem/extensions/core.php | 4++--
Msystem/extensions/generate.php | 58+++++++++++++++++++++++++++++++++++++++-------------------
Msystem/extensions/install-language.bin | 0
Msystem/extensions/update-current.ini | 6+++---
4 files changed, 44 insertions(+), 24 deletions(-)

diff --git a/system/extensions/core.php b/system/extensions/core.php @@ -1703,13 +1703,13 @@ class YellowLookup { $bytesHandled = $bytesAvailable; if (!$encode) { for ($pos=$bytesHandled;$pos>0;--$pos) { - if($field[$fieldPos+$pos]==" ") { + if ($field[$fieldPos+$pos]==" ") { $fragment = substrb($field, $fieldPos, $pos); $bytesHandled = $pos+1; break; } } - if($pos==0) $encode = true; + if ($pos==0) $encode = true; } if ($encode) { while (true) { diff --git a/system/extensions/generate.php b/system/extensions/generate.php @@ -2,7 +2,7 @@ // Generate extension, https://github.com/annaesvensson/yellow-generate class YellowGenerate { - const VERSION = "0.8.51"; + const VERSION = "0.8.52"; public $yellow; // access to API public $files; // number of files public $errors; // number of errors @@ -21,7 +21,7 @@ class YellowGenerate { // Handle update public function onUpdate($action) { if ($action=="install") { - if($this->yellow->system->isExisting("commandStaticUrl")) { //TODO: remove later, for backwards compatibility + if ($this->yellow->system->isExisting("commandStaticUrl")) { //TODO: remove later, for backwards compatibility $fileName = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("coreSystemFile"); $settings = array( "generateStaticUrl" => $this->yellow->system->get("commandStaticUrl"), @@ -62,7 +62,7 @@ class YellowGenerate { list($path, $location) = $this->yellow->toolbox->getTextArguments($text); if (is_string_empty($location) || substru($location, 0, 1)=="/") { if ($this->checkStaticSettings()) { - $statusCode = $this->generateStaticFiles($path, $location); + $statusCode = $this->generateStatic($path, $location); } else { $statusCode = 500; $this->files = 0; @@ -79,29 +79,44 @@ class YellowGenerate { return $statusCode; } - // Generate static files - public function generateStaticFiles($path, $locationFilter) { - $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("generateStaticDirectory") : $path, "/"); + // Generate static website + public function generateStatic($path, $location) { + $statusCode = 200; $this->files = $this->errors = 0; + $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("generateStaticDirectory") : $path, "/"); + if (is_string_empty($location)) { + $statusCode = $this->cleanStatic($path, $location); + foreach ($this->yellow->extension->data as $key=>$value) { + if (method_exists($value["object"], "onUpdate")) $value["object"]->onUpdate("clean"); + } + } + $statusCode = max($statusCode, $this->generateStaticContent($path, $location, "\rGenerating static website", 5, 95)); + $statusCode = max($statusCode, $this->generateStaticMedia($path, $location)); + echo "\rGenerating static website 100%... done\n"; + return $statusCode; + } + + // Generate static content + public function generateStaticContent($path, $locationFilter, $progressText, $increments, $max) { + $statusCode = 200; $this->locationsArguments = $this->locationsArgumentsPagination = array(); - $statusCode = is_string_empty($locationFilter) ? $this->cleanStaticFiles($path, $locationFilter) : 200; $staticUrl = $this->yellow->system->get("generateStaticUrl"); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); $locations = $this->getContentLocations(); $filesEstimated = count($locations); foreach ($locations as $location) { - echo "\rGenerating static website ".$this->getProgressPercent($this->files, $filesEstimated, 5, 60)."%... "; + echo "$progressText ".$this->getProgressPercent($this->files, $filesEstimated, $increments, $max/1.5)."%... "; if (!preg_match("#^$base$locationFilter#", "$base$location")) continue; $statusCode = max($statusCode, $this->generateStaticFile($path, $location, true)); } foreach ($this->locationsArguments as $location) { - echo "\rGenerating static website ".$this->getProgressPercent($this->files, $filesEstimated, 5, 60)."%... "; + echo "$progressText ".$this->getProgressPercent($this->files, $filesEstimated, $increments, $max/1.5)."%... "; if (!preg_match("#^$base$locationFilter#", "$base$location")) continue; $statusCode = max($statusCode, $this->generateStaticFile($path, $location, true)); } $filesEstimated = $this->files + count($this->locationsArguments) + count($this->locationsArgumentsPagination); foreach ($this->locationsArgumentsPagination as $location) { - echo "\rGenerating static website ".$this->getProgressPercent($this->files, $filesEstimated, 5, 95)."%... "; + echo "$progressText ".$this->getProgressPercent($this->files, $filesEstimated, $increments, $max)."%... "; if (!preg_match("#^$base$locationFilter#", "$base$location")) continue; if (substru($location, -1)!=$this->yellow->toolbox->getLocationArgumentsSeparator()) { $statusCode = max($statusCode, $this->generateStaticFile($path, $location, false, true)); @@ -112,6 +127,13 @@ class YellowGenerate { if ($statusCodeLocation==100) break; } } + echo "$progressText ".$this->getProgressPercent(100, 100, $increments, $max)."%... "; + return $statusCode; + } + + // Generate static media + public function generateStaticMedia($path, $locationFilter) { + $statusCode = 200; if (is_string_empty($locationFilter)) { foreach ($this->getMediaLocations() as $location) { $statusCode = max($statusCode, $this->generateStaticFile($path, $location)); @@ -121,7 +143,6 @@ class YellowGenerate { } $statusCode = max($statusCode, $this->generateStaticFile($path, "/error/", false, false, true)); } - echo "\rGenerating static website 100%... done\n"; return $statusCode; } @@ -242,13 +263,14 @@ class YellowGenerate { } } - // Process command to clean static files + // Process command to clean static website public function processCommandClean($command, $text) { $statusCode = 0; list($path, $location) = $this->yellow->toolbox->getTextArguments($text); if (is_string_empty($location) || substru($location, 0, 1)=="/") { - $statusCode = $this->cleanStaticFiles($path, $location); - echo "Yellow $command: Static file".(is_string_empty($location) ? "s" : "")." ".($statusCode!=200 ? "not " : "")."cleaned\n"; + $statusCode = $this->cleanStatic($path, $location); + echo "Yellow $command: Static website"; + echo " ".($statusCode!=200 ? "not " : "")."cleaned\n"; } else { $statusCode = 400; echo "Yellow $command: Invalid arguments\n"; @@ -256,14 +278,11 @@ class YellowGenerate { return $statusCode; } - // Clean static files and directories - public function cleanStaticFiles($path, $location) { + // Clean static website + public function cleanStatic($path, $location) { $statusCode = 200; $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("generateStaticDirectory") : $path, "/"); if (is_string_empty($location)) { - foreach ($this->yellow->extension->data as $key=>$value) { - if (method_exists($value["object"], "onUpdate")) $value["object"]->onUpdate("clean"); - } $statusCode = max($statusCode, $this->cleanStaticDirectory($path)); } else { if ($this->yellow->lookup->isFileLocation($location)) { @@ -334,6 +353,7 @@ class YellowGenerate { // Return progress in percent public function getProgressPercent($now, $total, $increments, $max) { + $max = intval($max/$increments) * $increments; $percent = intval(($max/$total) * $now); if ($increments>1) $percent = intval($percent/$increments) * $increments; return min($max, $percent); diff --git a/system/extensions/install-language.bin b/system/extensions/install-language.bin Binary files differ. diff --git a/system/extensions/update-current.ini b/system/extensions/update-current.ini @@ -2,7 +2,7 @@ Extension: Core Version: 0.8.115 -Description: Core functionality of the website. +Description: Core functionality of your website. DocumentationUrl: https://github.com/annaesvensson/yellow-core DownloadUrl: https://github.com/datenstrom/yellow-extensions/raw/main/downloads/core.zip Published: 2023-05-24 13:27:21 @@ -32,11 +32,11 @@ system/extensions/edit.woff: edit.woff, delete content/shared/page-new-default.md: page-new-default.md, create, optional Extension: Generate -Version: 0.8.51 +Version: 0.8.52 Description: Generate a static website. DocumentationUrl: https://github.com/annaesvensson/yellow-generate DownloadUrl: https://github.com/datenstrom/yellow-extensions/raw/main/downloads/generate.zip -Published: 2023-05-31 17:15:20 +Published: 2023-06-09 15:56:36 Developer: Anna Svensson Tag: feature system/extensions/generate.php: generate.php, create, update