Commit graph

62 commits

Author SHA1 Message Date
Pavel Djundik
fc1c9568e2 Rename helpers folder, move some vue filters 2019-11-25 20:12:58 +02:00
Pavel Djundik
af0d48de72 Create InlineChannel component 2019-11-25 20:12:48 +02:00
Raqbit
95cc9a47fb Add file size to link preview 2019-11-07 16:58:28 +01:00
Jay2k1
c89aea3c1e add bidi support to messages, actions, previews etc 2019-10-24 16:53:29 +02:00
Alistair McKinlay
133e7bf710 Format js/vue with prettier 2019-07-19 11:27:40 +01:00
Pavel Djundik
b95c8236bd Use @github's emoji data 2019-06-10 22:17:00 +03:00
Pavel Djundik
4f3dbc4b8f Fix up how span elements are generated in message parser 2019-02-12 12:49:05 +02:00
Pavel Djundik
e2c65fd0de Fix titles on emojis 2019-02-12 12:49:04 +02:00
Pavel Djundik
f2cbd1efed Pass PREFIX and CHANTYPES to parser 2019-02-12 12:48:44 +02:00
Pavel Djundik
e92f5d573b Remove extra invalid class on links in chat 2019-02-12 12:48:43 +02:00
Pavel Djundik
e3ff385ae0 Remove HTML version of parse() 2019-02-12 12:48:43 +02:00
Pavel Djundik
d83dcc35e2 Port 'more' button in previews to Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
1cd28a5ccf Fix sending msg:preview:toggle to server 2019-02-12 12:48:43 +02:00
Pavel Djundik
2bb8287519 Render preview toggle in Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebfc6fa724 Create elements instead of using raw HTML 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebda927bb1 Render toggle button after links 2019-02-12 12:48:43 +02:00
Pavel Djundik
771739cf94 Port ignore list to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
d19c00faab Build clean text message only once 2018-05-01 14:32:13 +03:00
Pavel Djundik
162b801839 Move part sorting to merge 2018-05-01 14:31:46 +03:00
Pavel Djundik
73b1124dce Fix nicks with special characters being colored incorrectly in messages
Fixes #2362
2018-04-16 14:45:08 +03:00
Max Leiter
01753a814c Improve accessibility for emoji 2018-03-18 12:13:48 -07:00
Pavel Djundik
c733e72e7a Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02:00
Logan Griswold
f07c1bef69
#1755 - implement monospace formatting with keybinding, tests, and help section 2017-12-03 15:10:46 -05:00
Logan Griswold
0643d3b4a3
#1754 - implement strikethrough formatting, client keybinding, tests, and help section 2017-12-03 15:10:34 -05:00
Jérémie Astori
b53f1719eb
Merge pull request #1749 from thelounge/astorije/avoid-escape-quotes
Avoid escaping quotes whenever possible
2017-11-27 12:57:55 -05:00
Max Leiter
3d31fa4686 Link nicks mentioned in messages 2017-11-27 09:10:56 -08:00
Jérémie Astori
287c3a8223
Avoid escaping quotes whenever possible
Our `.eslintrc.yml` configuration file already allows for avoiding escape (see [ESLint doc for `avoidEscape`](https://eslint.org/docs/rules/quotes#avoidescape)) so we might as well use it. We already use this in a few places I believe.
2017-11-26 17:34:28 -05:00
Bonuspunkt
0e52b133af Sending channel and link together generates duplicate text 2017-11-26 21:33:27 +02:00
Mac Carrithers
f8663ed28b Parse emoji to make them bigger 2017-08-24 11:54:28 +03:00
Jérémie Astori
a13c08a45b
Enforce correct order for previews on server-side prefectch rather than at client parsing
This has the benefit of not adding `.preview` divs everywhere, anytime we use `parse()`, and also to un-tie the position of the preview blocks from the result of the helper. This means that templates that call `parse` and have some extra markup after that are not constrained anymore.

This is effectively an alternative, better way to fix https://github.com/thelounge/lounge/issues/1343, but the initial fix that was put in place (https://github.com/thelounge/lounge/pull/1347) is still relevant, for example to make sure a preview stays hidden (and does not add extra margin/padding/etc.) if the link does not prefetch.
2017-07-21 01:06:42 -04:00
Jérémie Astori
28200830ed
Move preview toggle buttons next to their respective URLs and switch from ellipsis to caret 2017-07-08 04:36:26 -04:00
Jérémie Astori
64ebe0f437
Support multiple previews per message
- Load up to 5 previews per message (to avoid abuse)
- Do not load multiple times the same URL
- Prepare preview containers per message instead of appending (to maintain correct order)
- Store an array of previews instead of a single preview in `Msg` objects
- Consolidate preview rendering for new messages and upon refresh/load history (when rendering entire channels)
- Update `parse` tests to reflect previous point
- Add test for multiple URLs
- Switch preview tests from `assert` API to `expect` API
2017-07-08 04:34:12 -04:00
Pavel Djundik
f6dd616d5e Update to eslint 4 and enforce extra rules 2017-06-19 09:58:29 +03:00
Pavel Djundik
0b645d54c6 Add support for 0x04 hex colors
Ref: https://modern.ircdocs.horse/formatting.html#hex-color
2017-04-29 09:50:26 +03:00
Jérémie Astori
03e3444a35 Explain the modules of the message parser and add tests
- Add comments and descriptions to:
  - `findChannels.js`
  - `parseStyle`
  - `findLinks`
  - `fill`
  - `anyIntersection`
  - `merge`
  - `parse`
- Minor optimizations to `parseStyle`
- Add tests for `fill`
2017-04-21 20:31:27 +03:00
Jérémie Astori
90f4a94bb2 Use template literals in parse
Also make it output double quotes for consistency with web stuff.
2017-04-21 20:31:27 +03:00
Jérémie Astori
5b4c00d8ca Extract findLinks into its own file and add tests
Tests were taken from 5a249c30b1/test/findLinks.js.
The underlying code is different but the tests are the same.
2017-04-21 20:31:27 +03:00
Bonuspunkt
0b85ded53f Add bonuspunkt's parser
Fixes #15.
Fixes #199.
Fixes #583.
Fixes #654.
Fixes #928.
Fixes #1001.
2017-04-21 20:29:04 +03:00
Jérémie Astori
4363ef4abe Merge pull request #973 from thelounge/xpaw/use-require
Use require() instead of import in client code
2017-03-31 01:41:29 -04:00
Pavel Djundik
3b2e3fc08c Enforce more space and new line rules 2017-03-18 21:40:39 +02:00
Pavel Djundik
dcefcd19cb Use require() instead of import in client code
Closes #895
2017-03-18 11:21:18 +02:00
Pavel Djundik
fb87bd3a58 Webpack 2016-12-27 19:15:30 +02:00
Pavel Djundik
aa02fd5180 Enforce more eslint rules 2016-10-09 17:55:37 -04:00
Jérémie Astori
caa46042bf Enforce strict mode across all JS files with ESLint
Several ES6 additions are only available in strict mode. Example:
> SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

Strict mode was also enabled in a few of our files already, and it is a good thing to have anyway.
2016-10-09 15:14:02 -04:00
Pavel Djundik
a94b9623f9 Prepend http protocol to www. links in chat
Fixes #406
2016-06-16 17:40:02 +03:00
Pavel Djundik
876ce4bc6e Do not ignore our handlebars plugins in eslint 2016-05-12 16:07:15 +03:00
Pavel Djundik
d143542fe5 Add security headers to minimize XSS damage 2016-05-06 11:08:45 +03:00
Pavel Djundik
2bb3951476 Fix message and topic text wrapping 2016-03-22 18:04:34 +02:00
Pavel Djundik
56e1d3fac7 Correctly handle inline channels in messages
Fixes #15 and #11
2016-03-01 11:06:14 +02:00
Pavel Djundik
cd92d1640e Simply parse all 0-99 irc colors 2016-01-24 15:57:44 +02:00