Add Readme.org & customizations for render-link & taxonomy
This commit is contained in:
parent
7580d64fb7
commit
01780aab50
3 changed files with 230 additions and 0 deletions
38
layouts/_default/_markup/render-link.html
Normal file
38
layouts/_default/_markup/render-link.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
{{- $text_link := .Text -}}
|
||||
{{- $sup := "" -}} <!-- prefix for links -->
|
||||
|
||||
{{ $_ := newScratch }} <!-- Get triads -->
|
||||
{{- range $k, $v := .Page.Site.Data.sandpointsnamegraph -}}
|
||||
{{ $_.Add "triads" $k }}
|
||||
{{- end -}}
|
||||
<!-- TODO add URLs to scratch -->
|
||||
|
||||
<!-- Internal links to MD files (.md suffix) -->
|
||||
{{ if strings.HasSuffix .Destination ".md" }}
|
||||
{{ if in ($_.Get "triads") (index (split .Destination "/") 0) }}
|
||||
<!-- Obsidian replaces filename spaces with '%20'. For Hugo we replace that with "-" -->
|
||||
{{ $destNoSpaces := strings.Replace .Destination "%20" "-" }}
|
||||
<!-- if page exists -->
|
||||
<!--TODO check for links to subheadings #-->
|
||||
{{ if $.Page.Site.GetPage $destNoSpaces }}
|
||||
{{ $session := $.Page.Site.GetPage $destNoSpaces }}
|
||||
{{ .Page.Scratch.Add "links" (slice $session) }}
|
||||
<a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split $destNoSpaces "/") 0 -}}⁄</span>{{- $text_link -}}</a>
|
||||
{{ else }}
|
||||
<highlight>MD ENTRY DOES NOT EXIST: {{ .Destination }}</highlight>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<highlight>TRIAD DOES NOT EXIST: {{ .Destination }}</highlight>
|
||||
{{ end }}<!-- END is in Triads -->
|
||||
{{ else }} <!-- END MD suffix -->
|
||||
<!-- HTTP LINKS -->
|
||||
{{ if strings.HasPrefix .Destination "http" }}
|
||||
{{ $sup = "www" }}
|
||||
<!-- TODO add classes -->
|
||||
<!-- Subheadings LINKS (starting with #) -->
|
||||
{{ else if strings.HasPrefix .Destination "#" }}
|
||||
{{ $sup = "§" }}
|
||||
<!-- TODO add CLASSES -->
|
||||
{{ end }}
|
||||
<a href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }}><span class="sup">{{ $sup }}⁄</span>LINK</a>
|
||||
{{ end }}
|
23
layouts/taxonomy/list.html
Normal file
23
layouts/taxonomy/list.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{{/*
|
||||
ANY EDIT
|
||||
(07.11.23) - Removed Author and Date from Keyword taxonomy list (/keywords/). Pages provided by reverse date
|
||||
(01.11.24) - Pages in Keyword list sorted in alphabetic order (not .ByDate.Reverse, but .ByTitle)
|
||||
*/}}
|
||||
{{ define "keywords" }}
|
||||
{{ $p := split (trim .RelPermalink "/") "/" }}
|
||||
{{ if eq (len $p) 1 }}
|
||||
<div class="coretitle"><span class="supt">{{ index $p 0 }}⁄</span>All</div>
|
||||
{{ range $taxonomyname, $taxonomy := .Site.Taxonomies }}
|
||||
{{ if eq (index $p 0) $taxonomyname }}
|
||||
{{ range $key, $value := $taxonomy }}
|
||||
<span> <a href="/{{ index $p 0 }}/{{ $key }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ $key }}</a>({{ len (index (index $.Site.Taxonomies $taxonomyname) $key) }})</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div class="coretitle"><span class="supt">{{ index $p 0 }}⁄</span>{{ index $p 1 }}</div>
|
||||
{{ range .Pages.ByTitle }}
|
||||
<div class="blog-title"><a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
169
readme.org
Normal file
169
readme.org
Normal file
|
@ -0,0 +1,169 @@
|
|||
#+title: Readme
|
||||
|
||||
* Introduction
|
||||
|
||||
This repository is a guide for installing and using Sandpoints in tandem with Obsidian.
|
||||
|
||||
Sandpoints is a free software
|
||||
|
||||
* Installation Instructions
|
||||
Follow the [[https://gohugo.io/getting-started/quick-start/][Hugo Quick Start guide]].
|
||||
|
||||
After installing Hugo, open a terminal and do:
|
||||
|
||||
#+begin_src bash
|
||||
hugo new site mysite
|
||||
cd mysite
|
||||
git init
|
||||
git submodule add https://dev.sandpoints.org/Drawwell/SandpointsTheme themes/sandpoints
|
||||
#+end_src
|
||||
|
||||
The above will start a new blank side; start a git repository; and install the Sandpoints theme as a submodule.
|
||||
|
||||
|
||||
Next we need to tell the project configuration to use the sandpoints theme:
|
||||
|
||||
Open =hugo.toml= and add
|
||||
#+begin_src toml
|
||||
theme="sandpoints"
|
||||
#+end_src
|
||||
|
||||
Then, we can go again and start a local server to run and view the site:
|
||||
#+begin_src toml
|
||||
hugo server
|
||||
#+end_src
|
||||
** Project config: Sandpoints version
|
||||
|
||||
At the moment Sandpoints works properly with Hugo version 0.113 --errors have to do with library references and endnote numbering for Print PDFs.
|
||||
|
||||
Download [[https://github.com/gohugoio/hugo/releases/tag/v0.113.0][Hugo version 0.113 (GitHub)]].
|
||||
Place the Hugo executable (=hugo.exe=, or =hugo.bin=, etc.) on the root folder of your project, and rename to, for example, =hugo-113.exe=.
|
||||
|
||||
To then run a local server or compile the site do:
|
||||
|
||||
#+begin_src bash
|
||||
hugo-113.exe server
|
||||
#+end_src
|
||||
or
|
||||
#+begin_src bash
|
||||
hugo-113.exe
|
||||
#+end_src
|
||||
|
||||
|
||||
* Setup Sandpoints project
|
||||
|
||||
** Site config file
|
||||
*** Enable keywords
|
||||
Add keyword taxonomy to =hugo.toml=
|
||||
and enable relative urls
|
||||
#+begin_src TOML
|
||||
# Relative URLS
|
||||
relativeurls = true
|
||||
|
||||
# Taxonomy: keyword = "keywords"
|
||||
[taxonomies]
|
||||
keyword = "keywords"
|
||||
#+end_src
|
||||
*** Setup metadata
|
||||
#+begin_src TOML
|
||||
[params]
|
||||
# Project description
|
||||
description = "Project description"
|
||||
## sandpointsHome renders link to predefined home if page not in triad
|
||||
sandpointsHome = "package/stc.md"
|
||||
# Enable backlinks for content types
|
||||
sandpointsMentionedIn = ["annex", "author", "section" ,"item", "thing", "person"]
|
||||
# sandpointsGiteaUrl = "https://git.sandpoints.org/we/da-component.git" # used in layouts/partials/header.html to generate links in /Preview/ UI
|
||||
sandpointsCatalogPrefix = "/library/"
|
||||
sandpointsCatalogName = "custom-sandpoints-project-name"
|
||||
#+end_src
|
||||
|
||||
** Enable URLS
|
||||
|
||||
Create =urls/_index.md=
|
||||
Open the file and add
|
||||
#+begin_src Markdown
|
||||
---
|
||||
title: "List of Urls"
|
||||
---
|
||||
#+end_src
|
||||
|
||||
Now the site =/urls/= shows a list of internal, outgoing, and bibliographic, links, as well as backlinks.
|
||||
** Prepare print directory
|
||||
|
||||
Crate =print/_index.md=.
|
||||
Open the file and add
|
||||
#+begin_src Markdown
|
||||
---
|
||||
title: "List of Print Items"
|
||||
---
|
||||
#+end_src
|
||||
|
||||
|
||||
* Create content
|
||||
|
||||
Create a new entry with
|
||||
#+begin_src toml
|
||||
hugo new entry/entry.md
|
||||
#+end_src
|
||||
|
||||
This will be created according to [[#archetypes][archetypes]].
|
||||
* Archetypes
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: archetypes
|
||||
:ID: 8f382044-aeeb-4022-ac35-f7fc88d2a880
|
||||
:END:
|
||||
|
||||
Project archetypes directory at [[file:archetypes/][/archetypes/]].
|
||||
|
||||
Theme archetypes directory at [[file:themes/sandpoints/archetypes/][/themes/sandpoints/archetypes/]].
|
||||
* Sandpoints-Obsidian workflow
|
||||
** Setup Obsidian
|
||||
|
||||
Open the project's =content/= directory as a Vault using Obsidian
|
||||
|
||||
Go to settings and:
|
||||
+ *DISABLE* Wiki links
|
||||
+ Set New Link Format to *Absolute path in vault*
|
||||
** Customize Sandpoints theme for Obsidian
|
||||
By default Sandpoints recognizes internal links in the form of
|
||||
#+begin_src Markdown
|
||||

|
||||
#+end_src
|
||||
|
||||
or
|
||||
|
||||
#+begin_src Markdown
|
||||

|
||||
#+end_src
|
||||
|
||||
In which case the link label is populated dynamically.
|
||||
|
||||
|
||||
Using Obsidian with standard Markdown links (instead of Wiki-type links), internal links would be of the type
|
||||
|
||||
#+begin_src Markdown
|
||||
[Link label](type/filename.md)
|
||||
#+end_src
|
||||
|
||||
Moreover, Obsidian allows spaces in the filenames of notes (e.g. =my note.md=), and replaces space characters with =%20= (as in =my%20note.md=).
|
||||
|
||||
*** Create override for render-link.html
|
||||
|
||||
Copy =render-link= from theme/layouts
|
||||
|
||||
[[file:themes/sandpoints/layouts/_default/_markup/render-link.html]]
|
||||
|
||||
to the corresponding directory inside layouts, at the root of the project:
|
||||
|
||||
[[file:layouts/_default/_markup/render-link.html]]
|
||||
|
||||
This overrides the theme's =render-link= behavior.
|
||||
*** Edit custom render-link.html
|
||||
|
||||
1. Add clause to replace =%20= with =-= (dash).
|
||||
|
||||
* Other Sandpoints theme edits
|
||||
** Edit keyword view (layouts/taxonomy/list)
|
||||
By default, =/keywords= lists keywords together by creation date, sorted by creation date.
|
||||
This is edited in [[file:layouts/taxonomy/list.html][/layouts/taxonomy/list.html]] to remove the mention of the creation date, and sort entries alphabetically.
|
Loading…
Add table
Reference in a new issue