{"id":23143506,"url":"https://github.com/digitalinteraction/wiki-md","last_synced_at":"2026-05-07T10:31:21.368Z","repository":{"id":57133954,"uuid":"189601478","full_name":"digitalinteraction/wiki-md","owner":"digitalinteraction","description":"Generate a wiki website from structured markdown pages","archived":false,"fork":false,"pushed_at":"2020-09-09T04:20:10.000Z","size":397,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-27T18:14:47.594Z","etag":null,"topics":["javascript","npm","static-site-generator","wiki"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalinteraction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-31T13:48:58.000Z","updated_at":"2024-11-08T12:31:41.000Z","dependencies_parsed_at":"2022-09-04T09:10:35.667Z","dependency_job_id":null,"html_url":"https://github.com/digitalinteraction/wiki-md","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/digitalinteraction/wiki-md","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fwiki-md","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fwiki-md/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fwiki-md/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fwiki-md/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalinteraction","download_url":"https://codeload.github.com/digitalinteraction/wiki-md/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fwiki-md/sbom","scorecard":{"id":342531,"data":{"date":"2025-08-11","repo":{"name":"github.com/digitalinteraction/wiki-md","commit":"d9027a8c69504e2376d44e844885e6c6fcb849e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: containerImage not pinned by hash: Dockerfile:2: pin your Docker image by updating node:10-alpine to node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28","Info:   0 out of   1 containerImage dependencies pinned","Info:   1 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":0,"reason":"75 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-jc84-3g44-wf2q","Warn: Project is vulnerable to: GHSA-3gx7-xhv7-5mx3","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-ww39-953v-wcq6","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-6fw4-hr69-g3rv","Warn: Project is vulnerable to: GHSA-gqgv-6jq5-jjj9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-3f95-r44v-8mrg","Warn: Project is vulnerable to: GHSA-28xr-mwxg-3qc8","Warn: Project is vulnerable to: GHSA-9p95-fxvg-qgq2","Warn: Project is vulnerable to: GHSA-9w5j-4mwv-2wj8","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-w5p7-h5w8-2hfq","Warn: Project is vulnerable to: GHSA-332q-7ff2-57h2","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T06:13:45.567Z","repository_id":57133954,"created_at":"2025-08-18T06:13:45.567Z","updated_at":"2025-08-18T06:13:45.567Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32733377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","npm","static-site-generator","wiki"],"created_at":"2024-12-17T15:13:34.793Z","updated_at":"2026-05-07T10:31:21.348Z","avatar_url":"https://github.com/digitalinteraction.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wiki-md\n\nQuickly generate a wiki website from structured markdown files.\n\n\u003c!-- toc-head --\u003e\n\n## Table of contents\n\n- [Usage](#usage)\n  - [GitLab CI usage](#gitlab-ci-usage)\n  - [NPM usage](#npm-usage)\n  - [Cli usage](#cli-usage)\n- [Development](#development)\n  - [Setup](#setup)\n  - [Regular use](#regular-use)\n  - [Irregular use](#irregular-use)\n  - [Testing](#testing)\n  - [Code formatting](#code-formatting)\n\n\u003c!-- toc-tail --\u003e\n\n## Usage\n\nThis cli is designed to be run inside a docker container.\n\nThe command below will:\n\n- Read in markdown files from `./your_pages_directory`\n- Write html files to `./your_output_directory`\n- Set the theme colour to `#4b8aee`\n\n```bash\ndocker run -it --rm \\\n  -v `pwd`/your_pages_directory:/pages \\\n  -v `pwd`/your_output_directory:/dist \\\n  openlab/wiki-md --theme-color=\"#4b8aee\"\n```\n\n### GitLab CI usage\n\nBelow is an example of using `wiki-md` in a [GitLab CI] pipeline, it does a few things:\n\n- Runs command inside the `openlab/wiki-md` docker image\n- Offers customisation through pipeline variables\n- Deploys assets to a server via SCP\n  - Authenticated with an ssh key added via pipeline variables\n\n```yaml\nbuild_and_deploy:\n  image:\n    name: openlab/wiki-md:0.3.1\n    entrypoint: ['/bin/sh', '-c']\n  tags:\n    - docker\n  script:\n    - wiki-md . dist --theme-color=\"$THEME_COLOR\" --site-title=\"SOPs\"\n    - tar -czf dist.tar.gz dist\n    - echo \"$SSH_SECRET\" \u003e deploy_key \u0026\u0026 chmod 600 deploy_key\n    - scp -o StrictHostKeyChecking=no -i deploy_key dist.tar.gz $DEPLOY_HOST:$DEPLOY_PATH/dist.tar.gz\n    - ssh -o StrictHostKeyChecking=no -i deploy_key $DEPLOY_HOST $DEPLOY_PATH/update.sh\n```\n\n### NPM usage\n\nIf you want to experiment you can install the cli with [npm](https://www.npmjs.com/).\n\n```bash\n# Install it globally\nnpm i -g @openlab/wiki-md\n\n# Use the cli\nwiki-md --help\n\n# For example...\nwiki-md pages dist --site-title=\"My wiki\" --theme-color=\"#000000\" --owner-name=\"Geoff\" --owner-link=\"https://r0b.io\" --verbose\n```\n\n### Cli usage\n\nBelow is the cli `--help` output:\n\n```\ncli.js \u003cindir\u003e [outdir]\n\nGenerate a site from local markdown files\n\nCommands:\n  cli.js generate \u003cindir\u003e [outdir]  Generate a site from local markdown files\n                                                                       [default]\n  cli.js serve \u003cindir\u003e [outdir]     Generate a site, serve it locally and\n                                    regenerate on changes\n\nPositionals:\n  indir   Where to recursively look for markdown files                  [string]\n  outdir  Where to put the generated html             [string] [default: \"dist\"]\n\nOptions:\n  --version       Show version number                                  [boolean]\n  --site-title    The title of the site, used in the \u003ctitle\u003e elment\n                                                               [default: \"Wiki\"]\n  --index-file    What file to use to generate index.html files[default: \"home\"]\n  --theme-color   The primary theme color                   [default: \"#23967F\"]\n  --theme-invert  The inverse theme color, something contrasting themeColor\n                                                            [default: \"#ffffff\"]\n  --base-path     The base directory, if served in a folder       [default: \"/\"]\n  --owner-name    The name of the owner of the site        [default: \"Open Lab\"]\n  --owner-link    The link to the owner of the site\n                                          [default: \"https://openlab.ncl.ac.uk\"]\n  --verbose       Whether to describe whats happening [boolean] [default: false]\n  -h, --help      Show help                                            [boolean]\n```\n\n## Development\n\nBelow are instructions for developing this repo\n\n### Setup\n\nTo develop on this repo you will need to have [Docker](https://www.docker.com/) and\n[node.js](https://nodejs.org) installed on your dev machine and have an understanding of them.\nThis guide assumes you have the repo checked out and are on macOS, but equivalent commands are available.\n\nYou'll only need to follow this setup once for your dev machine.\n\n```bash\n# Install all dependencies using npm\nnpm ci\n```\n\n### Regular use\n\nThese are the commands you'll regularly run to develop the API, in no particular order.\n\n```bash\n# Run the CLI\n# -\u003e The -- is needed to that any args are passed to cli.js\nnpm run dev -s --\n\n# Output cli help\nnpm run dev -s -- --help\n\n# Run a http server to serve files\n# -\u003e Run in a new terminal tab\nnpx http-server\n```\n\n### Irregular use\n\nThese are commands you might need to run but probably won't, also in no particular order.\n\n```bash\n# Build the docker image\nVERSION=0.2.0\ndocker build -t openlab/wiki-md:$VERSION .\ndocker push openlab/wiki-md:$VERSION\n\n# Lint the source code\n# -\u003e Uses ESLint to check for common errors\nnpm run lint\n\n# Format source code\n# -\u003e Uses prettier to automatically format code\n# -\u003e This already happens automatically when you commit (see below)\nnpm run prettier\n\n# Generate the table of contents for this readme\nnpx md-toc -i\n```\n\n### Testing\n\nThis repo uses [unit tests](https://en.wikipedia.org/wiki/Unit_testing) to ensure that everything is working correctly, guide development, avoid bad code and reduce defects.\nThe [Jest](https://www.npmjs.com/package/jest) package is used to run unit tests.\nTests are any file in `src/` that end with `.spec.js`, by convention they are inline with the source code,\nin a parallel folder called `__tests__`.\n\n```bash\n# Run the tests\nnpm test -s\n\n# Generate code coverage\nnpm run coverage -s\n```\n\n### Code formatting\n\nThis repo uses [Prettier](https://prettier.io/) to automatically format code to a consistent standard.\nIt works using the [husky](https://www.npmjs.com/package/husky)\nand [lint-staged](https://www.npmjs.com/package/lint-staged) packages to\nautomatically format code whenever code is commited.\nThis means that code that is pushed to the repo is always formatted to a consistent standard.\n\nYou can manually run the formatter with `npm run prettier` if you want.\n\nPrettier is slightly configured in [.prettierrc.yml](/.prettierrc.yml)\nand also ignores files using [.prettierignore](/.prettierignore).\n\n---\n\n\u003e - The code at https://github.com/digitalinteraction/wiki-md is a mirror of https://openlab.ncl.ac.uk/gitlab/rob/wiki-md\n\u003e - This project was set up by [puggle](https://npm.im/puggle)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinteraction%2Fwiki-md","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalinteraction%2Fwiki-md","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinteraction%2Fwiki-md/lists"}