This article describes how FlashDocs manages slide layouts and converts arbitrary custom Markdown into slides with your custom layouts and branding. FlashDocs’s Markdown support enables you to provide exact content and structure information (via Markdown) and receive beautiful, on-brand slides with out changing any of the content or structure.

View the Markdown API Request Walk Through

Slide Tree Structure Management

When you upload a document into FlashDocs system (through the upload requests), FlashDocs internally creates a data structure for the slide.

Assume that you upload a Google Slides document to FlashDocs with this slide:

Internally, FlashDocs will store a tree-like data structure for the slide that includes all of the text placeholders. For this slide above, the tree structure will contain the hierarchy of texts like this:

[header]
	[subheader_1]
		[paragraph_1]
	[subheader_2]
		[paragraph_2]
	[subheader_3]
		[paragraph_3]

The tree structure in FlashDocs format is available in the GET request: https://docs.flashdocs.com/api-reference/flashdocs-document-configuration/get-slide-configuration-metadata.

How Markdown Is Used

When you make a Generate Deck request, you can provide Markdown for each slide in the deck. If you provide Markdown, FlashDocs will search for sides in your library and find the most relevant slide layouts that support the Markdown you provided.

FlashDocs then inserts the Markdown directly into the slide, keeping 100% of your content, exactly like you wrote it.

In the following sections, we show various Markdown input types and how they can be inserted into the layout shown above.

Our algorithm that converts Markdown to slides is pretty robust. It can find optimal layouts for various Markdown structures. Below are some examples of Markdown that can be turned into slides using just the 1 slide layout shown in the section above.

Example Markdown Input 1

Markdown Input:

# Header
# Subheader 1
- List item 1
- List item 2
- List item 3
- List item 4
- List item 5
- List item 6
# Subheader 2
- List item 1
- List item 2
- List item 3
- List item 4
- List item 5
- List item 6
# Subheader 3
- List item 1
- List item 2
- List item 3
- List item 4
- List item 5
- List item 6

Corresponding slide generated: https://docs.google.com/presentation/d/1B_OmDXcWHFkpCTIbYv30TZ99hyn9XPBsvEv7-zaWfjY/edit?slide=id.g34cc7965726_0_15#slide=id.g34cc7965726_0_15

Example Markdown Input 2

Markdown Input:

# Header
# Subheader 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
# Subheader 2
- List item 1
- List item 2
- List item 3
- List item 4
- List item 5
- List item 6
# Subheader 3
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- List item 1
- List item 2
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Corresponding slide: https://docs.google.com/presentation/d/1B_OmDXcWHFkpCTIbYv30TZ99hyn9XPBsvEv7-zaWfjY/edit?slide=id.g34cc7965726_0_1#slide=id.g34cc7965726_0_1

Example Markdown Input 3

Markdown Input:

# Header
- List 1
	- List item 1
	- List item 2
	- List item 3
	- List item 4
	- List item 5
	- List item 6
- List 2
	- List item 1
	- List item 2
	- List item 3
	- List item 4
	- List item 5
	- List item 6
- List 3
	- List item 1
	- List item 2
	- List item 3
	- List item 4
	- List item 5
	- List item 6

Corresponding slide generated:

https://docs.google.com/presentation/d/1B_OmDXcWHFkpCTIbYv30TZ99hyn9XPBsvEv7-zaWfjY/edit?slide=id.g34cc7965726_0_29#slide=id.g34cc7965726_0_29