first commit
This commit is contained in:
commit
f12b8bf91e
53
README.md
Normal file
53
README.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# PreUpVer Loader (1.0.0)
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
PreUpVer is a versatile JavaScript library designed to automatically update the version numbers of library scripts in your documentation. It identifies specific `<pre>` tags on your webpage and updates them with the latest version tag fetched from a specified repository, ensuring your documentation always displays up-to-date information.
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
PreUpVer operates by searching for `<pre>` tags with a designated class (`preupver`) and using their data attributes to perform version updates. It simplifies the process of keeping your library references up-to-date in documentation.
|
||||||
|
|
||||||
|
### Automatic Detection and Updating
|
||||||
|
|
||||||
|
When the webpage loads, PreUpVer finds all `<pre>` tags marked with the `preupver` class. It then extracts necessary details from their data attributes and updates each tag with the latest library version.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
1. **Marking `<pre>` Tags:**
|
||||||
|
|
||||||
|
Add the `class="preupver"` to `<pre>` tags in your HTML and define the required data attributes for automatic updating:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<pre id="unique-id" class="preupver"
|
||||||
|
data-api-url="https://api.github.com/repos/username/library/tags"
|
||||||
|
data-description="Description of the library script"
|
||||||
|
data-url="https://cdn.jsdelivr.net/gh/username/library@${version}/dist/library.min.js">
|
||||||
|
</pre>
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace `unique-id`, `username`, `library`, and other placeholders with your specific details.
|
||||||
|
|
||||||
|
2. **Attributes Explained:**
|
||||||
|
|
||||||
|
- `id`: A unique identifier for the `<pre>` tag.
|
||||||
|
- `data-api-url`: The API URL to fetch the latest library version.
|
||||||
|
- `data-description`: A brief description of the library script.
|
||||||
|
- `data-url`: The URL of the script, where `${version}` will be replaced with the latest version number.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
Check out the [tests](https://git.vdm.dev/Llewellyn/PreUpVer/src/branch/master/tests/) folder for the examples we use to test if this library works as expected.
|
||||||
|
|
||||||
|
# Build Details
|
||||||
|
|
||||||
|
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
|
+ *Name*: [PreUpVer Loader](https://git.vdm.dev/Llewellyn/PreUpVer)
|
||||||
|
+ *First Build*: 17th February, 2023
|
||||||
|
+ *Last Build*: 28th November, 2023
|
||||||
|
+ *Version*: 1.0.0
|
||||||
|
+ *Copyright*: Copyright (C) 2022. All Rights Reserved
|
||||||
|
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
|
> This **plugin** was build with a Joomla [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
||||||
|
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
1
index.html
Normal file
1
index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
3
language/en-GB/en-GB.plg_system_preupverloader.ini
Normal file
3
language/en-GB/en-GB.plg_system_preupverloader.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PLG_SYSTEM_PREUPVERLOADER="System - PreUpVerLoader"
|
||||||
|
PLG_SYSTEM_PREUPVERLOADER_DESCRIPTION="This plugin is used to load PreUpVer on your website. So it adds https://cdn.jsdelivr.net/gh/Llewellynvdm/PreUpVer@1.0.0/dist/js/preupver.min.js to the header of your website. See: https://git.vdm.dev/Llewellyn/PreUpVer for more details."
|
||||||
|
PLG_SYSTEM_PREUPVERLOADER_XML_DESCRIPTION="<h1>System - PreUpVerLoader (v.1.0.0)</h1> <div style='clear: both;'></div><p>This plugin is used to load PreUpVer on your website. So it adds https://cdn.jsdelivr.net/gh/Llewellynvdm/PreUpVer@1.0.0/dist/js/preupver.min.js to the header of your website. See: https://git.vdm.dev/Llewellyn/PreUpVer for more details.</p><p>Created by <a href='https://git.vdm.dev/Llewellyn' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 28th November, 2023</small></p>"
|
3
language/en-GB/en-GB.plg_system_preupverloader.sys.ini
Normal file
3
language/en-GB/en-GB.plg_system_preupverloader.sys.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PLG_SYSTEM_PREUPVERLOADER="System - PreUpVerLoader"
|
||||||
|
PLG_SYSTEM_PREUPVERLOADER_DESCRIPTION="This plugin is used to load PreUpVer on your website. So it adds https://cdn.jsdelivr.net/gh/Llewellynvdm/PreUpVer@1.0.0/dist/js/preupver.min.js to the header of your website. See: https://git.vdm.dev/Llewellyn/PreUpVer for more details."
|
||||||
|
PLG_SYSTEM_PREUPVERLOADER_XML_DESCRIPTION="<h1>System - PreUpVerLoader (v.1.0.0)</h1> <div style='clear: both;'></div><p>This plugin is used to load PreUpVer on your website. So it adds https://cdn.jsdelivr.net/gh/Llewellynvdm/PreUpVer@1.0.0/dist/js/preupver.min.js to the header of your website. See: https://git.vdm.dev/Llewellyn/PreUpVer for more details.</p><p>Created by <a href='https://git.vdm.dev/Llewellyn' target='_blank'>Llewellyn van der Merwe</a><br /><small>Development started 28th November, 2023</small></p>"
|
1
language/en-GB/index.html
Normal file
1
language/en-GB/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
1
language/index.html
Normal file
1
language/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
51
preupverloader.php
Normal file
51
preupverloader.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Octoleo
|
||||||
|
*
|
||||||
|
* @created 17th February, 2023
|
||||||
|
* @author Llewellyn van der Merwe <https://git.vdm.dev/Llewellyn>
|
||||||
|
* @copyright Copyright (C) 2022. All Rights Reserved
|
||||||
|
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*
|
||||||
|
* Joomla Extension
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
use Joomla\CMS\Plugin\CMSPlugin;
|
||||||
|
use Joomla\CMS\Html\HTMLHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* System - PreUpVerLoader plugin.
|
||||||
|
*
|
||||||
|
* @package PreUpVerLoader
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
class PlgSystemPreUpVerLoader extends CMSPlugin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Application object
|
||||||
|
*
|
||||||
|
* @var CMSApplication
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
protected $app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is called before the head is compiled and allows manipulation of the head data.
|
||||||
|
* In this case, it's used to add a JavaScript file to the front end of the Joomla site.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
* @throws Exception on error.
|
||||||
|
*/
|
||||||
|
public function onBeforeCompileHead()
|
||||||
|
{
|
||||||
|
// Check if we are in the site application
|
||||||
|
if ($this->app->isClient('site')) {
|
||||||
|
HTMLHelper::_('script', 'https://cdn.jsdelivr.net/gh/Llewellynvdm/PreUpVer@1.0.0/dist/js/preupver.min.js', ['version' => 'auto']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
29
preupverloader.xml
Normal file
29
preupverloader.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<extension type="plugin" version="3.10" group="system" method="upgrade">
|
||||||
|
<name>PLG_SYSTEM_PREUPVERLOADER</name>
|
||||||
|
<creationDate>28th November, 2023</creationDate>
|
||||||
|
<author>Llewellyn van der Merwe</author>
|
||||||
|
<authorEmail>octoleo@vdm.io</authorEmail>
|
||||||
|
<authorUrl>https://git.vdm.dev/Llewellyn</authorUrl>
|
||||||
|
<copyright>Copyright (C) 2022. All Rights Reserved</copyright>
|
||||||
|
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<description>PLG_SYSTEM_PREUPVERLOADER_XML_DESCRIPTION</description>
|
||||||
|
|
||||||
|
<!-- Scripts to run on installation -->
|
||||||
|
<scriptfile>script.php</scriptfile>
|
||||||
|
|
||||||
|
<!-- Language files -->
|
||||||
|
<languages folder="language">
|
||||||
|
<language tag="en-GB">en-GB/en-GB.plg_system_preupverloader.ini</language>
|
||||||
|
<language tag="en-GB">en-GB/en-GB.plg_system_preupverloader.sys.ini</language>
|
||||||
|
</languages>
|
||||||
|
|
||||||
|
<!-- Plugin files -->
|
||||||
|
<files>
|
||||||
|
<filename plugin="preupverloader">preupverloader.php</filename>
|
||||||
|
<filename>README.md</filename>
|
||||||
|
<filename>index.html</filename>
|
||||||
|
<folder>language</folder>
|
||||||
|
</files>
|
||||||
|
</extension>
|
57
script.php
Normal file
57
script.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Octoleo
|
||||||
|
*
|
||||||
|
* @created 17th February, 2023
|
||||||
|
* @author Llewellyn van der Merwe <https://git.vdm.dev/Llewellyn>
|
||||||
|
* @copyright Copyright (C) 2022. All Rights Reserved
|
||||||
|
* @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*
|
||||||
|
* Joomla Extension
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* System - PreUpVerLoader script file.
|
||||||
|
*
|
||||||
|
* @package PlgSystemPreUpVerLoader
|
||||||
|
*/
|
||||||
|
class plgSystemPreUpVerLoaderInstallerScript
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before any type of action
|
||||||
|
*
|
||||||
|
* @param string $route Which action is happening (install|uninstall|discover_install|update)
|
||||||
|
* @param Joomla\CMS\Installer\InstallerAdapter $adapter The object responsible for running this script
|
||||||
|
*
|
||||||
|
* @return boolean True on success
|
||||||
|
*/
|
||||||
|
public function preflight($route, $adapter)
|
||||||
|
{
|
||||||
|
// get application
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
|
||||||
|
// the default for both install and update
|
||||||
|
$jversion = new JVersion();
|
||||||
|
if (!$jversion->isCompatible('3.8.0'))
|
||||||
|
{
|
||||||
|
$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0 before continuing!', 'error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('install' === $route)
|
||||||
|
{
|
||||||
|
$jversion = new JVersion();
|
||||||
|
if (!$jversion->isCompatible('3.10.0')) {
|
||||||
|
$app->enqueueMessage('Please upgrade to at least Joomla! 3.10 before continuing!', 'error');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user