kwaroran 78a14eb10c Add text node rendering to custom HTML (#663)
# PR Checklist
- [ ] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [x] Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [ ] Did you added a type def?

# Description
## Summary

This PR updates the `renderChilds` function to properly handle
`TextNode` rendering. Previously, `renderChilds` only iterated over
`children`, which excluded `TextNode`s and rendered only `HTMLElement`s.
Now, the function iterates over `childNodes`, ensuring that:

1. **TextNodes**: Are rendered by displaying their `textContent`.
2. **ElementNodes**: Are rendered as before, using `renderGuiHtmlPart`.


## Context

Initially, I wondered whether the absence of `TextNode` rendering might
have been due to security considerations. However, since elements like
headings (`h1`), lists (`ul`, `li`), and strong text (`strong`) were
already being rendered, it seems likely that the exclusion of `TextNode`
rendering was an oversight rather than an intentional decision.

I believe that these elements are meaningful only when they include
text. For example, elements like `h1`, `h2`, `h3`, `p`, `li`, `strong`,
`em`, and `code` rely on text content to fulfill their intended purpose.


## Notes

If there was a specific reason for excluding `TextNode`s in the original
implementation (e.g., for security, intentional design choices, or other
constraints), please feel free to reject this PR. I completely
understand if this change conflicts with any design decisions or
requirements of the project.

Thank you for your time and consideration!
2024-11-16 21:24:56 +09:00
2024-10-09 23:22:32 +09:00
2023-05-07 12:41:45 +09:00
2024-09-06 02:45:49 +09:00
2023-07-07 06:30:04 +09:00
2024-09-10 22:09:58 +09:00
2024-01-01 23:14:58 +09:00
2024-10-13 01:29:12 +09:00
2024-08-12 23:48:14 +09:00
2023-07-08 15:24:18 +09:00
2024-01-01 23:14:58 +09:00
2024-10-13 01:29:12 +09:00
2024-09-10 22:09:58 +09:00
2024-09-10 22:09:58 +09:00
2023-05-07 12:41:45 +09:00
2024-10-13 01:46:57 +09:00
2024-10-25 18:11:00 +09:00
2023-05-07 12:41:45 +09:00

RisuAI

text

Svelte Typescript Tauri

RisuAI, or Risu for short, is a cross platform AI chatting software / web application with powerful features such as multiple API support, assets in the chat, regex functions and much more.

Screenshots

Screenshot 1 Screenshot 2
Screenshot 1 Screenshot 2
Screenshot 3 Screenshot 4

Features

  • Multiple API Supports: Supports OAI, Claude, Ooba, OpenRouter... and More!
  • Emotion Images: Display the image of the current character, according to his/her expressions!
  • Group Chats: Multiple characters in one chat.
  • Plugins: Add your features and providers, and simply share.
  • Regex Script: Modify model's output by regex, to make a custom GUI and others
  • Powerful Translators: Automatically translate the input/output, so you can roleplay without knowing model's language.
  • Lorebook: Also known as world infos or memory book, which can make character memorize more.
  • Themes: Choose it from 3 themes, Classic, WaifuLike, WaifuCut.
  • Powerful Prompting: Change the prompting order easily, Impersonate inside prompts, Use conditions, variables... and more!
  • Customizable, Friendly UI: Great Accessibility and mobile friendly
  • TTS: Use TTS to make the output text into voice.
  • Additonal Assets: Embed your images, audios and videos to bot, and make it display at chat or background!
  • And More!

You can get detailed information on https://github.com/kwaroran/RisuAI/wiki (Work in Progress)

Discord

Installation

Docker Installation

You can also run RisuAI using Docker. This method is particularly useful for web hosting.

  1. Clone the repository:

    git clone https://github.com/kwaroran/RisuAI.git
    cd RisuAI
    
  2. Build and run the Docker container:

    docker-compose up -d
    
  3. Access RisuAI at http://localhost:6001 in your web browser.

Description
No description provided
Readme 62 MiB
Languages
TypeScript 58.9%
Svelte 35.1%
JavaScript 4.4%
Rust 0.5%
Lua 0.3%
Other 0.7%