Skip to content

Commit

Permalink
Synced to d50adf8
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshyPHP committed Nov 11, 2017
1 parent 6c47a5a commit f0be0d6
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 119 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "s9e/text-formatter",
"version": "0.12.0-dev",
"version": "0.12.0",
"type": "library",
"description": "Multi-purpose text formatting and markup library. Plugins offer support for BBCodes, Markdown, emoticons, HTML, embedding media (YouTube, etc...), enhanced typography and more.",
"homepage": "https://github.com/s9e/TextFormatter/",
Expand Down
4 changes: 2 additions & 2 deletions src/Bundles/Forum/Renderer.php

Large diffs are not rendered by default.

113 changes: 1 addition & 112 deletions src/Plugins/Emoji/Configurator.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,51 +14,7 @@ class Configurator extends ConfiguratorBase
{
protected $attrName = 'seq';
protected $aliases = [];
protected $forceImageSize = \true;
protected $imageSet = 'emojione';
protected $imageSize = 16;
protected $imageType = 'png';
protected $tagName = 'EMOJI';
protected $twemojiAliases = [
'00a9' => 'a9',
'00ae' => 'ae',
'0023-20e3' => '23-20e3',
'002a-20e3' => '2a-20e3',
'0030-20e3' => '30-20e3',
'0031-20e3' => '31-20e3',
'0032-20e3' => '32-20e3',
'0033-20e3' => '33-20e3',
'0034-20e3' => '34-20e3',
'0035-20e3' => '35-20e3',
'0036-20e3' => '36-20e3',
'0037-20e3' => '37-20e3',
'0038-20e3' => '38-20e3',
'0039-20e3' => '39-20e3',
'1f3f3-1f308' => '1f3f3-fe0f-200d-1f308',
'1f3f4-2620' => '1f3f4-200d-2620-fe0f',
'1f441-1f5e8' => '1f441-200d-1f5e8',
'1f468-1f468-1f466-1f466' => '1f468-200d-1f468-200d-1f466-200d-1f466',
'1f468-1f468-1f466' => '1f468-200d-1f468-200d-1f466',
'1f468-1f468-1f467-1f466' => '1f468-200d-1f468-200d-1f467-200d-1f466',
'1f468-1f468-1f467-1f467' => '1f468-200d-1f468-200d-1f467-200d-1f467',
'1f468-1f468-1f467' => '1f468-200d-1f468-200d-1f467',
'1f468-1f469-1f466-1f466' => '1f468-200d-1f469-200d-1f466-200d-1f466',
'1f468-1f469-1f466' => '1f468-200d-1f469-200d-1f466',
'1f468-1f469-1f467-1f466' => '1f468-200d-1f469-200d-1f467-200d-1f466',
'1f468-1f469-1f467-1f467' => '1f468-200d-1f469-200d-1f467-200d-1f467',
'1f468-1f469-1f467' => '1f468-200d-1f469-200d-1f467',
'1f468-2764-1f468' => '1f468-200d-2764-fe0f-200d-1f468',
'1f468-2764-1f48b-1f468' => '1f468-200d-2764-fe0f-200d-1f48b-200d-1f468',
'1f469-1f469-1f466-1f466' => '1f469-200d-1f469-200d-1f466-200d-1f466',
'1f469-1f469-1f466' => '1f469-200d-1f469-200d-1f466',
'1f469-1f469-1f467-1f466' => '1f469-200d-1f469-200d-1f467-200d-1f466',
'1f469-1f469-1f467-1f467' => '1f469-200d-1f469-200d-1f467-200d-1f467',
'1f469-1f469-1f467' => '1f469-200d-1f469-200d-1f467',
'1f469-2764-1f468' => '1f469-200d-2764-fe0f-200d-1f468',
'1f469-2764-1f469' => '1f469-200d-2764-fe0f-200d-1f469',
'1f469-2764-1f48b-1f468' => '1f469-200d-2764-fe0f-200d-1f48b-200d-1f468',
'1f469-2764-1f48b-1f469' => '1f469-200d-2764-fe0f-200d-1f48b-200d-1f469'
];
protected function setUp()
{
if (isset($this->configurator->tags[$this->tagName]))
Expand All @@ -67,55 +23,20 @@ protected function setUp()
$tag->attributes->add($this->attrName)->filterChain->append(
$this->configurator->attributeFilters['#identifier']
);
$this->resetTemplate();
$tag->template = '<img alt="{.}" class="emoji" draggable="false" src="//cdn.jsdelivr.net/emojione/assets/3.1/png/64/{@seq}.png"/>';
}
public function addAlias($alias, $emoji)
{
$this->aliases[$alias] = $emoji;
}
public function forceImageSize()
{
$this->forceImageSize = \true;
$this->resetTemplate();
}
public function removeAlias($alias)
{
unset($this->aliases[$alias]);
}
public function omitImageSize()
{
$this->forceImageSize = \false;
$this->resetTemplate();
}
public function getAliases()
{
return $this->aliases;
}
public function setImageSize($size)
{
$this->imageSize = (int) $size;
$this->resetTemplate();
}
public function useEmojiOne()
{
$this->imageSet = 'emojione';
$this->resetTemplate();
}
public function usePNG()
{
$this->imageType = 'png';
$this->resetTemplate();
}
public function useSVG()
{
$this->imageType = 'svg';
$this->resetTemplate();
}
public function useTwemoji()
{
$this->imageSet = 'twemoji';
$this->resetTemplate();
}
public function asConfig()
{
$config = [
Expand All @@ -142,36 +63,4 @@ public function getJSHints()
'EMOJI_HAS_ALIAS_QUICKMATCH' => ($quickMatch !== \false)
];
}
protected function getEmojiOneSrc()
{
$src = '//cdn.jsdelivr.net/emojione/assets/' . $this->imageType . '/';
$src .= '<xsl:value-of select="@seq"/>';
$src .= '.' . $this->imageType;
return $src;
}
protected function getTemplate()
{
$template = '<img alt="{.}" class="emoji" draggable="false"';
if ($this->forceImageSize)
$template .= ' width="' . $this->imageSize . '" height="' . $this->imageSize . '"';
$template .= '><xsl:attribute name="src">';
$template .= ($this->imageSet === 'emojione') ? $this->getEmojiOneSrc() : $this->getTwemojiSrc();
$template .= '</xsl:attribute></img>';
return $template;
}
protected function getTwemojiSrc()
{
$src = '//twemoji.maxcdn.com/2/';
$src .= ($this->imageType === 'svg') ? 'svg' : '72x72';
$src .= '/<xsl:choose>';
foreach ($this->twemojiAliases as $seq => $filename)
$src .= '<xsl:when test="@seq=\'' . $seq . '\'">' . $filename . '</xsl:when>';
$src .= '<xsl:otherwise><xsl:value-of select="@seq"/></xsl:otherwise></xsl:choose>';
$src .= '.' . $this->imageType;
return $src;
}
protected function resetTemplate()
{
$this->getTag()->template = $this->getTemplate();
}
}
4 changes: 2 additions & 2 deletions src/Plugins/Emoji/Parser.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/Plugins/Emoji/Parser.php

Large diffs are not rendered by default.

0 comments on commit f0be0d6

Please sign in to comment.