Migration
Pre condition: You have a Spec-Up installation up and running
What you'll need
- A terminal / Command Line
- An editor, also called IDE (Integrated Development Environment). We recommend Visual Studio Code, but an editor in which you can quickly write Markdown is also good
- Node.js:
- When installing Node.js, you are recommended to check all checkboxes related to dependencies
- Use Node.js version 18 or higher
- A webbrowser. You are probably reading this in a browser, so you already have one
- Git. To host your specification on Github, you must also have Git installed on your local system. By the way, you can also create a specification (index.html) without hosting it on GitHub. But if you do so, the whole idea of a version-managed glossary using Git goes through the window.
::: note Non-technical Info Non-technical explanation:
- Command Line: A text interface to type commands for your computer.
- IDE: A software where you can easily write, test, and debug code.
- Node.js: This makes Spec-Up and Spec-Up-T run
- Git: A system to track and manage changes in your code. :::
Save your data
Back-up Specs.json to specs-backup.json
Back-up package.json to package-backup.json
mv specs.json specs-backup.json
mv package.json package-backup.json
Be sure to get the latest specs.json here from the starter pack and save into the root of the repo.
Modify your Spec-Up installation with Spec-Up-T install
We consider migration a task for the roles developer
or administrator
.
It's about file management. It's in line with how static website generator generally work. So, be aware that you only organize your files in the migration process, you then configure your configuration files and you're good to go. Spec-Up-T will:
- create the
terms-index.json
in the root of the repo - generate the glossary in
index.html
- creates
specs-generated.json
in the output directory, DON'T TOUCH
By hand you have to:
cd ./spec
pwd
touch terms-and-definitions-intro.md
This creates terms-and-definitions-intro.md
in the /spec
directory DON'T TOUCH this file further
Feel free to reorganize the order of term in the glossary
Open the terms-index.json
with a text editor in the root of the repo and change the order of terms. You can even throw terms out.
::: note Plan to change
terms-index.json
will be a file that can't be editted by the user. We'll create the following process:
- a user bypasses a term file (that is in draft) using an
_
(underscore) as the first character of the file name - a user create a custom order (default: alphabetically) by putting an order number as the first 3 characters of a filename. Example:
10_validator.md
,15_autonomous-identifier.md
, etc.
This method is adopted from Docusaurus. :::
Prepare specs.json
We copy the new specs.json structure for Spec-Up-T
{
"specs": [
{
"title": "Spec-Up-T Starterpack",
"spec_directory": "./spec",
"spec_terms_directory": "terms-definitions", | <- choose your name! |
"output_path": "./docs",
"markdown_paths": [
"intro.md",
**| copy your .md files here, listed in specs.json-backup, excluding the terminology md files |**
],
"logo": "https://raw.githubusercontent.com/blockchainbird/spec-up-t-starter-pack/main/spec-up-t-starterpack/logo.svg",
"logo_link": "https://github.com/blockchainbird/spec-up-t",
"source": {
"host": "github",
"account": "blockchainbird",
"repo": "spec-up-t-demo-on-documentation-website"
},
"external_specs": [
{
"test-1": "https://blockchainbird.github.io/spec-up-xref-test-1/"
},
{
"test-2": "https://blockchainbird.github.io/spec-up-xref-test-2/"
}
],
"external_specs_repos": [
{
"external_spec": "test-1",
"url": "https://github.com/blockchainbird/spec-up-xref-test-1",
"terms_dir": "spec/term-definitions"
},
{
"external_spec": "test-2",
"url": "https://github.com/blockchainbird/spec-up-xref-test-2",
"terms_dir": "spec/term-definitions"
}
],
"katex": false,
"searchHighlightStyle": "ssi"
}
]
}
Be sure to get the latest specs.json here
Copy your old order of files from specs-backup.json
and add terms-and-definitions-intro.md
somewhere in the list (you choose the order!)
Alter package.json
Follow the instructions here: Update package.json
Copy Spec-Up-T specific files
Follow the instructions here: Make Spec-Up-T operational
Terms in their own directory
| TBW why are we doing this |
You should place the terms in their own directory. This directory is defined in specs.json as spec_terms_directory
.
Alter the configuration according to your wishes and place all term-files the directory. Also see Organize your Terminology data
Npm Install
Delete your node_modules
directory and package-lock.json
file.
Install Spec-Up-T and install all dependencies:
npm install
Go into the menu
npm run menu
Add new terms: option 6
Generate the specification
npm run menu
1
It can take some time, and you should see multiple lines of output during installation.
When the prompt is visible again, you should now have a Spec-Up-T install of your former Spec-Up install:
- a
specs.json
file of the Spec-Up-T structure - a
spec/
directory with your markdown files - a
node_modules
directory, and apackage-lock.json
file (these elements belong to thenpm
system together with the earlier processed, modified-by-handpackage.json
)
What you also should have is:
- a
docs
directory with a generatedindex.html
file (which is the actual specification file that is the goal of it all).
Add repo to Github
Follow the steps to take here if you want to use a different account or repo: Add repo to Github
Organize your Terminology data
- Split your Terms and Definition into separate files under a directory in
/spec
directory