Skip to content

Commit

Permalink
fix: Support code blocks with four spaces
Browse files Browse the repository at this point in the history
Closes #1218.
  • Loading branch information
Gerrit0 committed Feb 28, 2020
1 parent 1ec2fb8 commit 148bd12
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 26 deletions.
5 changes: 4 additions & 1 deletion examples/basic/src/modules.ts
@@ -1,5 +1,8 @@
/**
* ...
* This comment has a code block that is only marked by indentation.
*
* @thisIsADecorator
* class Foo {}
*/

/**
Expand Down
9 changes: 5 additions & 4 deletions src/lib/converter/factories/comment.ts
Expand Up @@ -189,16 +189,17 @@ export function parseComment(text: string, comment: Comment = new Comment()): Co
}

const CODE_FENCE = /^\s*```(?!.*```)/;
let inCode = false;
let inFencedCode = false;
function readLine(line: string) {
line = line.replace(/^\s*\*? ?/, '');
line = line.replace(/\s*$/, '');

if (CODE_FENCE.test(line) ) {
inCode = !inCode;
if (CODE_FENCE.test(line)) {
inFencedCode = !inFencedCode;
}

if (!inCode) {
// Four spaces can be used to make code blocks too.
if (!inFencedCode && !line.startsWith(' ')) {
const tag = /^\s*@(\S+)(.*)$/.exec(line);
if (tag) {
return readTagLine(line, tag);
Expand Down
28 changes: 15 additions & 13 deletions src/test/renderer/specs/modules/_modules_.html
Expand Up @@ -69,8 +69,10 @@ <h1>External module &quot;modules&quot;</h1>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>...</p>
<p>This comment has a code block that is only marked by indentation.</p>
</div>
<pre><code>@thisIsADecorator
<span class="hljs-keyword">class</span> <span class="hljs-symbol">Foo</span> {}</code></pre>
</div>
</section>
<section class="tsd-panel-group tsd-index-group">
Expand Down Expand Up @@ -108,7 +110,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> exported<wbr>Global<wbr>Variabl
<div class="tsd-signature tsd-kind-icon">exported<wbr>Global<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;foo&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L49">modules.ts:49</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L52">modules.ts:52</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -123,7 +125,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> global<wbr>Variable</h3>
<div class="tsd-signature tsd-kind-icon">global<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;foo&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L54">modules.ts:54</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L57">modules.ts:57</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -138,7 +140,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> type<wbr>Literal</h3>
<div class="tsd-signature tsd-kind-icon">type<wbr>Literal<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>valueA<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>valueB<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>valueX<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>valueA<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">; </span>valueY<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>z<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-symbol">{ </span>a<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>b<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>valueZ<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>valueY<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>valueZ<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L71">modules.ts:71</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L74">modules.ts:74</a></li>
</ul>
</aside>
<div class="tsd-type-declaration">
Expand Down Expand Up @@ -230,7 +232,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> object<wbr>Literal</h3>
<div class="tsd-signature tsd-kind-icon">object<wbr>Literal<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L59">modules.ts:59</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L62">modules.ts:62</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -244,7 +246,7 @@ <h3>valueA</h3>
<div class="tsd-signature tsd-kind-icon">valueA<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 100</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L67">modules.ts:67</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L70">modules.ts:70</a></li>
</ul>
</aside>
</section>
Expand All @@ -254,7 +256,7 @@ <h3>valueB</h3>
<div class="tsd-signature tsd-kind-icon">valueB<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = true</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L68">modules.ts:68</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L71">modules.ts:71</a></li>
</ul>
</aside>
</section>
Expand All @@ -264,7 +266,7 @@ <h3>valueZ</h3>
<div class="tsd-signature tsd-kind-icon">valueZ<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;foo&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L60">modules.ts:60</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L63">modules.ts:63</a></li>
</ul>
</aside>
</section>
Expand All @@ -278,7 +280,7 @@ <h3>valueY</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L61">modules.ts:61</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L64">modules.ts:64</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
Expand All @@ -291,7 +293,7 @@ <h3>valueX</h3>
<div class="tsd-signature tsd-kind-icon">valueX<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L62">modules.ts:62</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L65">modules.ts:65</a></li>
</ul>
</aside>
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-object-literal tsd-is-not-exported">
Expand All @@ -300,7 +302,7 @@ <h3>valueA</h3>
<div class="tsd-signature tsd-kind-icon">valueA<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [100, 200, 300]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L65">modules.ts:65</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L68">modules.ts:68</a></li>
</ul>
</aside>
</section>
Expand All @@ -310,7 +312,7 @@ <h3>valueZ</h3>
<div class="tsd-signature tsd-kind-icon">valueZ<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;foo&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L63">modules.ts:63</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L66">modules.ts:66</a></li>
</ul>
</aside>
</section>
Expand All @@ -324,7 +326,7 @@ <h3>valueY</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L64">modules.ts:64</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L67">modules.ts:67</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down
12 changes: 6 additions & 6 deletions src/test/renderer/specs/modules/_modules_.mymodule.html
Expand Up @@ -111,7 +111,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> exported<wbr>Module<wbr>Variabl
<div class="tsd-signature tsd-kind-icon">exported<wbr>Module<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;foo&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L31">modules.ts:31</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L34">modules.ts:34</a></li>
</ul>
</aside>
</section>
Expand All @@ -121,7 +121,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> module<wbr>Variable</h3>
<div class="tsd-signature tsd-kind-icon">module<wbr>Variable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [100, 200]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L33">modules.ts:33</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L36">modules.ts:36</a></li>
</ul>
</aside>
</section>
Expand All @@ -131,7 +131,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> module<wbr>Variable2</h3>
<div class="tsd-signature tsd-kind-icon">module<wbr>Variable2<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L35">modules.ts:35</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L38">modules.ts:38</a></li>
</ul>
</aside>
</section>
Expand All @@ -144,7 +144,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> object</h3>
<div class="tsd-signature tsd-kind-icon">object<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L12">modules.ts:12</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L15">modules.ts:15</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -158,7 +158,7 @@ <h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;Test&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L16">modules.ts:16</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L19">modules.ts:19</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -177,7 +177,7 @@ <h3>print</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L21">modules.ts:21</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L24">modules.ts:24</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down
Expand Up @@ -101,7 +101,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> a</h3>
<div class="tsd-signature tsd-kind-icon">a<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L28">modules.ts:28</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L31">modules.ts:31</a></li>
</ul>
</aside>
</section>
Expand All @@ -111,7 +111,7 @@ <h3><span class="tsd-flag ts-flagLet">Let</span> b</h3>
<div class="tsd-signature tsd-kind-icon">b<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L43">modules.ts:43</a></li>
<li>Defined in <a href="https://github.com/sebastian-lenz/typedoc/blob/master/examples/basic/src/modules.ts#L46">modules.ts:46</a></li>
</ul>
</aside>
</section>
Expand Down

0 comments on commit 148bd12

Please sign in to comment.