QualKard: scaffold plugin from Skeleton + ported qualcard grading math (v0.2.0)

This commit is contained in:
2026-07-11 15:30:37 -03:00
parent 872a67e772
commit a2f00eb3fe
5 changed files with 22 additions and 20 deletions

View File

@@ -1 +0,0 @@
/* Skeleton plugin styles -- add CSS here. Loaded via template:layout:css. */

View File

@@ -1 +0,0 @@
// Skeleton plugin script -- add JS here. Loaded via template:layout:js.

View File

@@ -1,35 +1,40 @@
<?php
namespace Kanboard\Plugin\Skeleton;
namespace Kanboard\Plugin\QualKard;
use Kanboard\Core\Plugin\Base;
/**
* QualKard -- flashcard spaced repetition on Kanboard cards.
*
* Each card is a flashcard (title = prompt, description = answer). You grade a due card by dragging
* it into a grade column (Hairy/Hard/Medium/Easy); QualKard turns the grade into a due date via the
* qualcard average + interval, and the companion RecoReco plugin does all the card movement.
*
* Requires RecoReco (the move engine). Grading math is ported from Ruben's C program "qualcard".
*/
class Plugin extends Base
{
public function initialize()
{
// 1. Render a visible word at the top of every page (the demo output).
$this->template->hook->attach('template:layout:top', 'skeleton:layout/header');
// Hooks are wired in later versions (setup on Integrations, the grade handler, the badge).
}
// 2. Load the plugin stylesheet (currently empty -- proves the CSS hook fires).
$this->hook->on('template:layout:css', array(
'template' => 'plugins/Skeleton/Asset/css/skeleton.css',
));
// 3. Load the plugin script (currently empty -- proves the JS hook fires).
$this->hook->on('template:layout:js', array(
'template' => 'plugins/Skeleton/Asset/js/skeleton.js',
));
public function getHelpers()
{
return array(
'Plugin\QualKard\Helper' => array('QualKardHelper'),
);
}
public function getPluginName()
{
return 'Skeleton';
return 'QualKard';
}
public function getPluginDescription()
{
return t('Reusable skeleton/template for building Kanboard plugins.');
return t('Flashcard spaced repetition: grade a card by dragging it to a column, and it comes back when due (needs RecoReco).');
}
public function getPluginAuthor()
@@ -39,12 +44,12 @@ class Plugin extends Base
public function getPluginVersion()
{
return '0.1.0';
return '0.2.0';
}
public function getPluginHomepage()
{
return 'https://code.beco.cc/beco/kanboard-plugin-skeleton';
return 'https://code.beco.cc/beco/QualKard';
}
public function getCompatibleVersion()

View File

@@ -1 +0,0 @@
<div class="skeleton-plugin-marker">Skeleton</div>

View File

@@ -1 +1 @@
QualKard v0.1
QualKard v0.2