Compare commits
	
		
			6 Commits
		
	
	
		
			v0.1.4
			...
			77886cb1c6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 77886cb1c6 | |||
| 57394668be | |||
| 3b1f91bcb0 | |||
| 4075c4fb18 | |||
| 
						 | 
					35ca2b896e | ||
| 
						 | 
					0705c55e77 | 
							
								
								
									
										19789
									
								
								docs/index.html
									
									
									
									
									
								
							
							
						
						
									
										19789
									
								
								docs/index.html
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -83,6 +83,12 @@ class ListenCommand(CliCommand):
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def setup_arguments(cls, parser: argparse.ArgumentParser) -> None:
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            "--host",
 | 
			
		||||
            metavar="HOST",
 | 
			
		||||
            help="Host to listen on.",
 | 
			
		||||
            default=str(cm().listen_host or "127.0.0.1"),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            "-p", "--port",
 | 
			
		||||
            metavar="PORT",
 | 
			
		||||
@@ -109,6 +115,7 @@ class ListenCommand(CliCommand):
 | 
			
		||||
            tw.exec(
 | 
			
		||||
                [
 | 
			
		||||
                    ("listen",
 | 
			
		||||
                    f"host={args.host}",
 | 
			
		||||
                    f"port={args.port}",
 | 
			
		||||
                    f"username={args.username}",
 | 
			
		||||
                    f"password={args.password}")
 | 
			
		||||
 
 | 
			
		||||
@@ -360,7 +360,7 @@ def _private_people_replacement_table(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@tzk_builder
 | 
			
		||||
def replace_private_people(initialer: Callable[[str], str] = None) -> None:
 | 
			
		||||
def replace_private_people(initialer: Callable[[str], str] = None, replace_text = False) -> None:
 | 
			
		||||
    """
 | 
			
		||||
    Replace the names of people who are not marked Public with their initials.
 | 
			
		||||
 | 
			
		||||
@@ -378,41 +378,56 @@ def replace_private_people(initialer: Callable[[str], str] = None) -> None:
 | 
			
		||||
    (e.g., MsJaneDoe becomes J.D.). The links point to the tiddler ``PrivatePerson``,
 | 
			
		||||
    which explains this process.
 | 
			
		||||
 | 
			
		||||
    :param initialer: If you don't like the way that initials
 | 
			
		||||
                      are generated from tiddler filenames by default,
 | 
			
		||||
                      you can customize it by passing a callable
 | 
			
		||||
                      that takes one string argument
 | 
			
		||||
                      (a tiddler filename without the full path, e.g., ``MsJaneDoe.tid``)
 | 
			
		||||
                      and returns a string to be considered the "initials" of that person.
 | 
			
		||||
    :param initialer:    If you don't like the way that initials
 | 
			
		||||
                         are generated from tiddler filenames by default,
 | 
			
		||||
                         you can customize it by passing a callable
 | 
			
		||||
                         that takes one string argument
 | 
			
		||||
                         (a tiddler filename without the full path, e.g., ``MsJaneDoe.tid``)
 | 
			
		||||
                         and returns a string to be considered the "initials" of that person.
 | 
			
		||||
 | 
			
		||||
    :param replace_text: If you have links in the form ``[[John|MrJohnDoe]]``, then enabling
 | 
			
		||||
                         this option ensures that the link text `John` is also replaced with
 | 
			
		||||
                         the initials.
 | 
			
		||||
    """
 | 
			
		||||
    assert 'public_wiki_folder' in build_state
 | 
			
		||||
 | 
			
		||||
    replacement_table = _private_people_replacement_table(initialer)
 | 
			
		||||
    from pprint import pprint; pprint(replacement_table)
 | 
			
		||||
    tid_files = (Path(build_state['public_wiki_folder']) / "tiddlers").glob("**/*.tid")
 | 
			
		||||
 | 
			
		||||
    for tiddler in tid_files:
 | 
			
		||||
        dirty = False
 | 
			
		||||
        with tiddler.open() as f:
 | 
			
		||||
            lines = f.readlines()
 | 
			
		||||
        for idx, line in enumerate(lines):
 | 
			
		||||
        for i in range(len(lines)):
 | 
			
		||||
            for replace_person, replace_initials in replacement_table.items():
 | 
			
		||||
                if replace_person in line:
 | 
			
		||||
                    if '|' + replace_person + ']]' in line:
 | 
			
		||||
                if replace_person in lines[i]:
 | 
			
		||||
                    if '|' + replace_person + ']]' in lines[i]:
 | 
			
		||||
                        # link with the person as the target only;
 | 
			
		||||
                        # beware that you might have put something private in the text
 | 
			
		||||
                        lines[idx] = line.replace(replace_person,
 | 
			
		||||
                                                  'PrivatePerson')
 | 
			
		||||
                        if replace_text:
 | 
			
		||||
                            # with this option, the initials are also
 | 
			
		||||
                            # put in the text, solving the warning before
 | 
			
		||||
                            end = lines[i].find('|' + replace_person + ']]')
 | 
			
		||||
                            start = lines[i].rfind('[[', 0, end) + 2
 | 
			
		||||
                            search = f"[[{lines[i][start:end]}|{replace_person}]]"
 | 
			
		||||
                            replace = f"[[{replace_initials}|PrivatePerson]]"
 | 
			
		||||
 | 
			
		||||
                            lines[i] = lines[i].replace(search, replace)
 | 
			
		||||
                        else:
 | 
			
		||||
                            lines[i] = line.replace(replace_person, 'PrivatePerson')
 | 
			
		||||
                    elif '[[' + replace_person + ']]' in line:
 | 
			
		||||
                        # link with the person as the target and text
 | 
			
		||||
                        lines[idx] = line.replace(replace_person,
 | 
			
		||||
                                                  replace_initials + '|PrivatePerson')
 | 
			
		||||
                        lines[i] = lines[i].replace(
 | 
			
		||||
                                replace_person,
 | 
			
		||||
                                replace_initials + '|PrivatePerson')
 | 
			
		||||
                    else:
 | 
			
		||||
                        # camel-case link or unlinked reference in text;
 | 
			
		||||
                        # or spurious substring, so rule that out with the '\b' search
 | 
			
		||||
                        lines[idx] = re.sub(
 | 
			
		||||
                        lines[i] = re.sub(
 | 
			
		||||
                            r"\b" + re.escape(replace_person) + r"\b",
 | 
			
		||||
                            f'<<privateperson "{replace_initials}">>',
 | 
			
		||||
                            line
 | 
			
		||||
                            lines[i]
 | 
			
		||||
                        )
 | 
			
		||||
                    dirty = True
 | 
			
		||||
        if dirty:
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
created: 20210925145600000
 | 
			
		||||
modified: 20210925145600000
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/config/TiddlyRemember/DefaultClasses
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
created: 20210929144900000
 | 
			
		||||
modified: 20210929144900000
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/config/TiddlyRemember/snippets/remembercz
 | 
			
		||||
 | 
			
		||||
<<remembercz "%NOTE_ID%"
 | 
			
		||||
	"Cloze">>
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
created: 20210929144900000
 | 
			
		||||
modified: 20210929144900000
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/config/TiddlyRemember/snippets/rememberq
 | 
			
		||||
 | 
			
		||||
<<rememberq "%NOTE_ID%"
 | 
			
		||||
	"Q"
 | 
			
		||||
	"A">>
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2020 Soren Bjornstad.
 | 
			
		||||
Copyright (c) 2020-2021 Soren Bjornstad and the TiddlyRemember community.
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
created: 20210929144300000
 | 
			
		||||
modified: 20210929144300000
 | 
			
		||||
tags: $:/tags/Macro
 | 
			
		||||
title: $:/plugins/sobjornstad/TiddlyRemember/macros/insert-snippet
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define tr-insert-note(snippet)
 | 
			
		||||
	<$vars
 | 
			
		||||
		thetime=<<now "[UTC]YYYY0MM0DD0hh0mm0ss0XXX">>
 | 
			
		||||
		theprefix={{$:/config/TiddlyRemember/IdPrefix}}>
 | 
			
		||||
	<$vars
 | 
			
		||||
		noteid={{{ [<theprefix>addsuffix<thetime>] }}}
 | 
			
		||||
		editingtid={{{ [<storyTiddler>get[draft.of]] }}}>
 | 
			
		||||
		<$action-sendmessage
 | 
			
		||||
			$message="tm-edit-text-operation"
 | 
			
		||||
			$param="replace-selection"
 | 
			
		||||
			text={{{ [<__snippet__>search-replace[%NOTE_ID%],<noteid>search-replace[%EDITING_TIDDLER%],<editingtid>] }}}/>
 | 
			
		||||
	</$vars>
 | 
			
		||||
	</$vars>
 | 
			
		||||
\end
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
created: 20200510004110231
 | 
			
		||||
modified: 20200730205800000
 | 
			
		||||
modified: 20200925141800000
 | 
			
		||||
tags: $:/tags/Macro
 | 
			
		||||
title: $:/plugins/sobjornstad/TiddlyRemember/macros/remember
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define remembertwo(id, reference)
 | 
			
		||||
\define remembertwo(id, reference, sched)
 | 
			
		||||
	<div class="tr-selfidentification">
 | 
			
		||||
		<$set name="selfid" filter="""[enlist[$reference$]]""" value="""[<$link to="$reference$">$reference$</$link>: $id$]""" emptyValue="[$id$]">
 | 
			
		||||
			<<selfid>>
 | 
			
		||||
@@ -16,10 +16,13 @@ type: text/vnd.tiddlywiki
 | 
			
		||||
	<div class="tr-reference">
 | 
			
		||||
		<$text text=<<__reference__>>/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="tr-sched">
 | 
			
		||||
		<$text text=<<__sched__>>/>
 | 
			
		||||
	</div>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define rememberq(id, question, answer, reference: "")
 | 
			
		||||
    <div class="rememberq remembertwo">
 | 
			
		||||
\define rememberq(id, question, answer, reference: "", sched: "", class:"")
 | 
			
		||||
    <div class={{{ [[rememberq remembertwo ]addsuffix<__class__>addsuffix[ ]addsuffix{$:/config/TiddlyRemember/DefaultClasses}] }}}>
 | 
			
		||||
        <div class="rquestion tr-ritem">
 | 
			
		||||
            <div>Q:</div>
 | 
			
		||||
            <p>$question$</p>
 | 
			
		||||
@@ -28,12 +31,12 @@ type: text/vnd.tiddlywiki
 | 
			
		||||
            <div>A:</div>
 | 
			
		||||
            <p>$answer$</p>
 | 
			
		||||
        </div>
 | 
			
		||||
		<$macrocall $name=remembertwo id=<<__id__>> reference=<<__reference__>>/>
 | 
			
		||||
		<$macrocall $name=remembertwo id=<<__id__>> reference=<<__reference__>> sched=<<__sched__>>/>
 | 
			
		||||
    </div>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define rememberp(id, first, second, reference: "")
 | 
			
		||||
    <div class="rememberp remembertwo">
 | 
			
		||||
\define rememberp(id, first, second, reference: "", sched: "", class: "")
 | 
			
		||||
    <div class={{{ [[rememberp remembertwo ]addsuffix<__class__>addsuffix[ ]addsuffix{$:/config/TiddlyRemember/DefaultClasses}] }}}>
 | 
			
		||||
        <div class="rfirst tr-ritem">
 | 
			
		||||
            <div>1:</div>
 | 
			
		||||
            <p>$first$</p>
 | 
			
		||||
@@ -42,52 +45,51 @@ type: text/vnd.tiddlywiki
 | 
			
		||||
            <div>2:</div>
 | 
			
		||||
            <p>$second$</p>
 | 
			
		||||
        </div>
 | 
			
		||||
		<$macrocall $name=remembertwo id=<<__id__>> reference=<<__reference__>>/>
 | 
			
		||||
		<$macrocall $name=remembertwo id=<<__id__>> reference=<<__reference__>> sched=<<__sched__>>/>
 | 
			
		||||
    </div>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define remembercz(id, text, mode: "block", reference: "")
 | 
			
		||||
	<$list filter="[[$mode$]match[inline]]">
 | 
			
		||||
		<$macrocall $name=twRememberClozeInline id=<<__id__>> text=<<__text__>> reference=<<__reference__>>/>
 | 
			
		||||
\define remembercz(id, text, mode: "block", reference: "", sched: "", class: "")
 | 
			
		||||
	<$list filter="[[$mode$]match[inline]]" variable=_>
 | 
			
		||||
		<$macrocall $name=twRememberClozeInline id=<<__id__>> text=<<__text__>> reference=<<__reference__>> sched=<<__sched__>> class=<<__class__>>/>
 | 
			
		||||
	</$list>
 | 
			
		||||
	<$list filter="[[$mode$]!match[inline]]">
 | 
			
		||||
		<$macrocall $name=twRememberClozeBlock id=<<__id__>> text=<<__text__>> reference=<<__reference__>>/>
 | 
			
		||||
	<$list filter="[[$mode$]!match[inline]]" variable=_>
 | 
			
		||||
		<$macrocall $name=twRememberClozeBlock id=<<__id__>> text=<<__text__>> reference=<<__reference__>> sched=<<__sched__>> class=<<__class__>>/>
 | 
			
		||||
	</$list>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define twRememberClozeBlock(id, text, reference)
 | 
			
		||||
	<div class="remembercz">
 | 
			
		||||
		<span class="cloze-identifier">cloze: </span>
 | 
			
		||||
		<span class="cloze-text">$text$</span>
 | 
			
		||||
		<div class="tr-selfidentification">
 | 
			
		||||
			<$set name="selfid" filter="""[enlist[$reference$]]""" value="""[<$link to="$reference$">$reference$</$link>: $id$]""" emptyValue="[$id$]">
 | 
			
		||||
				<<selfid>>
 | 
			
		||||
			</$set>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="rid">
 | 
			
		||||
			[$id$]
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="tr-reference">
 | 
			
		||||
			<$text text=<<__reference__>>/>
 | 
			
		||||
		</div>
 | 
			
		||||
\define twRememberMetadata(id, reference, sched)
 | 
			
		||||
	<div class="tr-selfidentification">
 | 
			
		||||
		<$set name="selfid" filter="""[enlist[$reference$]]""" value="""[<$link to="$reference$">$reference$</$link>: $id$]""" emptyValue="[$id$]">
 | 
			
		||||
			<<selfid>>
 | 
			
		||||
		</$set>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="rid">
 | 
			
		||||
		[$id$]
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="tr-reference">
 | 
			
		||||
		<$text text=<<__reference__>>/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="tr-sched">
 | 
			
		||||
		<$text text=<<__sched__>>/>
 | 
			
		||||
	</div>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define twRememberClozeInline(id, text, reference)
 | 
			
		||||
	<span class="remembercz">
 | 
			
		||||
		<span class="cloze-identifier">{cloze: </span>
 | 
			
		||||
\define twRememberClozeBlock(id, text, reference, sched, class)
 | 
			
		||||
    <div class={{{ [[remembercz ]addsuffix<__class__>addsuffix[ ]addsuffix{$:/config/TiddlyRemember/DefaultClasses}] }}}>
 | 
			
		||||
		<span class="cloze-identifier"><span class="tr-name-cloze">cloze: </span></span>
 | 
			
		||||
		<span class="cloze-display"><$set name="unescape" value={{{ [<__text__>search-replace:g[\{],[{]search-replace:g[\}],[}]] }}}><<unescape>></$set></span>
 | 
			
		||||
		<span class="cloze-text">$text$</span>
 | 
			
		||||
		<$macrocall $name="twRememberMetadata" id=<<__id__>> reference=<<__reference__>> sched=<<__sched__>>/>
 | 
			
		||||
	</div>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define twRememberClozeInline(id, text, reference, sched, class)
 | 
			
		||||
    <span class={{{ [[remembercz ]addsuffix<__class__>addsuffix[ ]addsuffix{$:/config/TiddlyRemember/DefaultClasses}] }}}>
 | 
			
		||||
		<span class="cloze-identifier">{<span class="tr-name-cloze">cloze: </span></span>
 | 
			
		||||
		<span class="cloze-display"><$set name="unescape" value={{{ [<__text__>search-replace:g[\{],[{]search-replace:g[\}],[}]] }}}><<unescape>></$set></span>
 | 
			
		||||
		<span class="cloze-identifier">}</span>
 | 
			
		||||
		<div class="tr-selfidentification">
 | 
			
		||||
			<$set name="selfid" filter="""[enlist[$reference$]]""" value="""[<$link to="$reference$">$reference$</$link>: $id$]""" emptyValue="[$id$]">
 | 
			
		||||
				<<selfid>>
 | 
			
		||||
			</$set>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="rid">
 | 
			
		||||
			[$id$]
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="tr-reference">
 | 
			
		||||
			<$text text=<<__reference__>>/>
 | 
			
		||||
		</div>
 | 
			
		||||
		<span class="cloze-text">$text$</span>
 | 
			
		||||
		<$macrocall $name="twRememberMetadata" id=<<__id__>> reference=<<__reference__>> sched=<<__sched__>>/>
 | 
			
		||||
	</span>
 | 
			
		||||
\end
 | 
			
		||||
@@ -43,11 +43,37 @@ div.remembercz {
 | 
			
		||||
	color: <<colour muted-foreground>>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* the separate reference and ID fields are only for TR's benefit */
 | 
			
		||||
 | 
			
		||||
/* these separate fields are only read by the TR parser */
 | 
			
		||||
div.remembertwo div.tr-reference, .remembercz div.tr-reference {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.remembertwo div.rid, .remembercz div.rid {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.remembertwo div.tr-sched, .remembercz div.tr-sched {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.remembercz > span.cloze-text {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***** Built-in classes for common format customizations; apply to the class: parameter to macros *****/
 | 
			
		||||
/* Hide the ID field */
 | 
			
		||||
.tr-hide-id div.tr-selfidentification {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Hide the ID only if it's an inline cloze */
 | 
			
		||||
span.remembercz.tr-hide-inline-cloze-id div.tr-selfidentification {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Hide the word "cloze" on inline clozes */
 | 
			
		||||
span.remembercz.tr-hide-inline-cloze-name span.cloze-identifier span.tr-name-cloze {
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
@@ -6,9 +6,13 @@ type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]
 | 
			
		||||
 | 
			
		||||
<span id="tr-version">1.2.2</span>
 | 
			
		||||
<$set name="tr-rendering" value="yes">
 | 
			
		||||
 | 
			
		||||
<span id="tr-version">1.3.2</span>
 | 
			
		||||
 | 
			
		||||
{{||$:/plugins/sobjornstad/TiddlyRemember/templates/AnkiDecks}}
 | 
			
		||||
{{||$:/plugins/sobjornstad/TiddlyRemember/templates/AnkiTags}}
 | 
			
		||||
 | 
			
		||||
<$transclude mode="block" />
 | 
			
		||||
 | 
			
		||||
</$set>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,21 +10,4 @@ tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/plugins/sobjornstad/TiddlyRemember/toolbar/remembercz
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define getMacro()
 | 
			
		||||
<<remembercz "$(clozeid)$"
 | 
			
		||||
	"Cloze">>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define prefixId() $(theprefix)$$(thetime)$
 | 
			
		||||
 | 
			
		||||
<$set name=thetime value=<<now "[UTC]YYYY0MM0DD0hh0mm0ss0XXX">> >
 | 
			
		||||
<$set name=theprefix value={{$:/config/TiddlyRemember/IdPrefix}}>
 | 
			
		||||
<$set name=clozeid value=<<prefixId>> >
 | 
			
		||||
	<$action-sendmessage
 | 
			
		||||
		$message="tm-edit-text-operation"
 | 
			
		||||
		$param="replace-selection"
 | 
			
		||||
		text=<<getMacro>>
 | 
			
		||||
	/>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
<$macrocall $name=tr-insert-note snippet={{$:/config/TiddlyRemember/snippets/remembercz}}>
 | 
			
		||||
@@ -9,22 +9,4 @@ tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/plugins/sobjornstad/TiddlyRemember/toolbar/rememberq
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define getMacro()
 | 
			
		||||
<<rememberq "$(questionid)$"
 | 
			
		||||
	"Q"
 | 
			
		||||
	"A">>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define prefixId() $(theprefix)$$(thetime)$
 | 
			
		||||
 | 
			
		||||
<$set name=thetime value=<<now "[UTC]YYYY0MM0DD0hh0mm0ss0XXX">> >
 | 
			
		||||
<$set name=theprefix value={{$:/config/TiddlyRemember/IdPrefix}}>
 | 
			
		||||
<$set name=questionid value=<<prefixId>> >
 | 
			
		||||
	<$action-sendmessage
 | 
			
		||||
		$message="tm-edit-text-operation"
 | 
			
		||||
		$param="replace-selection"
 | 
			
		||||
		text=<<getMacro>>
 | 
			
		||||
	/>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
<$macrocall $name=tr-insert-note snippet={{$:/config/TiddlyRemember/snippets/rememberq}}>
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
    "title": "$:/plugins/sobjornstad/TiddlyRemember",
 | 
			
		||||
    "description": "TiddlyRemember: Embed Anki notes in your TiddlyWiki",
 | 
			
		||||
    "author": "Soren Bjornstad",
 | 
			
		||||
    "version": "1.2.2",
 | 
			
		||||
    "version": "1.3.2",
 | 
			
		||||
    "core-version": ">=5.1.21",
 | 
			
		||||
    "source": "https://github.com/sobjornstad/TiddlyRemember",
 | 
			
		||||
    "list": "readme license",
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,68 @@
 | 
			
		||||
caption: Shuffle Operator
 | 
			
		||||
title: $:/plugins/mklauber/shuffle/readme
 | 
			
		||||
 | 
			
		||||
|!purpose|Randomize the order of the input list|
 | 
			
		||||
|!input|a selection of titles|
 | 
			
		||||
|!parameter|a random string to be used to create consistent random ordering|
 | 
			
		||||
|!output|The input titles, rearranged in a random order|
 | 
			
		||||
 | 
			
		||||
This plugin implements a new filter operator called Shuffle.  This operator takes the input list and randomizes the order of the list.  If no parameter is provided, the list order is random every time.
 | 
			
		||||
 | 
			
		||||
!!!Example:
 | 
			
		||||
```
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle[]]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<$button popup="$:/state/shuffle/reveal1">Run Demo</$button>
 | 
			
		||||
 | 
			
		||||
<$reveal type="popup" state="$:/state/shuffle/reveal1">
 | 
			
		||||
<div class="tc-drop-down">
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle[]]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
</div>
 | 
			
		||||
</$reveal>
 | 
			
		||||
 | 
			
		||||
Combining this operator with the first operator allows you to choose 1 or more titles randomly from a list.
 | 
			
		||||
 | 
			
		||||
!!!Example:
 | 
			
		||||
```
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle[]first[2]]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<$button popup="$:/state/shuffle/reveal2">Run Demo</$button>
 | 
			
		||||
 | 
			
		||||
<$reveal type="popup" state="$:/state/shuffle/reveal2">
 | 
			
		||||
<div class="tc-drop-down">
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle[]first[2]]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
</div>
 | 
			
		||||
</$reveal>
 | 
			
		||||
 | 
			
		||||
If a parameter is provided the list will be ordered identically every time it is rendered.  This can be useful in conjunction a button that updates a state tiddler.  Set the parameter of this operator to reference that state tiddler, and create a button that updates that tiddler, and now the ordering of the random operators only changes when the button is pressed.
 | 
			
		||||
 | 
			
		||||
!!!Example:
 | 
			
		||||
```
 | 
			
		||||
<$button>
 | 
			
		||||
<$action-setfield $tiddler="$:/temp/shuffle/example" $field="state" $value=<<now "0hh:0mm:0ss">>/>
 | 
			
		||||
Change Order
 | 
			
		||||
</$button>
 | 
			
		||||
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle{$:/temp/shuffle/example!!state}]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<$button>
 | 
			
		||||
<$action-setfield $tiddler="$:/temp/shuffle/example" $field="state" $value=<<now "0hh:0mm:0ss">>/>
 | 
			
		||||
Update
 | 
			
		||||
</$button>
 | 
			
		||||
 | 
			
		||||
<$list filter="1 2 3 4 5 +[shuffle{$:/temp/shuffle/example!!state}]">
 | 
			
		||||
 | 
			
		||||
</$list>
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
!function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;a<q;)a=(a+c)*l,b*=l,c=t.g(1);for(;a>=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/4294967296},u.double=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);e<l;)g[e]=e++;for(e=0;e<l;e++)g[e]=g[f=s&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=s&e+1],c=c*l+g[s&(g[e]=g[f=s&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(l)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(f(a[c],b-1))}catch(a){}return d.length?d:"string"==e?a:a+"\0"}function g(a,b){for(var c,d=a+"",e=0;e<d.length;)b[s&e]=s&(c^=19*b[s&e])+d.charCodeAt(e++);return i(b)}function h(){try{var b;return j&&(b=j.randomBytes)?b=b(l):(b=new Uint8Array(l),(k.crypto||k.msCrypto).getRandomValues(b)),i(b)}catch(b){var c=k.navigator,d=c&&c.plugins;return[+new Date,k,d,k.screen,i(a)]}}function i(a){return String.fromCharCode.apply(0,a)}var j,k=this,l=256,m=6,n=52,o="random",p=b.pow(l,m),q=b.pow(2,n),r=2*q,s=l-1;if(b["seed"+o]=c,g(b.random(),a),"object"==typeof module&&module.exports){module.exports=c;try{j=require("crypto")}catch(a){}}else"function"==typeof define&&define.amd&&define(function(){return c})}([],Math);
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
created: 20180220123939614
 | 
			
		||||
modified: 20180220125617309
 | 
			
		||||
module-type: library
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/plugins/mklauber/shuffle/seedrandom.js
 | 
			
		||||
type: application/javascript
 | 
			
		||||
@@ -0,0 +1,53 @@
 | 
			
		||||
(function(){
 | 
			
		||||
 | 
			
		||||
    "use strict";
 | 
			
		||||
 | 
			
		||||
    var hash = function(str) {
 | 
			
		||||
      var hash = 0, i, chr, len;
 | 
			
		||||
      if (str.length === 0) return hash;
 | 
			
		||||
      for (i = 0, len = str.length; i < len; i++) {
 | 
			
		||||
        chr   = str.charCodeAt(i);
 | 
			
		||||
        hash  = ((hash << 5) - hash) + chr;
 | 
			
		||||
        hash |= 0; // Convert to 32bit integer
 | 
			
		||||
      }
 | 
			
		||||
      return hash;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var shuffle = function(array, seed) {
 | 
			
		||||
      var currentIndex = array.length, temporaryValue, randomIndex ;
 | 
			
		||||
     Math.seedrandom(seed)
 | 
			
		||||
 | 
			
		||||
      // While there remain elements to shuffle...
 | 
			
		||||
      while (0 !== currentIndex) {
 | 
			
		||||
 | 
			
		||||
        // Pick a remaining element...
 | 
			
		||||
        randomIndex = Math.floor(Math.random() * currentIndex);
 | 
			
		||||
        currentIndex -= 1;
 | 
			
		||||
 | 
			
		||||
        // And swap it with the current element.
 | 
			
		||||
        temporaryValue = array[currentIndex];
 | 
			
		||||
        array[currentIndex] = array[randomIndex];
 | 
			
		||||
        array[randomIndex] = temporaryValue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return array;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var prepare_results = function (source) {
 | 
			
		||||
	    var results = [];
 | 
			
		||||
	    source(function(tiddler,title) {
 | 
			
		||||
		    results.push(title);
 | 
			
		||||
	    });
 | 
			
		||||
	    return results;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    exports.shuffle = function(source, operator, options) {
 | 
			
		||||
       var results = prepare_results(source);
 | 
			
		||||
       if (operator['operand'] == "") {
 | 
			
		||||
           shuffle(results);
 | 
			
		||||
       } else {
 | 
			
		||||
           shuffle(results, hash(operator['operand']));
 | 
			
		||||
       }
 | 
			
		||||
       return results;
 | 
			
		||||
    }
 | 
			
		||||
})();
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
caption: A filter Operator to randomize the order of the list passed to it.
 | 
			
		||||
created: 20150811171933696
 | 
			
		||||
modified: 20180220125039203
 | 
			
		||||
module-type: filteroperator
 | 
			
		||||
title: $:/plugins/mklauber/shuffle/shuffle.js
 | 
			
		||||
type: application/javascript
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
exports.name = "shuffle"
 | 
			
		||||
exports.before = ["render"]
 | 
			
		||||
exports.startup = function() {
 | 
			
		||||
  $tw.modules.execute('$:/plugins/mklauber/shuffle/seedrandom.js');
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
created: 20180220133753576
 | 
			
		||||
modified: 20180220133920300
 | 
			
		||||
module-type: startup
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/plugins/mklauber/shuffle/startup.js
 | 
			
		||||
type: application/javascript
 | 
			
		||||
							
								
								
									
										13
									
								
								tzk/editions/tzk/plugins/shuffle/plugin.info
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tzk/editions/tzk/plugins/shuffle/plugin.info
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
    "author": "Matthew Lauber",
 | 
			
		||||
    "core-version": ">=5.0.0",
 | 
			
		||||
    "created": "20210105134918257",
 | 
			
		||||
    "dependents": "",
 | 
			
		||||
    "description": "A Shuffle filter operator",
 | 
			
		||||
    "list": "readme",
 | 
			
		||||
    "modified": "20211107172616237",
 | 
			
		||||
    "plugin-type": "plugin",
 | 
			
		||||
    "source": "https://github.com/mklauber/tiddly-shuffle",
 | 
			
		||||
    "title": "$:/plugins/mklauber/shuffle",
 | 
			
		||||
    "version": "1.0.2"
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
created: 20210928031215487
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20210928031216652
 | 
			
		||||
modifier: soren
 | 
			
		||||
title: $:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/do-thing
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
show
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
created: 20200516190911842
 | 
			
		||||
modified: 20210308030709436
 | 
			
		||||
modified: 20211113234932630
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/config/TiddlyRemember/TagMapping
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,9 @@ caption: Sidebar info links
 | 
			
		||||
created: 20210623014408947
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Show navigation links to the most important parts of the wiki underneath the subtitle.
 | 
			
		||||
modified: 20210825145449987
 | 
			
		||||
modified: 20211107173557802
 | 
			
		||||
modifier: soren
 | 
			
		||||
private: no
 | 
			
		||||
private: yes
 | 
			
		||||
public: no
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/config/zettelkasten/FeatureFlags/SidebarInfoLinks
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ caption: Spoiler banner
 | 
			
		||||
created: 20210622003118415
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Display a warning banner on fiction tiddlers (any tiddler with a non-empty `universe` field) noting that we don't try to hide spoilers.
 | 
			
		||||
modified: 20210909130158483
 | 
			
		||||
modified: 20211107181812051
 | 
			
		||||
modifier: soren
 | 
			
		||||
private: no
 | 
			
		||||
public: no
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,19 @@
 | 
			
		||||
caption: {{$:/language/Buttons/Linkify/Caption}}
 | 
			
		||||
condition: [<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]
 | 
			
		||||
created: 20210928031136147
 | 
			
		||||
creator: soren
 | 
			
		||||
description: {{$:/language/Buttons/Linkify/Hint}}
 | 
			
		||||
icon: $:/core/images/linkify
 | 
			
		||||
modified: 20210928031136215
 | 
			
		||||
modifier: soren
 | 
			
		||||
shortcuts: ((linkify))
 | 
			
		||||
tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/core/ui/EditorToolbar/linkify
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
<$action-sendmessage
 | 
			
		||||
	$message="tm-edit-text-operation"
 | 
			
		||||
	$param="wrap-selection"
 | 
			
		||||
	prefix="[["
 | 
			
		||||
	suffix="]]"
 | 
			
		||||
/>
 | 
			
		||||
@@ -0,0 +1,19 @@
 | 
			
		||||
caption: {{$:/language/Buttons/Transcludify/Caption}}
 | 
			
		||||
condition: [<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]
 | 
			
		||||
created: 20210928031136147
 | 
			
		||||
creator: soren
 | 
			
		||||
description: {{$:/language/Buttons/Transcludify/Hint}}
 | 
			
		||||
icon: $:/core/images/transcludify
 | 
			
		||||
modified: 20210928031136239
 | 
			
		||||
modifier: soren
 | 
			
		||||
shortcuts: ((transcludify))
 | 
			
		||||
tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/core/ui/EditorToolbar/transcludify
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
<$action-sendmessage
 | 
			
		||||
	$message="tm-edit-text-operation"
 | 
			
		||||
	$param="wrap-selection"
 | 
			
		||||
	prefix="{{"
 | 
			
		||||
	suffix="}}"
 | 
			
		||||
/>
 | 
			
		||||
							
								
								
									
										52
									
								
								tzk/editions/tzk/tiddlers/$__inmysocks_macros_day-diff.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								tzk/editions/tzk/tiddlers/$__inmysocks_macros_day-diff.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
/*\
 | 
			
		||||
title: $:/inmysocks/macros/day-diff.js
 | 
			
		||||
type: application/javascript
 | 
			
		||||
module-type: macro
 | 
			
		||||
 | 
			
		||||
Takes two dates and returns their difference in days
 | 
			
		||||
 | 
			
		||||
\*/
 | 
			
		||||
(function(){
 | 
			
		||||
 | 
			
		||||
/*jslint node: true, browser: true */
 | 
			
		||||
/*global $tw: false */
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Information about this macro
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
exports.name = "day-diff";
 | 
			
		||||
 | 
			
		||||
exports.params = [
 | 
			
		||||
	{name: "year1"},
 | 
			
		||||
	{name: "month1"},
 | 
			
		||||
	{name: "day1"},
 | 
			
		||||
	{name: "year2"},
 | 
			
		||||
	{name: "month2"},
 | 
			
		||||
	{name: "day2"}
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Run the macro
 | 
			
		||||
*/
 | 
			
		||||
exports.run = function(year1, month1, day1, year2, month2, day2) {
 | 
			
		||||
	//Make each date object.
 | 
			
		||||
	var date1 = new Date(year1, Number(month1)+Number(1), day1);
 | 
			
		||||
	var date2 = new Date(year2, Number(month2)+Number(1), day2);
 | 
			
		||||
 | 
			
		||||
	//Find difference in milliseconds.
 | 
			
		||||
	var elapsed = date2.getTime()-date1.getTime();
 | 
			
		||||
 | 
			
		||||
	//Number of milliseconds in a day.
 | 
			
		||||
	var dayMS = 86400000; 
 | 
			
		||||
 | 
			
		||||
	//Convert milliseconds to year months and days
 | 
			
		||||
	var days_diff = Math.floor(elapsed/dayMS);
 | 
			
		||||
	
 | 
			
		||||
	var result = days_diff;
 | 
			
		||||
 | 
			
		||||
	return result;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
created: 20150225185218583
 | 
			
		||||
modified: 20211204021739668
 | 
			
		||||
module-type: macro
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/inmysocks/macros/day-diff.js
 | 
			
		||||
type: application/javascript
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
caption: RememberCz
 | 
			
		||||
condition: [<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]
 | 
			
		||||
created: 20200517155905263
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Remember Cloze Deletion
 | 
			
		||||
icon: $:/plugins/sobjornstad/TiddlyRemember/icons/lightbulb-black.svg
 | 
			
		||||
modified: 20211113234933532
 | 
			
		||||
modifier: soren
 | 
			
		||||
shortcuts: ((remembercz))
 | 
			
		||||
tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/plugins/sobjornstad/TiddlyRemember/toolbar/remembercz
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define getMacro()
 | 
			
		||||
<<remembercz "$(clozeid)$"
 | 
			
		||||
	"Cloze">>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
\define prefixId() $(theprefix)$$(thetime)$
 | 
			
		||||
 | 
			
		||||
<$set name=thetime value=<<now "[UTC]YYYY0MM0DD0hh0mm0ss0XXX">> >
 | 
			
		||||
<$set name=theprefix value={{$:/config/TiddlyRemember/IdPrefix}}>
 | 
			
		||||
<$set name=clozeid value=<<prefixId>> >
 | 
			
		||||
	<$action-sendmessage
 | 
			
		||||
		$message="tm-edit-text-operation"
 | 
			
		||||
		$param="replace-selection"
 | 
			
		||||
		text=<<getMacro>>
 | 
			
		||||
	/>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
caption: Excise private chunk
 | 
			
		||||
condition: [<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]
 | 
			
		||||
created: 20210522034413324
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Create a new private chunk from the selection
 | 
			
		||||
icon: $:/core/images/locked-padlock
 | 
			
		||||
list-after: $:/core/ui/EditorToolbar/excise
 | 
			
		||||
modified: 20210522034828757
 | 
			
		||||
modified: 20210928031136154
 | 
			
		||||
modifier: soren
 | 
			
		||||
shortcuts: ((excise-private-chunk))
 | 
			
		||||
tags: $:/tags/EditorToolbar
 | 
			
		||||
title: $:/sib/Buttons/excise-private-chunk
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,13 @@
 | 
			
		||||
caption: possible
 | 
			
		||||
color: lightblue
 | 
			
		||||
created: 20210508225155649
 | 
			
		||||
modified: 20210508230813020
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20211229142954562
 | 
			
		||||
modifier: soren
 | 
			
		||||
section: main
 | 
			
		||||
stackorder: 30
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/sib/EpistemicStatus/possible
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
I [[withhold judgment|OpinionsRequireCounterarguments]] on the idea; I am merely reporting it.
 | 
			
		||||
I [[withhold judgment|NoOpinion]] on the idea; I am merely reporting it.
 | 
			
		||||
@@ -1,14 +1,19 @@
 | 
			
		||||
created: 20210623014041787
 | 
			
		||||
creator: soren
 | 
			
		||||
list-after: $:/core/ui/SideBarSegments/site-subtitle
 | 
			
		||||
modified: 20210623014719347
 | 
			
		||||
modified: 20211107173606954
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/SideBarSegment
 | 
			
		||||
title: $:/sib/SideBar/InfoLinks
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define go-random-action() <$action-navigate $to={{{[tag[Idea]!tag[PrivateChunk]!regexp[/]!tag[Stub]shuffle[]first[]]}}}/>
 | 
			
		||||
 | 
			
		||||
<$list filter=<<ff SidebarInfoLinks>> variable=_>
 | 
			
		||||
[[about|PublicHomepage]] ·
 | 
			
		||||
[[reading|RecentlyRead]] ·
 | 
			
		||||
[[favorites|Favorites]]
 | 
			
		||||
[[favorites|Favorites]] ·
 | 
			
		||||
<$button class="tc-tiddlylink tc-btn-invisible" actions=<<go-random-action>>>random idea</$button>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
.gtw-sidebar-links a, .gtw-sidebar-links button {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,12 @@
 | 
			
		||||
caption: Stubs
 | 
			
		||||
created: 20200516155336361
 | 
			
		||||
creator: soren
 | 
			
		||||
list-after: $:/core/ui/MoreSideBar/Missing
 | 
			
		||||
modified: 20210522014721028
 | 
			
		||||
modified: 20211204001205484
 | 
			
		||||
modifier: soren
 | 
			
		||||
title: $:/sib/SideBar/Write/Stub
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
<$list filter="[tag[Stub]sort[]]" emptyMessage="No stubs right now! You're awesome!">
 | 
			
		||||
<$list filter="[tag[Stub]sort[]] -[[$:/TagSaver]]" emptyMessage="No stubs right now! You're awesome!">
 | 
			
		||||
	<$link to=<<currentTiddler>>><<currentTiddler>></$link><br/>
 | 
			
		||||
</$list>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,12 @@
 | 
			
		||||
created: 20201204132021892
 | 
			
		||||
modified: 20210522014049552
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20211027125509141
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/EditTemplate
 | 
			
		||||
title: $:/sib/Templates/Automatic/MissingTiddlerCreationNotification
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
<$list filter="[all[current]get[draft.of]prefix[New Tiddler]]" variable="draftof">
 | 
			
		||||
<$list filter="[all[current]get[draft.of]prefix[New ]]" variable="draftof">
 | 
			
		||||
  <$list filter="[all[current]get[draft.title]backlinks[]first[]]" variable=_>
 | 
			
		||||
    Creating missing tiddler <$link to={{!!draft.title}}/>. The following tiddlers will link here when you save:
 | 
			
		||||
    <<list-links "[all[current]get[draft.title]backlinks[]]">>
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
created: 20211120164840100
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Navigate to the parent or a sibling of the current subtiddler. Subtiddler names are separated from that of their supertiddlers by a / (and are not system tiddlers).
 | 
			
		||||
modified: 20211120170254112
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/ViewTemplate
 | 
			
		||||
title: $:/sib/Templates/Automatic/Subtiddler
 | 
			
		||||
transcludedin: All tiddlers whose titles contain a slash and are not system tiddlers.
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
\define expand-siblings() <$action-setfield $tiddler="$:/temp/ShowSiblings" $index=<<currentTiddler>> $value="yes" />
 | 
			
		||||
\define contract-siblings() <$action-setfield $tiddler="$:/temp/ShowSiblings" $index=<<currentTiddler>> $value="no" />
 | 
			
		||||
 | 
			
		||||
<$list filter="[all[current]!is[system]regexp:title[/]]" variable=_>
 | 
			
		||||
<$set name="parentTiddler" value={{{ [all[current]split[/]butlast[]join[/]] }}}>
 | 
			
		||||
<$set name="parentTiddlerPlusSlash" value={{{ [<parentTiddler>addsuffix[/]] }}}>
 | 
			
		||||
<div style="text-align: center;">
 | 
			
		||||
 | 
			
		||||
This is a subtiddler of <$link to=<<parentTiddler>>/>.<br>
 | 
			
		||||
	<$reveal stateTitle="$:/temp/ShowSiblings" stateIndex=<<currentTiddler>> type="nomatch" text="yes">
 | 
			
		||||
		<$button class="tc-btn-invisible tc-tiddlylink" actions=<<expand-siblings>>>{{$:/core/images/right-arrow}} Siblings of this subtiddler</$button>
 | 
			
		||||
	</$reveal>
 | 
			
		||||
	<$reveal stateTitle="$:/temp/ShowSiblings" stateIndex=<<currentTiddler>> type="match" text="yes">
 | 
			
		||||
		<$button class="tc-btn-invisible tc-tiddlylink" actions=<<contract-siblings>>>{{$:/core/images/down-arrow}} Siblings of this subtiddler:</$button><br>
 | 
			
		||||
		<$list filter="[prefix<parentTiddlerPlusSlash>]">
 | 
			
		||||
			<$link to=<<currentTiddler>>><$text text={{{ [<currentTiddler>removeprefix<parentTiddlerPlusSlash>] }}}/></$link><br>
 | 
			
		||||
		</$list>
 | 
			
		||||
	</$reveal>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</$set>
 | 
			
		||||
</$set>
 | 
			
		||||
</$list>
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
created: 20211120170347843
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Show a warning on tiddlers that don't have a type selected.
 | 
			
		||||
modified: 20211221014011578
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/ViewTemplate
 | 
			
		||||
title: $:/sib/Templates/Automatic/TypeTagChecker
 | 
			
		||||
transcludedin: All tiddlers that exist, aren't system tiddlers or subtiddlers, and don't have at least one tag of the color #ff0000.
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 | 
			
		||||
<!-- System tiddlers, missing tiddlers, and subtiddlers are exempt from the warning. -->
 | 
			
		||||
<$list filter="[all[current]!is[system]!is[missing]!regexp[/]]">
 | 
			
		||||
<$list filter="[all[current]tags[]color[#ff0000]] ~[[Oops]] +[match[Oops]]" variable=_>
 | 
			
		||||
	<div style="display: inline-block; vertical-align: center; margin-top: 6px; margin-left: 1em; fill: yellow;">
 | 
			
		||||
		<span style="height: 44px">{{$:/core/images/warning}}</span>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div style="display: inline-block; margin-left: 1em; color: yellow; font-weight: bold;">
 | 
			
		||||
		This tiddler does not have a type tag (type tags appear in red). You should probably attach one.<br>
 | 
			
		||||
		See [[ZettelkastenCardType]] for details on the available options.
 | 
			
		||||
	</div>
 | 
			
		||||
</$list>
 | 
			
		||||
</$list>
 | 
			
		||||
@@ -3,7 +3,7 @@ created: 20210701023215046
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Items we're currently working on but don't need to leave open. Drag and drop a link to a tiddler to add it.
 | 
			
		||||
list: 
 | 
			
		||||
modified: 20210920155431768
 | 
			
		||||
modified: 20211026030511257
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: Meta Tool
 | 
			
		||||
title: $:/sib/Tools/Tray
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
created: 20210410004529968
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20210825162735756
 | 
			
		||||
modified: 20210924153927403
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: 
 | 
			
		||||
title: $:/sib/indite/InditeChildren
 | 
			
		||||
@@ -50,11 +50,14 @@ copy <<copy-me>> · <<copy-rendered>>
 | 
			
		||||
				$viewBlock$
 | 
			
		||||
			</div>
 | 
			
		||||
		</$list>
 | 
			
		||||
		
 | 
			
		||||
		<$list filter="[<tr-rendering>!match[yes]]" variable=_>
 | 
			
		||||
		<$list filter="[all[current]editmode[edit]] [all[current]editmode[both]]">
 | 
			
		||||
			<div class={{{ [[indite-sbs-editor]addsuffix[ ]addsuffix<thewidth>] }}}>
 | 
			
		||||
				<$transclude tiddler="$:/core/ui/EditTemplate/body/editor"/>
 | 
			
		||||
			</div>
 | 
			
		||||
		</$list>
 | 
			
		||||
		</$list>
 | 
			
		||||
	</$set>
 | 
			
		||||
\end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,9 @@
 | 
			
		||||
caption: Indite view template
 | 
			
		||||
created: 20210410004824597
 | 
			
		||||
creator: soren
 | 
			
		||||
description: Tiddlers that are part of the Indite writing system (under development) hide the normal view template via CSS and use this one instead.
 | 
			
		||||
modified: 20210523143848140
 | 
			
		||||
modified: 20210924153731019
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/ViewTemplate
 | 
			
		||||
title: $:/sib/indite/ViewTemplate
 | 
			
		||||
transcludedin: All tiddlers tagged <<tag Indite>>.
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ caption: Subtiddlers
 | 
			
		||||
condition: [all[tiddlers]prefix<storyTiddler>!field:title<storyTiddler>sort[]]
 | 
			
		||||
created: 20201206210345097
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20210920161045390
 | 
			
		||||
modified: 20211227155615108
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/ReferenceExplorerTab
 | 
			
		||||
title: $:/sib/refexplorer/Subtiddlers
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
created: 20210719234124096
 | 
			
		||||
modified: 20210719235343017
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20211025140658570
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/Stylesheet
 | 
			
		||||
title: $:/sib/styles/footnote
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
@@ -26,8 +28,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 | 
			
		||||
.refnotes-footnote:after {
 | 
			
		||||
  content: counter(fnote-count);
 | 
			
		||||
  font-size:small;
 | 
			
		||||
  vertical-align: super;
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
	vertical-align: top;
 | 
			
		||||
	font-size: 0.8em;
 | 
			
		||||
  /*vertical-align: super;
 | 
			
		||||
  line-height: 1.5;*/
 | 
			
		||||
  margin-left: 0em;
 | 
			
		||||
  color: yellow;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
created: 20210624125244567
 | 
			
		||||
modified: 20210629025407566
 | 
			
		||||
creator: soren
 | 
			
		||||
modified: 20211025010048942
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: $:/tags/Stylesheet
 | 
			
		||||
title: $:/sib/styles/hr
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
@@ -7,7 +9,7 @@ type: text/vnd.tiddlywiki
 | 
			
		||||
/* Based on: Flaired edges, by Tomas Theunissen
 | 
			
		||||
   https://css-tricks.com/examples/hrs/ */
 | 
			
		||||
 | 
			
		||||
.tc-tiddler-body hr, .tc-tiddler-preview-preview hr {
 | 
			
		||||
.tc-tiddler-body > hr, .tc-tiddler-preview-preview > hr {
 | 
			
		||||
    overflow: visible; /* For IE */
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    border-style: solid;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								tzk/editions/tzk/tiddlers/$__tags_EditorToolbar.tid
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								tzk/editions/tzk/tiddlers/$__tags_EditorToolbar.tid
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
created: 20210928031136148
 | 
			
		||||
creator: soren
 | 
			
		||||
list: $:/core/ui/EditorToolbar/do-thing $:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/linkify $:/core/ui/EditorToolbar/transcludify $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/sib/Buttons/excise-private-chunk $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type $:/plugins/sobjornstad/TiddlyRemember/toolbar/rememberq $:/plugins/sobjornstad/TiddlyRemember/toolbar/remembercz $:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex
 | 
			
		||||
modified: 20210928031142401
 | 
			
		||||
modifier: soren
 | 
			
		||||
title: $:/tags/EditorToolbar
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
created: 20201129183705439
 | 
			
		||||
list: $:/core/ui/ViewTemplate/title $:/core/ui/ViewTemplate/unfold $:/core/ui/ViewTemplate/subtitle $:/sib/EpistemicStatus/Display $:/sib/MediaRating/Display $:/core/ui/ViewTemplate/tags $:/core/ui/ViewTemplate/classic $:/sib/Templates/Automatic/SpoilerBanner $:/sib/Templates/Automatic/Untitled $:/sib/Templates/Automatic/PrivateChunkParentNotice $:/sib/Templates/Automatic/Source $:/sib/Templates/Topical/MinnesotaStateParkInfo $:/sib/Templates/Automatic/MacroDescription $:/core/ui/ViewTemplate/body $:/sib/indite/ViewTemplate $:/sib/Reviewer/SchedulableTemplate $:/sib/gis/MappingTools $:/sib/Templates/Topical/SabbaticalUpdates/DateNavigation $:/sib/Templates/Automatic/Publicity/ViewerPublicLine $:/core/ui/ViewTemplate/import $:/core/ui/ViewTemplate/plugin $:/plugins/danielo515/2click2edit/ui/ViewTemplate $:/sib/refexplorer/ReferenceExplorer $:/sib/Templates/Automatic/ViewTemplateDescription $:/sib/Templates/Automatic/ReaderActions $:/plugins/kookma/refnotes/viewtemplates/main
 | 
			
		||||
modified: 20210807194815491
 | 
			
		||||
creator: soren
 | 
			
		||||
list: $:/core/ui/ViewTemplate/title $:/core/ui/ViewTemplate/unfold $:/core/ui/ViewTemplate/subtitle $:/sib/EpistemicStatus/Display $:/sib/MediaRating/Display $:/core/ui/ViewTemplate/tags $:/core/ui/ViewTemplate/classic $:/sib/Templates/Automatic/Subtiddler $:/sib/Templates/Automatic/TypeTagChecker $:/sib/Templates/Automatic/SpoilerBanner $:/sib/Templates/Automatic/Untitled $:/sib/Templates/Automatic/PrivateChunkParentNotice $:/sib/Templates/Automatic/Source $:/sib/Templates/Topical/MinnesotaStateParkInfo $:/sib/Templates/Automatic/MacroDescription $:/core/ui/ViewTemplate/body $:/sib/indite/ViewTemplate $:/sib/Reviewer/SchedulableTemplate $:/sib/gis/MappingTools $:/sib/Templates/Topical/SabbaticalUpdates/DateNavigation $:/sib/Templates/Automatic/Publicity/ViewerPublicLine $:/core/ui/ViewTemplate/import $:/core/ui/ViewTemplate/plugin $:/plugins/danielo515/2click2edit/ui/ViewTemplate $:/sib/refexplorer/ReferenceExplorer $:/sib/Templates/Automatic/ViewTemplateDescription $:/sib/Templates/Automatic/ReaderActions
 | 
			
		||||
modified: 20211120171147065
 | 
			
		||||
modifier: soren
 | 
			
		||||
title: $:/tags/ViewTemplate
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
created: 20200507143136944
 | 
			
		||||
creator: soren
 | 
			
		||||
list: PublicHomepage/Navigating PublicHomepage/Organization [[PublicHomepage/Points of Interest]] [[PublicHomepage/No Warranty]] PublicHomepage/Copyright PublicHomepage/Contact [[PublicHomepage/Video Tour]]
 | 
			
		||||
modified: 20210720015457472
 | 
			
		||||
modified: 20211007181213586
 | 
			
		||||
modifier: soren
 | 
			
		||||
tags: Public Meta
 | 
			
		||||
title: PublicHomepage
 | 
			
		||||
type: text/vnd.tiddlywiki
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user