tanghoong/phpchatblock

PHPChatBlock 是一个用于 PHP 的对话聊天块显示组件类

v0.2.39 2021-11-24 05:30 UTC

README

php项目的一个对话聊天块显示组件。一个用于对话小说社区的 UI 组件。开始日期:2021年8月30日 更新日期:2021年10月23日 作者:Tang Hoong

描述

只需将字符串格式与 sample.txt 完全相同,ChatBlock 将将它们渲染成完美且美观的聊天块。

如何

遵循 sample.txt 的格式

A: I like apple.
B: I like apple too.

然后

require __DIR__ ."/ChatBlock.php";
use TangHoong\ChatBlock\ChatBlock as ChatUI;

$cui = new ChatUI([
    'allowForkScript' => 'https://editor.chatnovel.app/',  // default:null
    'mainCastColor'  => '#198754',
    'castColorMode'  => 'palette', // none, random, palette 
    'chatHeaderSize' => 'large'  // default:normal,small,large
]);
$cui->setColon([':',':']); // both
$cui->setNarrator(['系统','旁白','Narrator','narrator',]);
echo sprintf('<style>%s</style>', $cui->renderCss());
$content = str_replace(["\n"], ["\r\n"], $rawscript); // Depends If code on Window or Linux
if(!is_null($content))
{
  $cui->feed($content);
  echo $cui->render();
}

路线图

  • [] 表情符号
  • [] 表情符号(研究中)
  • [] 文字转语音(研究中)
  • [] 音频剪辑(仅限 mp3)
  • [] 操作按钮
  • [] 无效图像处理
  • [] 更改聊天背景(图像、视频)
  • [] 反转故事(根据标题切换行为主干)
  • [] 导出格式(txt、json、csv、自定义)
  • [] 仅点击显示下一个聊天
  • [] 每个角色的个人资料
  • [] 通过评论分组

资源参考自

Codepen IMessage css
个人资料卡片

变更日志

2021年10月

  • 优化 cast() 位置
  • 优化 feed() 循环,解决分隔符检测错误
  • Script showquote:5-10(允许包含特定行的原始脚本)
  • 添加聊天块颜色(无、随机、调色板)
  • 允许在聊天块中加粗、斜体、代码、下划线和删除线
  • 添加基准 mstime
  • 允许 @name & #tag 内联
  • 允许将脚本分支到实时编辑器
  • 实时编辑器

2021年9月

  • 默认叙述者 ['Narrator','narrator','系统','旁白'];
  • 默认冒号 [':',':'];
  • 将 --- 替换为 ADVANCE
  • 自定义 setBreakPoint('I_LOVE_EMANYAN')
  • 设置模板
  • 允许字符串中使用 @, #
  • 添加原始脚本(将切换使用 site 类)
  • 修复 p, h1-h6 容器
  • 允许调整标题大小
  • 如果行属于同一人,则仅显示一次标题
  • 允许将未格式化的行作为警告消息显示(仅当单冒号作为索引时有效)
  • 允许导出为 json
  • showCasts()

2021年8月

  • 将 css 文件重命名为 chatblock.css
  • 添加 chatblock.js
  • H1-H6 标签
  • p 标签
  • 修复叙述者显示
  • 对话索引(默认为 #)
  • 最小化格式(现在可以运行而不需要字符设置)
  • 换行符
  • 直接作为段落写入的将不予考虑。(无 php 错误)
  • 添加 'rawscript#' 以显示解析前的原始数据。
  • setColon() 已修复
  • setNarrator() 已修复
  • 冒号数组(默认为 #)
  • 叙述者数组(默认为 narrator)
  • 起始模板
  • 开发教程(带示例)
  • 允许简易模式使用第一行作为主要角色