Xaquseg 718 followers

Xaquseg is the system administrator for FIMFiction, as well as various misc. development, especially related to security. Non-technical problems are probably best asked to other staff members.

News Archive

  • 206 weeks
    Downtime & Server Move

    Hi all. Firstly, apologies for the extended period of unexpected downtime. Obviously any kind of downtime is non ideal, but unexpected is more annoying all around.

    On Friday morning (GMT) we experienced a hardware failure on our database server. To our knowledge there is no data loss of any kind. We have fairly regular backups hosted off-site, regardless. The exact cause isn't entirely clear at this time, but instead of wrestling with trying to get the hardware sorted (it was a dedicated server) we decided that this was a good opportunity to make a server move we've been planning for a long time over to Digital Ocean.

    Read More

    236 comments · 15,446 views
  • 305 weeks
    Recent Changelog

    We've done various unannounced changes of the past few weeks so I thought I'd group up the things we've done so you guys know what's changed.

    • Added account linking page for Patreon / Twitter
    • Added ability to cross post stories, blogs and bookshelf additions to Twitter
    • Added twitter userpage module
    • Added account deletion page
    • Reorganised user toolbar dropdown to better fit more items
    • Added session management page to see logins and active sessions on your account
    • Added new articles system and moved some existing ones into it
    • Redesigned PM page a bit to be cleaner
    • Increased font size in major places across the site to improve readability
    • New cookie consent controls for EU users and updated privacy policy
    • Recommended groups list on groups page - WIP
    • Tooltips in many locations around the site with helpful tips

    Read More

    114 comments · 6,050 views
  • 306 weeks
    Help Articles

    Something I've worked on the last couple of days is adding the ability for us to add arbitrary "articles" to the site which we can use for various things. Sort of an extension on the manual articles we've added in the past like the bbcode page, writing guide, etc.

    So far I've added 3 guides:

    I'd love to know if you guys have any idea for articles that would have helped you out when starting out or anything else that comes to mind.

    65 comments · 5,214 views
  • 334 weeks
    Night Mode

    I've been working on it for ages but only really got the impetus to finish all of it off over the last few days. In the "settings" dropdown at the top on desktop, or the bottom of the slide out bar on mobile you'll find a toggle for night mode. Enjoy!

    Oh, and although I've tried to cover everything there is a 100% chance I've missed styling some things so apologies in advance for any funky pages.

    246 comments · 6,847 views
  • 335 weeks
    Additional Search Update

    Hey folks,

    Over the last few days I've added a few things to the new search system. A lot of people were unhappy with not being able to filter various things as quickly as they used to be able to. To that end, I've added a little filter dropdown to the right of the search box which effectively contains everything the old sidebar used to. It even has some niceties like quick word count filters and a highly rated filter.

    Read More

    132 comments · 5,336 views
  • 335 weeks
    December 2017 Update

    Hey guys, got a whole bunch of updates for you today.


    This is a small but important step on our way to the tagging system I envision. The existing way we handled things like characters and genres has all been merged into a single tagging system. That won't result in much difference for you viewing and using the site but it makes it a lot easier to add new tags especially.

    We now have a couple of new tag types: series and warnings.

    The series tag is for identifying what series (franchise) your fanfiction contains. I've added a whole ton of various TV shows, movies, comics, books and games but clearly we will have to add a ton more in the coming future. Stories must also contain one of the four MLP tags which are FIM, EqG, Movie and Comic, as this is a pony fanfic site after all. Feel free to bug me on Discord if you have a requirement for a series to be added.

    Read More

    630 comments · 13,790 views
  • 335 weeks
    Math BBCode tag

    I've added [math] and [mathblock] BBCode tags, which can be used to display formatted math. We've had a few requests for this, particularly for group forum threads and blog posts. Most math-related TeX syntax is supported. (We are currently using MathJax to handle the layout.)

    The documentation from the BBCode guide is repeated below for your convenience.

    Read More

    84 comments · 4,431 views
  • 358 weeks
    Fimfiction API

    If you're not a developer you can probably ignore this post.

    It's been like 6 years, but hey, things take time. The API is currently very WIP still but it's ready for people to get working on in our development chat room.

    API documentation can be found at https://www.fimfiction.net/developers/api/v2/docs and you should join the Discord Chat and PM me to add you to the private API channel and I can help you get started. The functionality is very limited right now but I'm dedicating all my time to it at the moment and would love to have people add their input to the process.

    57 comments · 7,446 views
  • 363 weeks
    New BBCode Tags

    Hey guys,

    One of the features in this new update was reader-side paragraph formatting. This helps improve consistency for readers across the site, especially for those of us who can’t stand reading indented text on a computer screen.

    However, one thing that wasn’t accounted for was the legitimate need for specific indenting of passages and for certain blocks of text to have no paragraph formatting. Some examples would be lyrics and poetry.

    Taking this into account, we have come up with a couple of new tags that remedy this situation which are documented below (copied directly from the bbcode guide)

    [indent] Indent

    The indent tag can be used to, unsurprisingly, indent portions of your text.

    [indent]The indent tag can be used to, unsurprisingly, indent portions of your text.[/indent]

    It also support levels of indenting

    Read More

    168 comments · 6,417 views
  • 363 weeks
    Fimfiction 4.0

    It’s been a very very long time coming, but we’ve finally updated the site again. this is by far the biggest update we have ever done. There is a cavalcade of new features but the biggest changes are under the hood and affect how easy it is to extend the site and performance. A change log of everything I can remember can be found below.

    There are bound to be unforeseen bugs. If you come across anything major please let us know in the comments (or preferably in the #site-help-and-dev discord channel).

    Miscellaneous / Site Wide

    • Dropped support entirely for pre-IE11
    • Updated inline searching across the site to order much better. Eg. Typing "Ra" into the tag selector actually shows Rainbow Dash first. On shorter lists like bookshelves, we use a different algorithm that lets you type things like "ril" and it’ll prioritise a shelf called "read it Later".

    Read More

    1,363 comments · 21,472 views

Site Update » BBCode updates · 5:08pm Dec 21st, 2018

Performance improvements

Over the last few days I've been working on improving the performance of the BBCode parser. I've managed to implement a few major optimizations, reducing the run time in common cases to around 1/4th to 1/20th compared to the older version. This has reduced total server-side render times on some of the more complicated test pages I've been using to around 50ms–70ms, which should be a noticeable improvement.

New features


The [opacity] tag is similar to [color], except it controls the transparency of text. This is primarily intended as an alternative to setting text to gray to make it "fade out" that works on both dark and light background colors. Keep in mind that fading the text out will reduce the contrast, which may make it difficult for some users to read, so this should be using sparingly. The opacity can be specified as either a percentage or a decimal between 0.0 and 1.0.

This is 75%
This is 50%
This is 25%

[opacity=75%]This is 75%[/opacity]
[opacity=.5]This is 50%[/opacity]
[opacity=25%]This is 25%[/opacity]


There's also a somewhat incomplete feature: [footnote]. This allows you to declare footnotes inline with your text, which will then be placed in a list at the bottom. This feature still needs a bit of work, the appearance of the list will be adjusted, some issues with formatting tags will be corrected1, and the placement and numbering rules may be adjusted.

The feature should still work for simple cases however, as long as you don't try to do anything too fancy.

This feature still needs a bit of work, the appearance of the list will be adjusted, some issues with formatting tags will be corrected[footnote]Mostly related to inline formatting tags like [code=bbcode][b][/code] being active across the start or end tag.[/footnote], and the placement and numbering rules may be adjusted.
  1. Mostly related to inline formatting tags like [b] being active across the start or end tag.
Report Xaquseg · 4,950 views · #bbcode
Comments ( 49 )

I can see potential with the opacity feature, having dialogue fade out or hiding pieces of text. Interested to see what comes out of these new additions.

Nice! I'll have to test this with fimdic2epub! :D

i will admit i have little to no understanding of the coding you have done, but i do know you have helped make my favorite site on the internet better. thank you.:yay:

Server Administrator

People were already doing things like that with [color], but it didn't work very well if you had a different background color from what the author expected...

Thank you based Xaquseg!

Footnotes, eh?

I have a feeling Terry Pratchett fans will love that early Christmas present.

Good features. Thanks for all you do!

Neat! Although this may require iisaw and Kris Overstreet to completely reformat their stories unless they like where their “footnotes” currently are.... Also, it seems more like they’re endnotes rather than footnotes, if they go at the very bottom of the post, rather than a page/section as in a print book, unless it’s possible to code them to appear right above or below the next

While you’re fixing things, can you fix the comments counter issue (at least in the desktop browser version) where it says there are currently 1-50 of 10 comments, or 51-100 of 73, rather than the correct count?

Why do websites insist on translating a zillion different variations of BBCode and Markdown into HTML and CSS for the reader, instead of just making the author use HTML and CSS in the first place??

...Because that's a security risk? :rainbowhuh:

...Okay, after rewatching, I realized the video is only tangentally related, but it's still a fun watch so I'll leave it in. :derpytongue2:

Thanks much, Xaquseg, for the optimizations as well as the new tags, they're much appreciated!

I gave the footnote tag a test-drive, and it works great. One question: can the footnote number be made a link to the footnote itself? That way the reader can jump to the footnote, and then back to where they were in the text.

Hiding text was still possible if you changed the font color to white, although this new feature will make it much easier to hide it in dark mode.

Site Owner

That'll be coming

Server Administrator

We plan to add that, that falls under "somewhat incomplete"

Positioning footnotes in a more complex way than "all at the end" is a possible improvement, yes, that's why the position of the notes might change.

Woo, footnotes!1

Now we just need to get them working properly with my browser's find function...

  1. For what it's worth, I've made good (ab)use of them in the past.

I've never even thought about needing them before, but now, Celestia damn it I want to find a way to use footnotes.

Thanks Xaquseg! 1 Nice work! 2

  1. :yay:
  2. :raritystarry:

Awesome additions! Thank you for your hard work!

Having specific support for footnotes is great, although mostly as a step towards more functional display of footnotes than we have right now - the lack of pagination really makes footnotes a pain to read. Personally I'd most like to see them displayed in a pop-up upon clicking the little number, although having links back and forth is a close second best.

I'm not really sure what the point of zero-opacity text is...

To write secret messages, duh!

Yeah, I brought this up in Discord. It's to do evil things, naturally. :rainbowwild:

Time for some Infinity War memes.


I'm going to walk away.



Here's a better one:

Thank you so much for your work! Looks great! :twilightsmile:

There is a site update post that doesn't contain things that make everything go up in flames, for once?

I know at least one story that makes heavy use of footnotes, but I don't think these would work for them. Partly because the chapters are very, very long and the footnotes at the bottom have turned out to be too faraway to be useful. So they mostly end up before the next section break. They are also numbered from the start of the story on, so being able to set that as part of the footnote would be helpful.

Automatically putting the footnotes at the next section break would be good for this story. Another choice would be to have a special tag for where to put the footnotes, so every footnote before that would be placed there (allowing for more then one in a given chapter).

Are footnotes gonna be hash links in both sides? Or they're gonna be popping-out boxes on hover, like in some wikis?

Some sites use so-called "limited HTML", and it's just as inconsistent as BBCode. Not to mention all implementations are very inconsistent with html special characters, and some even either eat "<" and ">", or do double-escaping, which result in them display as &lt; and &gt;. Some implementation print out incorrectly typed tags as text, and some hide them instead. Etc, etc.
At least BBCode thousand times better than textile and markdown, where you can accidentally strike-out fifteen paragraphs, and sometimes you can't use spaces, or have to use spaces.

You do realize that as long as you use parser, and not filter, it doesn't matter security-wise if you use square brackets [b] or angle brackets <b>.

Cautiously excited about the footnotes! :pinkiehappy: But sharing 4984065's caveat:

I know at least one story that makes heavy use of footnotes, but I don't think these would work for them. Partly because the chapters are very, very long and the footnotes at the bottom have turned out to be too faraway to be useful.

I'll be happy to start using the feature when it doesn't break my readers' experience by making them manually scroll halfway up and down a page to a tiny, arbitrary target in order to read optional content in-line. They work at the bottom of the page in books because there's no scrolling and the bottom is actually the bottom (as opposed to sitting on top of a stack of comments). But having the tag in place is an awesome start to making it useful, and I can tell you're already mindful of the other issues involved, so thank you for moving this forward!

I now wonder what support for text opacity the various epub viewers have. I was reading a story the other day which annoyingly used different colored text in place of grammar, to distinguish thoughts from different personalities residing in a character's head. The viewer doesn't handle text color ideally, in my opinion, for its dark background viewing mode; it just over-writes the color of all text to make it white. Luckily, it leaves color unaltered in the normal white-background viewing mode. But if I could program, and were writing an ebook reader, I would make it convert all text color styles to a linear-HSB colorspace1, then invert the brightness value, then either use that if the display component of the program could understand it, or convert it all again to the sRGB color space (probably in hexadecimal format to save a smidgeon of space). Or maybe “generating an alternative style sheet” for an entire ebook would be an impractical thing to do for an ebook reader, or there's some more practical solution that hasn't crossed the mind of the person who designed the program I use to read my reading collection. Anyway… The point I wanted to originally make, was that ebook readers don't always work ideally. Although I really do like the idea of having the option for opacity.

As for the footnote tag. I could see that coming in really useful for a lot of stories. Although I do have an idea that could improve it a little… Suppose you want a specific footnote to go to a list in the author's notes section at the bottom or top of your chapter. Suppose, even, that no author' notes section exists for that chapter. Could an optional flag be added to the footnote tag, that signals where you want it to be placed? (at the end of story text|at the authors notes at the beginning of the chapter|at the author's notes at the end of the chapter) And if there is no author's note existing already, then create one to hold the footnotes section? Maybe this is a silly suggestion… But maybe it's not?

  1. I'm not actually sure if a linear HSB colorspace is possible. I'd need to do a little searching and researching. For all I know, HSB already is linear, to make it more intuitive to use.

Is anyone else having trouble with their views counter? I updated one of my stories and people are commenting on the story, however the views is still the amount it had before the update.

The downside is that you can't even read it by highlighting the text. Or even see that there is any text, because the text-highlight will ALSO become transparent. :twilightoops:

additional linebreak

Further linebreak which would otherwise just be replaced by a single linebreak, which is terrible for formatting.

Good for circumventing some of fimfiction's formatting bugs though. :twilightsmile:

But... where's my meme function?


Changeling space program?


Yeah. My favourite solution for that issue with HTML and footnotes is how Sphinx implemented it.

It hyperlinks the footnote markers to the footnotes and vice-versa and even supports referencing the same footnote from multiple places, which will result in multiple reverse links on the same footnote.


You don't need BBcode for that. In fact, Markdown (as used on GitHub, StackExchange, and so on) is explicitly designed to not be a security sandbox and supports embedding <html>...</html> chunks in among the lightweight markup.

BBcode is basically a holdover from before developers had easy access to good HTML sanitizers and needed a hack to make "escape all literal HTML, then translate special markup into the accepted subset of it" their alternative.

The proper solution (which is what you're supposed to stick on the output end of a Markdown renderer) is to use a whitelist-based HTML sanitizer built on top of a proper HTML parser. For example:

That way, the markup has nothing to do with your site's security and is purely a matter of user convenience independent from the whitelist you feed into the sanitizer. (And it makes WYSIWYG post editors easy to offer to users who prefer them.)

Then, for belt-and-suspenders safety, design your site so none of the CSS or JavaScript which powers it is declared inline or attached by modifying the DOM, and then declare a Content Security Policy to instruct CSP-supporting browsers to ignore any CSS or JavaScript that's either declared inline within the HTML or served from domains you don't control.

Yay, footnotes!

Doesn't look like the opacity tag works on images. Works with colors, tho'. I'll have to play around with it!

--Sweetie Belle

If it's of any interest, I just whipped up a POC for footnote tooltips: https://gist.github.com/chall8908/93892e1abd437dbae5052c60be62e1cf

Nice; I used to set my text to just a few hexadecimal values short of pure white to hide stuff in my comments. This opacity tag sounds quite useful, especially if it's added the the comment box toolbar (likely under the "Show More" option, or next to the colour wheel) to made it more obvious and readily-accessible.

The footnote feature could be used to show translations, should a different language (real or fictional) be used in a story. It would also likely differentiate that kind of information from the Author's Note stuff, where miscellaneous information is sometimes placed. It might be primitive now, but I do see it potentially becoming quite useful.

So, there's a feature I've been wanting for a while. Would it be possible to implement a tag that converts whatever is in the tag to the username of a logged in user, or if no one is logged in it displays whatever text is in the tagged area instead? It would make second person stories much more enjoyable to read and far more fun to write if we could have "Anon" read as "Meep the Changeling" if I read it while logged in. I know that DOS can do that with the %username% variable, so I dont' see why BB code can't.

this will probably never be noticed, but can we please get something to filter for already read stories?

Login or register to comment