❶
Set the front matter variable has-code: true to load highlight.js (for syntax highlighting).
❷
Within paragraphs, use backticks (`command`
) or code tags (<code>command</code>
) to mention commands such as regress
or ivreg2
.
❸
Embed code blocks or Stata output with triple backticks:
```
{CONTENT GOES HERE}
```
which looks like this:
. sysuse auto
no; data in memory would be lost
r(4);
❹
Display compact code blocks with the “```output” class. This uses a smaller font and is useful for displaying large blocks of Stata output:
. sysuse auto
no; data in memory would be lost
r(4);
❺
Classes can also highlight code from Stata and many other languages:
program define gr_log
version 6.0
local or = `2'
local xunits = `3'
local b1 = ln(`or')
* make summary of logistic data from equation
set obs `xunits'
generate pgty = 1 - 1/(1 + exp(score))
/**
* Comment 1
*/
reg y x
Python code looks like this:
def somefunc(param1='', param2=0):
r'''A docstring'''
if param1 > param2: # interesting
print 'Gre\'ater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
❻
Finally, for elegant but elaborate results you can combine the pre, code, kbd and samp tags (don’t do it by hand!):
. cls
. reghdfe price weight, a(turn trunk)
(dropped 9 singleton observations)
(converged in 12 iterations)
HDFE Linear regression Number of obs = 65
Absorbing 2 HDFE groups F( 1, 39) = 25.39
Prob > F = 0.0000
R-squared = 0.6347
Adj R-squared = 0.4005
Within R-sq. = 0.3943
Root MSE = 2242.7172
─────────────┬────────────────────────────────────────────────────────────────
price │ Coef. Std. Err. t P>|t| [95% Conf. Interval]
─────────────┼────────────────────────────────────────────────────────────────
weight │ 5.055336 1.003362 5.04 0.000 3.025846 7.084826
─────────────┼────────────────────────────────────────────────────────────────
Absorbed │ F(24, 39) = 1.794 0.049 (Joint test)
─────────────┴────────────────────────────────────────────────────────────────
Absorbed degrees of freedom:
─────────────┬─────────────────────────────────────────────────┐
Absorbed FE │ Num. Coefs. = Categories - Redundant │
─────────────┼─────────────────────────────────────────────────┤
turn │ 13 13 0 │
trunk │ 12 13 1 │
─────────────┴─────────────────────────────────────────────────┘
A starting point could be:
<pre class="output"><code class="language-output">. cls
<kbd>. count if foreign</kbd>
<samp> 22</samp>
</code></pre>
☛
TLDR: Single backticks within paragraphs. Triple backticks for output (output class) and code (stata class + front matter). Resort to low-level HTML elements for custom solutions.
Appendix: Technical Details
HTML handles code elements in both inline and block modes, and the elements can be nested.
Inline code
The existing code-like tags are:
- code
- for general code excerpts:
foreach item in list
- kbd
- for keyboard or command line input: Ctrl+Enter, sudo apt-get update
- var
- for variable names: price weight length
- samp
- for program output: SyntaxError: invalid syntax
Blocks
As above, but surround the above tags with the pre tag:
Code:
foreach item in list
Kbd:
sudo apt-get update
Var:
price weight length
Samp:
variable id does not uniquely identify observations in the master data
Tag Inception
You can also nest tags, so a message like “syntax error, option gen(var) is required” could be input as
<samp>syntax error, option <code>gen(<var>var</var>)</code> is required</samp>
❧</span>