code: public function parse(InlineParserContext $inlineContext)
      {
          $cursor = $inlineContext->getCursor();
  
          $previous = $cursor->peek(-1);
          if ($previous !== null && $previous !== ' ') {
              return false;
          }
  
          $saved = $cursor->saveState();
  
          $cursor->advance();
  
          $handle = $cursor->match('/^[a-z0-9\+\-_]+:/');
  
          if (!$handle) {
              $cursor->restoreState($saved);
  
              return false;
          }
  
          $next = $cursor->peek(0);
  
          if ($next !== null && $next !== ' ') {
              $cursor->restoreState($saved);
  
              return false;
          }
  
          $key = substr($handle, 0, -1);
  
          if ($this->map === null) {
              $this->map = $this->repo->get();
          }
  
          if (!array_key_exists($key, $this->map)) {
              $cursor->restoreState($saved);
  
              return false;
          }
  
          $inline = new Image($this->map[$key], $key);
          $inline->data['attributes'] = ['class' => 'emoji', 'data-emoji' => $key];
          $inlineContext->getContainer()->appendChild($inline);
  
          return true;
      }
docs: Parse a line and determine if it contains an emoji.
  
  If it does, then we do the necessary.
  
  @param \League\CommonMark\InlineParserContext $inlineContext
  
  @throws \AltThree\Emoji\Exceptions\FetchException
  
  @return bool