• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

earldouglas / codedown / #198

25 Dec 2023 08:09PM UTC coverage: 83.495% (-5.0%) from 88.525%
#198

push

earldouglas
Prototype a new --section option

26 of 48 branches covered (0.0%)

37 of 47 new or added lines in 2 files covered. (78.72%)

86 of 103 relevant lines covered (83.5%)

1.42 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.95
/lib/codedown.js
1
(function(root) {
1✔
2

3
  'use strict';
4

5
  var marked    = root.marked || require('marked');
1✔
6
  var readline  = root.readline || require('readline');
1✔
7
  var minimatch = root.minimatch || require("minimatch");
1✔
8

9
  var codedown = function(src, lang, separator, section) {
1✔
10

11
    if (separator === undefined) {
1!
12
      separator = '';
1✔
13
    }
14

15
    separator = separator + '\n';
1✔
16

17
    var renderer = new marked.Renderer();
1✔
18

19
    var renderers =
1✔
20
      Object.getOwnPropertyNames(marked.Renderer.prototype);
21

22
    for (var i = 0; i < renderers.length; i++) {
1✔
23
      var f = renderers[i];
21✔
24
      if (f !== 'constructor') {
21✔
25
        renderer[renderers[i]] = function () { return ''; };
20✔
26
      }
27
    }
28

29
    var tracker = [];
1✔
30

31
    renderer.heading =
1✔
32
      function(text, level, raw) {
NEW
33
        var index = level - 1; // 0-based indexing
×
NEW
34
        for (var i = 0; i <= index;  i++) {
×
NEW
35
          tracker[i] = tracker[i] || 0; 
×
36
        }
NEW
37
        tracker[index] = tracker[index] + 1;
×
NEW
38
        return '';
×
39
      };
40

41
    renderer.code =
1✔
42
      function (src, language, escaped) {
43

44
        var result = '';
1✔
45

46
        if (
1!
47
          language && minimatch(language, lang) &&
3!
48
          (!section || tracker.join('.').startsWith(section))
49
        ) {
50
          result = separator + src + '\n';
1✔
51
        }
52

53
        return result;
1✔
54
      };
55

56
    renderer.listitem = function (text) { return text; };
2✔
57
    renderer.list = function (body, ordered) { return body; };
1✔
58

59
    marked.use({ renderer: renderer });
1✔
60

61
    var output = marked.parse(src);
1✔
62
    output = output.replace(/\n+$/g, '');
1✔
63

64
    return output.substring(separator.length);
1✔
65
  };
66

67
  root.codedown = codedown;
1✔
68

69
  if (typeof module !== 'undefined' && typeof exports === 'object') {
1!
70
    module.exports = codedown;
1✔
71
  } else if (typeof define === 'function' && define.amd) {
×
72
    define(function() { return codedown; });
×
73
  } else {
74
    root.codedown = codedown;
×
75
  }
76
})(this || (typeof window !== 'undefined' ? window : global));
1!
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc