[nodebb-plugin-ns-spoiler] NS Spoiler
-
I have checked with both types of URLs, seems everything is OK with URLs in spoiler:
-
@산도 Looks like you've missed a whitespace between the URL and closing
:::
.
I guess this is needed in order to work properly, that it's half-way working should be considered a bug.
(everything just concluded of his/her screenshot didn't test anything) -
I am actually having a similar issue. I am guessing it's messing up with youtube plugin.
:::
--some tex1t--
youtube link
--some text2--
:::If I do this, spoiler button and some text1 disappears,
and youtube, some_text2 does not get into the spoiler and shows up
-
I really love the plugin, installed it and it works fine for me!
However, when writing an announcment for my forum that spoilers are now supported I realised that I couldn't show the usage by wrapping the spoiler into a code block.
The spoiler was rendered anyway. -
Feature from Markdown plugin with Auto-links, can treat
:::
sequence as part of URL. Of course if you will write them together.
Thus It will create copy of the spoiler tag. -
Also here is an example with iframe:
If another plugins don't break spoiler tag
:::
, everything should work fine.I'm glad that there is a feedback. Maybe we will find, that solutions with colons don't work in real world
-
Seems to break post with item lists
-
Show code (markdown) and screenshot, will see is any solution for it
-
@exodo thanks.
I think such construction will work well:
:::
Some text goes here- ok
- good
:::
Code:
::: Some text goes here - ok - good :::
You could use for now, until solution will be provided.
I think main problem here, list is relies on empty space around it. -
Ye, they are rendered in preview.
They should be excluded in the same way as images, I think.Exclude content from the last post preview · Issue #3896 · NodeBB/NodeBB
Hi, Is it possible from the plugin to exclude stuff, so it will not show in last post preview? Is it filter:parse.raw? I mean, If I remove content via this filter, everything will be fine, or there is edge cases?
GitHub (github.com)
-
Ok, it works well with lists, but extra space around list is very important...
Actually, if you don't have extra space (blank line) around list items, It also doesn't look good in composer preview. But yes, if you omit blank lines list with dashes (-
) break layout. So some safe checks should be added to prevent such cases. -
Version 1.1.1
Summary: safer to use
- Additional handler for Markdown Plugin: unwrap lists. It's a safe check, so html will still be valid
- Additional paragraph handlers for Markdown Plugin: shift spoiler tag (start or end) around artificial multilines
- Extra paragraph wrapper around spoiler tag now be removed
Performance of the plugin will be much-much higher, if Core devs provide some solution here
-
Working good thank you
-
@Nicolas
After a user created a longer posting with multiple spoilers, the forum stopped working properly for me (unresponsive buttons / missing pop-up menus).I played around with the posting that was made and figured out some problems related to the spoiler plugin.
First, using a list before a spoiler containing a list breaks the spoiler.
Here's the code:- asd - asd - asd ::: This is a spoiler containing a list: - asd - asd - asd :::
producing the output
- asd
- asd
- asd
This is a spoiler containing a list:
- asd
- asd
- asd
[empty spoiler tag]
This part on its own does not yet break anything but just creates a badly formatted posting.
Second (probably somewhat related), different kinds of lists inside the same spoiler will break the next spoiler following.
Example code:
::: - asd - asd - asd 1) asd 2) asd 3) asd ::: ::: - asd - asd - asd :::
results in
[spoiler containing the part between the first spoiler tags]
- asd
- asd
- asd
[empty spoiler]
Again, this problem alone does not result in a broken nodebb but just in malformatted output.
Finally, I reduced the problem to a situation when both of the above examples are combined.
A posting like this
::: 1) asd 2) asd 3) asd - asd ::: - asd ::: 1) asd 2) asd 3) asd :::
will break nodebb. The problematic thread / posting becomes impossible to delete without deactivating plugins because the moderation tools cannot be displayed.
-
@phl thanks for extended info. Indeed, there is a problem with Markdown Plugin.
For example, lists parsing will always try to concatenate:::
blocks. I already added several additional rules to address some list issues.
But, It looks for me now a bit problematic, to have a dozen rules, just to handle parsing result from another plugin.There is a related issue, https://github.com/NodeBB/NodeBB/issues/3897
As you can see, It's closed, and there is no alternative solution/proposition.I'm sure, that, if you have blank lines around
:::
everything should be fine. But there is no way for now, to ask users to have blank lines around spoiler tags.Initially I thought about 2 pass parsing. 1 pass - add blank lines around spoiler tokens
:::
before Markdown plugin, and 2 pass - apply spoiler rules. But, plugin hooks doesn't support 2 same hooks with different priorities. -
Version 2.0.0
New version is available. Summary: compatibility is changed, now It's only NodeBB v1
- Add Redactor WYSIWYG support
- Add installation support for NodeBB v1
P.S.
Started to think about an implementation oftrue
spoiler, where data should be fetched from the server. -
Version 3.0.0
New version is available. Summary: different approach how spoiler content is populated. If you are not interested in major feature of v3, I recommend to use v2 of the plugin. Idea of v3 is to lazy load spoiler content only when It's needed. When web page is downloaded by the client there is no spoiler content.
- Change spoiler delivering. Content of a spoiler isn't delivered anymore to the client.
- Change HTML manipulation to create more safe result for paragraphs
- Add requirement for multi-line spoiler, i.e. inline spoiler will not be parsed (will be converted to multiline)