vault update: 2024-06-16 18:25:00
Affected files: Index.md config.yml output/mod/arguments.yml output/mod/capabilities.json output/mod/config.yml output/mod/graphers.json output/mod/guid.txt output/mod/html/dynamic_footer_inclusions.html output/mod/html/dynamic_inclusions.html output/mod/html/graph.template.html output/mod/html/graph_full_page.template.html output/mod/html/note.template.html output/mod/modfile_dependencies.json output/mod/paths.json output/mod/user_config.yml
This commit is contained in:
parent
68af92a970
commit
14f050f8f3
517
config.yml
Normal file
517
config.yml
Normal file
@ -0,0 +1,517 @@
|
||||
##########################################################################
|
||||
# PATHS #
|
||||
##########################################################################
|
||||
# The note that will be used as the index.html
|
||||
# should be in obsidian_folder_path_str
|
||||
# Can be absent when toggles/compile_md == False
|
||||
# Use full path or relative path, but don't use ~/
|
||||
obsidian_entrypoint_path_str: './'
|
||||
|
||||
# Input and output path of markdown files
|
||||
# This can be an absolute or a relative path (relative to the working directory when calling obsidianhtml)
|
||||
# Use full path or relative path, but don't use ~/
|
||||
md_folder_path_str: 'output/md'
|
||||
|
||||
# Markdown entrypoint path
|
||||
# This has to be md_folder_path_str + '/index.md' when toggles/compile_md == True
|
||||
# This can be an absolute or a relative path (relative to the working directory when calling obsidianhtml)
|
||||
# Use full path or relative path, but don't use ~/
|
||||
md_entrypoint_path_str: 'output/md/index.md'
|
||||
|
||||
# Output path of HTML files
|
||||
# This can be an absolute or a relative path (relative to the working directory when calling obsidianhtml)
|
||||
# Use full path or relative path, but don't use ~/
|
||||
html_output_folder_path_str: 'output/html'
|
||||
|
||||
module_data_folder: 'output/mod'
|
||||
|
||||
##########################################################################
|
||||
# GLOBAL #
|
||||
##########################################################################
|
||||
# verbosity_ranks = {
|
||||
# "quiet": 0,
|
||||
# "error": 10,
|
||||
# "warning": 15,
|
||||
# "deprecation": 20,
|
||||
# "info": 30,
|
||||
# "debug": 100,
|
||||
# }
|
||||
verbosity: info
|
||||
|
||||
##########################################################################
|
||||
# MODULES #
|
||||
##########################################################################
|
||||
module_list:
|
||||
preparation:
|
||||
# - name: set_subfolder
|
||||
# description: Overwrites html_url_prefix and related settings if --subfolder <value> is provided in the commandline
|
||||
|
||||
- name: process_config
|
||||
description: Merges the user config with default config and runs checks.
|
||||
|
||||
- name: load_paths
|
||||
description: Determine all paths of interest based on input.
|
||||
|
||||
- name: process_config_auto
|
||||
description: Fills in auto values that can be read from the vault config.
|
||||
|
||||
- name: html_templater
|
||||
description: Prepare and export templates used to create html output.
|
||||
persistent: True
|
||||
|
||||
- name: load_graphers
|
||||
persistent: True
|
||||
|
||||
- name: get_file_list
|
||||
description:
|
||||
- Basic file listing based on include_folder/exclude_glob combination
|
||||
- Further filtering can be done in further modules
|
||||
|
||||
- name: parse_metadata
|
||||
description:
|
||||
- Gets the metadata of each markdown file, and stores it under metadata/<rel_filepath>.json
|
||||
|
||||
- name: filter_on_metadata
|
||||
description:
|
||||
- Filter out markdown files that do not comply to certain metadata requirements
|
||||
|
||||
- name: copy_vault_to_tempdirectory
|
||||
description:
|
||||
- Copy vault to temporary directory, so that we can edit the obsidian notes themselves safely.
|
||||
- Must be persistent!
|
||||
persistent: True
|
||||
|
||||
- name: prepare_output_folders
|
||||
description:
|
||||
- Ensures the output folders are created
|
||||
- Optionally removes previous output if it exists in the target directories
|
||||
|
||||
# - name: hydrate_file_list
|
||||
# description:
|
||||
# - Read and parse the selected files, then create a dict with info such as rel_path, full_path, html_rel_path, etc
|
||||
|
||||
convert_note_to_markdown: []
|
||||
convert_markdown_to_html: []
|
||||
|
||||
finalize:
|
||||
- name: resource_logger
|
||||
description:
|
||||
- Creates the log of which module resources were accessed by which module
|
||||
- Requires persistent meta_module of the same name to work!
|
||||
persistent: True
|
||||
method: finalize
|
||||
|
||||
meta_modules_post:
|
||||
- name: resource_logger
|
||||
persistent: True
|
||||
|
||||
# Will create an extra file under module_data_folder/versions/<guid> with timestamp and module name
|
||||
# for each module file written with the self.modfile(...).write() method.
|
||||
# Used for debugging purposes.
|
||||
keep_module_file_versions: False
|
||||
|
||||
# Use the name of the module as a key in the dict below
|
||||
# For accurate configuration settings, consult the spec of the module in question.
|
||||
# Defaults of the modules are shown in the commented blocks
|
||||
module_config:
|
||||
get_file_list:
|
||||
include_glob:
|
||||
value: '*'
|
||||
exclude_glob:
|
||||
value:
|
||||
- ".obsidian/**/*"
|
||||
- ".trash/**/*"
|
||||
- ".DS_Store/**/*"
|
||||
- ".git/**/*"
|
||||
|
||||
# prepare_output_folders:
|
||||
# clean_existing:
|
||||
# description: Files that exist in the output folders are deleted.
|
||||
# value: True
|
||||
# fail_on_existing:
|
||||
# description:
|
||||
# - Exit with error if output folders are not empty.
|
||||
# - Does nothing if clean_existing = True!
|
||||
# value: False
|
||||
|
||||
# filter_on_metadata:
|
||||
# include_on:
|
||||
# description: What metadata to include notes on. Empty list means True by default.
|
||||
# value: [[]]
|
||||
# exclude_on:
|
||||
# description: What metadata to exclude on. Empty list means False by default
|
||||
# value: [[]]
|
||||
|
||||
##########################################################################
|
||||
# OPERATIONS #
|
||||
##########################################################################
|
||||
# When not an empty list, this setting will restrict the subfolders
|
||||
# of the vault that will be included. This allows you to ensure that
|
||||
# only those folders are included in the output. Links pointing to notes
|
||||
# outside of the included folders will be treated as non-existent.
|
||||
# Note that the obsidian_entrypoint_path_str needs to be in one of these folders.
|
||||
# Paths should be relative to the vault root.
|
||||
included_folders: []
|
||||
|
||||
# Exclude glob
|
||||
# The paths are relative to obsidian_folder_path_str
|
||||
# - Start with slash to target specific folder: /subfolder
|
||||
# - Target any folder with name "subfolder": subfolder
|
||||
# Glob patterns supported for copy_vault_to_tempdir_method: shutil, shutil_walk, and for rsync for as far as rsync supports it natively
|
||||
# When turning off copy_vault_to_tempdir, glob patterns are fully supported.
|
||||
# Rules are case sensitive if your filesystem is.
|
||||
exclude_glob:
|
||||
- "/.obsidian"
|
||||
- "/.trash"
|
||||
- "/.DS_Store"
|
||||
- "/.git"
|
||||
|
||||
|
||||
# Deprecated for exclude_glob
|
||||
exclude_subfolders: '<DEPRECATED>'
|
||||
|
||||
# Number of links a note can be removed from the entrypoint note
|
||||
# -1 for no max depth
|
||||
# 0 means only the entrypoint note is processed
|
||||
# 1 means only direct children are processed (and the entrypoint of course)
|
||||
# and so forth. NOTE: DOES NOT APPLY TO INCLUSIONS!
|
||||
max_note_depth: -1
|
||||
|
||||
# =============================== COPY VAULT SETTINGS ============================
|
||||
# Safety feature: make a copy of the provided vault, and operate on that, so that bugs are less likely to affect the vault data.
|
||||
# Should be fine to turn off if copying the vault takes too long / disk space is too limited.
|
||||
# The tempdir is automatically removed on exit of the program.
|
||||
copy_vault_to_tempdir: True
|
||||
|
||||
# Determines the function to use to copy your vault over to the tempdir.
|
||||
# `default` will try to use rsync if it is installed, and otherwise use `shutil`
|
||||
# `rsync` will do the same, but give a warning when it falls back to shutil
|
||||
# `shutil` will just use shutil to copy. Use this when rsync is installed but is giving problems.
|
||||
# `shutil_walk` will walk the directory tree manually, and call the copy function for each branch. This has been seen to work better on Macs in some cases.
|
||||
copy_vault_to_tempdir_method: default
|
||||
|
||||
# Enable to print the files being copied
|
||||
copy_vault_to_tempdir_follow_copy: false
|
||||
# =============================== /COPY VAULT SETTINGS ============================
|
||||
|
||||
|
||||
# ObsidianHtml needs to be able to discern between included notes and included files, because included files
|
||||
# need to be treated differently. This is a configurable setting because we might've missed certain suffixes
|
||||
# of files that are includable.
|
||||
included_file_suffixes: ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'svg', 'mp4', 'webm', 'ogv', 'mov', 'mkv', 'mp3', 'wav', 'm4a', 'ogg', '3gp', 'flac', 'pdf']
|
||||
video_format_suffixes: ['mp4', 'webm', 'ogv', 'mov', 'mkv']
|
||||
audio_format_suffixes: ['mp3', 'webm', 'wav', 'm4a', 'ogg', '3gp', 'flac']
|
||||
|
||||
# files that should be included via an <embed> tag:
|
||||
embeddable_file_suffixes: ['pdf']
|
||||
|
||||
# How to populate non-Markdown files in the output directory.
|
||||
# Note that hard links do not work cross-filesystem, and some environments may need administrative rights to create links.
|
||||
# Hard links are also more prone to data loss due to the sharing of inodes. `symlink` is a good safe bet, if your environment works with it.
|
||||
# If you store your vault in a Git repository, you will need to modify `core.symlinks` in your gitconfig or else only the links will be committed; see `man git-config`.
|
||||
# `default` is `copy` for backwards compatibility to avoid breaking configurations.
|
||||
# `copy` simply copies the files from the input folder to the output.
|
||||
# `symlink` creates a symbolic link, or soft link, that points to the input file.
|
||||
# `hardlink` creates a hard link
|
||||
copy_output_file_method: default
|
||||
|
||||
# If links should be fully resolved before linking.
|
||||
# This is useful on filesystems that do not allow symlinks of symlinks, or where these nested links can affect permissions, like on some BSDs.
|
||||
resolve_output_file_links: true
|
||||
|
||||
# Used to strip the http url hostpart of a link to get a relative link
|
||||
# e.g. for value "https://git.com/user/repo/-/wikis/mywiki/" then:
|
||||
# "https://git.com/user/repo/-/wikis/mywiki/folder/markdown.md" --> /folder/markdown.md
|
||||
md_source_host_urls: []
|
||||
|
||||
##########################################################################
|
||||
# HTML OUTPUT #
|
||||
##########################################################################
|
||||
|
||||
# Will be inputted into the Html template as page title
|
||||
# Not used anywhere else atm.
|
||||
site_name: 'Obsidian-Html/Notes'
|
||||
|
||||
# Use when deploying to https://mydomain.com/html_prefix/ instead of https://mydomain.com/
|
||||
# use '/html_prefix' (prepend slash, no slash at the end)
|
||||
html_url_prefix: ''
|
||||
|
||||
# Provide the fullpath to a template file to use instead of standard template.
|
||||
# Note that this file must contain at least "{content}" somewhere in the page.
|
||||
html_template_path_str: ''
|
||||
|
||||
# Provide an array of custom inclusions (css, javascript, etc) that you would like to be included in the resultant html
|
||||
html_custom_inclusions: []
|
||||
html_custom_footer_inclusions: []
|
||||
|
||||
navbar_links: []
|
||||
|
||||
file_exports: []
|
||||
# file_exports:
|
||||
# - encoding: binary
|
||||
# src: Resources/Includes/favicon.ico
|
||||
# dst: favicon.ico
|
||||
# - src: Resources/Includes/christmas_snowflakes.js
|
||||
# dst: obs.html/static/christmas_snowflakes.js
|
||||
|
||||
##########################################################################
|
||||
# OPTIONAL BEHAVIOR / FEATURES #
|
||||
##########################################################################
|
||||
toggles:
|
||||
stdout_current_file: False
|
||||
|
||||
# Opt-in/-out of Obsidian->Md conversion, set to False when using proper markdown as input
|
||||
compile_md: True
|
||||
|
||||
# Opt-in/-out of Md->Html conversion, set to False when only wanting to get proper markdown from Obsidian
|
||||
compile_html: True
|
||||
|
||||
# For compatibility with vaults/notes that have the 'Strict Line Breaks' option enabled
|
||||
# This is off by default in Obsidian; setting it to True will not insert <br> tags into multi-line paragraphs
|
||||
# Can be true, false, or "auto". The latter will read the vault's app.json for the value.
|
||||
strict_line_breaks: auto
|
||||
|
||||
# gitlab is case insensitive, this setting should be true when converting a wiki from that source
|
||||
# might also be useful if you have markdown links in your vault
|
||||
# note that this does not impact the output, Hello.md will be written to Hello.html
|
||||
force_filename_to_lowercase: True
|
||||
|
||||
# Slugify all HTML links. Note this will affect most internal uses of filename as well, like when matching
|
||||
# against exclusion lists.
|
||||
slugify_html_links: False
|
||||
|
||||
# If this is false only the entrypoint and all its links (recursively) are processed
|
||||
# if true all the notes will be processed
|
||||
process_all: False
|
||||
|
||||
# Can be overwritten ad-hoc by using "obsidianhtml -i config.yml -v" (the -v option)
|
||||
verbose_printout: False # deprecated for verbose
|
||||
|
||||
debug_filetree_keys: False
|
||||
|
||||
# This option should be False for Obsidian->Md, but can be True when compile_md == False
|
||||
# Setting it to True will cause an error when two files with the same file name are found anywhere in the input folder
|
||||
allow_duplicate_filenames_in_root: True
|
||||
|
||||
# Sometimes linked images that should be local (based on the path) cannot be found.
|
||||
# Toggle this to False to disable warnings if that happens.
|
||||
warn_on_skipped_image: True
|
||||
warn_on_skipped_file: True
|
||||
|
||||
# This will skip emptying output folders, if you want to implement this yourself
|
||||
no_clean: False
|
||||
|
||||
# Whether the markdown interpreter assumes relative path when no / at the beginning of a link
|
||||
relative_path_md: True
|
||||
|
||||
# Whether the html paths will be relative.
|
||||
# Note: This is only useful if you want to open the html locally on your machine without using a webserver
|
||||
# and is generally not advised. This will also disable all features that need a webserver to function
|
||||
# such as the graph view.
|
||||
relative_path_html: False
|
||||
|
||||
# Whether external http anchor links should have a target of "_blank"
|
||||
external_blank: False
|
||||
|
||||
# If alt text is specified, place it in a figure caption under the image.
|
||||
img_alt_text_use_figure: True
|
||||
|
||||
# Will preserve inline tags. This will give polluted markdown output
|
||||
preserve_inline_tags: True
|
||||
|
||||
# Will wrap inclusions with <div class="inclusion">{content}</div>
|
||||
wrap_inclusions: False
|
||||
|
||||
features:
|
||||
styling:
|
||||
layout: documentation # documentation, tabs, minimal
|
||||
header_template: full # <full, minimal> currently only supported for documentation layout
|
||||
max_note_width: 120rem # not supported for layout: tabs
|
||||
add_toc: '<DEPRECATED>' # add "[TOC]" (Table of Contents) when missing
|
||||
toc_pane: '<DEPRECATED>' # removes table of contents from the note and puts it in the right pane (not supported for layout:tabs)
|
||||
flip_panes: '<DEPRECATED>' # switch right and left pane around. (does nothing unless in documentation layout.)
|
||||
add_dir_list: True # show directory contents in one of the panes (only documentation layout)
|
||||
accent_color: '65, 76, 253'
|
||||
loading_bg_color: '22, 22, 22'
|
||||
|
||||
theme_picker:
|
||||
enabled: True
|
||||
styling:
|
||||
show_icon: True
|
||||
|
||||
smiles:
|
||||
enabled: False
|
||||
theme: dark # dark, light, oldschool, oldschool-dark, solarized, solarized-dark, matrix, github, carbon, cyberpunk, gruvbox, gruvbox-dark
|
||||
width: "100%" # XXX%, XXXpx, XXX
|
||||
height: "300px" # XXX%, XXXpx, XXX
|
||||
|
||||
code_highlight:
|
||||
enabled: True
|
||||
mermaid_diagrams:
|
||||
enabled: True
|
||||
strip_special_chars: False
|
||||
callouts:
|
||||
enabled: True
|
||||
math_latex:
|
||||
enabled: True
|
||||
backlinks: # Show backlinks at the bottom of each note
|
||||
enabled: True
|
||||
embedded_note_titles:
|
||||
enabled: True
|
||||
hide_on_h1: True # don't add embedded title if the note starts with an h1
|
||||
|
||||
search:
|
||||
enabled: True
|
||||
add_files: True
|
||||
try_preload: False # on page refresh, if search_data is stored in localStorage, it will init search, instead of waiting for the search panel to be opened.
|
||||
styling:
|
||||
show_icon: True
|
||||
|
||||
embedded_search:
|
||||
enabled: False
|
||||
|
||||
tags_page:
|
||||
enabled: True
|
||||
styling:
|
||||
show_icon: True
|
||||
show_in_note_footer: True
|
||||
|
||||
dataview:
|
||||
enabled: False
|
||||
folder: 'obs.html/export' # relative to the vault being processed. this folder should always be in the vault
|
||||
|
||||
folder_notes:
|
||||
enabled: False
|
||||
placement: 'outside folder' # 'inside folder' , 'outside folder'
|
||||
naming: 'folder name' # 'folder name', 'index', 'aurkibidea', 'etc'
|
||||
|
||||
eraser:
|
||||
enabled: True
|
||||
|
||||
breadcrumbs:
|
||||
enabled: False
|
||||
|
||||
# Include code to build the graph view per page
|
||||
graph:
|
||||
enabled: True # Include code to build the graph view per page (default: True)
|
||||
templates:
|
||||
- id: 2d
|
||||
name: 2d
|
||||
path: builtin<2d>
|
||||
- id: 3d
|
||||
name: 3d
|
||||
path: builtin<3d>
|
||||
styling:
|
||||
show_icon: True
|
||||
coalesce_force: '-30'
|
||||
show_inclusions_in_graph: True
|
||||
|
||||
rss:
|
||||
enabled: False
|
||||
host_root: 'https://localhost:8000/'
|
||||
styling:
|
||||
show_icon: True
|
||||
channel:
|
||||
title: 'Notes'
|
||||
website_link: '<https://your website.com>'
|
||||
description: '<your description>'
|
||||
language_code: 'en-us'
|
||||
managing_editor: 'n/a'
|
||||
web_master: 'n/a'
|
||||
items:
|
||||
selector:
|
||||
match_keys: []
|
||||
exclude_keys: []
|
||||
include_subfolders: []
|
||||
exclude_subfolders: ['.git','obs.html']
|
||||
exclude_files: ['not_created.html', 'index.html']
|
||||
description:
|
||||
selectors:
|
||||
- ['yaml','rss:description']
|
||||
- ['first-paragraphs', 2, '<br/><br/>']
|
||||
- ['first-header', 1]
|
||||
title:
|
||||
selectors:
|
||||
- ['yaml','rss:title']
|
||||
- ['first-header', 1]
|
||||
- ['path', ['parent',1], '/', ['stem']]
|
||||
publish_date:
|
||||
selectors:
|
||||
- ['yaml','rss:publish_date']
|
||||
- ['yaml_strip','tags',['date/']]
|
||||
iso_formatted: True
|
||||
format_string: '' #'%Y-%m-%d'
|
||||
default_value: ''
|
||||
|
||||
create_index_from_dir_structure:
|
||||
enabled: True
|
||||
verbose: False
|
||||
rel_output_path: 'obs.html/dir_index.html'
|
||||
styling:
|
||||
show_icon: True
|
||||
exclude_subfolders:
|
||||
- ".git"
|
||||
- "__src"
|
||||
- "md"
|
||||
- "obs.html"
|
||||
exclude_files:
|
||||
- ".gitignore"
|
||||
- "favicon.ico"
|
||||
- "not_created.html"
|
||||
homepage_label: "index"
|
||||
|
||||
# Create a markdown file with links to notes that have one of the given tags.
|
||||
create_index_from_tags:
|
||||
enabled: False
|
||||
verbose: False
|
||||
rel_output_path: 'obs.html/tag_index.md'
|
||||
homepage_label: "index"
|
||||
use_as_homepage: False
|
||||
add_links_in_graph_tree: True
|
||||
tags: []
|
||||
match_on_inline_tags: False
|
||||
styling:
|
||||
include_folder_in_link: False
|
||||
sort:
|
||||
method: 'none' # <key_value, creation_time, modified_time, none> ! created_time not available on Linux!
|
||||
key_path: '' # empty for top level, use ':' to go down multiple levels
|
||||
value_prefix: '' # in case of multiple values under key_path, match on this prefix, and then remove prefix
|
||||
reverse: false # false/true reverses output
|
||||
none_on_bottom: true # will put notes at the bottom that do not have the sort key, otherwise at the top
|
||||
exclude_paths: # don't included these paths in the dir list
|
||||
- ".gitignore"
|
||||
|
||||
table_of_contents:
|
||||
add_toc_when_missing: False # add "[TOC]" (Table of Contents) when missing
|
||||
only_show_for_multiple_headers: True # if there is only one header, don't show the TOC
|
||||
|
||||
side_pane: # only valid for documentation layout
|
||||
left_pane:
|
||||
enabled: True
|
||||
close_if_empty: False
|
||||
width: 20rem
|
||||
contents: dir_tree # <toc, tag_tree, dir_tree, html_page> relevant features should be enabled and configured see docs
|
||||
content_args:
|
||||
rel_path: 'index.html' # used for html_page
|
||||
div_selector: '.content' # used for html_page
|
||||
strip_sub_divs: # used for html_page
|
||||
- '.toc'
|
||||
strip_tags: [] # used for tag_tree
|
||||
|
||||
right_pane:
|
||||
enabled: True
|
||||
close_if_empty: True
|
||||
width: 16rem
|
||||
contents: toc # <toc, tag_tree, dir_tree, html_page> relevant features should be enabled and configured see docs
|
||||
content_args: # used for html_page
|
||||
rel_path: 'index.html'
|
||||
div_selector: '.content'
|
||||
strip_sub_divs:
|
||||
- '.toc'
|
||||
|
||||
footnote_md_extension:
|
||||
enabled: True
|
||||
|
||||
post_processing: []
|
||||
# post_processing:
|
||||
# - module: md_markdown_callouts
|
4
output/mod/arguments.yml
Normal file
4
output/mod/arguments.yml
Normal file
@ -0,0 +1,4 @@
|
||||
command:
|
||||
- convert
|
||||
config_path: config.yml
|
||||
literals: {}
|
6
output/mod/capabilities.json
Normal file
6
output/mod/capabilities.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"directory_tree": true,
|
||||
"search_data": true,
|
||||
"graph_data": true,
|
||||
"embedded_note_titles": true
|
||||
}
|
328
output/mod/config.yml
Normal file
328
output/mod/config.yml
Normal file
@ -0,0 +1,328 @@
|
||||
_css_file: main_documentation.css
|
||||
audio_format_suffixes:
|
||||
- mp3
|
||||
- webm
|
||||
- wav
|
||||
- m4a
|
||||
- ogg
|
||||
- 3gp
|
||||
- flac
|
||||
copy_output_file_method: default
|
||||
copy_vault_to_tempdir: true
|
||||
copy_vault_to_tempdir_follow_copy: false
|
||||
copy_vault_to_tempdir_method: default
|
||||
embeddable_file_suffixes:
|
||||
- pdf
|
||||
exclude_glob:
|
||||
- /.obsidian
|
||||
- /.trash
|
||||
- /.DS_Store
|
||||
- /.git
|
||||
exclude_subfolders: <DEPRECATED>
|
||||
file_exports: []
|
||||
html_custom_footer_inclusions: []
|
||||
html_custom_inclusions: []
|
||||
html_output_folder_path_str: output/html
|
||||
html_template_path_str: ''
|
||||
html_url_prefix: ''
|
||||
included_file_suffixes:
|
||||
- jpg
|
||||
- jpeg
|
||||
- gif
|
||||
- png
|
||||
- bmp
|
||||
- svg
|
||||
- mp4
|
||||
- webm
|
||||
- ogv
|
||||
- mov
|
||||
- mkv
|
||||
- mp3
|
||||
- wav
|
||||
- m4a
|
||||
- ogg
|
||||
- 3gp
|
||||
- flac
|
||||
- pdf
|
||||
included_folders: []
|
||||
keep_module_file_versions: false
|
||||
max_note_depth: -1
|
||||
md_entrypoint_path_str: output/md/index.md
|
||||
md_folder_path_str: output/md
|
||||
md_source_host_urls: []
|
||||
meta_modules_post:
|
||||
- name: resource_logger
|
||||
persistent: true
|
||||
module_config:
|
||||
get_file_list:
|
||||
exclude_glob:
|
||||
value:
|
||||
- .obsidian/**/*
|
||||
- .trash/**/*
|
||||
- .DS_Store/**/*
|
||||
- .git/**/*
|
||||
include_glob:
|
||||
value: '*'
|
||||
module_data_folder: output/mod
|
||||
module_list:
|
||||
convert_markdown_to_html: []
|
||||
convert_note_to_markdown: []
|
||||
finalize:
|
||||
- description:
|
||||
- Creates the log of which module resources were accessed by which module
|
||||
- Requires persistent meta_module of the same name to work!
|
||||
method: finalize
|
||||
name: resource_logger
|
||||
persistent: true
|
||||
preparation:
|
||||
- description: Merges the user config with default config and runs checks.
|
||||
name: process_config
|
||||
- description: Determine all paths of interest based on input.
|
||||
name: load_paths
|
||||
- description: Fills in auto values that can be read from the vault config.
|
||||
name: process_config_auto
|
||||
- description: Prepare and export templates used to create html output.
|
||||
name: html_templater
|
||||
persistent: true
|
||||
- name: load_graphers
|
||||
persistent: true
|
||||
- description:
|
||||
- Basic file listing based on include_folder/exclude_glob combination
|
||||
- Further filtering can be done in further modules
|
||||
name: get_file_list
|
||||
- description:
|
||||
- Gets the metadata of each markdown file, and stores it under metadata/<rel_filepath>.json
|
||||
name: parse_metadata
|
||||
- description:
|
||||
- Filter out markdown files that do not comply to certain metadata requirements
|
||||
name: filter_on_metadata
|
||||
- description:
|
||||
- Copy vault to temporary directory, so that we can edit the obsidian notes themselves
|
||||
safely.
|
||||
- Must be persistent!
|
||||
name: copy_vault_to_tempdirectory
|
||||
persistent: true
|
||||
- description:
|
||||
- Ensures the output folders are created
|
||||
- Optionally removes previous output if it exists in the target directories
|
||||
name: prepare_output_folders
|
||||
navbar_links: []
|
||||
obsidian_entrypoint_path_str: ./
|
||||
obsidian_folder_path_str: <DEPRECATED>
|
||||
resolve_output_file_links: true
|
||||
site_name: Obsidian-Html/Notes
|
||||
toggles:
|
||||
allow_duplicate_filenames_in_root: true
|
||||
compile_html: true
|
||||
compile_md: true
|
||||
debug_filetree_keys: false
|
||||
external_blank: false
|
||||
features:
|
||||
backlinks:
|
||||
enabled: true
|
||||
breadcrumbs:
|
||||
enabled: false
|
||||
callouts:
|
||||
enabled: true
|
||||
code_highlight:
|
||||
enabled: true
|
||||
create_index_from_dir_structure:
|
||||
enabled: true
|
||||
exclude_files:
|
||||
- .gitignore
|
||||
- favicon.ico
|
||||
- not_created.html
|
||||
exclude_subfolders:
|
||||
- .git
|
||||
- __src
|
||||
- md
|
||||
- obs.html
|
||||
homepage_label: index
|
||||
rel_output_path: obs.html/dir_index.html
|
||||
styling:
|
||||
show_icon: true
|
||||
verbose: false
|
||||
create_index_from_tags:
|
||||
add_links_in_graph_tree: true
|
||||
enabled: false
|
||||
exclude_paths:
|
||||
- .gitignore
|
||||
homepage_label: index
|
||||
match_on_inline_tags: false
|
||||
rel_output_path: obs.html/tag_index.md
|
||||
sort:
|
||||
key_path: ''
|
||||
method: none
|
||||
none_on_bottom: true
|
||||
reverse: false
|
||||
value_prefix: ''
|
||||
styling:
|
||||
include_folder_in_link: false
|
||||
tags: []
|
||||
use_as_homepage: false
|
||||
verbose: false
|
||||
dataview:
|
||||
enabled: false
|
||||
folder: obs.html/export
|
||||
embedded_note_titles:
|
||||
enabled: true
|
||||
hide_on_h1: true
|
||||
embedded_search:
|
||||
enabled: false
|
||||
eraser:
|
||||
enabled: true
|
||||
folder_notes:
|
||||
enabled: false
|
||||
naming: folder name
|
||||
placement: outside folder
|
||||
footnote_md_extension:
|
||||
enabled: true
|
||||
graph:
|
||||
coalesce_force: '-30'
|
||||
enabled: true
|
||||
show_inclusions_in_graph: true
|
||||
styling:
|
||||
show_icon: true
|
||||
templates:
|
||||
- id: 2d
|
||||
name: 2d
|
||||
path: builtin<2d>
|
||||
- id: 3d
|
||||
name: 3d
|
||||
path: builtin<3d>
|
||||
math_latex:
|
||||
enabled: true
|
||||
mermaid_diagrams:
|
||||
enabled: true
|
||||
strip_special_chars: false
|
||||
post_processing: []
|
||||
rss:
|
||||
channel:
|
||||
description: <your description>
|
||||
language_code: en-us
|
||||
managing_editor: n/a
|
||||
title: Notes
|
||||
web_master: n/a
|
||||
website_link: <https://your website.com>
|
||||
enabled: false
|
||||
host_root: https://localhost:8000/
|
||||
items:
|
||||
description:
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:description
|
||||
- - first-paragraphs
|
||||
- 2
|
||||
- <br/><br/>
|
||||
- - first-header
|
||||
- 1
|
||||
publish_date:
|
||||
default_value: ''
|
||||
format_string: ''
|
||||
iso_formatted: true
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:publish_date
|
||||
- - yaml_strip
|
||||
- tags
|
||||
- - date/
|
||||
selector:
|
||||
exclude_files:
|
||||
- not_created.html
|
||||
- index.html
|
||||
exclude_keys: []
|
||||
exclude_subfolders:
|
||||
- .git
|
||||
- obs.html
|
||||
include_subfolders: []
|
||||
match_keys: []
|
||||
title:
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:title
|
||||
- - first-header
|
||||
- 1
|
||||
- - path
|
||||
- - parent
|
||||
- 1
|
||||
- /
|
||||
- - stem
|
||||
styling:
|
||||
show_icon: true
|
||||
search:
|
||||
add_files: true
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
try_preload: false
|
||||
side_pane:
|
||||
left_pane:
|
||||
close_if_empty: false
|
||||
content_args:
|
||||
div_selector: .content
|
||||
rel_path: index.html
|
||||
strip_sub_divs:
|
||||
- .toc
|
||||
strip_tags: []
|
||||
contents: dir_tree
|
||||
enabled: true
|
||||
width: 20rem
|
||||
right_pane:
|
||||
close_if_empty: true
|
||||
content_args:
|
||||
div_selector: .content
|
||||
rel_path: index.html
|
||||
strip_sub_divs:
|
||||
- .toc
|
||||
contents: toc
|
||||
enabled: true
|
||||
width: 16rem
|
||||
smiles:
|
||||
enabled: false
|
||||
height: 300px
|
||||
theme: dark
|
||||
width: 100%
|
||||
styling:
|
||||
accent_color: 65, 76, 253
|
||||
add_dir_list: true
|
||||
add_toc: <DEPRECATED>
|
||||
flip_panes: <DEPRECATED>
|
||||
header_template: full
|
||||
layout: documentation
|
||||
loading_bg_color: 22, 22, 22
|
||||
max_note_width: 120rem
|
||||
toc_pane: <DEPRECATED>
|
||||
table_of_contents:
|
||||
add_toc_when_missing: false
|
||||
only_show_for_multiple_headers: true
|
||||
tags_page:
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
show_in_note_footer: true
|
||||
theme_picker:
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
force_filename_to_lowercase: true
|
||||
img_alt_text_use_figure: true
|
||||
no_clean: false
|
||||
no_tabs: true
|
||||
preserve_inline_tags: true
|
||||
process_all: false
|
||||
relative_path_html: false
|
||||
relative_path_md: true
|
||||
slugify_html_links: false
|
||||
stdout_current_file: false
|
||||
strict_line_breaks: false
|
||||
verbose_printout: false
|
||||
warn_on_skipped_file: true
|
||||
warn_on_skipped_image: true
|
||||
wrap_inclusions: false
|
||||
verbosity: info
|
||||
video_format_suffixes:
|
||||
- mp4
|
||||
- webm
|
||||
- ogv
|
||||
- mov
|
||||
- mkv
|
14
output/mod/graphers.json
Normal file
14
output/mod/graphers.json
Normal file
File diff suppressed because one or more lines are too long
1
output/mod/guid.txt
Normal file
1
output/mod/guid.txt
Normal file
@ -0,0 +1 @@
|
||||
3cd6efe0-8d37-4c4b-8e21-d5e5906014c0
|
1
output/mod/html/dynamic_footer_inclusions.html
Normal file
1
output/mod/html/dynamic_footer_inclusions.html
Normal file
@ -0,0 +1 @@
|
||||
|
1
output/mod/html/dynamic_inclusions.html
Normal file
1
output/mod/html/dynamic_inclusions.html
Normal file
@ -0,0 +1 @@
|
||||
|
26
output/mod/html/graph.template.html
Normal file
26
output/mod/html/graph.template.html
Normal file
@ -0,0 +1,26 @@
|
||||
<div class="graph requires_js {graph_classes}">
|
||||
<div id="A{id}{level}" class="graph_div"></div>
|
||||
|
||||
<div class="graph-instructions" id="D{id}{level}">
|
||||
Left-click: follow link, Right-click: select node, Scroll: zoom
|
||||
</div>
|
||||
|
||||
<div class="graph-button-row" style="display:flex;">
|
||||
<button class="graph_button graph_show_button" id="B{id}{level}" level="{level}" note_temp_id="{id}" onclick="window.ObsHtmlGraph.run(this, '{id}', '{pinnedNode}');">
|
||||
Show Graph
|
||||
</button>
|
||||
<button class="graph_button graph_type_button" id="C{id}{level}" style="flex:1" onclick="window.ObsHtmlGraph.switch_graph_type(this);">
|
||||
2D
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
if (window.ObsHtmlGraph == undefined){
|
||||
import('{html_url_prefix}/obs.html/static/graph.js').then((Module) => {
|
||||
window.ObsHtmlGraph = Module;
|
||||
window.ObsHtmlGraph.arm_page(document.getElementById('page_holder'))
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
114
output/mod/html/graph_full_page.template.html
Normal file
114
output/mod/html/graph_full_page.template.html
Normal file
@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<!-- Page information -->
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="node_id" content="{node_id}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="{html_url_prefix}/favicon.ico" />
|
||||
|
||||
<!-- Set title -->
|
||||
<title>{title}</title>
|
||||
|
||||
<!-- Includes -->
|
||||
{dynamic_includes}
|
||||
|
||||
<!-- Onload tweaks -->
|
||||
<script>
|
||||
const CURRENT_NODE = '{pinnedNode}';
|
||||
const HTML_URL_PREFIX = '{html_url_prefix}';
|
||||
const PAGE_DEPTH = {page_depth};
|
||||
const CONFIGURED_HTML_URL_PREFIX = '{configured_html_url_prefix}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="theme-obs-light">
|
||||
<div id="antiflash" style="display: none;"></div>
|
||||
<script>
|
||||
document.getElementById('antiflash').style.display = 'block';
|
||||
</script>
|
||||
{search_html}
|
||||
|
||||
<div id="page_holder" class="flex_col">
|
||||
<div id="header" class="header">
|
||||
<div id="header_flex" class="flex_row">
|
||||
<a href="{html_url_prefix}/index.html" id="homelink" title="Clear screen and go to homepage">{title}</a>
|
||||
<div class="navbar-button" onclick="toggle_menu()">
|
||||
≡
|
||||
</div>
|
||||
<div id="navbar" class="navbar">
|
||||
{{navbar_links}}
|
||||
<div class="icon-tray">
|
||||
{theme_button}
|
||||
{search_button}
|
||||
{graph_button}
|
||||
{dirtree_button}
|
||||
{tags_page_button}
|
||||
{rss_button}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{theme_popup}
|
||||
</div>
|
||||
|
||||
<div class="graph_full_page">
|
||||
<div class="graph-button-row" style="display:flex;">
|
||||
<button class="graph_button graph_show_button" id="Bgraph_full_page" level="" note_temp_id="graph_full_page" style="visibility: hidden; margin:0px">
|
||||
Show Graph
|
||||
</button>
|
||||
<button class="graph_button graph_type_button" id="Cgraph_full_page" style="flex:1; margin:0px; margin-right:0.2rem;" onclick="window.ObsHtmlGraph.switch_graph_type(this);">
|
||||
2D
|
||||
</button>
|
||||
</div>
|
||||
<div id="Agraph_full_page" class="graph_div_full"></div>
|
||||
<div class="graph-instructions fadein" id="Dgraph_full_page">
|
||||
Left-click: follow link, Right-click: select node, Scroll: zoom
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
document.addEventListener('DOMContentLoaded', load_fullpage_graph);
|
||||
|
||||
function load_fullpage_graph(){
|
||||
|
||||
// set graph_type button correctly
|
||||
let type_d = ls_get('graph_type_d');
|
||||
if (!type_d){
|
||||
ls_set('graph_type_d', '2D');
|
||||
type_d = '2D';
|
||||
}
|
||||
document.getElementById('Cgraph_full_page').innerHTML = type_d;
|
||||
|
||||
import('{html_url_prefix}/obs.html/static/graph.js').then((Module) => {
|
||||
window.ObsHtmlGraph = Module;
|
||||
window.ObsHtmlGraph.arm_page(document.getElementById('page_holder'))
|
||||
|
||||
// overwrites
|
||||
window.ObsHtmlGraph.default_actions['open_link'] = function (args){
|
||||
console.log('hi openlink')
|
||||
return window.ObsHtmlGraph.graph_open_link_normal(args)()
|
||||
}
|
||||
|
||||
|
||||
// Get node id from the page where we clicked on the icon for the fullpage graph
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const pinnedNode = urlParams.get('node');
|
||||
|
||||
// Immediately run graph instead of waiting for button click
|
||||
window.ObsHtmlGraph.run(document.getElementById('Bgraph_full_page'), 'graph_full_page', pinnedNode);
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
{footer_js_inclusions}
|
||||
{dynamic_footer_includes}
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
171
output/mod/html/note.template.html
Normal file
171
output/mod/html/note.template.html
Normal file
@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<!-- Page information -->
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="node_id" content="{node_id}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="{html_url_prefix}/favicon.ico" />
|
||||
|
||||
<!-- Set title -->
|
||||
<title>{title}</title>
|
||||
|
||||
<!-- Includes -->
|
||||
{dynamic_includes}
|
||||
|
||||
<!-- Onload tweaks -->
|
||||
<script>
|
||||
const CURRENT_NODE = '{pinnedNode}';
|
||||
const HTML_URL_PREFIX = '{html_url_prefix}';
|
||||
const PAGE_DEPTH = {page_depth};
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="theme-obs-light">
|
||||
<div id="antiflash" style="display: none;"></div>
|
||||
<script>
|
||||
document.getElementById('antiflash').style.display = 'block';
|
||||
</script>
|
||||
{search_html}
|
||||
|
||||
<div id="page_holder" class="flex_col">
|
||||
{header}
|
||||
<div class="flex_row">
|
||||
{left_pane}
|
||||
<div class="container">
|
||||
{content}
|
||||
<!-- end content -->
|
||||
</div>
|
||||
<div class="container_filler">
|
||||
</div>
|
||||
{right_pane}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function handle_toggle_side_bar(e){
|
||||
let header;
|
||||
let pane;
|
||||
let target = e.target
|
||||
|
||||
// switch out the navbar button click for a header click
|
||||
if (target.id == 'left_pane_toggle_nav'){
|
||||
target = document.getElementById('left_pane_fold_header')
|
||||
}
|
||||
else if (target.id == 'right_pane_toggle_nav'){
|
||||
target = document.getElementById('right_pane_fold_header')
|
||||
}
|
||||
|
||||
// get header and pane
|
||||
if (target.classList.contains('fold_header')) {
|
||||
header = target;
|
||||
pane = target.parentElement;
|
||||
}
|
||||
else {
|
||||
pane = target;
|
||||
header = target.getElementsByClassName('fold_header')[0];
|
||||
}
|
||||
toggle_side_bar(pane, header, true)
|
||||
e.stopPropagation();
|
||||
}
|
||||
function handle_toggle_side_bar_button(e){
|
||||
document.getElementById('menu_toggle_button').click()
|
||||
handle_toggle_side_bar(e);
|
||||
}
|
||||
|
||||
function toggle_side_bar(pane, header, save) {
|
||||
let active = (pane.classList.contains('active'))
|
||||
if (active){
|
||||
disable_side_bar(pane, header, save);
|
||||
}
|
||||
else {
|
||||
enable_side_bar(pane, header, save);
|
||||
}
|
||||
}
|
||||
function enable_side_bar(pane, header, save){
|
||||
pane.classList.add('active');
|
||||
pane.removeEventListener('click', handle_toggle_side_bar);
|
||||
header.addEventListener('click', handle_toggle_side_bar);
|
||||
set_correct_header_symbol(header);
|
||||
if (save){ save_panel_folding_state(header, true) }
|
||||
}
|
||||
function disable_side_bar(pane, header, save){
|
||||
pane.classList.remove('active');
|
||||
pane.addEventListener('click', handle_toggle_side_bar);
|
||||
header.removeEventListener('click', handle_toggle_side_bar);
|
||||
set_correct_header_symbol(header);
|
||||
if (save){ save_panel_folding_state(header, false) }
|
||||
}
|
||||
function set_correct_header_symbol(header){
|
||||
let pane = header.parentElement;
|
||||
let symbol = [['>', '<'],['<', '>']]
|
||||
symbol = symbol[Number(header.classList.contains('right_pane_fold_header'))][Number(pane.classList.contains('active'))];
|
||||
console.log(symbol);
|
||||
header.innerHTML = symbol
|
||||
return header;
|
||||
}
|
||||
function panel_folding_get_panel_name(header){
|
||||
return ['left', 'right'][Number(header.classList.contains('right_pane_fold_header'))]
|
||||
}
|
||||
function save_panel_folding_state(header, active){
|
||||
ls_set('pane_folding_state_'+panel_folding_get_panel_name(header), Number(active));
|
||||
}
|
||||
function load_panel_folding_state(panel_name){
|
||||
val = ls_get('pane_folding_state_'+panel_name)
|
||||
if (!val){ return {'exists': false, 'value': null}}
|
||||
return {'exists': true, 'value': Boolean(Number(val))}
|
||||
}
|
||||
function set_pane_folding_start(left_header, right_header){
|
||||
// small screen = closed
|
||||
let right_pane_enabled = true;
|
||||
let left_pane_enabled = true;
|
||||
let w = window.visualViewport.width
|
||||
if (w < 1000){
|
||||
left_pane_enabled = false
|
||||
}
|
||||
if (w < 800){
|
||||
right_pane_enabled = false
|
||||
}
|
||||
|
||||
// get saved values if present
|
||||
let rval = load_panel_folding_state('right')
|
||||
if (rval['exists']){
|
||||
right_pane_enabled = rval['value']
|
||||
}
|
||||
let lval = load_panel_folding_state('left')
|
||||
if (lval['exists']){
|
||||
left_pane_enabled = lval['value']
|
||||
}
|
||||
|
||||
// default = enabled, so we only need to disable
|
||||
if (!left_pane_enabled){
|
||||
disable_side_bar(document.getElementById('left_pane'), document.getElementById('left_pane_fold_header'))
|
||||
}
|
||||
if (!right_pane_enabled){
|
||||
disable_side_bar(document.getElementById('right_pane'), document.getElementById('right_pane_fold_header'))
|
||||
}
|
||||
}
|
||||
|
||||
function init_pane_folding(header){
|
||||
set_correct_header_symbol(header);
|
||||
header.addEventListener('click', handle_toggle_side_bar);
|
||||
}
|
||||
|
||||
|
||||
set_pane_folding_start()
|
||||
init_pane_folding(document.getElementById('left_pane_fold_header'));
|
||||
init_pane_folding(document.getElementById('right_pane_fold_header'));
|
||||
|
||||
document.getElementById('left_pane_toggle_nav').addEventListener('click', handle_toggle_side_bar_button);
|
||||
document.getElementById('right_pane_toggle_nav').addEventListener('click', handle_toggle_side_bar_button);
|
||||
</script>
|
||||
|
||||
{footer_js_inclusions}
|
||||
{dynamic_footer_includes}
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
174
output/mod/modfile_dependencies.json
Normal file
174
output/mod/modfile_dependencies.json
Normal file
@ -0,0 +1,174 @@
|
||||
{
|
||||
"log.resources": {
|
||||
"provided_by": [
|
||||
"resource_logger (ResourceLoggerMetaModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"config.yml": {
|
||||
"provided_by": [
|
||||
"setup_module (SetupModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"resource_logger (ResourceLoggerMetaModule)",
|
||||
"process_config (ProcessConfigModule)",
|
||||
"load_paths (LoadPathsModule)",
|
||||
"process_config_auto (ProcessConfigAutoModule)",
|
||||
"html_templater (HtmlTemplaterModule)",
|
||||
"load_graphers (LoadGrapherModule)",
|
||||
"get_file_list (GetFileListModule)",
|
||||
"copy_vault_to_tempdirectory (VaultCopyModule)",
|
||||
"prepare_output_folders (PrepareOutputFoldersModule)"
|
||||
],
|
||||
"altered_by": [
|
||||
"process_config (ProcessConfigModule)",
|
||||
"process_config_auto (ProcessConfigAutoModule)"
|
||||
]
|
||||
},
|
||||
"capabilities.json": {
|
||||
"provided_by": [
|
||||
"process_config (ProcessConfigModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"arguments.yml": {
|
||||
"provided_by": [
|
||||
"setup_module (SetupModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"process_config (ProcessConfigModule)"
|
||||
],
|
||||
"altered_by": []
|
||||
},
|
||||
"paths.json": {
|
||||
"provided_by": [
|
||||
"load_paths (LoadPathsModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"process_config_auto (ProcessConfigAutoModule)",
|
||||
"get_file_list (GetFileListModule)",
|
||||
"parse_metadata (ParseMetadataModule)",
|
||||
"filter_on_metadata (FilterOnMetadataModule)",
|
||||
"copy_vault_to_tempdirectory (VaultCopyModule)",
|
||||
"prepare_output_folders (PrepareOutputFoldersModule)"
|
||||
],
|
||||
"altered_by": [
|
||||
"copy_vault_to_tempdirectory (VaultCopyModule)"
|
||||
]
|
||||
},
|
||||
"html/note.template.html": {
|
||||
"provided_by": [
|
||||
"html_templater (HtmlTemplaterModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"html/dynamic_inclusions.html": {
|
||||
"provided_by": [
|
||||
"html_templater (HtmlTemplaterModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"html/dynamic_footer_inclusions.html": {
|
||||
"provided_by": [
|
||||
"html_templater (HtmlTemplaterModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"html/graph.template.html": {
|
||||
"provided_by": [
|
||||
"load_graphers (LoadGrapherModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"html/graph_full_page.template.html": {
|
||||
"provided_by": [
|
||||
"load_graphers (LoadGrapherModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"graphers.json": {
|
||||
"provided_by": [
|
||||
"load_graphers (LoadGrapherModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"index/files.json": {
|
||||
"provided_by": [
|
||||
"get_file_list (GetFileListModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"filter_on_metadata (FilterOnMetadataModule)",
|
||||
"copy_vault_to_tempdirectory (VaultCopyModule)"
|
||||
],
|
||||
"altered_by": [
|
||||
"filter_on_metadata (FilterOnMetadataModule)",
|
||||
"copy_vault_to_tempdirectory (VaultCopyModule)"
|
||||
]
|
||||
},
|
||||
"index/excluded_files.json": {
|
||||
"provided_by": [
|
||||
"get_file_list (GetFileListModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"index/markdown_files.json": {
|
||||
"provided_by": [
|
||||
"get_file_list (GetFileListModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"parse_metadata (ParseMetadataModule)",
|
||||
"filter_on_metadata (FilterOnMetadataModule)"
|
||||
],
|
||||
"altered_by": [
|
||||
"filter_on_metadata (FilterOnMetadataModule)"
|
||||
]
|
||||
},
|
||||
"index/metadata.json": {
|
||||
"provided_by": [
|
||||
"parse_metadata (ParseMetadataModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"filter_on_metadata (FilterOnMetadataModule)"
|
||||
],
|
||||
"altered_by": []
|
||||
},
|
||||
"excluded_files_by_metadata.json": {
|
||||
"provided_by": [
|
||||
"filter_on_metadata (FilterOnMetadataModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"guid.txt": {
|
||||
"provided_by": [
|
||||
"setup_module (SetupModule)"
|
||||
],
|
||||
"required_by": [
|
||||
"prepare_output_folders (PrepareOutputFoldersModule)"
|
||||
],
|
||||
"altered_by": []
|
||||
},
|
||||
"user_config.yml": {
|
||||
"provided_by": [
|
||||
"setup_module (SetupModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
},
|
||||
"modfile_dependencies.json": {
|
||||
"provided_by": [
|
||||
"setup_module (SetupModule)"
|
||||
],
|
||||
"required_by": [],
|
||||
"altered_by": []
|
||||
}
|
||||
}
|
16
output/mod/paths.json
Normal file
16
output/mod/paths.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"obsidian_folder": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"md_folder": "C:/Users/jackb/Documents/obsidian/jack/output/md",
|
||||
"obsidian_entrypoint": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"md_entrypoint": "C:/Users/jackb/Documents/obsidian/jack/output/md/index.md",
|
||||
"html_output_folder": "C:/Users/jackb/Documents/obsidian/jack/output/html",
|
||||
"appdir": "C:/Users/jackb/AppData/Local/obsidianhtml/obsidianhtml",
|
||||
"original_obsidian_folder": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"original_obsidian_entrypoint": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"dataview_export_folder": "C:/Users/jackb/Documents/obsidian/jack/obs.html/export",
|
||||
"rel_obsidian_entrypoint": ".",
|
||||
"rel_md_entrypoint_path": "index.md",
|
||||
"input_folder": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"entrypoint": "C:/Users/jackb/Documents/obsidian/jack",
|
||||
"original_input_folder": "C:/Users/jackb/Documents/obsidian/jack"
|
||||
}
|
325
output/mod/user_config.yml
Normal file
325
output/mod/user_config.yml
Normal file
@ -0,0 +1,325 @@
|
||||
audio_format_suffixes:
|
||||
- mp3
|
||||
- webm
|
||||
- wav
|
||||
- m4a
|
||||
- ogg
|
||||
- 3gp
|
||||
- flac
|
||||
copy_output_file_method: default
|
||||
copy_vault_to_tempdir: true
|
||||
copy_vault_to_tempdir_follow_copy: false
|
||||
copy_vault_to_tempdir_method: default
|
||||
embeddable_file_suffixes:
|
||||
- pdf
|
||||
exclude_glob:
|
||||
- /.obsidian
|
||||
- /.trash
|
||||
- /.DS_Store
|
||||
- /.git
|
||||
exclude_subfolders: <DEPRECATED>
|
||||
file_exports: []
|
||||
html_custom_footer_inclusions: []
|
||||
html_custom_inclusions: []
|
||||
html_output_folder_path_str: output/html
|
||||
html_template_path_str: ''
|
||||
html_url_prefix: ''
|
||||
included_file_suffixes:
|
||||
- jpg
|
||||
- jpeg
|
||||
- gif
|
||||
- png
|
||||
- bmp
|
||||
- svg
|
||||
- mp4
|
||||
- webm
|
||||
- ogv
|
||||
- mov
|
||||
- mkv
|
||||
- mp3
|
||||
- wav
|
||||
- m4a
|
||||
- ogg
|
||||
- 3gp
|
||||
- flac
|
||||
- pdf
|
||||
included_folders: []
|
||||
keep_module_file_versions: false
|
||||
max_note_depth: -1
|
||||
md_entrypoint_path_str: output/md/index.md
|
||||
md_folder_path_str: output/md
|
||||
md_source_host_urls: []
|
||||
meta_modules_post:
|
||||
- name: resource_logger
|
||||
persistent: true
|
||||
module_config:
|
||||
get_file_list:
|
||||
exclude_glob:
|
||||
value:
|
||||
- .obsidian/**/*
|
||||
- .trash/**/*
|
||||
- .DS_Store/**/*
|
||||
- .git/**/*
|
||||
include_glob:
|
||||
value: '*'
|
||||
module_data_folder: output/mod
|
||||
module_list:
|
||||
convert_markdown_to_html: []
|
||||
convert_note_to_markdown: []
|
||||
finalize:
|
||||
- description:
|
||||
- Creates the log of which module resources were accessed by which module
|
||||
- Requires persistent meta_module of the same name to work!
|
||||
method: finalize
|
||||
name: resource_logger
|
||||
persistent: true
|
||||
preparation:
|
||||
- description: Merges the user config with default config and runs checks.
|
||||
name: process_config
|
||||
- description: Determine all paths of interest based on input.
|
||||
name: load_paths
|
||||
- description: Fills in auto values that can be read from the vault config.
|
||||
name: process_config_auto
|
||||
- description: Prepare and export templates used to create html output.
|
||||
name: html_templater
|
||||
persistent: true
|
||||
- name: load_graphers
|
||||
persistent: true
|
||||
- description:
|
||||
- Basic file listing based on include_folder/exclude_glob combination
|
||||
- Further filtering can be done in further modules
|
||||
name: get_file_list
|
||||
- description:
|
||||
- Gets the metadata of each markdown file, and stores it under metadata/<rel_filepath>.json
|
||||
name: parse_metadata
|
||||
- description:
|
||||
- Filter out markdown files that do not comply to certain metadata requirements
|
||||
name: filter_on_metadata
|
||||
- description:
|
||||
- Copy vault to temporary directory, so that we can edit the obsidian notes themselves
|
||||
safely.
|
||||
- Must be persistent!
|
||||
name: copy_vault_to_tempdirectory
|
||||
persistent: true
|
||||
- description:
|
||||
- Ensures the output folders are created
|
||||
- Optionally removes previous output if it exists in the target directories
|
||||
name: prepare_output_folders
|
||||
navbar_links: []
|
||||
obsidian_entrypoint_path_str: ./
|
||||
resolve_output_file_links: true
|
||||
site_name: Obsidian-Html/Notes
|
||||
toggles:
|
||||
allow_duplicate_filenames_in_root: true
|
||||
compile_html: true
|
||||
compile_md: true
|
||||
debug_filetree_keys: false
|
||||
external_blank: false
|
||||
features:
|
||||
backlinks:
|
||||
enabled: true
|
||||
breadcrumbs:
|
||||
enabled: false
|
||||
callouts:
|
||||
enabled: true
|
||||
code_highlight:
|
||||
enabled: true
|
||||
create_index_from_dir_structure:
|
||||
enabled: true
|
||||
exclude_files:
|
||||
- .gitignore
|
||||
- favicon.ico
|
||||
- not_created.html
|
||||
exclude_subfolders:
|
||||
- .git
|
||||
- __src
|
||||
- md
|
||||
- obs.html
|
||||
homepage_label: index
|
||||
rel_output_path: obs.html/dir_index.html
|
||||
styling:
|
||||
show_icon: true
|
||||
verbose: false
|
||||
create_index_from_tags:
|
||||
add_links_in_graph_tree: true
|
||||
enabled: false
|
||||
exclude_paths:
|
||||
- .gitignore
|
||||
homepage_label: index
|
||||
match_on_inline_tags: false
|
||||
rel_output_path: obs.html/tag_index.md
|
||||
sort:
|
||||
key_path: ''
|
||||
method: none
|
||||
none_on_bottom: true
|
||||
reverse: false
|
||||
value_prefix: ''
|
||||
styling:
|
||||
include_folder_in_link: false
|
||||
tags: []
|
||||
use_as_homepage: false
|
||||
verbose: false
|
||||
dataview:
|
||||
enabled: false
|
||||
folder: obs.html/export
|
||||
embedded_note_titles:
|
||||
enabled: true
|
||||
hide_on_h1: true
|
||||
embedded_search:
|
||||
enabled: false
|
||||
eraser:
|
||||
enabled: true
|
||||
folder_notes:
|
||||
enabled: false
|
||||
naming: folder name
|
||||
placement: outside folder
|
||||
footnote_md_extension:
|
||||
enabled: true
|
||||
graph:
|
||||
coalesce_force: '-30'
|
||||
enabled: true
|
||||
show_inclusions_in_graph: true
|
||||
styling:
|
||||
show_icon: true
|
||||
templates:
|
||||
- id: 2d
|
||||
name: 2d
|
||||
path: builtin<2d>
|
||||
- id: 3d
|
||||
name: 3d
|
||||
path: builtin<3d>
|
||||
math_latex:
|
||||
enabled: true
|
||||
mermaid_diagrams:
|
||||
enabled: true
|
||||
strip_special_chars: false
|
||||
post_processing: []
|
||||
rss:
|
||||
channel:
|
||||
description: <your description>
|
||||
language_code: en-us
|
||||
managing_editor: n/a
|
||||
title: Notes
|
||||
web_master: n/a
|
||||
website_link: <https://your website.com>
|
||||
enabled: false
|
||||
host_root: https://localhost:8000/
|
||||
items:
|
||||
description:
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:description
|
||||
- - first-paragraphs
|
||||
- 2
|
||||
- <br/><br/>
|
||||
- - first-header
|
||||
- 1
|
||||
publish_date:
|
||||
default_value: ''
|
||||
format_string: ''
|
||||
iso_formatted: true
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:publish_date
|
||||
- - yaml_strip
|
||||
- tags
|
||||
- - date/
|
||||
selector:
|
||||
exclude_files:
|
||||
- not_created.html
|
||||
- index.html
|
||||
exclude_keys: []
|
||||
exclude_subfolders:
|
||||
- .git
|
||||
- obs.html
|
||||
include_subfolders: []
|
||||
match_keys: []
|
||||
title:
|
||||
selectors:
|
||||
- - yaml
|
||||
- rss:title
|
||||
- - first-header
|
||||
- 1
|
||||
- - path
|
||||
- - parent
|
||||
- 1
|
||||
- /
|
||||
- - stem
|
||||
styling:
|
||||
show_icon: true
|
||||
search:
|
||||
add_files: true
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
try_preload: false
|
||||
side_pane:
|
||||
left_pane:
|
||||
close_if_empty: false
|
||||
content_args:
|
||||
div_selector: .content
|
||||
rel_path: index.html
|
||||
strip_sub_divs:
|
||||
- .toc
|
||||
strip_tags: []
|
||||
contents: dir_tree
|
||||
enabled: true
|
||||
width: 20rem
|
||||
right_pane:
|
||||
close_if_empty: true
|
||||
content_args:
|
||||
div_selector: .content
|
||||
rel_path: index.html
|
||||
strip_sub_divs:
|
||||
- .toc
|
||||
contents: toc
|
||||
enabled: true
|
||||
width: 16rem
|
||||
smiles:
|
||||
enabled: false
|
||||
height: 300px
|
||||
theme: dark
|
||||
width: 100%
|
||||
styling:
|
||||
accent_color: 65, 76, 253
|
||||
add_dir_list: true
|
||||
add_toc: <DEPRECATED>
|
||||
flip_panes: <DEPRECATED>
|
||||
header_template: full
|
||||
layout: documentation
|
||||
loading_bg_color: 22, 22, 22
|
||||
max_note_width: 120rem
|
||||
toc_pane: <DEPRECATED>
|
||||
table_of_contents:
|
||||
add_toc_when_missing: false
|
||||
only_show_for_multiple_headers: true
|
||||
tags_page:
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
show_in_note_footer: true
|
||||
theme_picker:
|
||||
enabled: true
|
||||
styling:
|
||||
show_icon: true
|
||||
force_filename_to_lowercase: true
|
||||
img_alt_text_use_figure: true
|
||||
no_clean: false
|
||||
preserve_inline_tags: true
|
||||
process_all: false
|
||||
relative_path_html: false
|
||||
relative_path_md: true
|
||||
slugify_html_links: false
|
||||
stdout_current_file: false
|
||||
strict_line_breaks: auto
|
||||
verbose_printout: false
|
||||
warn_on_skipped_file: true
|
||||
warn_on_skipped_image: true
|
||||
wrap_inclusions: false
|
||||
verbosity: info
|
||||
video_format_suffixes:
|
||||
- mp4
|
||||
- webm
|
||||
- ogv
|
||||
- mov
|
||||
- mkv
|
Loading…
Reference in New Issue
Block a user