##########################################################################
#                               PATHS                                    #
##########################################################################
# The first folder that contains all obsidian files
# Can be absent when toggles/compile_md == False
# Use full path or relative path, but don't use ~/
obsidian_folder_path_str: '<REQUIRED_INPUT>'

# 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: '<REQUIRED_INPUT>'

# 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'

# If extended logging is enabled under toggles/extended_logging
# Extra information is written to this folder
log_output_folder_path_str: 'output/log'

##########################################################################
#                              OPERATIONS                                #
##########################################################################
# Exclude subfolders
# These are relative to obsidian_folder_path_str
# To exclude a folder two levels deep, use level1/level2
exclude_subfolders:
  - ".obsidian"
  - ".trash"
  - ".DS_Store"
  - ".git"

# 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

# 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', 'pdf', 'mp4', 'webm', 'wav', 'mp3']
video_format_suffixes: ['mp4', 'webm']
audio_format_suffixes: ['wav', 'mp3']

##########################################################################
#                             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: []

navbar_links: []

##########################################################################
#                    OPTIONAL BEHAVIOR / FEATURES                        #
##########################################################################
toggles:
  # 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

  # 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

  # Write extra information to log_output_folder_path_str
  extended_logging: 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: False

  # 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

  # 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

  # Do not rewrite links to open them as tabs
  no_tabs: '<REMOVED>'

  # Whether external http anchor links should have a target of "_blank"
  external_blank: False  
  
  features:
    styling: 
      layout: documentation # documentation, tabs, no_tabs, minimal
      max_note_width: 52rem # not supported for layout: tabs
      add_toc: True    # add "[TOC]" (Table of Contents) when missing
      toc_pane: True   # removes table of contents from the note and puts it in the right pane (not supported for layout:tabs)
      flip_panes: False # switch right and left pane around. (does nothing unless in documentation layout.)
      accent_color: '65, 76, 253'
      loading_bg_color: '255, 255, 255'

    theme_picker:
      enabled: True
      styling:
        show_icon: True

    code_highlight:
      enabled: True
    mermaid_diagrams:
      enabled: True
    callouts:
      enabled: True
    math_latex:
      enabled: True
    backlinks:                  # Show backlinks at the bottom of each note
      enabled: True

    search:
      enabled: True
      styling:
        show_icon: True

    tags_page:
      enabled: True
      styling:
        show_icon: True

    # Include code to build the graph view per page 
    graph:
      enabled: True           # Include code to build the graph view per page (default: True)
      template: 3d            # "2d", "3d", or path to own code
      styling:
        show_icon: True
      coalesce_force: '-30'

    # Create an index.md with links to notes that have one of the given tags.
    # This index.md will serve as the entrypoint.
    # !! Enabling this feature will overwrite obsidian_entrypoint_path_str and md_entrypoint_path_str
    create_index_from_tags:
      enabled: False
      add_links_in_graph_tree: True
      tags: []
      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

    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'

    create_index_from_dir_structure:
      enabled: True
      rel_output_path: 'obs.html/dir_index.html'
      styling: 
        show_icon: True
      exclude_subfolders:
        - ".git"
        - "__src"
        - "md"
        - "obs.html"
      exclude_files:
        - "favicon.ico"
        - "not_created.html"