mirror of
https://github.com/jawira/emoji-catalog.git
synced 2023-08-10 21:12:49 +03:00
commit
71c5397ec3
9
.idea/phing.xml
Normal file
9
.idea/phing.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PhingConfiguration">
|
||||
<buildFilePaths>
|
||||
<buildFile path="file://$PROJECT_DIR$/build.xml" />
|
||||
</buildFilePaths>
|
||||
<phingPath>/usr/bin/phing</phingPath>
|
||||
</component>
|
||||
</project>
|
@ -11,6 +11,10 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- [#1] Added catalog with the list of all emojis
|
||||
|
||||
## [v1.0.0] - 2019-10-01
|
||||
|
||||
### Added
|
||||
@ -25,10 +29,12 @@
|
||||
- [#2] Constant `Emoji::FLAG_WALES` was changed to `Emoji::FLAG_GBWLS`.
|
||||
|
||||
## [v0.0.0] - 2019-08-30
|
||||
|
||||
[!6F(t#}P9Uyq&98
|
||||
### Added
|
||||
|
||||
- First working version.
|
||||
|
||||
[#2]: https://github.com/jawira/emoji-catalo/pull/2
|
||||
[v1.0.0]: https://github.com/jawira/emoji-catalo/compare/v0.0.0...v1.0.0
|
||||
|
||||
[#1]: https://github.com/jawira/emoji-catalo/pull/1
|
18
README.md
18
README.md
@ -9,6 +9,8 @@ Features:
|
||||
- 🤩 A lot of emojis
|
||||
- 🔓 Zero dependencies
|
||||
|
||||
You can see [full list of emojis].
|
||||
|
||||
[![Latest Stable Version](https://poser.pugx.org/jawira/emoji-catalog/v/stable)](https://packagist.org/packages/jawira/emoji-catalog)
|
||||
![Emoji](https://img.shields.io/badge/Emoji-v12.0-%235354FE)
|
||||
[![Total Downloads](https://poser.pugx.org/jawira/emoji-catalog/downloads)](https://packagist.org/packages/jawira/emoji-catalog)
|
||||
@ -55,12 +57,12 @@ License
|
||||
This library is licensed under the [MIT license](LICENSE.md).
|
||||
|
||||
[GitHub]: https://github.com/jawira/emoji-catalog
|
||||
|
||||
[full list of emojis]: https://github.com/jawira/emoji-catalog/blob/master/docs/catalog.md
|
||||
|
||||
***
|
||||
|
||||
My other packages
|
||||
-----------------
|
||||
Packages from jawira
|
||||
--------------------
|
||||
|
||||
<dl>
|
||||
|
||||
@ -70,19 +72,11 @@ My other packages
|
||||
Upper case, Lower case, Sentence case, Title case and Dot notation.
|
||||
</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/phing-visualizer">jawira/phing-visualizer</a> (library)</dt>
|
||||
<dd>Graphical representation of Phing's buildfile.</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/phing-open-task">jawira/phing-open-task</a> (library)</dt>
|
||||
<dd>Phing task to open files, directories, and URLs with your favorite software.</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/plantuml">jawira/plantuml</a> (library)</dt>
|
||||
<dd>Provides PlantUML integration: plantuml executable and plantuml.jar</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/plantuml-encoding">jawira/plantuml-encoding</a> (library)</dt>
|
||||
<dd>PlantUML encoding functions.</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/process-maker">jawira/process-maker</a> (project)</dt>
|
||||
<dd>Easily install and try ProcessMaker using Docker Compose.</dd>
|
||||
|
||||
<dt><a href="https://packagist.org/packages/jawira/">more...</a></dt>
|
||||
</dl>
|
||||
|
BIN
build.png
BIN
build.png
Binary file not shown.
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 51 KiB |
51
build.xml
51
build.xml
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<project name="Emoji catalog" default="diagnostics">
|
||||
<project name="Emoji catalog" default="diagnostics" phingVersion="3">
|
||||
|
||||
<defaultexcludes default="true"/><!--Initializing default excludes-->
|
||||
<defaultexcludes add="**/.idea"/>
|
||||
@ -13,7 +13,10 @@
|
||||
|
||||
<target name="setup" description="Prepare project for dev" depends="diagnostics, composer:install, phing:visualizer"/>
|
||||
<target name="qa" description="Quality assurance" depends="composer:validate, php:lint"/>
|
||||
<target name="update" description="Update Emoji.php" depends="emoji:download, emoji:parse, emoji:build"/>
|
||||
<target name="update" description="Update class and catalog" depends="emoji:update, catalog:update"/>
|
||||
<target name="emoji:update" description="Update Emoji.php" depends="emoji-list:download, emoji:parse, emoji:build"/>
|
||||
<target name="catalog:update" description="Update catalog.md"
|
||||
depends="emoji-list:download, catalog:parse, catalog:build"/>
|
||||
|
||||
<target name="composer:validate" description="Validate composer.json">
|
||||
<composer command="validate">
|
||||
@ -56,7 +59,7 @@
|
||||
</composer>
|
||||
</target>
|
||||
|
||||
<target name="emoji:download">
|
||||
<target name="emoji-list:download">
|
||||
<mkdir dir="resources/unicode/"/>
|
||||
<httpget dir="resources/unicode/" url="https://unicode.org/emoji/charts/full-emoji-list.html"/>
|
||||
<httpget dir="resources/unicode/" url="https://unicode.org/emoji/charts/full-emoji-modifiers.html"/>
|
||||
@ -64,17 +67,17 @@
|
||||
|
||||
<target name="emoji:parse">
|
||||
<mkdir dir="resources/output"/>
|
||||
<delete file="resources/output/full-emoji-list.txt"/>
|
||||
<delete file="resources/output/emoji-1.txt"/>
|
||||
<xslt file="resources/unicode/full-emoji-list.html"
|
||||
tofile="resources/output/full-emoji-list.txt"
|
||||
tofile="resources/output/emoji-1.txt"
|
||||
style="resources/xslt/emoji.xsl"
|
||||
haltonerror="false"
|
||||
overwrite="true"
|
||||
html="true"/>
|
||||
|
||||
<delete file="resources/output/full-emoji-modifiers.txt"/>
|
||||
<delete file="resources/output/emoji-2.txt"/>
|
||||
<xslt file="resources/unicode/full-emoji-modifiers.html"
|
||||
tofile="resources/output/full-emoji-modifiers.txt"
|
||||
tofile="resources/output/emoji-2.txt"
|
||||
style="resources/xslt/emoji.xsl"
|
||||
haltonerror="false"
|
||||
overwrite="true"
|
||||
@ -82,10 +85,36 @@
|
||||
</target>
|
||||
|
||||
<target name="emoji:build">
|
||||
<append file="resources/templates/header.php.dist" destFile="src/Emoji.php" append="false" overwrite="true"/>
|
||||
<append file="resources/output/full-emoji-list.txt" destFile="src/Emoji.php"/>
|
||||
<append file="resources/output/full-emoji-modifiers.txt" destFile="src/Emoji.php"/>
|
||||
<append file="resources/templates/footer.php.dist" destFile="src/Emoji.php"/>
|
||||
<append file="resources/templates/emoji-header.php.dist" destFile="src/Emoji.php" append="false" overwrite="true"/>
|
||||
<append file="resources/output/emoji-1.txt" destFile="src/Emoji.php"/>
|
||||
<append file="resources/output/emoji-2.txt" destFile="src/Emoji.php"/>
|
||||
<append file="resources/templates/emoji-footer.php.dist" destFile="src/Emoji.php"/>
|
||||
</target>
|
||||
|
||||
<target name="catalog:parse">
|
||||
<mkdir dir="resources/output"/>
|
||||
<delete file="resources/output/catalog-1.txt"/>
|
||||
<xslt file="resources/unicode/full-emoji-list.html"
|
||||
tofile="resources/output/catalog-1.txt"
|
||||
style="resources/xslt/catalog.xsl"
|
||||
haltonerror="false"
|
||||
overwrite="true"
|
||||
html="true"/>
|
||||
|
||||
<delete file="resources/output/catalog-2.txt"/>
|
||||
<xslt file="resources/unicode/full-emoji-modifiers.html"
|
||||
tofile="resources/output/catalog-2.txt"
|
||||
style="resources/xslt/catalog.xsl"
|
||||
haltonerror="false"
|
||||
overwrite="true"
|
||||
html="true"/>
|
||||
</target>
|
||||
|
||||
<target name="catalog:build">
|
||||
<append file="resources/templates/catalog-header.md.dist" destFile="docs/catalog.md" append="false"
|
||||
overwrite="true"/>
|
||||
<append file="resources/output/catalog-1.txt" destFile="docs/catalog.md"/>
|
||||
<append file="resources/output/catalog-2.txt" destFile="docs/catalog.md"/>
|
||||
</target>
|
||||
|
||||
<target name="php:lint" description="Check PHP syntax">
|
||||
|
3026
docs/catalog.md
Normal file
3026
docs/catalog.md
Normal file
File diff suppressed because it is too large
Load Diff
7
resources/templates/catalog-header.md.dist
Normal file
7
resources/templates/catalog-header.md.dist
Normal file
@ -0,0 +1,7 @@
|
||||
Catalog
|
||||
=======
|
||||
|
||||
This list contains all the _emojis_ from `\Jawira\EmojiCatalog\Emoji`.
|
||||
|
||||
| Name | Emoji | Code point(s) | `\Jawira\EmojiCatalog\Emoji::`
|
||||
| --------- | --------- | ------------- | -------------------------------
|
24
resources/xslt/catalog.xsl
Normal file
24
resources/xslt/catalog.xsl
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output method="text" version="2.0" encoding="UTF-8" indent="no"/>
|
||||
<xsl:include href="./resources/xslt/common.xsl"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:for-each select="//table//tr[./td//img]">
|
||||
<xsl:text>| </xsl:text>
|
||||
<xsl:call-template name="get-name"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:text>| </xsl:text>
|
||||
<xsl:call-template name="get-emoji"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:text>| </xsl:text>
|
||||
<xsl:call-template name="get-code"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:text>| </xsl:text>
|
||||
<xsl:call-template name="get-constant-name"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
95
resources/xslt/common.xsl
Normal file
95
resources/xslt/common.xsl
Normal file
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:template name="get-code">
|
||||
<xsl:value-of select="./td[2]//a/text()"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-name">
|
||||
<xsl:variable name="short-name" select="./td[last()]/text()"/>
|
||||
<xsl:variable name="removable" select="'⊛⊖'"/>
|
||||
<xsl:variable name="cleaned" select="translate($short-name, $removable, '')"/>
|
||||
<xsl:value-of select="normalize-space($cleaned)"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-emoji">
|
||||
<xsl:value-of select="./td[3]/text()"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-constant-name">
|
||||
<xsl:variable name="short-name" select="./td[last()]/text()"/>
|
||||
<xsl:variable name="removable" select="':;.,⊛’!“”()⊖'"/>
|
||||
<xsl:variable name="cleaned" select="translate($short-name, $removable, '')"/>
|
||||
<xsl:variable name="lowercase" select="'Åãabcçdeéfghíijklmnoôpqrstuvwxyz-&'"/>
|
||||
<xsl:variable name="uppercase" select="'AAABCCDEEFGHIIJKLMNOOPQRSTUVWXYZ N'"/>
|
||||
<xsl:variable name="no-accents" select="translate($cleaned, $lowercase, $uppercase)"/>
|
||||
<xsl:variable name="normalized" select="normalize-space($no-accents)"/>
|
||||
<xsl:variable name="no-spaces" select="translate($normalized, ' ', '_')"/>
|
||||
|
||||
<xsl:variable name="no-1st">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-spaces"/>
|
||||
<xsl:with-param name="replace" select="'1ST'"/>
|
||||
<xsl:with-param name="by" select="'FIRST'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-2nd">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-1st"/>
|
||||
<xsl:with-param name="replace" select="'2ND'"/>
|
||||
<xsl:with-param name="by" select="'SECOND'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-3rd">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-2nd"/>
|
||||
<xsl:with-param name="replace" select="'3RD'"/>
|
||||
<xsl:with-param name="by" select="'THIRD'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-number">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-3rd"/>
|
||||
<xsl:with-param name="replace" select="'#'"/>
|
||||
<xsl:with-param name="by" select="'NUMBER'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-asterisk">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-number"/>
|
||||
<xsl:with-param name="replace" select="'*'"/>
|
||||
<xsl:with-param name="by" select="'ASTERISK'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:value-of select="$no-asterisk"/>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx -->
|
||||
<xsl:template name="string-replace-all">
|
||||
<xsl:param name="text"/>
|
||||
<xsl:param name="replace"/>
|
||||
<xsl:param name="by"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($text, $replace)">
|
||||
<xsl:value-of select="substring-before($text,$replace)"/>
|
||||
<xsl:value-of select="$by"/>
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
|
||||
<xsl:with-param name="replace" select="$replace"/>
|
||||
<xsl:with-param name="by" select="$by"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$text"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output method="text" version="2.0" encoding="UTF-8" indent="no"/>
|
||||
<xsl:include href="./resources/xslt/common.xsl"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:for-each select="//table//tr[./td//img]">
|
||||
@ -17,100 +18,9 @@
|
||||
<xsl:text> const </xsl:text>
|
||||
<xsl:call-template name="get-constant-name"/>
|
||||
<xsl:text> = "</xsl:text>
|
||||
<xsl:call-template name="get-alt"/>
|
||||
<xsl:call-template name="get-emoji"/>
|
||||
<xsl:text>"; </xsl:text>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-code">
|
||||
<xsl:value-of select="./td[2]//a/text()"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-name">
|
||||
<xsl:variable name="short-name" select="./td[last()]/text()"/>
|
||||
<xsl:variable name="removable" select="'⊛⊖'"/>
|
||||
<xsl:variable name="cleaned" select="translate($short-name, $removable, '')"/>
|
||||
<xsl:value-of select="normalize-space($cleaned)"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-alt">
|
||||
<xsl:value-of select="./td[3]/text()"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="get-constant-name">
|
||||
<xsl:variable name="short-name" select="./td[last()]/text()"/>
|
||||
<xsl:variable name="removable" select="':;.,⊛’!“”()⊖'"/>
|
||||
<xsl:variable name="cleaned" select="translate($short-name, $removable, '')"/>
|
||||
<xsl:variable name="lowercase" select="'Åãabcçdeéfghíijklmnoôpqrstuvwxyz-&'"/>
|
||||
<xsl:variable name="uppercase" select="'AAABCCDEEFGHIIJKLMNOOPQRSTUVWXYZ N'"/>
|
||||
<xsl:variable name="no-accents" select="translate($cleaned, $lowercase, $uppercase)"/>
|
||||
<xsl:variable name="normalized" select="normalize-space($no-accents)"/>
|
||||
<xsl:variable name="no-spaces" select="translate($normalized, ' ', '_')"/>
|
||||
|
||||
<xsl:variable name="no-1st">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-spaces"/>
|
||||
<xsl:with-param name="replace" select="'1ST'"/>
|
||||
<xsl:with-param name="by" select="'FIRST'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-2nd">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-1st"/>
|
||||
<xsl:with-param name="replace" select="'2ND'"/>
|
||||
<xsl:with-param name="by" select="'SECOND'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-3rd">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-2nd"/>
|
||||
<xsl:with-param name="replace" select="'3RD'"/>
|
||||
<xsl:with-param name="by" select="'THIRD'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-number">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-3rd"/>
|
||||
<xsl:with-param name="replace" select="'#'"/>
|
||||
<xsl:with-param name="by" select="'NUMBER'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="no-asterisk">
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="$no-number"/>
|
||||
<xsl:with-param name="replace" select="'*'"/>
|
||||
<xsl:with-param name="by" select="'ASTERISK'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:value-of select="$no-asterisk"/>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx -->
|
||||
<xsl:template name="string-replace-all">
|
||||
<xsl:param name="text"/>
|
||||
<xsl:param name="replace"/>
|
||||
<xsl:param name="by"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($text, $replace)">
|
||||
<xsl:value-of select="substring-before($text,$replace)"/>
|
||||
<xsl:value-of select="$by"/>
|
||||
<xsl:call-template name="string-replace-all">
|
||||
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
|
||||
<xsl:with-param name="replace" select="$replace"/>
|
||||
<xsl:with-param name="by" select="$by"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$text"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
Loading…
Reference in New Issue
Block a user