about summary refs log tree commit diff
path: root/pkgs/by-name/do
diff options
context:
space:
mode:
authorMasum Reza <50095635+JohnRTitor@users.noreply.github.com>2024-06-23 10:35:25 +0530
committerGitHub <noreply@github.com>2024-06-23 10:35:25 +0530
commit2b8240e99bb1f6d66544c8931a88e9ab77205fc8 (patch)
tree496c926010fd7aabe6398c1485568c393ac4c973 /pkgs/by-name/do
parent550b91a6d4ba24006865f5470dc03613629f014f (diff)
parentea635ffac9e5447eb075312c8ea60cfaa3707a17 (diff)
Merge pull request #321704 from tomodachi94/create/doctoc
doctoc: init at 2.2.0
Diffstat (limited to 'pkgs/by-name/do')
-rw-r--r--pkgs/by-name/do/doctoc/package.nix35
-rw-r--r--pkgs/by-name/do/doctoc/test-generates-valid-markdown/default.nix14
-rw-r--r--pkgs/by-name/do/doctoc/test-generates-valid-markdown/input.md11
3 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/by-name/do/doctoc/package.nix b/pkgs/by-name/do/doctoc/package.nix
new file mode 100644
index 0000000000000..faded51f44317
--- /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 0000000000000..d986566bde4f8
--- /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 0000000000000..e15e445a04be4
--- /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.