From ea635ffac9e5447eb075312c8ea60cfaa3707a17 Mon Sep 17 00:00:00 2001 From: Tomodachi94 Date: Sat, 22 Jun 2024 00:10:41 -0700 Subject: [PATCH] doctoc: init at 2.2.0 --- pkgs/by-name/do/doctoc/package.nix | 35 +++++++++++++++++++ .../test-generates-valid-markdown/default.nix | 14 ++++++++ .../test-generates-valid-markdown/input.md | 11 ++++++ 3 files changed, 60 insertions(+) create mode 100644 pkgs/by-name/do/doctoc/package.nix create mode 100644 pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix create mode 100644 pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md diff --git a/pkgs/by-name/do/doctoc/package.nix b/pkgs/by-name/do/doctoc/package.nix new file mode 100644 index 000000000000..faded51f4431 --- /dev/null +++ b/pkgs/by-name/do/doctoc/package.nix @@ -0,0 +1,35 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, + callPackage, +}: + +buildNpmPackage rec { + pname = "doctoc"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "thlorenz"; + repo = "doctoc"; + rev = "v${version}"; + hash = "sha256-LYVxW8bZ4M87CmBvPyp4y0IeL9UFawwAKnUWHEWB5Gs="; + }; + + npmDepsHash = "sha256-TbAnFpiN/v6xjQQznL/B180f0W48HPRqW21cO9XZhYA="; + + dontNpmBuild = true; + + passthru.tests = { + generates-valid-markdown = callPackage ./test-generates-valid-markdown { }; + }; + + meta = { + description = "Generate table of contents for Markdown files"; + homepage = "https://github.com/thlorenz/doctoc"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tomodachi94 ]; + mainProgram = "doctoc"; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix b/pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix new file mode 100644 index 000000000000..d986566bde4f --- /dev/null +++ b/pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix @@ -0,0 +1,14 @@ +{ runCommandNoCC, doctoc }: +runCommandNoCC "doctoc-test-generates-valid-markdown.md" { nativeBuildInputs = [ doctoc ]; } '' + cp ${./input.md} ./target.md && chmod +w ./target.md + doctoc ./target.md + + # Ensure that ./target.md changed + cmp --quiet ${./input.md} ./target.md && echo "doctoc-test-generates-valid-markdown: files unchanged, test fails" && exit 1 + # Check for DocToc's default title + grep --fixed-strings '**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*' target.md + # Check for at least one Markdown anchor link + grep --extended-regexp '\- \[.*\]\(#[a-z-]*\)' target.md + + cp target.md $out +'' diff --git a/pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md b/pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md new file mode 100644 index 000000000000..e15e445a04be --- /dev/null +++ b/pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md @@ -0,0 +1,11 @@ +# Hello Nixpkgs! + +## I am a document consisting entirely of headings. + +### Woah, it's a third-level heading! + +#### A fourth-level... + +### Another third-level! + +## A second level.