gajus/gitdown

Add ability to inject part of the code

Open

#49 opened on Jan 22, 2017

View on GitHub
 (0 comments) (3 reactions) (0 assignees)JavaScript (51 forks)github user discovery
help wanted

Repository metrics

Stars
 (450 stars)
PR merge metrics
 (PR metrics pending)

Description

Example, if I want to include this fragment https://github.com/gajus/gitdown/blob/12c91a46f33a0c926a1baed381d0636968c4f0f9/src/gitdown.js#L27-L50

I would surround the code fragment with comments such as:

// gitdown-template-start: foo-fragment
/**
 * Process template.
 *
 * @returns {Promise}
 */
gitdown.get = () => {
  return parser
    .play(input)
    .then((state) => {
      let markdown;

      markdown = state.markdown;

      if (gitdown.getConfig().headingNesting.enabled) {
        markdown = Gitdown.nestHeadingIds(markdown);
      }

      return gitdown
            .resolveURLs(markdown)
            .then(() => {
              return markdown.replace(/<!--\sgitdown:\s(:?off|on)\s-->/g, '');
            });
    });
};
// gitdown-template-end: foo-fragment

where "foo-fragment" is name of the fragment.

Then this snippet can be included into a README document using:

{"gitdown": "snippet", "file": "./src/gitdown.js", "name": "foo-fragment"}

This would be used to inject type declarations, etc. to documentation without needing to repeat them.

Contributor guide