npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

copywriting-correct

v1.0.7

Published

中英文文案排版纠正器

Downloads

6,195

Readme

项目地址 https://github.com/rikakomoe/copywriting-correct 演示地址 https://copywriting-correct.js.org

相关项目

本项目是 ricoa/copywriting-correct 的 JavaScript 实现。

描述

统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。

比较以下排版:

  • 排版1

LeanCloud数据存储是围绕AVObject进行的.每个AVObject都包含了与JSON兼容的key-value对应的数据。数据是schema-free的,你不需要在每个AVObject上提前指定存在哪些键,只要直接设定对应的key-value即可。 gitHub是一个通过git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

  • 排版2

LeanCloud 数据存储是围绕 AVObject 进行的。每个 AVObject 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 AVObject 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。 GitHub 是一个通过 Git 进行版本控制的软件源代码托管服务,由 GitHub 公司(曾称 Logical Awesome)的开发者 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werner 使用 Ruby on Rails 编写而成。

很明显,第二种排版中英文有空格,标点符号也使用正确,专有名词使用正确,会让人看起来更舒服,也更专业。 本系统正是基于 中文文案排版指北(简体中文版) 进行纠正,帮助解决中英文混排的排版问题,提高文案可阅读性。

浏览器

<script src="https://unpkg.com/copywriting-correct"></script>
const service = new CopyWritingCorrectService();

const text = service.correct('在LeanCloud上,数据存储是围绕AVObject进行的。');

Node.js 或 Webpack

npm install copywriting-correct --save
// const CopyWritingCorrectService = require('copywriting-correct').default;
import CopyWritingCorrectService from 'copywriting-correct';

const service = new CopyWritingCorrectService();

const text = service.correct('在LeanCloud上,数据存储是围绕AVObject进行的。');

注入自己的纠正器

定义一个对象,实现接口 ICorrector

class MyAwesomeCorrector {
  static rules = ['awesome'];

  static handle(text, rules) {
    if (rules) console.log(rules['awesome']);
    
    return text;
  }
}

使用:

import CopyWritingCorrectService from 'copywriting-correct';

const service = new CopyWritingCorrectService();

service.addCorrectors([MyAwesomeCorrector]); // 注入纠正器
service.resetCorrectors([MyAwesomeCorrector]); //重置纠正器,也即废弃默认的纠正器

const text = service.correct('在LeanCloud上,数据存储是围绕AVObject进行的。');

向纠正器传入配置:

// 输出:{ someOption: true }
const text = service.correct('在LeanCloud上,数据存储是围绕AVObject进行的。', { awesome: { someOption: true } });

内置纠正器

注意:纠正器的顺序会影响输出结果。

以下为默认的纠正器:

  1. CharacterCorrector
  2. SpaceCorrector
  3. UnitOfMeasurementCorrector
  4. ProperNounsCorrector

要引用这些纠正器:

浏览器:

service.resetCorrectors([
  CopyWritingCorrectors.CharacterCorrector
]);

Node.js:

// const CharacterCorrector = require('copywriting-correct').CharacterCorrector;
import { CharacterCorrector } from 'copywriting-correct';
service.resetCorrectors([
  CharacterCorrector
]);

已实现

空格

  1. 中文字符与半角字符(例如英文字符,数字,英文标点符号)间添加空格。
  2. 数字后面跟着英文字符则在数字后添加空格(适用于数字+单位,例如 1 GB)。
  3. 数字与度、百分号之间不加空格(例如 233°,100%)。
  4. 全角标点与其他字符之间不加空格。
  5. 半角标点 ·/ 与其他字符之间不加空格(例如 一二·九运动、公里/小时)。

标点符号

  1. 不重复使用中文标点符号(仅!和?),重复时只保留第一个。

全角和半角

  1. 中文以及中文标点符号()》)后使用全角中文标点符号(包括!?。,():;)。
  2. 字母、数字和某些中文没有的标点(如 %,#)使用半角字符。

名词

  1. 专有名词使用正确的大小写(部分名词达成,见 词典

已知问题

这个库的版本并不是严格按照 Semantic Versioning 释出的。 PATCH 版本号的变更也可能包含纠正服务或纠正器默认行为的改变。 如果你需要把这个库用于生产环境并且不希望它的行为在未来发生改变, 建议你完全限定依赖的版本。

有一些已知问题, 建议你在使用这个库之前最好查看一下。

改进

有什么新的想法和建议,欢迎提交 issue 或者 Pull Requests