json.shixuns_count @results.total_count

json.shixun_list do
  json.array! @results.with_highlights(multiple: true) do |obj, highlights|
    json.merge! obj.to_searchable_json
    json.challenge_names obj.challenges.pluck(:subject)

    # 去除开头标点符号
    reg = /^[,。?:;‘’!“”—……、]/
    # 附件的替换
    atta_reg = /!\[.*]\(\/api\/attachments\/\d+\)/

    highlights[:description]&.first&.sub!(reg, '')
    highlights[:description]&.map{|des| des.gsub(atta_reg, '')}
    highlights[:content]&.first&.sub!(reg, '')
    highlights[:content]&.map{|des| des.gsub(atta_reg, '')}

    json.title highlights.delete(:name)&.join('...') || obj.searchable_title
    json.description highlights[:description]&.join('...') || Util.extract_content(obj.description)[0..300]&.gsub(atta_reg, '')

    json.pic url_to_avatar(obj)
    json.content highlights
    json.level level_to_s(obj.trainee)
    json.subjects obj.subjects.uniq do |subject|
      json.(subject, :id, :name)
    end
  end
end