diff --git a/inc/to-html b/inc/to-html
new file mode 100644
index 0000000..e01990a
--- /dev/null
+++ b/inc/to-html
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+# This file is responsible for generating an html structure of documents
+# All md files will be converted to html
+# Everything else will be copied exactly
+
+# The table of contents will be a nested ul structure
+# The top level will be the tags, under each tag there will be a list of documents that are tagged with that tag
+# This will result in doucuments being listed multiple times, once for each tag they are in
+generate-html-toc(){
+ echo ""
+}
+
+to-html(){
+ local destination="$1"
+ local toc="$(generate-html-toc)"
+ echo "$toc"
+}
diff --git a/kb b/kb
index e5942c9..526ca26 100755
--- a/kb
+++ b/kb
@@ -32,6 +32,7 @@ source "inc/tag-management"
source "inc/file-management"
source "inc/yaml"
source "inc/fzf"
+source "inc/to-html"
# Utility functions
# ##################################################
@@ -304,6 +305,26 @@ indexFolder(){
}
+convert(){
+ local destination
+ local method
+
+ while [[ $1 = -?* ]]; do
+ case "$1" in
+ --to-html) method="to-html"; destination="html" ;;
+ esac
+ shift
+ done
+
+ [ -n "$1" ] && destination="$1"
+
+ [ -z "$method" ] && die "You must specify a conversion method"
+ [ -z "$destination" ] && die "You must specify a destination"
+ [ -d "$destination" ] || die "$destination must be a directory"
+
+ "$method" "$destination"
+}
+
mainScript() {
############## Begin Script Here ###################
@@ -319,6 +340,7 @@ mainScript() {
case "${args[0]}" in
add) addFile "${args[@]:1}"; safeExit ;;
+ convert) convert "${args[@]:1}"; safeExit ;;
deepsearch) deepSearch "${args[@]:1}"; safeExit ;;
del|delete) deleteFile "${args[@]:1}"; safeExit ;;
edit) editFile "${args[@]:1}"; safeExit ;;
@@ -354,41 +376,41 @@ usage() {
This tool helps manage my personal knowledge base
Options:
- -q, --quiet Quiet (no output)
- -v, --verbose Output more information. (Items echoed to 'verbose')
- -d, --debug Runs script in BASH debug mode (set -x)
- -h, --help Display this help and exit
- --data The knowledgebase data dir
- --sqlite The sqlite file (default to /knowledgebase.sqlite3
- --editor The editor to use (default $EDITOR or vim)
- --pager The pager to use (default bat or $PAGER or cat)
- --nogit Don't run git commands
- --version Output version information and exit
+ -q, --quiet Quiet (no output)
+ -v, --verbose Output more information. (Items echoed to 'verbose')
+ -d, --debug Runs script in BASH debug mode (set -x)
+ -h, --help Display this help and exit
+ --data The knowledgebase data dir
+ --sqlite The sqlite file (default to /knowledgebase.sqlite3
+ --editor The editor to use (default $EDITOR or vim)
+ --pager The pager to use (default bat or $PAGER or cat)
+ --nogit Don't run git commands
+ --version Output version information and exit
Commands:
- init Initialise a new knowledgebase
- new [options] [title] Create new entry
- --filetype Type of file ( default md)
- edit [title] Edit a file
- list List all files
- --noheader Don't include the header
- --normal List items of type \"normal\"
- list-tags Lists tags with the number of times its used
- --noheader Don't include the header
- purge-tags Deletes any unused tags
- update [] Updates the database and git repo of a changed file
- If 2 files are given, it assumes a move
- view View a file
- add [options] Adds a file
- --asset Adds the file as an asset
- --yaml-header Adds a yaml header (default for markdown files)
- --yaml-file Adds a yaml file (default for non-markdown files)
- fuzzy [command] Fuzzy select a file
- command is what to do with the selected file
- edit or view
- git [options] Run arbitary git commands on the kb repository
- del [title] Delete a file
- index Indexes the folder (usful after a clone etc)
+ init Initialise a new knowledgebase
+ new [options] [title] Create new entry
+ --filetype Type of file ( default md)
+ edit [title] Edit a file
+ list List all files
+ --noheader Don't include the header
+ --normal List items of type \"normal\"
+ list-tags Lists tags with the number of times its used
+ --noheader Don't include the header
+ purge-tags Deletes any unused tags
+ update [] Updates the database and git repo of a changed file
+ If 2 files are given, it assumes a move
+ view View a file
+ add [options] Adds a file
+ --asset Adds the file as an asset
+ --yaml-header Adds a yaml header (default for markdown files)
+ --yaml-file Adds a yaml file (default for non-markdown files)
+ fuzzy [default] Fuzzy select a file
+ git [options] Run arbitary git commands on the kb repository
+ del [title] Delete a file
+ index Indexes the folder (usful after a clone etc)
+ convert [options] [dest] Converts the notes into a different format and puts it in dest
+ --to-html Converts to html
"
}