Example #1
0
export function linkifyHashtags (text, slug) {
  // this takes plain text and returns html.
  // It makes links out of hashtags but ignores urls
  return linkifyString(text, merge(linkifyjsOptions(slug), {
    validate: (value, type) => type === 'hashtag'
  }))
}
Example #2
0
 request.onload = function() {
     var parent = document.getElementById("textBox"); 
     parent.innerHTML = '';
     var data = JSON.parse(request.responseText);
     for (var i = 0; i < data.length; i++) {
         var chatOutput = document.createElement('p');
         chatOutput.textContent = data[i];
         parent.appendChild(chatOutput).innerHTML = moment(data[i].when).format('LT') + ' [' + data[i].user.toUpperCase() + '] ' + linkifyStr(data[i].message);
     } //end for
     console.log(data[i]);
 };
 function tranformElementValue(ev) {
   /*
   If a string, `ev` is prepared for display by linking urls and cleaning
   certain persona identifiers.
   */
   // regexp pattern to replace identifiers: 'Reviewer1234' with 'Reviewer'
   const personaPattern = /(Reviewer|Researcher)\d+/
   let transformedValue = ev || null
   if (_.isString(transformedValue)) {
     transformedValue = transformedValue.replace(personaPattern, '$1')
     transformedValue = new Handlebars.SafeString(linkifyStr(transformedValue, linkifyOptions))
   }
   return transformedValue
 }
Example #4
0
 node.contents().map((i, el) => {
   if (el.type === 'text') return linkifyString(el.data, linkifyjsOptions(slug))
   if (el.name === 'br') return $.html(el)
   if (el.name === 'a') return cleanupLink($, el, slug)
   return recurse($, el, run)
 }).get().join('')
Example #5
0
    getRows: function(filter) {
        var BaseAvatar = sdk.getComponent('avatars.BaseAvatar');

        if (!this.state.publicRooms) return [];

        var rooms = this.state.publicRooms.filter(function(a) {
            // FIXME: if incrementally typing, keep narrowing down the search set
            // incrementally rather than starting over each time.
            return (((a.name && a.name.toLowerCase().search(filter.toLowerCase()) >= 0) || 
                     (a.aliases && a.aliases[0].toLowerCase().search(filter.toLowerCase()) >= 0)) && 
                      a.num_joined_members > 0);
        }).sort(function(a,b) {
            return a.num_joined_members - b.num_joined_members;
        });
        var rows = [];
        var self = this;
        var guestRead, guestJoin, perms;
        for (var i = 0; i < rooms.length; i++) {
            var alias = rooms[i].canonical_alias || (rooms[i].aliases ? rooms[i].aliases[0] : "");
            var name = rooms[i].name || alias || "Unnamed room";
            guestRead = null;
            guestJoin = null;

            if (rooms[i].world_readable) {
                guestRead = (
                    <div className="mx_RoomDirectory_perm">World readable</div>
                );
            }
            if (rooms[i].guest_can_join) {
                guestJoin = (
                    <div className="mx_RoomDirectory_perm">Guests can join</div>
                );
            }

            perms = null;
            if (guestRead || guestJoin) {
                perms = <div className="mx_RoomDirectory_perms">{guestRead} {guestJoin}</div>;
            }

            var topic = rooms[i].topic || '';
            topic = linkifyString(sanitizeHtml(topic));

            rows.unshift(
                <tr key={ rooms[i].room_id } onClick={self.showRoom.bind(null, rooms[i].room_id)}>
                    <td className="mx_RoomDirectory_roomAvatar">
                        <BaseAvatar width={24} height={24} resizeMethod='crop'
                            name={ name } idName={ name }
                            url={ ContentRepo.getHttpUriForMxc(
                                    MatrixClientPeg.get().getHomeserverUrl(),
                                    rooms[i].avatar_url, 24, 24, "crop") } />
                    </td>
                    <td className="mx_RoomDirectory_roomDescription">
                        <div className="mx_RoomDirectory_name">{ name }</div>&nbsp;
                        { perms }
                        <div className="mx_RoomDirectory_topic"
                             onClick={ function(e) { e.stopPropagation() } }
                             dangerouslySetInnerHTML={{ __html: topic }}/>
                        <div className="mx_RoomDirectory_alias">{ alias }</div>
                    </td>
                    <td className="mx_RoomDirectory_roomMemberCount">
                        { rooms[i].num_joined_members }
                    </td>
                </tr>
            );
        }
        return rows;
    },
Example #6
0
 enhancedContent: function () {
   return linkifyStr((this.content || ''))
 },