Code golf for the lazy Your goal in this code golf is to take two strings, language and code (if the golfed code you wrote for this is multiline, then this variable would be multiline.), and one integer, bytes. They represent the variables for a programming language, number of bytes it takes, and the code itself.
After that, you are going to format it like a code golfer does it.
The output variable is a multiline string called answer.
You can use multiline strings on:

C++
Python
Perl
JavaScript

If you search Stack Overflow, you should be able to find more programming languages that support it.
Here is a template of the output markdown. The code variable is in a code block, and there is a second-level header.
## {language}, {bytes} bytes

     {code}

Here is what the output would look like when pasted into a Markdown parser.

{language}, {bytes} bytes
    {code}


Variables are assumed to be filled out already as the language you coded your code golf entry in, the number of bytes it takes, and the actual code for it.
Here is another example of the output as code, this time with variables filled out:
## JavaScript, 1337 bytes

document.getElementById(&quot;foo&quot;).innerHTML = bar;

Here is the version as a blockquote:

JavaScript, 1337 bytes
    document.getElementById(&quot;foo&quot;).innerHTML = bar;


Bytes can be taken off from your code if you use a way to set the text of a &lt;p&gt; element in HTML by the id result, like the following JavaScript code:
document.getElementById(&quot;result&quot;).innerHTML = answer;

Make sure to also include the &lt;p id=&quot;result&quot;&gt;&lt;/p&gt; in the HTML section of JSFiddle for this to work.
Scoring
Like all code-golf questions, the code that uses the least amount of bytes is the best.
Java, 70 bytes

String A(String[]b){return"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];}


Assumes b[0] is the language name, b[1] is the byte count, and b[2] is the code.

Making it compilable costs 9 bytes, resulting in a 79-byte non-standalone program:

class a{String A(String[]b){return"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];}}


The equivalent monolithic program is 103 bytes long:

interface a{static void main(String[]A){System.out.print("## "+A[0]+", "+A[1]+" bytes\n\n    "+A[2]);}}


The monolithic one works with command line arguments, assuming these just like the non-standalone program:


First argument is the language name
Second argument is the byte count
Third argument is the code




Java (lambda expression), 56 48 bytes

(b)-&gt;"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];


This is a java.util.function.Function&lt;String[], String&gt;.



None of these programs/functions handle multiline strings. To do so, simply replace b[2] and A[2] with b[2].replace("\n","\n    ") and A[2].replace("\n","\n    ") - doing so adds 23 bytes.