From e753e70f543e2a1bd41579fbd200378c23843551 Mon Sep 17 00:00:00 2001 From: sen-fai <81971833+sen-fai@users.noreply.github.com> Date: Sat, 31 Jul 2021 11:43:39 +0800 Subject: [PATCH] Add files via upload --- emoji/CNAME | 1 + emoji/CONTRIBUTING.md | 25 +++ emoji/LICENSE | 21 +++ emoji/README.md | 20 +++ emoji/appicon.png | Bin 0 -> 4346 bytes emoji/fav.png | Bin 0 -> 2328 bytes emoji/index.html | 95 ++++++++++++ emoji/javascripts/search.js | 54 +++++++ emoji/javascripts/stuff.js | 72 +++++++++ emoji/opensearch.xml | 7 + emoji/stylesheets/style.css | 294 ++++++++++++++++++++++++++++++++++++ 11 files changed, 589 insertions(+) create mode 100644 emoji/CNAME create mode 100644 emoji/CONTRIBUTING.md create mode 100644 emoji/LICENSE create mode 100644 emoji/README.md create mode 100644 emoji/appicon.png create mode 100644 emoji/fav.png create mode 100644 emoji/index.html create mode 100644 emoji/javascripts/search.js create mode 100644 emoji/javascripts/stuff.js create mode 100644 emoji/opensearch.xml create mode 100644 emoji/stylesheets/style.css diff --git a/emoji/CNAME b/emoji/CNAME new file mode 100644 index 0000000..9eeab64 --- /dev/null +++ b/emoji/CNAME @@ -0,0 +1 @@ +emoji.muan.co \ No newline at end of file diff --git a/emoji/CONTRIBUTING.md b/emoji/CONTRIBUTING.md new file mode 100644 index 0000000..cabf0e5 --- /dev/null +++ b/emoji/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# CONTRIBUTING + +Thanks for thinking about contributing to this project. :heart_eyes: + +## What do you want to do? + +#### JavaScript changes + +Change the files in `/javascripts`. + +#### CSS changes + +The CSS is currently compiled from SCSS, so you will need to install and develop in SASS, then include the compiled CSS file in your commits. + +## Coding Style + +When in doubt, follow https://github.com/styleguide. + +## Commiting, sending the pull request + +- Make sure you have a good description in the pull request if your changes contain more than keyword changes.
+ :x: `Update html`
+ :o: `Change a typo in the toggle text button` + +- Include at least one emoji in your pull request description. diff --git a/emoji/LICENSE b/emoji/LICENSE new file mode 100644 index 0000000..6368e26 --- /dev/null +++ b/emoji/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mu-An Chiou + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/emoji/README.md b/emoji/README.md new file mode 100644 index 0000000..96e1b0e --- /dev/null +++ b/emoji/README.md @@ -0,0 +1,20 @@ +## Emoji finder [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard) + +:heart: me some emoji. Go to https://emoji.muan.co/ + +![unicorn](http://cl.ly/image/1p110H2M0r0O/unicorn.gif) + +:octopus: :zap: :cat: = :octocat:
+Find the emoji that echoes your heart using keywords + +:raised_hands::gun::moneybag::police_car::boom::hospital::syringe::skull:
+Tell a story + +:oden::spaghetti::cookie::stew::ice_cream::icecream::sushi::curry::custard::dango::pizza::ramen::fried_shrimp::fries::chocolate_bar::hamburger:
+View emoji in groups and food-attack hungry people + +#### Please contribute :pray: + +**As of 2015/07/10, the emoji keyword library has been migrated to its own repository [muan/emojilib](https://github.com/muan/emojilib).** + +There are almost 900 emoji, more keywords let you find emoji more easily. Go to [`emojis.json`](https://github.com/muan/emojilib/blob/master/emojis.json) for the list of emoji & keywords. diff --git a/emoji/appicon.png b/emoji/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..708653af376bb92e747e96bc6265764bf542eb63 GIT binary patch literal 4346 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 o#2dlRFM9!-^j?w(b3V#$;rmX z#_Q|rzrVk}zP`Y~z{JGF$H&Lg($d`A+}YXL*x1lq(=H{}pvj6}8si~=+o}T05xwf{p_V)JM+uN9!nCj~4v9YnGrKOylobB!H@9*!ImzTA*wXUwN ztgNi@@$vHV@}i=m&d$#B^Yg2#tE8l)^z`(qs;a1{sG*^uot>RePfwtrphiYUWMpKO zm6dUEab;y?A|fIH000sa5_EKQpP!$Njg3i3Nkv6PBqSse5fK*`7Y`2)0|Nt+l9Fp{ zYaSjR78VvNDk?NIG%qhNARr(K2?>9He>gZeO-)UHetuh9TO%VQE-o%MHa0&$KRG!$ zCMG5f3=BIvJ1Z+IH8nLXEG#fEFocAJY;0^iJUl)=J~}!&B_$;b3kxSFCmS0Z6B83* zVPR=$X*V}F92^{OZf;{^V<{;qGcz*+0s1pxs8b8~ZSlt-fg0004WQchCfT-mI2;dzwfT#zTyGCNYC1qgJs*!C;`Fw5VuyXRz4` zTerF_vCzcJRyUh$_I|&9{5|lrUjX_t{`>ws=RN0{sTPV-OHudRCt9a+s;fr6Sgll^ zd>H@QS+iU;pGwxV=SOv0l}g=Szvvw29#xuy58=N*Jgc35WPfbsMT!t(%ypTX8`aFx zVYAuI?%y2_4@)mDKH24raoyqYIXa{4ykq7E&0#UC|LLVyYkd0B6PfM^V4V;+9Lmds zTz=@CXPlq$xUl!xtD3_F!2xj{#Noh?4t5TXh7*zrFr5zfUcBr&jw+}QxV{r~3oy7? z$~P~^S^OKlarblWQdMnHfD$+Z>m+9Cy1MStN4c&y_A>x_Q_nQN@L|0KD1qx>?NW+B zt`0fq_MotTIZf}+d%g10S39a`i=qk{aIi->kTC@c<6Lm-JB7 z+P|tsZ??@CV1qwJ0U=Qf6v~7o1YIpQuiI%S^~p`UCRn~N`KB#!&JYPgC5j>iPErMh zi8>v5qwSP{;?4Exf#(~B1XIeH8w83HDWC{WD+aiXo{!G11}OpMxp!<00AN7II>RXb z_Y2T+2}QI>fGMMm{@L?tO2A}3^jBZ{kA2C80uYYnXgknk~FPnYR8bW?YOYT zVH70*_+U^I0M;kH+uNCv)R$tS$(yM;5X*VvQ z0^8AHl}XrY0YZuGWB-6wI@YYdl|ieO<{8(fX(lD$0Jb?%5&#KGC+pc}D~s6bZe89z z5bb!Elj{rmyY^Dj;anx z(GH1eDoLtVX?l7o`a$}A{SzkEPMSPr>ck1trq7s3Q6n|RO5e&VC^}FzE>15{B_+s8 zU!R%5bJpydIdkLE=1reiH*J1K3Z%FX~&oWa@;R zna&K90b5pc6Ne-d7fu_Pz|y>B3+kpMX9C)xyPkBxIE>@J*VJKKXKo#I{y%SdrqhGC z!3|1SPaI%1=W@W7ZXm*)NIs?FKPd1aOG~L2)SI|jCw$((ch}WCGs`ud7Y=~1hJ{sC zzu$dm>6BO#Svv(}9kp4?sTVVkoo+9y_4)&w^oFP56=gVLt8>vUkCgt&puG=djhQTV z-J8k(=W!8Bebezs7kp-fIZkJVk$GtCdmRY!*K4+snFl`&)Z_2=am&KV9`0%^W&&_Zc&H + + + + + + + + + + + + + Emoji searcher + + + + + + + + +
+
    +
+ +
+ Loading + +
+ +
+ 😭 +
No results
+

+ Help your future self by adding + + to the library. +

+

+ Contribute to emojilib +

+
+
+ + + + + + diff --git a/emoji/javascripts/search.js b/emoji/javascripts/search.js new file mode 100644 index 0000000..9f9119e --- /dev/null +++ b/emoji/javascripts/search.js @@ -0,0 +1,54 @@ +var filter = document.querySelector('.speedy-filter') + +function searchHash() { + if (window.location.hash.length) { + filter.value = window.location.hash.substr(1) + search(filter.value) + } else { + search() + } +} +document.addEventListener('emoji:ready', searchHash) + +function search (keyword) { + keyword = typeof keyword === 'undefined' ? '' : keyword + document.querySelector('.keyword').textContent = keyword + keyword = keyword.trim() + + if (window.speedyKeyword !== keyword) { + window.speedyKeyword = keyword + for (const result of document.querySelectorAll('.result')) { + result.hidden = keyword.length > 0 ? result.getAttribute('title').toLowerCase().indexOf(keyword.toLowerCase()) < 0 : false + } + } + setRelatedDOMVisibility(keyword) +} + +function setRelatedDOMVisibility (keyword) { + var foundSomething = !!document.querySelector('.result:not([hidden])') + document.querySelector('.no-results').hidden = foundSomething +} + +function updateHashWithInputValue() { + window.location.hash = filter.value.replace(' ', '_') +} + +filter.addEventListener('input', updateHashWithInputValue) + +document.addEventListener('click', event => { + if (event.target.classList.contains('group')) { + filter.value = event.target.href.substr(1) + search(filter.value) + } else if (event.target.classList.contains('js-clear-search')) { + filter.value = '' + } +}) + +window.onhashchange = function () { + searchHash() + for (const link of document.querySelectorAll('.active[href^="#"]')) { + link.classList.remove('active') + } + var active = document.querySelector("[href='#{window.location.hash}']") + if (active) active.classList.add('active') +} diff --git a/emoji/javascripts/stuff.js b/emoji/javascripts/stuff.js new file mode 100644 index 0000000..08df0c8 --- /dev/null +++ b/emoji/javascripts/stuff.js @@ -0,0 +1,72 @@ +/* global $, localStorage */ +var searchField = document.querySelector('.input-search') +var container = document.querySelector('.emojis-container') +var url = '//unpkg.com/emojilib@^3.0.0' + +document.addEventListener('click', function (evt) { + const emoji = evt.target.closest('.js-emoji') + if (emoji) { + getSelection().removeAllRanges() + var range = document.createRange() + const node = emoji.querySelector('.js-emoji-char') + range.selectNodeContents(node) + getSelection().addRange(range) + document.execCommand('copy') + alertCopied(node.getAttribute('data-emoji')) + } else if (evt.target.classList.contains('js-twemoji')) { + prepareTwemoji() + evt.target.hidden = true + document.querySelector('.js-remove-twemoji').hidden = false + localStorage.setItem('twemoji-display', 'true') + } else if (evt.target.classList.contains('js-remove-twemoji')) { + localStorage.setItem('twemoji-display', 'false') + window.location.reload() + } +}) + +function prepareTwemoji () { + var twemojiScript = document.createElement('script') + twemojiScript.src = '//twemoji.maxcdn.com/2/twemoji.min.js?2.2.3' + twemojiScript.onload = function () { + twemoji.parse(document.body) + document.body.classList.add('twemojified') + } + document.head.append(twemojiScript) +} + +function alertCopied (emoji) { + var alert = document.createElement('div') + alert.classList.add('alert') + alert.textContent = `Copied ${emoji}` + document.body.append(alert) + setTimeout(function() { + alert.remove() + }, 1000) +} + +document.addEventListener('keydown', event => { + if (event.key === '/' && searchField) { + if (searchField.value.length) { + searchField.selectionStart = 0 + searchField.selectionEnd = searchField.value.length + } + searchField.focus() + event.preventDefault() + } +}) + +const showingTwemoji = localStorage.getItem('twemoji-display') === 'true' +document.querySelector('.js-remove-twemoji').hidden = !showingTwemoji +document.querySelector('.js-twemoji').hidden = showingTwemoji + +fetch(url).then(data => data.json()).then(json => { + var html + if (showingTwemoji) prepareTwemoji() + for (emoji in json) { + html += `
  • +
    ${emoji}
  • ` + } + container.innerHTML = html + document.querySelector('.loading').remove() + document.dispatchEvent(new CustomEvent('emoji:ready')) +}) diff --git a/emoji/opensearch.xml b/emoji/opensearch.xml new file mode 100644 index 0000000..76c02de --- /dev/null +++ b/emoji/opensearch.xml @@ -0,0 +1,7 @@ + + Emoji searcher + Find the emoji that echoes your mind. + https://emoji.muan.co/fav.png + + + diff --git a/emoji/stylesheets/style.css b/emoji/stylesheets/style.css new file mode 100644 index 0000000..756ad56 --- /dev/null +++ b/emoji/stylesheets/style.css @@ -0,0 +1,294 @@ +form { margin: 0; } +.pull-right { float: right; position: relative; } +input:invalid { visibility: hidden; } +[data-clipboard-text] { cursor: pointer; } +.text-big { font-size: 20px; } +[hidden] { display: none !important; } + +body, +input, +button { + font-family: andalemono, menlo, monospace; + font-size: 12px; +} + +body { + line-height: 1.6em; + padding: 10px; + margin: 0; + color: #333; + background-color: #fff; +} + +input, +div, +a, +footer { + box-sizing: border-box; +} + +.container, +.list, +.site-header, +.site-footer { + width: 100%; + max-width: 780px; + margin: 0 auto; +} + +.site-header { + white-space: nowrap; + position: relative; + line-height: 1; + margin-bottom: 10px; + padding-bottom: 10px; + border-bottom: 1px solid #ddd; +} + +.site-footer { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid #ddd; + text-align: center; +} + +.list { + overflow: hidden; +} + +.loading { + background-color: #fff; + padding: 100px 0 120px; + text-align: center; + text-transform: uppercase; + color: #999; + letter-spacing: 2px; + font-weight: bold; +} + +.loading + .no-results { display: none; } + +.mojigroup { + margin: 0 0 10px 5px; + padding: 3px 4px 1px; +} + +.mojigroup.active { + background-color: #f9f9f9; + border-color: #58b2ee; +} + +a { + text-decoration: none; + cursor: pointer; + color: #08c; +} + +ul { + text-align: left; + padding: 0; + margin: 0; +} + +.plain { + appearance: none; + -webkit-appearance: none; + border: 0; + box-shadow: none; + background-color: transparent; +} + +.plain:focus { + box-shadow: none; outline: none; +} + +.emoji-group { + display: block; + width: 100%; + font-weight: bold; + font-size: 20px; + padding: 10px 0; +} + +.emojis-container { + font-size: 0; + line-height: 0; +} + +.emoji-code { + cursor: pointer; + padding: 10px; +} + +/* Twemoji */ +.emoji { + width: 18px; + height: 18px; +} + +.emoji-wrapper { + display: inline-block; + width: 25%; + overflow: hidden; + white-space: nowrap; +} + +.keywords { + font-size: 0; +} + +::selection { + background-color: transparent; +} + +.emoji-wrapper:hover { + background: #f5f5f5; +} + +.emoji-wrapper { + width: auto; + padding: 8px; + position: relative; +} + +ul, li { + list-style-type: none; +} + +.button { + background: none; + line-height: 1; + padding: 10px 10px 9px; + margin-left: 5px; + display: inline-block; + vertical-align: top; + border-radius: 35px; + border: 1px solid #ccc; + font-size: 11px; + color: #777; + text-transform: uppercase; + font-weight: bold; +} + +.button:hover { + border-color: #36a; +} + +.button.clear-search { + color: #ee9d9d; +} +.button.clear-search:hover { + border-color: #ee9d9d; +} + +.input-search { + min-height: 32px; + padding: 7px 15px; + outline: none; + color: #333; + border: 1px solid #ddd; + margin: 0; + width: 150px; + border-radius: 15px; + appearance: textfield; +} + +.input-search::-webkit-search-cancel-button, +.input-search::-webkit-search-decoration { + -webkit-appearance: none; +} + +.input-search:focus { + border-color: #51a7e8; + box-shadow: inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(81,167,232,0.5); +} + +.alert { + font-size: 13px; + white-space: nowrap; + overflow: hidden; + position: fixed; + margin: auto; + left: 50%; + transform: translateX(-50%); + bottom: 10px; + background: rgba(0, 0, 0, .8); + color: #fff; + font-weight: bold; + padding: 7px 20px; + text-align: center; + border-radius: 50px; +} + +.native-emoji { + display: inline-block; + vertical-align: middle; + cursor: pointer; +} + +.twemojified .native-emoji { + padding: 0; +} + +.twemojified .mojigroup, +.twemojified .clear-search { + padding: 5px 7px; +} + +.native-emoji { + font-size: 19px; + padding: 10px 2px; + font-family: AppleColorEmoji; +} + +.no-results { + background-color: #f9f9f9; + padding: 50px 30px; + text-align: center; + border-radius: 3px; +} + +.no-results-text { + font-weight: bold; + color: #555; + border-bottom: 1px solid #aaa; + display: inline-block; + padding-bottom: 2px; + text-transform: uppercase; +} + +.contribute-button { + background-color: #36a; + border-color: #36a; + color: #fff; +} + +code { + background-color: #f8f8f8; + border: 1px solid #aaa; + padding: 0 2px; + border-radius: 3px; color: #666; + font-family: Monaco, monospace; + font-size: 11px; +} + +.tips { + color: #777; +} + +@media (max-width: 480px) { + .input-search { + width: 100%; + } + + .clear-search, + .mojigroup { + display: none; + } + + input { font-size: 14px; } + + ul { padding: 0; } + + .emoji-wrapper { padding: 0; } +}