知乎答案格式化

答案格式化

目前为 2020-10-22 提交的版本。查看 最新版本

// ==UserScript==
// @name         知乎答案格式化
// @namespace    zhihu_helper_tool
// @version      1.0.4
// @description  答案格式化
// @author       浮游
// @match        *://www.zhihu.com/question/*
// @connect      zhihu.com
// @connect      vzuu.com
// @require      http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @run-at       document-start
// @grant        GM_openInTab
// @grant        GM_setClipboard
// @grant        GM_info
// @grant        GM_download
// @charset		 UTF-8
// ==/UserScript==

;(function() {
  'use strict'
  document.addEventListener('DOMContentLoaded', formatStyle)

  const log = console.log.bind(console)
  let innerSplit = (str, symbol) => {
    return str.split(symbol)
  }

  let splitStrings = (arr, symbol) => {
    let output = []
    for (let i = 0; i < arr.length; ++i) {
      let s = arr[i].trim()
      let temp = innerSplit(s, symbol)
      output = output.concat(temp)
    }
    return output
  }

  let smashString = (str, symbols) => {
    let output = innerSplit(str, ',')
    symbols.forEach(s => {
      output = splitStrings(output, s)
    })
    return output.filter(s => s.length)
  }
  let parse = (ss, symbol) => {
    let result = ''
    let line = ''
    for (let i = 0; i < ss.length; ++i) {
      let s = ss[i].trim()
      line += s + ' '
      if (line.length > 20) {
        result += line + symbol
        line = ''
      }
    }
    return result
  }

  let run = (ss, symbol) => {
    let text = document.getElementsByClassName('RichContent-inner')

    for (let i = 0; i < text.length; ++i) {
      let ps = text[i].getElementsByTagName('p')
      for (let i = 0; i < ps.length; ++i) {
        let p = ps[i]
        let arr = smashString(p.innerHTML, [',', ' ', '。'])
        let temp = parse(arr, '<br>')
        p.innerHTML = temp
      }
    }
  }

  function formatStyle() {
    var x = `
  .formatButton {
    margin: 10px;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
    border: 2px solid #67cdef;
    border-radius: 6px;
    padding: 10px;
    background-color: #0084ff;
    color: white;
  }
  
  .VoteButton {
  color: #be1480;
  background: #43ad7f7f;
  }
  
  div.Question-mainColumn {
  margin: auto !important;
  width: 100% !important;
  }
  
  div.Question-sideColumn,.Kanshan-container {
  display: none !important;
  }
  
  .Profile-mainColumn {
  margin: auto !important;
  width: 100% !important;
  }
  
  .AuthorInfo-content, .AppHeader {
  display: none !important;
  }
  
  .ProfileHeader-content, .Profile-sideColumn{
  display: none !important;
  }
  
  
  figure {
  max-width: 70% !important;
  }
  
  .RichContent-inner {
  line-height: 30px !important;
  margin: 40px 60px !important;
  padding: 40px 50px !important;
  border: 6px dashed rgba(133,144,166,0.2) !important;
  border-radius: 6px !important;
  }
  
  .Comments {
  padding: 12px !important;
  margin: 60px !important;
  }
  
  `
    var y = document.createElement('style')
    y.innerHTML = x
    document.getElementsByTagName('head')[0].appendChild(y)
  }

  document.onreadystatechange = function() {
    if (document.readyState == 'complete') {
      let root = document.getElementById('root')
      let button = document.createElement('button')
      let formatted = false
      button.innerHTML =
        '<button class="formatButton"} type="button">格式化</button>'
      button.onclick = () => {
        if (!formatted) {
          run()
          formatted = true
        }
      }
      root.appendChild(button)
      formatStyle()
    }
  }
})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址