Chat View let's you quickly and easily create elegant Chat UIs in your Markdown Files.

Overview

Obsidian Chat View Plugin

Chat View let's you quickly and easily create elegant Chat UIs in your Markdown Files.

Obsidian Chat View Overview

Usage

Every chat message must be prefixed with a '<', '>' or '^' for left, right & center aligning the messages respectively. Each chat message consists of 3 parts: The header, message and the subtext. The parts are separated by a '|' character. Take a look at the example below to see how it works:

```chat
< Fitzwilliam Darcy | I've fought against my judgement, my family's expectations... The inferiority of your birth, my rank and circumstance. | 23rd July, 1846 at 5:42 PM
> Elizabeth Bennett | Now hold on, Mr. Darcy, I'm afraid I don't understand where you're going with this. | 23rd July, 1846 at 5:42 PM
```

The above code will generate the following Chat View:

Chat View Preview 1

Add Delimiters & Comments

You can add delimiters to your chat view simply by entering '...' on a line. To add a comment, start a line with the '#' character. Take a look at the following example:

```chat
< Fitzwilliam Darcy | Just listen to me, all right? You simply cannot fathom the amount of courage I've had to muster to say this.
# Lizzie gazed at Darcy with a baffled look on her face. Darcy was now sweating profusely. This only unsettled her even more. What was happening?
> Elizabeth Bennett | Mr. Darcy, are you all right? Why did you come here?
...
< Fitzwilliam Darcy | I came here to tell you that I'm in love with you. I'm deeply, unabashedly, utterly in love with you.
```

The above code will generate the following Chat View:

Chat View Preview 2

As you may have noticed, I've actually left out the subtext from these messages. The Chat View plugin is flexible that way. You can also leave out the header if you like just by starting the message off with the '|' character. For example, the following code:

```chat
< Fitzwilliam Darcy | And I care not for the consequences of what I'm about to do.
< | Elizabeth Bennett, will you marry me? | 23rd July 1846, 5:51 PM
```

Will result in the Chat View seen below:

Chat View Preview 3

Customization

To add that last bit of organization & pizazz, the plugin also includes the ability to customize the header size, header colors and maximum width of the chat bubbles. Here's how you can configure each of them for your Chat View:

  • Header Size

    Chat View allows you to choose from 5 different sizes for your Chat Bubble's header: [h2, h3, h4, h5, h6]. This can be done by simply adding the following config line to your code block: {header=}.

  • Header Color

    You can also change the color of headers speaker-wise. You may choose from upto 13 colors: [red, green, blue, yellow, orange, purple, grey, brown, indigo, teal, pink, slate, wood]. This can be done by adding a color configuration like this to your code block: [Person Name=color, Person Name=color].

  • Max Width

    The maximum width of the Chat Bubble can be specified by adding the following to your config line: {..., mw=width}. The plugin accepts 9 widths (in percentages) from 50% to 90% at an interval of 5%. Namely: [50, 55, 60, 65, 70, 75, 80, 85, 90].

The below example showcases how all three of these work in tandem.

```chat
{header=h3, mw=75}
[Elizabeth Bennett=blue, Fitzwilliam Darcy=yellow]

> Elizabeth Swann | I... But what about... You can't be serious, Mr. Darcy. This is preposterous. After all we've been through, I thought...
> | Yes. I will marry you. | 23rd July, 1846 at 6:02 PM.
# Darcy had no words left. They'd reached a point beyond all mannerisms, all formalities. All that was left was raw love. Only it could speak next.
< Fitzwilliam Darcy | I love you Lizzie. With all my heart. And I will do so for as long as we shall be together. | 23rd July, 1846 at 6:04 PM.
```

The above code will generate the following Chat View:

Chat View Preview 4

WebVTT Support!

As of Version 1.2.0, Obsidian Chat View now supports the WebVTT format! Instead of the regular chat header, give your code block the name chat-webvtt. Then paste your WebVTT code in there! There are a few things to keep in mind:

  1. Please ensure that you are correctly following the WebVTT format. Make sure your code starts with WEBVTT on the first line.
  2. You can customize the Chat View by using metadata. There should be no empty line between the WEBVTT and your metadata.
  3. You may set the Self parameter in your metadata to a comma-separated list of names. All chat bubbles from the aforementioned names will appear on the right hand side as opposed to the default, which is left, to indicate that the specified persons' chats are in First-Person.
  4. The plugin only recognizes voice tags () in a cue's body. Anything else will be treated as regular text.

Following is an example of a Chat View generated by WebVTT code.

```chat-webvtt
WEBVTT
Self: John Smith
MaxWidth: 70
Header: h3

00:00:00.000 --> 00:01:04.270
No one touch it, it just works. It is the definition of an absolutely perfect Chat View. Do not defile it! Or else...

00:00:05.790 --> 00:00:06.930
Going forward, obviously.

00:00:04.310 --> 00:00:04.940
Uhm?

00:00:04.310 --> 00:00:04.940
Uhm - would be correct! I have no idea what John is talking about!

The above code will generate the following Chat View:

Chat View WebVTT Preview

Minimal Mode

As of the release of Version 1.2.0, the Chat View plugin now supports minimal mode. You can enable minimal mode by adding the following to the config line of your code block: {..., mode=minimal}. This will generate a Chat View with no bubbles and condensed spacing making it look more like a forum thread. The following example shows minimal mode in action:

```chat
{mw=90,mode=minimal}
[Albus Dumbledore=teal, Minerva McGonagall=pink]

< Albus Dumbledore | I should've known you would have been around Professor McGonagall. Couldn't resist seeing the boy after all, could you? | 25th April 1982 at 2:06 AM
< Minerva McGonagall | Good evening Professor Dumbledore. Tell me, are the rumors really true? | 25th April 1982 at 2:07 AM
< Albus Dumbledore | I'm afraid they are professor. Both, the good and the bad. Hagrid is bringing the boy as we speak. | 25th April 1982 at 2:08 AM
```

The code block above will generate the following Chat View:

Chat View WebVTT Preview

Thank you for reading!

This project is published under the MIT License.

Comments
  • Support for other chat-transcription-syntaxes

    Support for other chat-transcription-syntaxes

    Hi,

    thank you for this lovely plugin!

    How about we add support for more syntaxes (in my case, for Zendesk)?

    It would be awesome if you would support the following:

    (1:38:05 PM) *** Firstname Lastname has joined the chat ***
    (1:38:39 PM) Firstname Lastname: This is the chat-text followed after the time and name.
    (1:40:26 PM) Other-Firstname Other-Lastname: Sure thanks!
    (2:21:29 PM) *** Firstname Lastname has left ***
    

    Or are you aware of some other method how I can automatically rewrite the format, so it is compatible with the one from the plugin?

    Right now I have to add a < at the beginning, add a | between name and message and after the message as well as move the time at the end. For a couple of messages, that's OK, but after a couple of ones... I better ask you what my options are :D

    Thanks for your work!

    feature request 
    opened by berot3 11
  • Can't install latest update in Obsidian

    Can't install latest update in Obsidian

    At first it said "failed to install update" and stupidly I uninstall the plugin and now I can't install it at all. It kept saying "failed to install plugin" 😩

    bug 
    opened by GinoReiji 9
  • WebVTT Support

    WebVTT Support

    Hello,

    This plugin looks great, thank you!

    Microsoft Teams and Zoom generate transcripts in WebVTT format and it would be really nice if this plugin supported that format natively so I could store call transcripts as-is in Obsidian, and take advantage of the great visual formatting you put together.

    The date and time isn't stored, just the times from the start of the recording, but names are included.

    Ex;

    WEBVTT
    
    00:00:00.000 --> 00:00:04.270
    <v John Smith>No one touch it, it just works.</v>
    
    00:00:04.310 --> 00:00:04.940
    <v Bob Anderson>Uhm?</v>
    
    00:00:05.790 --> 00:00:06.930
    <v John Smith>Going forward, obviously.</v>
    

    [...]

    feature request 
    opened by kmarchand 8
  • FR: add chat-view-color class  also to the bubble div

    FR: add chat-view-color class also to the bubble div

    can the chat-vew-<color> class be added also to the bubble div? In that way, one can use css to personalize the bubble differently for different speaking names :)

    opened by Cammagno 8
  • Add ability to customize formatting of chat headers in metadata.

    Add ability to customize formatting of chat headers in metadata.

    It would be great to include options -- either in the plugin controls, or in the chat metadata -- to change the text rendering. For example:

    [stowe boyd=h3]
    > stowe boyd | this is the comment
    

    Would lead to a chat box with 'stowe boyd' rendered in whatever h3 styling is set to in the theme. Also, this could make the text in the comment foldable, potentially.

    enhancement 
    opened by stoweboyd 4
  • FR: Support markdown syntax in chats

    FR: Support markdown syntax in chats

    Currently, text can only appear in plaintext. For example, when you surround text with ** ** or insert links (internal or external) like so

    image

    the text is rendered in plaintext. Cannot click on links to open them.

    image

    Adding markdown support would enhance the capabilities of the plugin.

    By the way, thank you for this plugin 🍪. I like to use it to create clean views of conversations.

    feature request 
    opened by JeloKuneho 3
  • Question: how to change the bubble color?

    Question: how to change the bubble color?

    Hi!

    Beautiful plugin! :)

    I've been able to customize almost everything using css, but not the color of the bubble around messages.

    I've tried things as:

    .chat-view-bubble { background-color: yellow !important; }

    but without success.

    May you please address me to a way to do it?

    opened by Cammagno 3
  • [Feature Request] Auto format clippings from popular chat software like Slack, Skype, Teams etc.

    [Feature Request] Auto format clippings from popular chat software like Slack, Skype, Teams etc.

    The plugin looks awesome! Great project. I was wondering if it's possible to auto format (copy/paste)/clippings from popular chat software like Slack, Skype, Teams etc?

    question expired 
    opened by mayankguptadotcom 2
  • header does not support Chinese characters, only letters and numbers

    header does not support Chinese characters, only letters and numbers

    I noticed that the header is filtered with a regular expression, I don't know the reason for this, but it won't display properly with other special symbols or languages image

    bug 
    opened by cumany 2
  • FR: Multiline / Linebreak Support

    FR: Multiline / Linebreak Support

    I solely use this plugin to archive memorable chats from messengers and if its a longer message with linebreaks, links, lists, etc. it's hard to read in Chat View.

    Here an example:

    Messenger: grafik

    Chat View: grafik

    I could imagine the following sulotions:

    1. a special seperator char for multiline, so it doesn't have to be a oneliner anymore (wrap it in {} or something)
    2. another special char or sequence like \newline to keep the single line but break it on render

    Would that be possible?

    Anyway - thanks for your plugin! 😊

    feature request 
    opened by msnr 1
  • Bug: chat-view-color class does not apply to header-less messages

    Bug: chat-view-color class does not apply to header-less messages

    see picture below:

    ChatView

    Maybe is it possible to add the chat-view-color class also to the headerless bubbles following a header bubble?

    Like this:

    [Me=red, You=green] < Me | Text <-this bubble already has .chat-view-red < | More Text <- this bubble should have .chat-view-red < | More Text <- this bubble should have .chat-view-red

    You | Answer <- this bubble already has .chat-view-green | More Answer <- this bubble should have .chat-view-green

    bug 
    opened by Cammagno 1
Releases(1.4.0)
  • 1.4.0(Dec 11, 2022)

    This release adds support for Chat Transcripts found in Zendesk, other Customer Support Software and CRMs. Chat Transcripts is a new mode that may be enabled for your Chat View by naming your code-blocks with the chat-transcript title. Here are a few of the specifications for this release:

    1. Version 1.4.0 resolves Issue #18 - which requested support for Chat Transcripts.
    2. The new mode supports all styling and formatting features of the other modes.
    3. Instructions for chat-transcript mode may be found in the updated README.md on this repository's home page.
    4. Versioning in manifest.json, versions.json and package.json has been updated to v1.4.0. Minimum supported version of Obsidian App has been set to the new v1.0.0 release.
    Source code(tar.gz)
    Source code(zip)
    main.js(173.52 KB)
    manifest.json(303 bytes)
    styles.css(3.72 KB)
  • 1.3.0(Nov 20, 2022)

    This release adds Markdown & HTML Rendering Support to Chat View. Now, users of this plugin can add Markdown and HTML syntax to the Message Section of their Chat Views and expect reliable render results. This newly added feature resolved the following issues:

    1. Resolves Issue #16 - which asks for markdown support in chats.
    2. Resolves Issue #17 - which asks for multiline/line-break support. The plugin user may now use the <br> tag to render a line-break in their Chat View Message.

    Complimentary README documentation has also been added to guide users on how Markdown/HTML Rendering Support works in the plugin. Versioning in manifest.json, package.json and versions.json has been updated.

    Source code(tar.gz)
    Source code(zip)
    main.js(170.17 KB)
    manifest.json(304 bytes)
    styles.css(3.72 KB)
  • 1.2.1(Nov 3, 2022)

  • 1.2.0(Apr 30, 2022)

    Welcome to the Release of Version 1.2.0 of Obsidian Chat View. This release brings with it 2 key features and further enhancements to the plugins. A brief overview of the changes is as follows:

    New Features

    • WebVTT Support! Version 1.2.0 introduces support for the popular subtitle format WebVTT. Simply change the language of your code block from chat to chat-webvtt and paste your WebVTT Code there. This resolves a feature-request outlined in Issue #6.

    • Minimal Mode Version 1.2.0 brings a new display variant for your Chat View: Minimal Mode. You may set this theme by adding this setting to your config line: {..., mode=minimal}. This will remove the Chat Bubble and condense spacing around your messages to make it look more like a forum thread.

    Enhancements

    • New Colors 3 new colors: [pink, slate, wood] have been added to the list of available color styles for your Chat Bubbles.

    You can view the full Changelog here: https://github.com/adifyr/obsidian-chat-view/compare/1.1.3...1.2.0

    Source code(tar.gz)
    Source code(zip)
    main.js(24.11 KB)
    manifest.json(304 bytes)
    styles.css(3.66 KB)
  • 1.1.3(Apr 21, 2022)

    Release v1.1.3 of Obsidian Chat View

    This is release of Version 1.1.3 of the Obsidian Chat View plugin. There are a couple of bug fixes and a new feature in this release. The details are as follows:

    New Features

    • The maximum widths of Chat Bubbles can now be customized by the user. Simply add the following to your config: {..., mw=<width>}. This addresses the core request made in Issue #4.

    Bug Fixes

    • Fixed bug where continued chat bubbles of the same person wouldn't carry over the same .chat-view-<color> class of the initial Chat Bubble. Now they will all have the same color class and thus can be properly styled with the user's own CSS. This addresses issue #8.
    • Fixed bug where non-English & special characters wouldn't be allowed in custom colored Chat Bubble headers. This was outlined in issue #7.
    Source code(tar.gz)
    Source code(zip)
    main.js(6.68 KB)
    manifest.json(262 bytes)
    styles.css(2.66 KB)
  • 1.1.0(Apr 15, 2022)

    This marks the release of v1.1.0 of the Obsidian Chat View plugin. Following are the changes that have been made in this version:

    New Features & Enhancements

    • Added the ability to customize the size of the chat bubble headers. You can now pick from 5 different sizes for your header: [h2, h3, h4, h5, h6]. This can be achieved simply by adding the following configuration line to your code block: {header=<hX>}. See the instructions in the README.md.
    • Added 3 more colors, namely: [brown, indigo, teal] to the list of custom colors for your header.
    • Chat Bubbles on Mobile UIs will now take up 90% of the width as compared to the original 75%, which is now for the desktop version only. This should address the crammed chat bubbles on the Obsidian mobile apps.
    • Transferred the color styles to the parent div.chat-view-bubble to allow more CSS customizations by users to the Chat Bubbles.

    Hope you like the release! 🎉

    Source code(tar.gz)
    Source code(zip)
    main.js(5.94 KB)
    manifest.json(262 bytes)
    styles.css(2.19 KB)
  • 1.0.0(Mar 26, 2022)

Owner
Adifyr
I code, design & write for a better tomorrow.
Adifyr
Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks Vaultacks is built on the Stacks Chain. It lets users upload files to Gaia, a off-chain data storage system. Vaultacks currently uses the de

Anish De 5 Sep 14, 2022
mirrord lets you easily mirror traffic from your production environment to your development environment.

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both Visual Studio Code extension and a CLI tool.

MetalBear 2.1k Dec 24, 2022
A Zotero add-on that scans your Markdown reading notes, tags the associated Zotero items, and lets you open notes for the Zotero items in Obsidian.

Zotero Obsidian Citations Adds colored tags to Zotero items that have associated Markdown notes stored in an external folder. Open an associated Markd

Dae 210 Jan 4, 2023
💻 Countries Web is a web application that lets you view data for all the countries in the world and filter them by country name and continent.

?? Countries Web View Demo This is the Countries Web, a web application that lets you view data for all the countries in the world and filter them by

João Gabriel 5 Jun 23, 2022
Markdown Transformer. Transform markdown files to different formats

Mdtx Inspired by generative programming and weed :). So I was learning Elm language at home usually in the evening and now I am missing all this gener

Aexol 13 Jan 2, 2023
This extension allows you to create Markdown files which are automatically transformed to in-game documentation for your Add-On.

Markdown Doc Generator An extension for bridge editor which makes creating docs in minecraft easier, by generating json-ui from markdown View extensio

Freddie 7 Dec 31, 2022
Polyfill to remove click delays on browsers with touch UIs

FastClick FastClick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a click event on mobile

FT Labs 18.8k Jan 2, 2023
A home for modern admin UIs; successor to Torque

Forque A home for admin apps Meta State: development Staging: https://tools-staging.artsy.net Kubernetes Production: https://tools.artsy.net Kubernete

Artsy 8 Sep 13, 2022
You view the Twitch channel chat and you can access the details of the users who wrote during the viewing period.

Twitch Chat Web Page You view the Twitch channel chat and you can access the details of the users who wrote during the viewing period. Getting Started

Mert 6 Dec 13, 2022
Minificator allows you to quickly minify your files (Images, HTML, CSS, Javascript)

ᗰIᑎIᖴIᑕᗩTOᖇ ~ Demo ~ ?? Description Minification is the process of removing unnecessary elements and rewriting code to reduce file size. These are usu

Raja Rakotonirina 8 Nov 14, 2022
StarkNet support extension for VSCode. Visualize StarkNet contracts: view storage variables, external and view functions, and events.

StarkNet Explorer extension This VSCode extension quickly shows relevant aspects of StarkNet contracts: Storage variables of the current contract, and

Crytic 6 Nov 4, 2022
A plugin for Strapi CMS that adds a preview button and live view button to the content manager edit view.

Strapi Preview Button A plugin for Strapi CMS that adds a preview button and live view button to the content manager edit view. Get Started Features I

Matt Milburn 53 Dec 30, 2022
A plugin for generate markdown table quickly like Typora.

Obsidian Table Generator A plugin for generate markdown table quickly like Typora. Features You can use obsidian-table-generator to generate markdown

Boninall 58 Dec 30, 2022
Plugin that lets you create diagrams from textual representation (aka 'Diagrams as Code') within Logseq

Logseq - Diagrams as Code Plugin that lets you create diagrams (and other visualizations) from textual representation (aka 'Diagrams as Code') within

Nicolai P. Großer 80 Dec 21, 2022
A website that lets you create legit-looking GitHub links that rickroll the visitor.

microsoftgithub.com, a.k.a. NotHub A website that lets you create legit-looking GitHub links that rickroll the visitor. Usage Just replace github.com

Ash 12 Dec 23, 2022
CandyPay SDK lets you effortlessly create NFT minting functions for Candy Machine v2 collections.

@candypay/sdk CandyPay SDK lets you effortlessly create NFT minting functions for Candy Machine v2 collections. Simulate minting transactions for mult

Candy Pay 33 Nov 16, 2022
✨ A command-line interface for quickly sharing code snippets of your local files

?? snipli ✨ A command-line interface for quickly sharing code snippets for your local files Usage Commands Usage $ npm install -g snipli $ snipli COMM

Kira 146 Nov 3, 2022
✨ A command-line interface for quickly sharing code snippets of your local files

?? snipli ✨ A command-line interface for quickly sharing code snippets for your local files Usage Commands Usage $ npm install -g snipli $ snipli COMM

buidler's hub 127 May 11, 2022
Open source app to beautify screenshots, quickly and easily

Codename: Pika What it does Lets you quickly beautify screenshots by adding rounded corners, background colors, shadows and more. You can copy the bea

Rishi Mohan 458 Dec 29, 2022