typopo
Version:
Fix frequent microtypography errors in multiple languages. Write neat texts without bothering about typography rules. Typopo works for English, German, Slovak, Czech and Rusyn language.
54 lines (49 loc) • 1.99 kB
JavaScript
import { base } from "../../src/const.js";
import Locale, { supportedLocales } from "../../src/locale/locale.js";
import { fixCopyrights, replaceCopyright } from "../../src/modules/symbols/copyrights.js";
import { createTestSuite } from "../test-utils.js";
import { symbolSet, transformSymbolSet } from "./symbol-utils.test.js";
const replaceCopyrightSet = {
"(c)2017": "©2017",
"(C)2017": "©2017",
"Company (c)2017": "Company ©2017",
"Company (C)2017": "Company ©2017",
"Company(c) 2017": "Company© 2017",
"Company(C) 2017": "Company© 2017",
"Company (c) 2017": "Company © 2017",
"Company (C) 2017": "Company © 2017",
"Section 7(c)": "Section 7(c)", // false positive
"Section 7(C)": "Section 7(C)", // false positive
};
const replaceSoundRecordingCopyrightSet = {
"(p)2017": "℗2017",
"(P)2017": "℗2017",
"Company (p)2017": "Company ℗2017",
"Company (P)2017": "Company ℗2017",
"Company(p) 2017": "Company℗ 2017",
"Company(P) 2017": "Company℗ 2017",
"Company (p) 2017": "Company ℗ 2017",
"Company (P) 2017": "Company ℗ 2017",
"Section 7(p)": "Section 7(p)", // false positive
"Section 7(P)": "Section 7(P)", // false positive
};
supportedLocales.forEach((localeName) => {
createTestSuite(
`Fix copyright (©), ${localeName}:`,
replaceCopyrightSet,
(text) => replaceCopyright(text, "c", base.copyright),
transformSymbolSet(symbolSet, "copyright", localeName),
(text) => fixCopyrights(text, new Locale(localeName)),
localeName
);
});
supportedLocales.forEach((localeName) => {
createTestSuite(
`Fix sound recording copyright (℗), ${localeName}:`,
replaceSoundRecordingCopyrightSet,
(text) => replaceCopyright(text, "p", base.soundRecordingCopyright),
transformSymbolSet(symbolSet, "soundRecordingCopyright", localeName),
(text) => fixCopyrights(text, new Locale(localeName)),
localeName
);
});