text-embedder
Advanced tools
Comparing version 1.0.1 to 1.0.2
{ | ||
"name": "text-embedder", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Embed content to text", | ||
@@ -19,4 +19,5 @@ "main": "src/index.js", | ||
"dependencies": { | ||
"debug": "^4.1.1" | ||
"debug": "^4.1.1", | ||
"line-embedder": "^1.0.0" | ||
} | ||
} |
@@ -1,28 +0,43 @@ | ||
const log = require('./util/log'); | ||
const lineEmbedder = require('line-embedder'); | ||
const log = require('./log'); | ||
const sort = require('./sort'); | ||
const embed = require('./embed'); | ||
/** | ||
* 向文本中嵌入内容 | ||
* | ||
* @param text 原始文本 | ||
* @param embeds [{insert,replace,content}] | ||
* + insert 在当前行前面插入 content | ||
* + replace 把多行替换为 content | ||
* + content 嵌入的内容 | ||
* | ||
* insert 与 replace 优先使用 insert | ||
* | ||
* @return 修改后的文本 | ||
*/ | ||
const main = ({ text, embeds }, newline = '\n') => { | ||
log('开始执行'); | ||
/* | ||
向文本中嵌入内容 | ||
const lines = text.split(newline); | ||
lineEmbedder({ | ||
lines, | ||
embeds: embeds.map(({ insert, replace, content }) => ({ | ||
insert, | ||
replace, | ||
line: content, | ||
})), | ||
beforeEmbed: ({ mode, args }) => { | ||
if (mode === 'insert') { | ||
const insert = args; | ||
log('嵌入内容,在第 %s 行之前', insert); | ||
return; | ||
} | ||
config: {text, embeds: [{insert, replace, content}]} | ||
// replace mode | ||
const [from, to] = args; | ||
log('替换内容,从第 %s 行到第 %s 行', from, to); | ||
}, | ||
}); | ||
file: 原始文本 | ||
insert: 在当前行前面插入 content | ||
replace: 把多行替换为 content | ||
content: 嵌入的内容 | ||
const modifiedText = lines.join(newline); | ||
insert 与 replace 优先使用 insert | ||
*/ | ||
const embedder = config => { | ||
log('开始执行'); | ||
const { text, embeds } = config; | ||
log('排序并校验各个修改位置'); | ||
const sortedEmbeds = sort(embeds); | ||
log('做出修改'); | ||
const modifiedText = embed(text, sortedEmbeds); | ||
log('执行完毕'); | ||
@@ -32,2 +47,2 @@ return modifiedText; | ||
module.exports = embedder; | ||
module.exports = main; |
2341
2
4
46
+ Addedline-embedder@^1.0.0
+ Addedline-embedder@1.0.0(transitive)