Markdown Migration

Princess Celestia
The End wasn't The End - Found a new home after the great exodus of 2012

Administrator
Devops

Markdown

Greetings and welcome to one of the most exciting changes to the site yet: Markdown
We are replacing outdated and not very feature-rich text processing engine which we have been using so far, Textile, with something more widely used across the internet: Markdown.

Sounds cool but what does it do?

Markdown, just like Textile, is a text processing engine. It’s powering every single user interactable text that you see on the site. Everything from comments and forum posts to more obscure things like tag descriptions and report text are processed via these text processing engines.

Why the change?

Textile was getting fairly outdated and with other resources, such as Discord, Telegram, Slack, Github and many others using Markdown, it’s been an obvious choice for us. With most of the internet already using Markdown to format its content, most people would be familiar with it to some degree. This familiarity, safety, user-friendliness and the fact that it has less bugs that our Textile parser, were the driving force behind this change.

What flavor of Markdown does Derpibooru use?

We’re using Github-Flavored Markdown with our own modifications to support syntax commonly used on our site. Of notable things that we have implemented into our version of CommonMark we should note the following:
  • Subscript
  • Spoilers
  • Strikethrough
  • Underline
  • >>image syntax
  • Blockquotes that don’t require lots of empty lines and require a space after them

How is it implemented?

We have forked and modified comrak to achieve our features. The Elixir code of the site compiles and plugs the Rust code to render Markdown.

What now?

We are implementing the change in baby steps. They are as follows:
  1. Provide initial implementation with Textile->Markdown translation layer
    • In this phase, Textile is converted to Markdown and rendered by Markdown.
    • No database changes have been made yet. This is purely visual.
    • Test to see if there are any translation issues or bugs.
    • You can still write textile, but most of Markdown syntax will work as well (it might get interfered with by the conversion layer, though)
  2. Convert all existing posts and interactions from Textile to Markdown and write changes to database.
    • During this phase all new posts created will still be treated like Textile posts, but their Markdown representation will be written to the database.
    • Posts will still be rendered by converting from Textile to Markdown
    • During this phase, editing old posts will still be done using the Textile syntax.
  3. Finalize the conversion by removing Textile versions of old posts. Markdown will become the sole markup on the site.

We are currently at phase #3

Q&A

Can I already write Markdown?

Yes, but due to conversion layer in-between you might run into issues where Textile and Markdown syntax collides.

How do I write Markdown?

Current draft version of the syntax guide may be found here. Please note that it’s incomplete and is a subject to change.

Can I write raw HTML?

No. It will simply be escaped and output as plain text.

Why is there this exact same thread on Furbooru?

Because I’m a lazy potat.

OMG I spotted a bug!

Please reply to this thread and tell us about it! We expect things to break and be buggy, this is why we’re hesitant to write anything to the database just yet.
Have fun!
Background Pony #EDC4
Conversion bugs:  
Newlines are not preserved:  
>>576573  
In original there’s three newlines between “to cry or to panic.” and “He arrived at the Hospital”, conversion ate them.  
In original there’s a lot of two newlines, conversion turned them all into paragraphs.
Princess Celestia
The End wasn't The End - Found a new home after the great exodus of 2012

Administrator
Devops
Markdown, just like Textile, is a text processing engine. It’s powering every single user interactable text that you see on the site. Everything from comments and forum posts to more obscure things like tag descriptions and report text are processed via these text processing engines.
k154

I’m up against it.  
I use firefox 52.9.0 on XP for browsing.  
Discord, Telegram, Slack, Github have not gotten any better, they have turned into very heavy sites aimed at Chrome that don’t display properly on firefox 52. Not everyone uses gpu.  
And sites like deviantart just turned to s*it and I was forced to leave them.  
I don’t want to leave your site I’ve been on for 9 years. Your site is 120% ok, no need to change anything.
Princess Celestia
The End wasn't The End - Found a new home after the great exodus of 2012

Administrator
Devops
@k154  
Does the site look broken to you right now? If something is really broken, please let me know in this thread! I’d really like to fix the issues so that this is as seamless as possible, and since things are already being rendered exactly how they would be rendered in the future, you should now be getting experience comparable to post-migration.
 
Also, you really shouldn’t be using such an outdated OS and browser, for your own security’s sake.
TexasUberAlles
Duck - If report count was a score, he'd have the biggest score
Silly Pony - Celebrated the 13th anniversary of MLP:FIM, and 40 years of MLP!
Shimmering Smile - Celebrated the 10th anniversary of Equestria Girls!
Lunar Supporter - Helped forge New Lunar Republic's freedom in the face of the Solar Empire's oppressive tyrannical regime (April Fools 2023).
Roseluck - Had their OC in the 2023 Derpibooru Collab.
Flower Trio - Helped others get their OC into the 2023 Derpibooru Collab.
King Sombra - Celebrated the 10th anniversary of The Crystal Empire!
A Lovely Nightmare Night - Celebrated the 12th anniversary of MLP:FIM!
Princess of Love - Extra special version for those who participated in the Canterlot Wedding 10th anniversary event by contributing art.
Tree of Harmony - Drew someone's OC for the 2022 Community Collab

@Cosmas-the-Explorer  
But will these be changes us tech peasents will be able to notice?  
Anyone who doesn’t know the various keyboard commands for italics, bold, etc. in Markdown will eventually have to start using the actual buttons above the text field.
 
…Also apparently line breaks in inline links are no longer supported? I had to make your username and the quote two separate links instead of just hitting [Enter↩]after the username and Ctrl+Ving the quote on the next line.
Interested in advertising on Derpibooru? Click here for information!
Pony Arts & Prints!

Help fund the $15 daily operational cost of Derpibooru - support us financially!

Syntax quick reference: **bold** *italic* ||hide text|| `code` __underline__ ~~strike~~ ^sup^ %sub%

Detailed syntax guide