Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
A simple typography engine for CJK languages, especially designed for game rich-text.
活字是 AVG.js 的模块之一,为剧情游戏文字排版设计,兼顾中西混排和纯西文排版。
排版规则
https://icemic.github.io/huozi.js/
npm install huozi
import huozi from 'huozi';
const canvas = document.getElementById('app');
const context = canvas.getContext('2d');
const textSequence = '需要排版的文字内容'.split('').map(value => {
return {
fontSize: 26,
character: value
}
});
const layoutSequence = huozi(textSequence);
context.clearRect(0, 0, 800, 600);
context.strokeStyle = '#999';
for (const char of layoutSequence) {
context.font = `${char.fontSize}px sans-serif`;
context.textBaseline = 'hanging';
context.fillText(char.character, char.x, char.y);
context.strokeRect(char.x, char.y, char.width, char.height);
}
输入格式:
[{
character: String, // 单个字符
fontSize: Number // 该字符的字号
}]
输出格式:
[{
character: String,
fontSize: Number,
x: Number, // 绝对坐标
y: Number, // 绝对坐标
width: Number, // 字符宽度
height: Number // 字符高度
}]
参数详解:
function huozi(textSequence, layoutOptions = {
// 指定字体,支持任何合法的 CSS font-family 值(包括使用 @font-face 导入的),默认为黑体/无衬线字体
fontFamily: 'sans-serif',
// 排版网格宽度(即一个em多宽,与 textSequence 中的 fontSize 不同)
gridSize: 26,
// 每行字数
column: 25,
// 行数
row: Infinity,
// 字距(仅 CJK 文字)
xInterval: 0,
// 行距
yInterval: 12,
// 字符间距(仅西文文字)
letterSpacing: 0,
// 开启行内标点压缩
inlineCompression: true,
// 强制纵横对齐
forceGridAlignment: true,
// 西文优先
westernCharacterFirst: false,
// 若纵横对齐导致无空格间隔,则强制在两边加入至少 1/4em 宽空格
forceSpaceBetweenCJKAndWestern: false,
// 是否进行左全角引号的位置修正
fixLeftQuote: true
})
欢迎任何 Issue 和 Pull Request!
本程序根据使用目的采用双授权的方式,你可以根据如下条款选择适合你的许可协议:
FAQs
A simple typography engine for CJK languages, especially designed for game rich-text.
The npm package huozi receives a total of 1 weekly downloads. As such, huozi popularity was classified as not popular.
We found that huozi demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.