<commit_before><div class="post" analytics-id="{{::post.id}}">

  <a class="user" ui-sref="profile.posts({id: post.user.id})">
    <div back-img="post.user.avatar_url" class="avatar"></div>
    <div class="name">{{::post.user.name}}</div>
  </a>

  <div class="post-container">
    <span class="post-options dropdown" dropdown ng-show="canEdit">
      <a class="dropdown-toggle" dropdown-toggle><i class="icon-down" title="icon-down-new"></i></a>
      <ul class="dropdown-menu">
        <li>
          <a class="post-option" ui-sref="community.editPost({community: post.community.slug, postId: post.id})">Edit</a>
        </li>
        <li>
          <a class="post-option" ng-click="delete()">Delete</a>
        </li>
      </ul>
    </span>

    <div class="post-header">
      <div class="title" ng-bind-html="post.name | richText | unsafe"></div>
      <img ng-if="post.hasMedia && singlePost" class="full-media" ng-src="{{::post.media[0].url}}"/>
      <a ui-sref="post({community: post.community.slug, postId: post.id})"
         ng-if="post.hasMedia"
         afkl-lazy-image="{{::post.media[0].url}}"
         afkl-lazy-image-options="{background: true}"
         class="afkl-lazy-wrapper media">
      </a>
      <div ng-if="hasDescription" class="post-description">
        <see-more contents="description" truncated="truncated" expand="showMore()"></see-more>
      </div>
    </div>

    <div class="post-context">
      <span class="post-type" ng-class="::post.type">{{::post.type | uppercase}}</span>
      <span class="after-post-type-dot">&nbsp;•&nbsp;</span>
      <a class="timestamp" ui-sref="post({community: post.community.slug, postId: post.id})">
        {{::post.created_at | fromNow}}<!--
      --></a>
      <span class="community" ng-hide="post.projects[0]">
        in <a ui-sref="community.posts({community: post.community.slug})">{{::post.community.name}}</a>
      </span>
      <span class="project" ng-if="post.projects[0]">
        in <a ui-sref="project.posts({id: post.projects[0].slug})">"{{::truncate(post.projects[0].title, 28)}}"</a>
      </span>
      <span ng-if="showUpdateTime">&nbsp;•&nbsp; active {{::post.updated_at | fromNow}}</span>
    </div>

    <div class="followers" ng-if="post.followers.length > 0 && !onlyAuthorFollowing">
      <!-- Add yourself as a follower -->
      <span ng-if="isFollowing">You</span><span ng-if="isFollowing && followersNotMe.length > 1">, </span>
      <span ng-if="isFollowing && followersNotMe.length == 1"> and </span>

      <!-- List Names -->
      <span ng-repeat="follower in followersNotMe.slice(0, 2)">
        <a class="follower" ui-sref="profile.posts({id: follower.id})" ng-bind="::follower.name"></a><span ng-if="!$last && followersNotMe.length > 2">, </span>
        <span ng-if="!$last && followersNotMe.length == 2"> and </span>
      </span>

      <!-- Make a list of followers -->
      <span ng-if="followersNotMe.length > 2">
        and
        <span class="dropdown" dropdown on-toggle="openFollowers(open)">
          <a class="dropdown-toggle" dropdown-toggle>
            {{followersNotMe.length - 2}} other<span ng-if="followersNotMe.length > 3">s</span>
          </a>
          <ul class="dropdown-menu">
            <li ng-repeat="user in followersNotMe.slice(2)">
              <a class="dropdown-list-user" ui-sref="profile.posts({id: user.id})" ng-if="!user.hide">
                <div back-img="::user.avatar_url" class="avatar"></div>
                <div class="name">{{::user.name}}</div>
              </a>
            </li>
          </ul>
        </span>
      </span>
      <span ng-if="isFollowing || followersNotMe.length > 1">are</span><span ng-if="!isFollowing && followersNotMe.length == 1">is</span> following this.
    </div>

    <div class="fulfillment" ng-if="post.fulfilled_at">
      Completed
      <span ng-if="::post.contributors.length > 0">
        with contributions from
        <a class="contributor" ui-sref="profile.posts({id: user.id})" ng-repeat="user in post.contributors.slice(0, 2)">
          <span>{{::user.name}}</span><span ng-show="::!$last && post.contributors.length>1">,</span>
        </a>
        <span ng-if="::post.contributors.length > 2">
          and
          <span class="dropdown" dropdown>
            <a class="dropdown-toggle" dropdown-toggle>
              {{::post.contributors.length - 2}} other<span ng-if="::post.contributors.length > 3">s</span>
            </a>

            <ul class="dropdown-menu">
              <li ng-repeat="user in post.contributors.slice(2)">
                <a class="dropdown-list-user" ui-sref="profile.posts({id: user.id})">
                  <div back-img="::user.avatar_url" class="avatar"></div>
                  <div class="name">{{::user.name}}</div>
                </a>
              </li>
            </ul>
          </span>
        </span>
      </span>
    </div>

    <div class="post-controls" ng-class="{'has-fulfill': isPostOwner() && !post.fulfilled_at}">
      <a class="vote" ng-click="vote()" tooltip-popup-delay="500" tooltip="Show your support and bring this to the attention of others">
        <i ng-class="post.myVote ? 'icon-heart-new-selected' : 'icon-heart-new'"></i>
        <span class="num">{{post.votes}}</span>
      </a><!--

      --><a class="comment" ng-click="toggleComments()" tooltip-popup-delay="500" tooltip="Comments">
        <i ng-class="isCommentsCollapsed ? 'icon-comment' : 'icon-comment-selected'"></i>
        <span class="num">{{post.numComments}}</span>
      </a><!--

      --><a class="follow" ng-click="toggleFollow()" tooltip-popup-delay="500"
         tooltip="{{isFollowing ? 'Stop receiving notifications' : 'Receive notifications'}}">
        <i ng-class="isFollowing ? 'icon-leave' : 'icon-join'"></i>
        <span class="hidden-xs">{{isFollowing ? 'Unfollow' : 'Follow'}}</span>
      </a><!--

      --><a class="fulfill" ng-click="markFulfilled()" ng-if="isPostOwner() && !post.fulfilled_at && post.type != 'chat'">
        <i class="icon-little-check"></i>
        <span class="hidden-xs">Mark complete</span>
      </a>
    </div>

    <div ng-if="editingFollowers" class="add-followers">
      <div class="add-label">Add Members</div>
      <div class="add-tags">
        <tags-input ng-model="followersToAdd"
                    add-from-autocomplete-only="true"
                    display-property="name"
                    key-property="id"
                    replace-spaces-with-dashes="false"
                    placeholder="Search for people by name"
                    template="/ui/shared/ngTagsInput/tag-user.tpl.html">
          <auto-complete source="findMembers($query)"
                         display-property="name"
                         min-length="2"
                         template="/ui/shared/ngTagsInput/autocomplete-user.tpl.html"
          </auto-complete>
        </tags-input>
      </div>
    </div>

    <div class="add-followers-complete" ng-show="followersToAdd.length > 0">
      <button type="button" class="add-followers-btn" ng-click="toggleEditFollowers()" > Done </button>
    </div>
  </div>

  <embedded-comments ng-if="!isCommentsCollapsed" post="post"></embedded-comments>
</div>
<commit_msg>use !==<commit_after><div class="post" analytics-id="{{::post.id}}">

  <a class="user" ui-sref="profile.posts({id: post.user.id})">
    <div back-img="post.user.avatar_url" class="avatar"></div>
    <div class="name">{{::post.user.name}}</div>
  </a>

  <div class="post-container">
    <span class="post-options dropdown" dropdown ng-show="canEdit">
      <a class="dropdown-toggle" dropdown-toggle><i class="icon-down" title="icon-down-new"></i></a>
      <ul class="dropdown-menu">
        <li>
          <a class="post-option" ui-sref="community.editPost({community: post.community.slug, postId: post.id})">Edit</a>
        </li>
        <li>
          <a class="post-option" ng-click="delete()">Delete</a>
        </li>
      </ul>
    </span>

    <div class="post-header">
      <div class="title" ng-bind-html="post.name | richText | unsafe"></div>
      <img ng-if="post.hasMedia && singlePost" class="full-media" ng-src="{{::post.media[0].url}}"/>
      <a ui-sref="post({community: post.community.slug, postId: post.id})"
         ng-if="post.hasMedia"
         afkl-lazy-image="{{::post.media[0].url}}"
         afkl-lazy-image-options="{background: true}"
         class="afkl-lazy-wrapper media">
      </a>
      <div ng-if="hasDescription" class="post-description">
        <see-more contents="description" truncated="truncated" expand="showMore()"></see-more>
      </div>
    </div>

    <div class="post-context">
      <span class="post-type" ng-class="::post.type">{{::post.type | uppercase}}</span>
      <span class="after-post-type-dot">&nbsp;•&nbsp;</span>
      <a class="timestamp" ui-sref="post({community: post.community.slug, postId: post.id})">
        {{::post.created_at | fromNow}}<!--
      --></a>
      <span class="community" ng-hide="post.projects[0]">
        in <a ui-sref="community.posts({community: post.community.slug})">{{::post.community.name}}</a>
      </span>
      <span class="project" ng-if="post.projects[0]">
        in <a ui-sref="project.posts({id: post.projects[0].slug})">"{{::truncate(post.projects[0].title, 28)}}"</a>
      </span>
      <span ng-if="showUpdateTime">&nbsp;•&nbsp; active {{::post.updated_at | fromNow}}</span>
    </div>

    <div class="followers" ng-if="post.followers.length > 0 && !onlyAuthorFollowing">
      <!-- Add yourself as a follower -->
      <span ng-if="isFollowing">You</span><span ng-if="isFollowing && followersNotMe.length > 1">, </span>
      <span ng-if="isFollowing && followersNotMe.length == 1"> and </span>

      <!-- List Names -->
      <span ng-repeat="follower in followersNotMe.slice(0, 2)">
        <a class="follower" ui-sref="profile.posts({id: follower.id})" ng-bind="::follower.name"></a><span ng-if="!$last && followersNotMe.length > 2">, </span>
        <span ng-if="!$last && followersNotMe.length == 2"> and </span>
      </span>

      <!-- Make a list of followers -->
      <span ng-if="followersNotMe.length > 2">
        and
        <span class="dropdown" dropdown on-toggle="openFollowers(open)">
          <a class="dropdown-toggle" dropdown-toggle>
            {{followersNotMe.length - 2}} other<span ng-if="followersNotMe.length > 3">s</span>
          </a>
          <ul class="dropdown-menu">
            <li ng-repeat="user in followersNotMe.slice(2)">
              <a class="dropdown-list-user" ui-sref="profile.posts({id: user.id})" ng-if="!user.hide">
                <div back-img="::user.avatar_url" class="avatar"></div>
                <div class="name">{{::user.name}}</div>
              </a>
            </li>
          </ul>
        </span>
      </span>
      <span ng-if="isFollowing || followersNotMe.length > 1">are</span><span ng-if="!isFollowing && followersNotMe.length == 1">is</span> following this.
    </div>

    <div class="fulfillment" ng-if="post.fulfilled_at">
      Completed
      <span ng-if="::post.contributors.length > 0">
        with contributions from
        <a class="contributor" ui-sref="profile.posts({id: user.id})" ng-repeat="user in post.contributors.slice(0, 2)">
          <span>{{::user.name}}</span><span ng-show="::!$last && post.contributors.length>1">,</span>
        </a>
        <span ng-if="::post.contributors.length > 2">
          and
          <span class="dropdown" dropdown>
            <a class="dropdown-toggle" dropdown-toggle>
              {{::post.contributors.length - 2}} other<span ng-if="::post.contributors.length > 3">s</span>
            </a>

            <ul class="dropdown-menu">
              <li ng-repeat="user in post.contributors.slice(2)">
                <a class="dropdown-list-user" ui-sref="profile.posts({id: user.id})">
                  <div back-img="::user.avatar_url" class="avatar"></div>
                  <div class="name">{{::user.name}}</div>
                </a>
              </li>
            </ul>
          </span>
        </span>
      </span>
    </div>

    <div class="post-controls" ng-class="{'has-fulfill': isPostOwner() && !post.fulfilled_at}">
      <a class="vote" ng-click="vote()" tooltip-popup-delay="500" tooltip="Show your support and bring this to the attention of others">
        <i ng-class="post.myVote ? 'icon-heart-new-selected' : 'icon-heart-new'"></i>
        <span class="num">{{post.votes}}</span>
      </a><!--

      --><a class="comment" ng-click="toggleComments()" tooltip-popup-delay="500" tooltip="Comments">
        <i ng-class="isCommentsCollapsed ? 'icon-comment' : 'icon-comment-selected'"></i>
        <span class="num">{{post.numComments}}</span>
      </a><!--

      --><a class="follow" ng-click="toggleFollow()" tooltip-popup-delay="500"
         tooltip="{{isFollowing ? 'Stop receiving notifications' : 'Receive notifications'}}">
        <i ng-class="isFollowing ? 'icon-leave' : 'icon-join'"></i>
        <span class="hidden-xs">{{isFollowing ? 'Unfollow' : 'Follow'}}</span>
      </a><!--

      --><a class="fulfill" ng-click="markFulfilled()" ng-if="isPostOwner() && !post.fulfilled_at && post.type !== 'chat'">
        <i class="icon-little-check"></i>
        <span class="hidden-xs">Mark complete</span>
      </a>
    </div>

    <div ng-if="editingFollowers" class="add-followers">
      <div class="add-label">Add Members</div>
      <div class="add-tags">
        <tags-input ng-model="followersToAdd"
                    add-from-autocomplete-only="true"
                    display-property="name"
                    key-property="id"
                    replace-spaces-with-dashes="false"
                    placeholder="Search for people by name"
                    template="/ui/shared/ngTagsInput/tag-user.tpl.html">
          <auto-complete source="findMembers($query)"
                         display-property="name"
                         min-length="2"
                         template="/ui/shared/ngTagsInput/autocomplete-user.tpl.html"
          </auto-complete>
        </tags-input>
      </div>
    </div>

    <div class="add-followers-complete" ng-show="followersToAdd.length > 0">
      <button type="button" class="add-followers-btn" ng-click="toggleEditFollowers()" > Done </button>
    </div>
  </div>

  <embedded-comments ng-if="!isCommentsCollapsed" post="post"></embedded-comments>
</div>

{'fraction_non_alphanumeric': 0.20228611014894354, 'fraction_numerical': 0.005542085209560097, 'mean_word_length': 2.614421632448673, 'pattern_counts': {'":': 16, '<': 343, '<?xml version=': 0, '>': 363, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4098086', 'n_tokens_mistral': 4836, 'n_tokens_neox': 4559, 'n_words': 781}