To use a command, enter
To list available
+---------- available commands ----------------------------------------+ | nsm commands | lists all nsm commands | | nsm config | lists config settings | | nsm clone | input: repository-url | | nsm init | initialise managing a site - input: (site-name) | | nsm status | lists updated and problem pages | | nsm info | input: page-name-1 .. page-name-k | | nsm info-all | lists tracked pages | | nsm info-names | lists tracked page names | | nsm track | input: page-name (page-title) (template-path) | | nsm untrack | input: page-name | | nsm rm or del | input: page-name | | nsm mv or move | input: old-name new-name | | nsm cp or copy | input: tracked-name new-name | | nsm build | input: page-name-1 .. page-name-k | | nsm build-updated | builds updated pages | | nsm build-all | builds all tracked pages | | nsm serve | serves website locally | | nsm bcp | input: commit-message | | nsm new-title | input: page-name new-title | | nsm new-template | input: page-name template-path | +----------------------------------------------------------------------+
Importing/Forking, renaming and cloning a site repository from BitBucket/GitHub/GitLab
You can import/fork and rename an existing site repository on BitBucket, GitHub or GitLab, then clone it using
Initialise managing a site
To start managing a site: first change to the directory you would like to act as the site stage, that is the directory containing all site related files (content and template files inclusive); then run
Note: once the stage directory for your site is set up, much the same as with git,
Listing updated pages
For information on pages that need building and why run
Tracking new pages
To track a new page run
The following should (hopefully) work as valid titles and paths (though if you are going to use spaces/quotes in titles/paths, test it thoroughly before depending on it working):
home "home" "home page" "nick's page" '"quoted title"'
content/index.content ./content/index.content content/'index'.content "content/index.content" 'content/index page.content'
Note: tabs and multiple spaces will currently be morphed into single spaces. If the available options for titles/paths are not flexible enough then ask and I can alter how titles/paths are read.
Listing tracked pages
To list information on all pages run
To untrack a page run
To move a page run
To copy a page run
To remove a page run
To build updated pages run
Building, committing and pushing changes to BitBucket/GitHub/GitLab
If your site is part of a repository for BitBucket, GitHub or GitLab you can have updated pages built along with the changes being committed and pushed using
Serving Your Website Locally
To serve your website locally run
If you would like your website to be served at an IP address, eg. if you are using Nift on a server, try using Python. Run either of the following in the project root directory for a url similar to
python3 -m http.server 8000
python -m SimpleHTTPServer
If you want live reloading check out Live Server which you can get from
Changing a page title or template path
To set a new page title run
What information is tracked for a page?
What is a page dependency?Anything that when modified requires a page to be built, including:
- changes to information about a tracked page; and
- modifications to content files and/or template files.
Note: the modification/removal of a page file is intentionally not considered a page dependency. This is so that, should the user want to, pages may be moved (not just copied) outside the stage directory without
Nift track modifications to page dependencies?
The information stored in a page information file represents the information from the last time the page was built. If the information file does not exist, as far as