UserScript:先生と生徒の会話
code:script.js
scrapbox.PopupMenu.addButton({
title: '💬',
onClick: text => {
const prompt = `
あなたはプロの脚本家です。以下の2人で、「${convertCosense(text)}」というテーマについて対話するショートストーリーを作成してください。
ふーこ
高校の生徒
質問する係
フランクに話す
たまに、ネットスラングも使う
けいこ先生
おばさんキャラ
高校の教師
やさしい、さとすような口調で話す
正しい上品な日本語で話す
ふーこの質問に答える係
ときどき、ふーこのスラングを正しい上品な日本語に言い換える
なりきりの口調で、それぞれのキャラクターが反論や共感をしながら、ゆるい感じに会話を進行してください。 `; //
}
});
code:script.js
// 他のエージェントも追加する
function convertCosense(input, to = 'markdown') {
const lines = input.split('\n');
return lines.map(line => {
const bulletMatch = line.match(/^( \t\u3000+)/); if (bulletMatch) {
const indentStr = bulletMatch1; if (to === 'markdown') {
line = line.replace(/^( \t\u3000+)/, ' '.repeat(level) + '- '); } else {
line = line.replace(/^( \t\u3000+)/, ' '.repeat(level) + '・'); }
}
return line.replace(/\\* (.+?)\/g, (_, p1) => to === 'markdown' ? **${p1}** : p1
to === 'markdown' ? *${p1}* : p1
).replace(/\(.+?)\/g, (_, p1) =>
to === 'markdown' ? <u>${p1}</u> : p1
).replace(/\[(https?:\/\/^\s\]+)\s+(.+?)\]/g, (_, url, text) => to === 'markdown' ? [${text}](${url}) : text
).replace(/\[(.+?)\s+(https?:\/\/^\s\]+)\]/g, (_, text, url) => to === 'markdown' ? [${text}](${url}) : text
).replace(/\[(https?:\/\/^\s\]+)\]/g, (_, url) => to === 'markdown' ? <${url}> : url
).replace(/(?<!\[)(https?:\/\/^\s\]+)(?!\])/g, (_, url) => to === 'markdown' ? <${url}> : url
).replace(/\[([^\\]+?)\.icon\]/g, (_, p1) => (${p1})) .replace(/\[([^\\]+?)\]/g, (_, p1) => p1); }).join('\n');
}