doctoc: init at 2.2.0

+60
+35
pkgs/by-name/do/doctoc/package.nix
···
··· 1 + { 2 + lib, 3 + buildNpmPackage, 4 + fetchFromGitHub, 5 + callPackage, 6 + }: 7 + 8 + buildNpmPackage rec { 9 + pname = "doctoc"; 10 + version = "2.2.0"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "thlorenz"; 14 + repo = "doctoc"; 15 + rev = "v${version}"; 16 + hash = "sha256-LYVxW8bZ4M87CmBvPyp4y0IeL9UFawwAKnUWHEWB5Gs="; 17 + }; 18 + 19 + npmDepsHash = "sha256-TbAnFpiN/v6xjQQznL/B180f0W48HPRqW21cO9XZhYA="; 20 + 21 + dontNpmBuild = true; 22 + 23 + passthru.tests = { 24 + generates-valid-markdown = callPackage ./test-generates-valid-markdown { }; 25 + }; 26 + 27 + meta = { 28 + description = "Generate table of contents for Markdown files"; 29 + homepage = "https://github.com/thlorenz/doctoc"; 30 + license = lib.licenses.mit; 31 + maintainers = with lib.maintainers; [ tomodachi94 ]; 32 + mainProgram = "doctoc"; 33 + platforms = lib.platforms.all; 34 + }; 35 + }
+14
pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix
···
··· 1 + { runCommandNoCC, doctoc }: 2 + runCommandNoCC "doctoc-test-generates-valid-markdown.md" { nativeBuildInputs = [ doctoc ]; } '' 3 + cp ${./input.md} ./target.md && chmod +w ./target.md 4 + doctoc ./target.md 5 + 6 + # Ensure that ./target.md changed 7 + cmp --quiet ${./input.md} ./target.md && echo "doctoc-test-generates-valid-markdown: files unchanged, test fails" && exit 1 8 + # Check for DocToc's default title 9 + grep --fixed-strings '**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*' target.md 10 + # Check for at least one Markdown anchor link 11 + grep --extended-regexp '\- \[.*\]\(#[a-z-]*\)' target.md 12 + 13 + cp target.md $out 14 + ''
+11
pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md
···
··· 1 + # Hello Nixpkgs! 2 + 3 + ## I am a document consisting entirely of headings. 4 + 5 + ### Woah, it's a third-level heading! 6 + 7 + #### A fourth-level... 8 + 9 + ### Another third-level! 10 + 11 + ## A second level.