Browse Source

Remove third party bbcode lib

staging
parent
commit
329b7543b7
10 changed files with 32 additions and 284 deletions
  1. +0
    -68
      app/BbCode/KnockoutDefinitionSet.php
  2. +0
    -24
      app/BbCode/Tag/Bold.php
  3. +0
    -31
      app/BbCode/Tag/Image.php
  4. +0
    -24
      app/BbCode/Tag/Italic.php
  5. +0
    -35
      app/BbCode/Tag/Link.php
  6. +28
    -18
      app/BbCode/Tag/Quote.php
  7. +0
    -24
      app/BbCode/Tag/Underline.php
  8. +3
    -6
      app/Helper/BBCode.php
  9. +0
    -1
      composer.json
  10. +1
    -53
      composer.lock

+ 0
- 68
app/BbCode/KnockoutDefinitionSet.php View File

@@ -1,68 +0,0 @@
<?php

namespace App\BbCode;

use JBBCode\CodeDefinitionSet;
use JBBCode\CodeDefinitionBuilder;

class KnockoutDefinitionSet implements CodeDefinitionSet
{

/** @var CodeDefinition[] The default code definitions in this set. */
protected $definitions = array();

/**
* Constructs the default code definitions.
*/
public function __construct()
{
/* [b] bold tag */
$builder = new CodeDefinitionBuilder('b', '<strong>{param}</strong>');
$this->definitions[] = $builder->build();

/* [i] italics tag */
$builder = new CodeDefinitionBuilder('i', '<em>{param}</em>');
$this->definitions[] = $builder->build();

/* [u] underline tag */
$builder = new CodeDefinitionBuilder('u', '<u>{param}</u>');
$this->definitions[] = $builder->build();

$urlValidator = new \JBBCode\validators\UrlValidator();

/* [url] link tag */
$builder = new CodeDefinitionBuilder('url', '<a href="{param}">{param}</a>');
$builder->setParseContent(false)->setBodyValidator($urlValidator);
$this->definitions[] = $builder->build();

/* [url=http://example.com] link tag */
$builder = new CodeDefinitionBuilder('url', '<a href="{option}">{param}</a>');
$builder->setUseOption(true)->setParseContent(true)->setOptionValidator($urlValidator);
$this->definitions[] = $builder->build();

/* [img] image tag */
$builder = new CodeDefinitionBuilder('img', '<img src="{param}" />');
$builder->setUseOption(false)->setParseContent(false)->setBodyValidator($urlValidator);
$this->definitions[] = $builder->build();

/* [img=alt text] image tag */
$builder = new CodeDefinitionBuilder('img', '<img src="{param}" alt="{option}" />');
$builder->setUseOption(true)->setParseContent(false)->setBodyValidator($urlValidator);
$this->definitions[] = $builder->build();

/* [color] color tag */
$builder = new CodeDefinitionBuilder('color', '<span style="color: {option}">{param}</span>');
$builder->setUseOption(true)->setOptionValidator(new \JBBCode\validators\CssColorValidator());
$this->definitions[] = $builder->build();
}

/**
* Returns an array of the default code definitions.
*
* @return CodeDefinition[]
*/
public function getCodeDefinitions()
{
return $this->definitions;
}
}

+ 0
- 24
app/BbCode/Tag/Bold.php View File

@@ -1,24 +0,0 @@
<?php

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\SimpleTag;

class Bold extends SimpleTag
{

public function getCloseHtmlTag(): string
{
return '</b>';
}

public function getOpenHtmlTag(): string
{
return '<b>';
}

public function getTag() : string
{
return 'b';
}
}

+ 0
- 31
app/BbCode/Tag/Image.php View File

@@ -1,31 +0,0 @@
<?php

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\TagInterface;
use Knockout\BbCode\Tokenizer\Tag as TokenTag;

class Image implements TagInterface
{

public function format(TokenTag $tokenTag): string
{
$link = $tokenTag->getText();
if (!preg_match('!^https?://[a-z0-9\-@:.,_&+%#?/=]+$!i', $link)) {
$unknownTag = new Unknown();
return $unknownTag->format($tokenTag);
}

return '<img src="' . $link . '" />';
}

public function getName(): string
{
return 'img';
}

public function getOriginalText(TokenTag $tokenTag): string
{
return "[{$this->getName()}]{$tokenTag->getText()}[/{$this->getName()}";
}
}

+ 0
- 24
app/BbCode/Tag/Italic.php View File

@@ -1,24 +0,0 @@
<?php

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\SimpleTag;

class Italic extends SimpleTag
{

public function getCloseHtmlTag(): string
{
return '</em>';
}

public function getOpenHtmlTag(): string
{
return '<em>';
}

public function getTag() : string
{
return 'i';
}
}

+ 0
- 35
app/BbCode/Tag/Link.php View File

@@ -1,35 +0,0 @@
<?php

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\TagInterface;
use Knockout\BbCode\Tokenizer\Tag as TokenTag;

class Link implements TagInterface
{

const REG_EXP_VALID_URL = '~https?://[a-zA-Z0-9_\-.:/#?]+~';

public function format(TokenTag $tokenTag): string
{
$args = $tokenTag->parseArgument();
$url = $args['href'] ?? null;

if (!preg_match(self::REG_EXP_VALID_URL, $url)) {
$simpleTag = new Unknown();
return $simpleTag->format($tokenTag);
}

return "<a href=\"{$url}\" target=\"_blank\">{$tokenTag->getText()}</a>";
}

public function getName(): string
{
return 'url';
}

public function getOriginalText(TokenTag $tokenTag) : string
{
return "[url={$tokenTag->getArgument()}]{$tokenTag->getText()}[/url]";
}
}

+ 28
- 18
app/BbCode/Tag/Quote.php View File

@@ -2,31 +2,41 @@

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\TagInterface;
use Knockout\BbCode\Tokenizer\Tag as TokenTag;
use JBBCode\CodeDefinition;
use JBBCode\ElementNode;

class Quote implements TagInterface
class Quote extends CodeDefinition
{

public function format(TokenTag $tokenTag): string
public function __construct()
{
$attrs = $tokenTag->parseArgument();
return view('partial/bbcode/quote', [
'thread' => $attrs->threadId ?? 1,
'page' => $attrs->threadPage ?? 1,
'postId' => $attrs->postId ?? 1,
'username' => $attrs->username ?? 'Unknown',
'content' => $tokenTag->getText()
]);
parent::__construct('quote', null, true);
}

public function getName(): string
public function asHtml(ElementNode $e)
{
return 'quote';
return 'lol';
}

public function getOriginalText(TokenTag $tokenTag): string
{
return "[{$this->getName()}]{$tokenTag->getText()}[/{$this->getName()}";
}
// public function format(TokenTag $tokenTag): string
// {
// $attrs = $tokenTag->parseArgument();
// return view('partial/bbcode/quote', [
// 'thread' => $attrs->threadId ?? 1,
// 'page' => $attrs->threadPage ?? 1,
// 'postId' => $attrs->postId ?? 1,
// 'username' => $attrs->username ?? 'Unknown',
// 'content' => $tokenTag->getText()
// ]);
// }

// public function getName(): string
// {
// return 'quote';
// }

// public function getOriginalText(TokenTag $tokenTag): string
// {
// return "[{$this->getName()}]{$tokenTag->getText()}[/{$this->getName()}";
// }
}

+ 0
- 24
app/BbCode/Tag/Underline.php View File

@@ -1,24 +0,0 @@
<?php

namespace App\BbCode\Tag;

use Knockout\BbCode\Tag\SimpleTag;

class Underline extends SimpleTag
{

public function getCloseHtmlTag(): string
{
return '</u>';
}

public function getOpenHtmlTag(): string
{
return '<u>';
}

public function getTag() : string
{
return 'u';
}
}

+ 3
- 6
app/Helper/BBCode.php View File

@@ -4,22 +4,19 @@ namespace App\Helper;

use App\BbCode\KnockoutDefinitionSet;

use JBBCode\Parser;

class BBCode {

private $parser;
private $content;

public function __construct($content)
{
$this->parser = new Parser();
$this->parser->addCodeDefinitionSet(new KnockoutDefinitionSet());
$this->parser->parse($content);
$this->content = $content;
}

public function render()
{
return $this->parser->getAsHtml();
return nl2br(htmlentities($this->content));
}

}

+ 0
- 1
composer.json View File

@@ -12,7 +12,6 @@
],
"require": {
"php": ">=7.4",
"jbbcode/jbbcode": "^1.4",
"laravel/lumen-framework": "^8.0",
"nesbot/carbon": "^2.43"
},


+ 1
- 53
composer.lock View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "65ffb6735fb8aab2c27031564c2b60dd",
"content-hash": "e02624169974a56b334e306a119981be",
"packages": [
{
"name": "brick/math",
@@ -1861,58 +1861,6 @@
},
"time": "2020-11-02T14:01:41+00:00"
},
{
"name": "jbbcode/jbbcode",
"version": "v1.4.2",
"source": {
"type": "git",
"url": "https://github.com/jbowens/jBBCode.git",
"reference": "d9a132e7886a11cf997e3ec025a41bdf97899704"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jbowens/jBBCode/zipball/d9a132e7886a11cf997e3ec025a41bdf97899704",
"reference": "d9a132e7886a11cf997e3ec025a41bdf97899704",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.1",
"phpunit/phpunit": "4.5.*",
"satooshi/php-coveralls": "0.6.*"
},
"type": "library",
"autoload": {
"psr-0": {
"JBBCode": "."
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jackson Owens",
"email": "jackson_owens@alumni.brown.edu",
"homepage": "http://jbowens.org/",
"role": "Developer"
}
],
"description": "A lightweight but extensible BBCode parser written in PHP 5.3.",
"homepage": "http://jbbcode.com/",
"keywords": [
"BB",
"bbcode"
],
"support": {
"issues": "https://github.com/jbowens/jBBCode/issues",
"source": "https://github.com/jbowens/jBBCode/tree/v1.4.2"
},
"time": "2020-06-19T16:09:00+00:00"
},
{
"name": "laravel/lumen-framework",
"version": "v8.2.1",


Loading…
Cancel
Save