Citing the author of a blockquote using Markdown syntax

Viewed 98061

I am using the Symfony CMS and it uses Markdown for article writing. I need to do a blockquote of a quote from Benjamin Franklin and would like to have the quote followed by a citation beneath it, but right now all it does is blockquote the whole line. How does one do this in markdown syntax?

7 Answers

Markdown has no dedicated citation syntax.

Your best bet is something like this:

> Quote here.
>
> -- <cite>Benjamin Franklin</cite>

which results in:

Quote here.

-- Benjamin Franklin

> The secret to creativity is knowing how to hide your sources. 
> -- <cite>[Albert Einstein][1]</cite>

[1]: http://www.quotedb.com/quotes/2112

If you have a style manual, use its guidelines to determine exactly where to place the citation, etc.

Output of Markdown + Smartypants for the above is

The secret to creativity is knowing how to hide your sources. -- Albert Einstein

> Quote

— Benjamin Franklin

According to the HTML Living Standard, attribution for the quotation must be placed outside the blockquote element.

Attribution for the quotation, if any, must be placed outside the blockquote element.

HTML Standard: 4.4.4. The blockquote element

Note that the cite element represents the title of the work and must not be used to mark up people's names. For more detail check out HTML Standard: 4.5.6 The cite element.

Instead of the hyphen, it is common to use the em dash (U+2014). Many Markdown parsers support Unicode, which means you can write the em dash directly, instead of using HTML entities. Writing such characters directly improves readability, more tools will know what you want and not panic, and your document might be more portable as you are not bounding yourself to HTML.

1. Since any quote it is suppose to have a source, even if it is unknown.

2. Since a markdown > Quote is rendered as <blockquote><p>Quote</p></blockquote> and

> Quote1
>
> Quote2

is rendered as

<blockquote>
  <p>Quote1</p>
  <p>Quote2</p>
</blockquote>

My solution to this is always take the last <p></p> as source and handle it by css (in my case SCSS):

blockquote {
    p {
        display: inline;

        &:first-of-type {
            quotes: '\201C' '\201D' '\2018' '\2019';

            &::before {
                content: open-quote;
                margin-right: 0.1rem;
            }
        }

        &:last-of-type {
            quotes: '\201C' '\201D' '\2018' '\2019';
            font-style: italic;

            &::before {
                content: close-quote "\000A" "\2014" " ";
                white-space: pre;
                margin-left: 0.1rem;
                font-style: normal;
            }
        }

        // In case of a quote without a source.
        &:only-of-type {
            font-style: normal;
            quotes: '\201C' '\201D' '\2018' '\2019';

            &::before {
               content: open-quote;
               margin-right: 0.1rem;
            }

            &::after {
                content: close-quote;
                margin-left: 0.1rem;
            }
        }
    }
}

The \000A it the new line unicode character css format, it help to make the source in appear in the next line, if you don't want, just remove it and add some spaces there. The others are also unicode character css format.

Every pure markdown answer on this page adds a line between the quote and the citation:

Which looks something like this.

-- 0x263a

Or they do:

Something like this. -- 0x263a

But if you don't want that extra newline and you want the citation to appear on a separate line from the quote:

"Like this."
— 0x263a

You can add a \ to the end of your quote.

> "Quote."\
> — <cite>Author<cite>
Related