Guide
Introduction
ng2nlm is a simple command line tool
designed to turn a Norton
Guide file into a single
Markdown file that can be uploaded
to Google's NotebookLM (or presumably used
with other LLM tools for similar purposes).
It's probably fair to say that it's "opinionated" in that I wrote this to serve my specific purpose; but where possible I've attempted to make it generic and configurable.
Installing
ng2nlm is a Python application and is distributed via
PyPI. It can be installed with tools such
as pipx:
pipx install ng2nlm
or uv:
uv tool install ng2nlm
Also, if you do have uv installed, you can simply use
uvx:
uvx ng2nlm
to run ng2nlm.
Command line options
The command is called ng2nlm and all command line options can be found
with:
ng2nlm --help
giving output like this:
usage: ng2nlm [-h] [-a ADDITIONAL_INSTRUCTIONS] [-i INSTRUCTIONS] -g GUIDE
[-s SOURCE] [-v]
Turn a Norton Guide into a NotebookLM source
options:
-h, --help show this help message and exit
-a, --additional-instructions ADDITIONAL_INSTRUCTIONS
Additional instructions to pass on to NotebookLM at
the top of the source
-i, --instructions INSTRUCTIONS
Override the builtin instructions to pass on to
NotebookLM at the top of the source,
-g, --guide GUIDE The path to the Norton Guide
-s, --source SOURCE The path to the file to create as the source for
NotebookLM
-v, --version Show version information
v0.0.1
The key options are:
-g, --guide
This tells ng2nlm the name of the guide to convert.
-s, ---source
This tells ng2nlm the name of the source file to create (the name of the
file that you will use as a source for NotebookLM). If --source isn't
supplied then the name of the guide minus its extension, plus an .md
extension, is assumed.
-a, --additional-instructions
This switch lets you provide some optional additional instructions to
include at the top of the generated file. By default ng2nlm adds some
instructions for the LLM to help and encourage it to "comprehend" the
content of the file; using this switch you can add instructions specific to
the guide you're generating the file for.
Note
This switch serves two purposes: if the value passed to the switch matches the name of a file in your filesystem, the content of that file will be read and used; otherwise the value given to the switch will be used.
-i, --instructions
This switch is similar to the one above, but it lets you overwrite the
instructions that are built into ng2nlm.
Examples
Create a NotebookLM source from a Norton Guide:
ng2nlm --guide ~/Documents/NGs/C52G01B.ng
This will read the contents of C52G01B.ng and create C52G01B.md in the
current working directory.
On the other hand, if you wanted to create the notebook source in a different location and with a different name:
ng2nlm --guide ~/Documents/NGs/C52G01B.ng --source ~/sources/clipper52.md
To add a simple additional instruction when creating the output:
ng2nlm --guide mrdebug.ng --additional-instructions "Remember dark black is the best black"
or to do the same but pull the additional instruction from a file:
ng2nlm --guide mrdebug.ng --additional-instructions ~/.llm/rules.md
Getting help
If you need some help using ng2nlm, or have ideas for improvements, please
feel free to drop by the
discussions and ask or
suggest. If you believe you've found a bug please feel free to raise an
issue.