(((meta (@ (content . "Tips and Tricks") (name . "title"))) (meta (@ (content . "manual") (name . "role"))) (meta (@ (content . "#manual #zettelstore") (name . "tags"))) (meta (@ (content . "zmk") (name . "syntax"))) (meta (@ (content . "00001000000000") (name . "back"))) (meta (@ (content . "00001000000000") (name . "backward"))) (meta (@ (content . "1") (name . "box-number"))) (meta (@ (content . "(c) 2020-present by Detlef Stern ") (name . "copyright"))) (meta (@ (content . "20220803170112") (name . "created"))) (meta (@ (content . "00000000019000 00001004010000 00001004020000 00001004051000 00001006020000 00001006020100 00001007000000 00001007031100 00001008000000 00001010040200 00001010070200 00001018000000") (name . "forward"))) (meta (@ (content . "en") (name . "lang"))) (meta (@ (content . "EUPL-1.2-or-later") (name . "license"))) (meta (@ (content . "20231012154803") (name . "modified"))) (meta (@ (content . "20231012154803") (name . "published"))) (meta (@ (content . "public") (name . "visibility")))) (h2 (@ (id . "welcome-zettel")) "Welcome" " " "Zettel") (ul (li (p (strong "Problem:") " " "You" " " "want" " " "to" " " "put" " " "your" " " "Zettelstore" " " "into" " " "the" " " "public" " " "and" " " "need" " " "a" " " "starting" " " "zettel" " " "for" " " "your" " " "users." " " "In" " " "addition," " " "you" " " "still" " " "want" " " "a" " " (@L (@H "“") "home" " " "zettel" (@H "”")) "," " " "with" " " "all" " " "your" " " "references" " " "to" " " "internal," " " "non-public" " " "zettel." " " "Zettelstore" " " "only" " " "allows" " " "to" " " "specify" " " "one" " " (a (@ (href . "00001004020000#home-zettel")) (kbd "home-zettel")) ".")) (li (p (strong "Solution" " " "1:")) (ol (li "Create" " " "a" " " "new" " " "zettel" " " "with" " " "all" " " "your" " " "references" " " "to" " " "internal," " " "non-public" " " "zettel." " " "Let's" " " "assume" " " "this" " " "zettel" " " "receives" " " "the" " " "zettel" " " "identifier" " " (kbd "20220803182600") ".") (li "Create" " " "the" " " "zettel" " " "that" " " "should" " " "serve" " " "as" " " "the" " " "starting" " " "zettel" " " "for" " " "your" " " "users." " " "It" " " "must" " " "have" " " "syntax" " " (a (@ (href . "00001008000000#zmk")) "Zettelmarkup") "," " " "i.e." " " "the" " " "syntax" " " "metadata" " " "must" " " "be" " " "set" " " "to" " " (kbd "zmk") "." " " "If" " " "needed," " " "set" " " "the" " " "runtime" " " "configuration" " " (a (@ (href . "00001004020000#home-zettel")) "''home-zettel") " " "to" " " "the" " " "value" " " "of" " " "the" " " "identifier" " " "of" " " "this" " " "zettel.") (li "At" " " "the" " " "beginning" " " "of" " " "the" " " "start" " " "zettel," " " "add" " " "the" " " "following" " " (a (@ (href . "00001007000000")) "Zettelmarkup") " " "text" " " "in" " " "a" " " "separate" " " "paragraph:" " " (code "{{{20220803182600}}}") " " "(you" " " "have" " " "to" " " "adapt" " " "to" " " "the" " " "actual" " " "value" " " "of" " " "the" " " "zettel" " " "identifier" " " "for" " " "your" " " "non-public" " " "home" " " "zettel)."))) (li (p (strong "Discussion:") " " "As" " " "stated" " " "in" " " "the" " " "description" " " "for" " " "a" " " (a (@ (href . "00001007031100")) "transclusion") "," " " "a" " " "transclusion" " " "will" " " "be" " " "ignored," " " "if" " " "the" " " "transcluded" " " "zettel" " " "is" " " "not" " " "visible" " " "to" " " "the" " " "current" " " "user." " " "In" " " "effect," " " "the" " " "transclusion" " " "statement" " " "(above" " " "paragraph" " " "that" " " "contained" " " (kbd "{{{...}}}") ")" " " "is" " " "ignored" " " "when" " " "rendering" " " "the" " " "zettel.")) (li (p (strong "Solution" " " "2:") " " "Set" " " "a" " " "user-specific" " " "value" " " "by" " " "adding" " " "metadata" " " (kbd "home-zettel") " " "to" " " "the" " " (a (@ (href . "00001010040200")) "user" " " "zettel") ".")) (li (p (strong "Discussion:") " " "A" " " "value" " " "for" " " (kbd "home-zettel") " " "is" " " "first" " " "searched" " " "in" " " "the" " " "user" " " "zettel" " " "of" " " "the" " " "current" " " "authenticated" " " "user." " " "Only" " " "if" " " "it" " " "is" " " "not" " " "found," " " "the" " " "value" " " "is" " " "looked" " " "up" " " "in" " " "the" " " "runtime" " " "configuration" " " "zettel." " " "If" " " "multiple" " " "user" " " "should" " " "use" " " "the" " " "same" " " "home" " " "zettel," " " "its" " " "zettel" " " "identifier" " " "must" " " "be" " " "set" " " "in" " " "all" " " "relevant" " " "user" " " "zettel."))) (h2 (@ (id . "role-specific-layout-of-zettel-in-web-user-interface-webui")) "Role-specific" " " "Layout" " " "of" " " "Zettel" " " "in" " " "Web" " " "User" " " "Interface" " " "(WebUI)") (p (a (@ (id . "role-css")))) (ul (li (p (strong "Problem:") " " "You" " " "want" " " "to" " " "add" " " "some" " " "CSS" " " "when" " " "displaying" " " "zettel" " " "of" " " "a" " " "specific" " " (a (@ (href . "00001006020000#role")) "role") "." " " "For" " " "example," " " "you" " " "might" " " "want" " " "to" " " "add" " " "a" " " "yellow" " " "background" " " "color" " " "for" " " "all" " " (a (@ (href . "00001006020100#configuration")) "configuration") " " "zettel." " " "Or" " " "you" " " "want" " " "a" " " "multi-column" " " "layout.")) (li (p (strong "Solution:") " " "If" " " "you" " " "enable" " " (a (@ (href . "00001004020000#expert-mode")) (kbd "expert-mode")) "," " " "you" " " "will" " " "have" " " "access" " " "to" " " "a" " " "zettel" " " "called" " " (@L (@H "“") (span "Zettelstore" " " "Sxn" " " "Start" " " "Code") (@H "”")) " " "(its" " " "identifier" " " "is" " " (kbd "00000000019000") ")." " " "This" " " "zettel" " " "is" " " "the" " " "starting" " " "point" " " "for" " " "Sxn" " " "code," " " "where" " " "you" " " "can" " " "place" " " "a" " " "definition" " " "for" " " "a" " " "variable" " " "named" " " (@L (@H "“") "CSS-ROLE-map" (@H "”")) ".") (p "But" " " "first," " " "create" " " "a" " " "zettel" " " "containing" " " "the" " " "needed" " " "CSS:" " " "give" " " "it" " " "any" " " "title," " " "its" " " "role" " " "is" " " "preferably" " " (@L (@H "“") "configuration" (@H "”")) " " "(but" " " "this" " " "is" " " "not" " " "a" " " "must)." " " "Its" " " (a (@ (href . "00001006020000#syntax")) (kbd "syntax")) " must" " " "be" " " "set" " " "to" " " (@L (@H "“") (a (@ (href . "00001008000000#css")) "css") (@H "”")) "." " " "The" " " "content" " " "must" " " "contain" " " "the" " " "role-specific" " " "CSS" " " "code," " " "for" " " "example" " " (code "body {background-color: #FFFFD0}") "for" " " "a" " " "background" " " "in" " " "a" " " "light" " " "yellow" " " "color.") (p "Let's" " " "assume," " " "the" " " "newly" " " "created" " " "CSS" " " "zettel" " " "got" " " "the" " " "identifier" " " (kbd "20220825200100") ".") (p "Now," " " "you" " " "have" " " "to" " " "map" " " "this" " " "freshly" " " "created" " " "zettel" " " "to" " " "a" " " "role," " " "for" " " "example" " " (@L (@H "“") "zettel" (@H "”")) "." " " "Since" " " "you" " " "have" " " "enabled" " " (kbd "expert-mode") "," " " "you" " " "are" " " "allowed" " " "to" " " "modify" " " "the" " " "zettel" " " (@L (@H "“") (span "Zettelstore" " " "Sxn" " " "Start" " " "Code") (@H "”")) "." " " "Add" " " "the" " " "following" " " "code" " " "to" " " "the" " " "Sxn" " " "Start" " " "Code" " " "zettel:" " " (code "(set! CSS-ROLE-map '((\"zettel\" . \"20220825200100\")))") ".") (p "In" " " "general," " " "the" " " "mapping" " " "must" " " "follow" " " "the" " " "pattern:" " " (code "(ROLE . ID)") "," " " "where" " " (kbd "ROLE") " " "is" " " "the" " " "placeholder" " " "for" " " "the" " " "role," " " "and" " " (kbd "ID") " " "for" " " "the" " " "zettel" " " "identifier" " " "containing" " " "CSS" " " "code." " " "For" " " "example," " " "if" " " "you" " " "also" " " "want" " " "the" " " "role" " " (@L (@H "“") "configuration" (@H "”")) " " "to" " " "be" " " "rendered" " " "using" " " "that" " " "CSS," " " "the" " " "code" " " "should" " " "be" " " "something" " " "like" " " (code "(set! CSS-ROLE-map '((\"zettel\" . \"20220825200100\") (\"configuration\" . \"20220825200100\")))") ".")) (li (p (strong "Discussion:") " " "you" " " "have" " " "to" " " "ensure" " " "that" " " "the" " " "CSS" " " "zettel" " " "is" " " "allowed" " " "to" " " "be" " " "read" " " "by" " " "the" " " "intended" " " "audience" " " "of" " " "the" " " "zettel" " " "with" " " "that" " " "given" " " "role." " " "For" " " "example," " " "if" " " "you" " " "made" " " "zettel" " " "with" " " "a" " " "specific" " " "role" " " "public" " " "visible," " " "the" " " "CSS" " " "zettel" " " "must" " " "also" " " "have" " " "a" " " (a (@ (href . "00001010070200")) (kbd "visibility: public")) " " "metadata."))) (h2 (@ (id . "zettel-synchronization-with-icloud-apple")) "Zettel" " " "synchronization" " " "with" " " "iCloud" " " "(Apple)") (ul (li (p (strong "Problem:") " " "You" " " "use" " " "Zettelstore" " " "on" " " "various" " " "macOS" " " "computers" " " "and" " " "you" " " "want" " " "to" " " "use" " " "the" " " "sameset" " " "of" " " "zettel" " " "across" " " "all" " " "computers.")) (li (p (strong "Solution:") " " "Place" " " "your" " " "zettel" " " "in" " " "an" " " "iCloud" " " "folder.") (p "To" " " "configure" " " "Zettelstore" " " "to" " " "use" " " "the" " " "folder," " " "you" " " "must" " " "specify" " " "its" " " "location" " " "within" " " "you" " " "directory" " " "structure" " " "as" " " (a (@ (href . "00001004010000#box-uri-x")) (kbd "box-uri-X")) " " "(replace" " " (kbd "X") " " "with" " " "an" " " "appropriate" " " "number)." " " "Your" " " "iCloud" " " "folder" " " "is" " " "typically" " " "placed" " " "in" " " "the" " " "folder" " " (kbd "~/Library/Mobile Documents/com~apple~CloudDocs") "." " " "The" " " (@L (@H "“") (kbd "~") (@H "”")) " " "is" " " "a" " " "shortcut" " " "and" " " "specifies" " " "your" " " "home" " " "folder.") (p "Unfortunately," " " "Zettelstore" " " "does" " " "not" " " "yet" " " "support" " " "this" " " "shortcut." " " "Therefore" " " "you" " " "must" " " "replace" " " "it" " " "with" " " "the" " " "absolute" " " "name" " " "of" " " "your" " " "home" " " "folder." " " "In" " " "addition," " " "a" " " "space" " " "character" " " "is" " " "not" " " "allowed" " " "in" " " "an" " " "URI." " " "You" " " "have" " " "to" " " "replace" " " "it" " " "with" " " "the" " " "sequence" " " (@L (@H "“") (kbd "%20") (@H "”")) ".") (p "Let" " " "us" " " "assume," " " "that" " " "you" " " "stored" " " "your" " " "zettel" " " "box" " " "inside" " " "the" " " "folder" " " (@L (@H "“") "zettel" (@H "”")) "," " " "which" " " "is" " " "located" " " "top-level" " " "in" " " "your" " " "iCloud" " " "folder." " " "In" " " "this" " " "case," " " "you" " " "must" " " "specify" " " "the" " " "following" " " "box" " " "URI" " " "within" " " "the" " " "startup" " " "configuration:" " " (kbd "box-uri-1: dir:///Users/USERNAME/Library/Mobile%20Documents/com~apple~CloudDocs/zettel") "," " " "replacing" " " (kbd "USERNAME") " " "with" " " "the" " " "username" " " "of" " " "that" " " "specific" " " "computer" " " "(and" " " "assuming" " " "you" " " "want" " " "to" " " "use" " " "it" " " "as" " " "the" " " "first" " " "box).")) (li (p (strong "Solution" " " "2:") " " "If" " " "you" " " "typically" " " "start" " " "your" " " "Zettelstore" " " "on" " " "the" " " "command" " " "line," " " "you" " " "could" " " "use" " " "the" " " (kbd "-d DIR") " " "option" " " "for" " " "the" " " (a (@ (href . "00001004051000#d")) (kbd "run")) " " "sub-command." " " "In" " " "this" " " "case" " " "you" " " "are" " " "allowed" " " "to" " " "use" " " "the" " " "character" " " (@L (@H "“") (kbd "~") (@H "”")) ".") (p (kbd "zettelstore run -d ~/Library/Mobile\\ Documents/com\\~apple\\~CloudDocs/zettel")) (p "(The" " " (@L (@H "“") (kbd "\\") (@H "”")) " " "is" " " "needed" " " "by" " " "the" " " "command" " " "line" " " "processor" " " "to" " " "mask" " " "the" " " "following" " " "character" " " "to" " " "be" " " "processed" " " "in" " " "unintended" " " "ways.)")) (li (p (strong "Discussion:") " " "Zettel" " " "files" " " "are" " " "synchronized" " " "between" " " "your" " " "computers" " " "via" " " "iCloud." " " "Is" " " "does" " " "not" " " "matter," " " "if" " " "one" " " "of" " " "your" " " "computer" " " "is" " " "offline" " " "/" " " "switched" " " "off." " " "iCloud" " " "will" " " "synchronize" " " "the" " " "zettel" " " "files" " " "if" " " "it" " " "later" " " "comes" " " "online.") (p "However," " " "if" " " "you" " " "use" " " "more" " " "than" " " "one" " " "computer" " " "simultaneously," " " "you" " " "must" " " "be" " " "aware" " " "that" " " "synchronization" " " "takes" " " "some" " " "time." " " "It" " " "might" " " "take" " " "several" " " "seconds," " " "maybe" " " "longer," " " "that" " " "new" " " "new" " " "version" " " "of" " " "a" " " "zettel" " " "appears" " " "on" " " "the" " " "other" " " "computer." " " "If" " " "you" " " "update" " " "the" " " "same" " " "zettel" " " "on" " " "multiple" " " "computers" " " "at" " " "nearly" " " "the" " " "same" " " "time," " " "iCloud" " " "will" " " "not" " " "be" " " "able" " " "to" " " "synchronize" " " "the" " " "different" " " "versions" " " "in" " " "a" " " "safe" " " "manner." " " "Zettelstore" " " "is" " " "intentionally" " " "not" " " "aware" " " "of" " " "any" " " "synchronization" " " "within" " " "its" " " "zettel" " " "boxes.") (p "If" " " "Zettelstore" " " "behaves" " " "strangely" " " "after" " " "a" " " "synchronization" " " "took" " " "place," " " "the" " " "page" " " "about" " " (a (@ (href . "00001018000000#working-with-files")) "Troubleshooting") " " "might" " " "contain" " " "some" " " "useful" " " "information."))))