obsidian

package module
v3.21.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2024 License: MIT Imports: 20 Imported by: 0

README

Used by Quartz

This repository comes to you in two parts.

  1. GitHub Action (scrapes links into a .json file)
  2. Hugo Partial (turns .json file into graphs and tables)

GitHub Action

GitHub action and binary to scrape Obsidian vault for links and exposes them as a .json file for easy consumption by Hugo.

Example Usage (Binary)

Read Markdown from the /content folder and place the resulting linkIndex.json (and contentIndex.yaml if the index flag is enabled) into /data

# Installation
go install github.com/jackyzha0/hugo-obsidian@latest

# Run
hugo-obsidian -input=content -output=data -index=true
Example Usage (GitHub Action)

Add 'Build Link Index' as a build step in your workflow file (e.g. .github/workflows/deploy.yaml)

...

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - name: Build Link Index
        uses: jackyzha0/hugo-obsidian@v2.1
        with:
          input: content # input folder
          output: data   # output folder
          index: true    # whether to index content
      ...

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildData

func BuildData(root string, content string, out string) error

func UnicodeSanitize

func UnicodeSanitize(s string) string

UnicodeSanitize sanitizes string to be used in Hugo URL's from https://github.com/gohugoio/hugo/blob/93aad3c543828efca2adeb7f96cf50ae29878593/helpers/path.go#L94

Types

type ConfigTOML

type ConfigTOML struct {
	IgnoredFiles []string `toml:"ignoreFiles"`
}

type Content

type Content struct {
	Title        string    `json:"title"`
	Content      string    `json:"content"`
	LastModified time.Time `json:"lastmodified"`
	Tags         []string  `json:"tags"`
}

type ContentIndex

type ContentIndex = map[string]Content

type Front

type Front struct {
	Title string   `yaml:"title"`
	Draft bool     `yaml:"draft"`
	Tags  []string `yaml:"tags"`
}

type Index

type Index struct {
	Links     LinkTable `json:"links"`
	Backlinks LinkTable `json:"backlinks"`
}
type Link struct {
	Source string `json:"source"`
	Target string `json:"target"`
	Text   string `json:"text"`
}

type LinkTable

type LinkTable = map[string][]Link

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL