Compare commits
55 Commits
feat/ui-im
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27d9ae885f | ||
|
|
35efd2a680 | ||
|
|
19c6ae6fe5 | ||
|
|
bf0761a303 | ||
|
|
8391fd7534 | ||
|
|
6d4b87888a | ||
|
|
3f0b0f9b62 | ||
|
|
859d9dcd04 | ||
|
|
76dd9baea8 | ||
|
|
82ff5f6660 | ||
|
|
b52d30c55a | ||
|
|
99fd088ff5 | ||
|
|
945f29c759 | ||
|
|
98f42887d8 | ||
|
|
a1b589148b | ||
|
|
66bb639a15 | ||
|
|
1784b50990 | ||
|
|
5e9c271bfd | ||
|
|
70837fdc69 | ||
|
|
67d80512f6 | ||
|
|
dd8a1e8aca | ||
|
|
99f43e2280 | ||
|
|
bcffa77c90 | ||
|
|
8ab2069411 | ||
|
|
21fc61d132 | ||
|
|
552df50fe4 | ||
|
|
c058b663ee | ||
|
|
6c19370235 | ||
|
|
d332bb57ba | ||
|
|
3ef38e7f4e | ||
|
|
1abc3b5534 | ||
|
|
ddcd27ddf6 | ||
|
|
ff385c8c88 | ||
|
|
a641e452ce | ||
|
|
5f4fa25da5 | ||
|
|
ea177e972e | ||
|
|
7e3013bfdc | ||
|
|
5115baeb21 | ||
|
|
35a924a05a | ||
|
|
78f067965f | ||
|
|
413b16b51c | ||
|
|
59586c53b2 | ||
|
|
70ed1d7abb | ||
|
|
67de6c614c | ||
|
|
faf030ab3a | ||
|
|
6e20d4b5dd | ||
|
|
10e809af75 | ||
|
|
f1478f8149 | ||
|
|
9087adf254 | ||
|
|
f944c6d8e2 | ||
|
|
9c791df0ed | ||
|
|
e683dc1d66 | ||
|
|
14a3438a20 | ||
|
|
dd483fccbc | ||
|
|
5620e7f4a7 |
@@ -270,6 +270,7 @@ export type CommandMappings = {
|
|||||||
closeThisNoteSplit: CommandData;
|
closeThisNoteSplit: CommandData;
|
||||||
moveThisNoteSplit: CommandData & { isMovingLeft: boolean };
|
moveThisNoteSplit: CommandData & { isMovingLeft: boolean };
|
||||||
jumpToNote: CommandData;
|
jumpToNote: CommandData;
|
||||||
|
openTodayNote: CommandData;
|
||||||
commandPalette: CommandData;
|
commandPalette: CommandData;
|
||||||
|
|
||||||
// Keyboard shortcuts
|
// Keyboard shortcuts
|
||||||
|
|||||||
@@ -159,6 +159,16 @@ export default class Entrypoints extends Component {
|
|||||||
this.openInWindowCommand({ notePath: "", hoistedNoteId: "root" });
|
this.openInWindowCommand({ notePath: "", hoistedNoteId: "root" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async openTodayNoteCommand() {
|
||||||
|
const todayNote = await dateNoteService.getTodayNote();
|
||||||
|
if (!todayNote) {
|
||||||
|
console.warn("Missing today note.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await appContext.tabManager.openInSameTab(todayNote.noteId);
|
||||||
|
}
|
||||||
|
|
||||||
async runActiveNoteCommand() {
|
async runActiveNoteCommand() {
|
||||||
const noteContext = appContext.tabManager.getActiveContext();
|
const noteContext = appContext.tabManager.getActiveContext();
|
||||||
if (!noteContext) {
|
if (!noteContext) {
|
||||||
|
|||||||
@@ -417,7 +417,7 @@ export default class FNote {
|
|||||||
return notePaths;
|
return notePaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
getSortedNotePathRecords(hoistedNoteId = "root"): NotePathRecord[] {
|
getSortedNotePathRecords(hoistedNoteId = "root", activeNotePath: string | null = null): NotePathRecord[] {
|
||||||
const isHoistedRoot = hoistedNoteId === "root";
|
const isHoistedRoot = hoistedNoteId === "root";
|
||||||
|
|
||||||
const notePaths: NotePathRecord[] = this.getAllNotePaths().map((path) => ({
|
const notePaths: NotePathRecord[] = this.getAllNotePaths().map((path) => ({
|
||||||
@@ -428,7 +428,23 @@ export default class FNote {
|
|||||||
isHidden: path.includes("_hidden")
|
isHidden: path.includes("_hidden")
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// Calculate the length of the prefix match between two arrays
|
||||||
|
const prefixMatchLength = (path: string[], target: string[]) => {
|
||||||
|
const diffIndex = path.findIndex((seg, i) => seg !== target[i]);
|
||||||
|
return diffIndex === -1 ? Math.min(path.length, target.length) : diffIndex;
|
||||||
|
};
|
||||||
|
|
||||||
notePaths.sort((a, b) => {
|
notePaths.sort((a, b) => {
|
||||||
|
if (activeNotePath) {
|
||||||
|
const activeSegments = activeNotePath.split('/');
|
||||||
|
const aOverlap = prefixMatchLength(a.notePath, activeSegments);
|
||||||
|
const bOverlap = prefixMatchLength(b.notePath, activeSegments);
|
||||||
|
// Paths with more matching prefix segments are prioritized
|
||||||
|
// when the match count is equal, other criteria are used for sorting
|
||||||
|
if (bOverlap !== aOverlap) {
|
||||||
|
return bOverlap - aOverlap;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (a.isInHoistedSubTree !== b.isInHoistedSubTree) {
|
if (a.isInHoistedSubTree !== b.isInHoistedSubTree) {
|
||||||
return a.isInHoistedSubTree ? -1 : 1;
|
return a.isInHoistedSubTree ? -1 : 1;
|
||||||
} else if (a.isArchived !== b.isArchived) {
|
} else if (a.isArchived !== b.isArchived) {
|
||||||
@@ -449,10 +465,11 @@ export default class FNote {
|
|||||||
* Returns the note path considered to be the "best"
|
* Returns the note path considered to be the "best"
|
||||||
*
|
*
|
||||||
* @param {string} [hoistedNoteId='root']
|
* @param {string} [hoistedNoteId='root']
|
||||||
|
* @param {string|null} [activeNotePath=null]
|
||||||
* @return {string[]} array of noteIds constituting the particular note path
|
* @return {string[]} array of noteIds constituting the particular note path
|
||||||
*/
|
*/
|
||||||
getBestNotePath(hoistedNoteId = "root") {
|
getBestNotePath(hoistedNoteId = "root", activeNotePath: string | null = null) {
|
||||||
return this.getSortedNotePathRecords(hoistedNoteId)[0]?.notePath;
|
return this.getSortedNotePathRecords(hoistedNoteId, activeNotePath)[0]?.notePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -26,21 +26,12 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
|||||||
}
|
}
|
||||||
|
|
||||||
const path = notePath.split("/").reverse();
|
const path = notePath.split("/").reverse();
|
||||||
|
|
||||||
if (!path.includes("root")) {
|
|
||||||
path.push("root");
|
|
||||||
}
|
|
||||||
|
|
||||||
const effectivePathSegments: string[] = [];
|
const effectivePathSegments: string[] = [];
|
||||||
let childNoteId: string | null = null;
|
let childNoteId: string | null = null;
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
|
||||||
while (true) {
|
for (let i = 0; i < path.length; i++) {
|
||||||
if (i >= path.length) {
|
const parentNoteId = path[i];
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const parentNoteId = path[i++];
|
|
||||||
|
|
||||||
if (childNoteId !== null) {
|
if (childNoteId !== null) {
|
||||||
const child = await froca.getNote(childNoteId, !logErrors);
|
const child = await froca.getNote(childNoteId, !logErrors);
|
||||||
@@ -65,7 +56,7 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!parents.some((p) => p.noteId === parentNoteId)) {
|
if (!parents.some(p => p.noteId === parentNoteId) || (i === path.length - 1 && parentNoteId !== 'root')) {
|
||||||
if (logErrors) {
|
if (logErrors) {
|
||||||
const parent = froca.getNoteFromCache(parentNoteId);
|
const parent = froca.getNoteFromCache(parentNoteId);
|
||||||
|
|
||||||
@@ -77,7 +68,8 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bestNotePath = child.getBestNotePath(hoistedNoteId);
|
const activeNotePath = appContext.tabManager.getActiveContextNotePath();
|
||||||
|
const bestNotePath = child.getBestNotePath(hoistedNoteId, activeNotePath);
|
||||||
|
|
||||||
if (bestNotePath) {
|
if (bestNotePath) {
|
||||||
const pathToRoot = bestNotePath.reverse().slice(1);
|
const pathToRoot = bestNotePath.reverse().slice(1);
|
||||||
@@ -108,7 +100,9 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
|||||||
if (!note) {
|
if (!note) {
|
||||||
throw new Error(`Unable to find note: ${notePath}.`);
|
throw new Error(`Unable to find note: ${notePath}.`);
|
||||||
}
|
}
|
||||||
const bestNotePath = note.getBestNotePath(hoistedNoteId);
|
|
||||||
|
const activeNotePath = appContext.tabManager.getActiveContextNotePath();
|
||||||
|
const bestNotePath = note.getBestNotePath(hoistedNoteId, activeNotePath);
|
||||||
|
|
||||||
if (!bestNotePath) {
|
if (!bestNotePath) {
|
||||||
throw new Error(`Did not find any path segments for '${note.toString()}', hoisted note '${hoistedNoteId}'`);
|
throw new Error(`Did not find any path segments for '${note.toString()}', hoisted note '${hoistedNoteId}'`);
|
||||||
|
|||||||
@@ -11,7 +11,11 @@ export function reloadFrontendApp(reason?: string) {
|
|||||||
logInfo(`Frontend app reload: ${reason}`);
|
logInfo(`Frontend app reload: ${reason}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.location.reload();
|
if (isElectron()) {
|
||||||
|
dynamicRequire("@electron/remote").BrowserWindow.getFocusedWindow()?.reload();
|
||||||
|
} else {
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function restartDesktopApp() {
|
export function restartDesktopApp() {
|
||||||
|
|||||||
@@ -1809,15 +1809,12 @@ body:not(.mobile) #launcher-pane.horizontal .dropdown-submenu > .dropdown-menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.note-split {
|
.note-split {
|
||||||
/* Limits the maximum width of the note */
|
|
||||||
--max-content-width: var(--preferred-max-content-width);
|
|
||||||
|
|
||||||
margin-inline-start: auto;
|
margin-inline-start: auto;
|
||||||
margin-inline-end: auto;
|
margin-inline-end: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.note-split.full-content-width {
|
.note-split.full-content-width {
|
||||||
--max-content-width: unset;
|
max-width: 999999px;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.close:hover {
|
button.close:hover {
|
||||||
@@ -2043,8 +2040,7 @@ body.zen .ribbon-container .ribbon-body:not(:has(.classic-toolbar-widget)),
|
|||||||
body.zen .note-icon-widget,
|
body.zen .note-icon-widget,
|
||||||
body.zen .title-row .icon-action,
|
body.zen .title-row .icon-action,
|
||||||
body.zen .floating-buttons-children > *:not(.bx-edit-alt),
|
body.zen .floating-buttons-children > *:not(.bx-edit-alt),
|
||||||
body.zen .action-button,
|
body.zen .action-button {
|
||||||
body.zen .note-list-widget {
|
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2088,33 +2084,12 @@ body.zen .note-title-widget,
|
|||||||
body.zen .note-title-widget input {
|
body.zen .note-title-widget input {
|
||||||
font-size: 1rem !important;
|
font-size: 1rem !important;
|
||||||
background: transparent !important;
|
background: transparent !important;
|
||||||
pointer-events: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body.zen #detail-container {
|
body.zen #detail-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.zen .note-split:not(.full-content-width) .scrolling-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
scroll-behavior: unset !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.zen .note-split:not(.full-content-width) .note-detail {
|
|
||||||
margin: auto;
|
|
||||||
padding-bottom: 15%;
|
|
||||||
width: var(--max-content-width);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.zen .note-split:not(.full-content-width) .scroll-padding-widget {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.zen .note-split.type-text {
|
|
||||||
font-size: 1.15em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Content renderer */
|
/* Content renderer */
|
||||||
|
|
||||||
footer.file-footer,
|
footer.file-footer,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
--native-titlebar-background: #00000000;
|
--native-titlebar-background: #00000000;
|
||||||
--window-background-color-bgfx: transparent; /* When background effects enabled */
|
--window-background-color-bgfx: transparent; /* When background effects enabled */
|
||||||
|
|
||||||
--main-background-color: #242424;
|
--main-background-color: #272727;
|
||||||
--main-text-color: #ccc;
|
--main-text-color: #ccc;
|
||||||
--main-border-color: #454545;
|
--main-border-color: #454545;
|
||||||
--subtle-border-color: #313131;
|
--subtle-border-color: #313131;
|
||||||
@@ -166,9 +166,6 @@
|
|||||||
--protected-session-active-icon-color: #8edd8e;
|
--protected-session-active-icon-color: #8edd8e;
|
||||||
--sync-status-error-pulse-color: #f47871;
|
--sync-status-error-pulse-color: #f47871;
|
||||||
|
|
||||||
--center-pane-vert-layout-background-color-bgfx: #0c0c0c69;
|
|
||||||
--center-pane-horiz-layout-background-color-bgfx: #1e1e1ec7;
|
|
||||||
|
|
||||||
--right-pane-heading-color: gray;
|
--right-pane-heading-color: gray;
|
||||||
|
|
||||||
--root-background: var(--left-pane-background-color);
|
--root-background: var(--left-pane-background-color);
|
||||||
@@ -195,9 +192,9 @@
|
|||||||
--badge-background-color: #ffffff1a;
|
--badge-background-color: #ffffff1a;
|
||||||
--badge-text-color: var(--muted-text-color);
|
--badge-text-color: var(--muted-text-color);
|
||||||
|
|
||||||
--promoted-attribute-card-background-color: #ffffff21;
|
--promoted-attribute-card-background-color: var(--card-background-color);
|
||||||
--promoted-attribute-card-shadow: none;
|
--promoted-attribute-card-shadow-color: #000000b3;
|
||||||
|
|
||||||
--floating-button-shadow-color: #00000080;
|
--floating-button-shadow-color: #00000080;
|
||||||
--floating-button-background-color: #494949d2;
|
--floating-button-background-color: #494949d2;
|
||||||
--floating-button-color: var(--button-text-color);
|
--floating-button-color: var(--button-text-color);
|
||||||
@@ -211,8 +208,6 @@
|
|||||||
--floating-button-hide-button-background: #00000029;
|
--floating-button-hide-button-background: #00000029;
|
||||||
--floating-button-hide-button-color: #ffffff63;
|
--floating-button-hide-button-color: #ffffff63;
|
||||||
|
|
||||||
--right-pane-background-color: var(--main-background-color);
|
|
||||||
--right-pane-background-color-bgfx: #0c0c0c24; /* Only for the vertical layout */
|
|
||||||
--right-pane-item-hover-background: #ffffff26;
|
--right-pane-item-hover-background: #ffffff26;
|
||||||
--right-pane-item-hover-color: white;
|
--right-pane-item-hover-color: white;
|
||||||
|
|
||||||
@@ -232,8 +227,8 @@
|
|||||||
--card-background-color: #ffffff12;
|
--card-background-color: #ffffff12;
|
||||||
--card-background-hover-color: #3c3c3c;
|
--card-background-hover-color: #3c3c3c;
|
||||||
--card-background-press-color: #464646;
|
--card-background-press-color: #464646;
|
||||||
--card-border-color: transparent;
|
--card-border-color: #222222;
|
||||||
--card-box-shadow: none;
|
--card-box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
|
||||||
|
|
||||||
--calendar-color: var(--menu-text-color);
|
--calendar-color: var(--menu-text-color);
|
||||||
--calendar-weekday-labels-color: var(--muted-text-color);
|
--calendar-weekday-labels-color: var(--muted-text-color);
|
||||||
@@ -299,10 +294,4 @@ body ::-webkit-calendar-picker-indicator {
|
|||||||
|
|
||||||
body .todo-list input[type="checkbox"]:not(:checked):before {
|
body .todo-list input[type="checkbox"]:not(:checked):before {
|
||||||
border-color: var(--muted-text-color) !important;
|
border-color: var(--muted-text-color) !important;
|
||||||
}
|
|
||||||
|
|
||||||
.tinted-quick-edit-dialog {
|
|
||||||
--modal-background-color: hsl(var(--custom-color-hue), 8.8%, 11.2%);
|
|
||||||
--modal-border-color: hsl(var(--custom-color-hue), 9.4%, 25.1%);
|
|
||||||
--promoted-attribute-card-background-color: hsl(var(--custom-color-hue), 13.2%, 20.8%);
|
|
||||||
}
|
}
|
||||||
@@ -159,9 +159,6 @@
|
|||||||
--protected-session-active-icon-color: #16b516;
|
--protected-session-active-icon-color: #16b516;
|
||||||
--sync-status-error-pulse-color: #ff5528;
|
--sync-status-error-pulse-color: #ff5528;
|
||||||
|
|
||||||
--center-pane-vert-layout-background-color-bgfx: #ffffff75;
|
|
||||||
--center-pane-horiz-layout-background-color-bgfx: #ffffffd6;
|
|
||||||
|
|
||||||
--right-pane-heading-color: gray;
|
--right-pane-heading-color: gray;
|
||||||
|
|
||||||
--root-background: var(--left-pane-background-color);
|
--root-background: var(--left-pane-background-color);
|
||||||
@@ -188,8 +185,8 @@
|
|||||||
--badge-background-color: #00000011;
|
--badge-background-color: #00000011;
|
||||||
--badge-text-color: var(--muted-text-color);
|
--badge-text-color: var(--muted-text-color);
|
||||||
|
|
||||||
--promoted-attribute-card-background-color: #00000014;
|
--promoted-attribute-card-background-color: var(--card-background-color);
|
||||||
--promoted-attribute-card-shadow: none;
|
--promoted-attribute-card-shadow-color: #00000033;
|
||||||
|
|
||||||
--floating-button-shadow-color: #00000042;
|
--floating-button-shadow-color: #00000042;
|
||||||
--floating-button-background-color: #eaeaeacc;
|
--floating-button-background-color: #eaeaeacc;
|
||||||
@@ -210,8 +207,6 @@
|
|||||||
--new-tab-button-hover-background: white;
|
--new-tab-button-hover-background: white;
|
||||||
--new-tab-button-hover-color: black;
|
--new-tab-button-hover-color: black;
|
||||||
|
|
||||||
--right-pane-background-color: var(--main-background-color);
|
|
||||||
--right-pane-background-color-bgfx: var(--center-pane-vert-layout-background-color-bgfx); /* Only for the vertical layout */
|
|
||||||
--right-pane-item-hover-background: #ececec;
|
--right-pane-item-hover-background: #ececec;
|
||||||
--right-pane-item-hover-color: inherit;
|
--right-pane-item-hover-color: inherit;
|
||||||
|
|
||||||
@@ -228,12 +223,12 @@
|
|||||||
|
|
||||||
--code-block-box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.1), 0px 0px 2px rgba(0, 0, 0, 0.2);
|
--code-block-box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.1), 0px 0px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
|
||||||
--card-background-color: #0000000d;
|
--card-background-color: var(--accented-background-color);
|
||||||
--card-background-hover-color: #f9f9f9;
|
--card-background-hover-color: #f9f9f9;
|
||||||
--card-background-press-color: #efefef;
|
--card-background-press-color: #efefef;
|
||||||
--card-border-color: transparent;
|
--card-border-color: #eaeaea;
|
||||||
--card-shadow-color: rgba(0, 0, 0, 0.1);
|
--card-shadow-color: rgba(0, 0, 0, 0.1);
|
||||||
--card-box-shadow: none;
|
--card-box-shadow: 0 0 12px var(--card-shadow-color);
|
||||||
|
|
||||||
--calendar-color: var(--menu-text-color);
|
--calendar-color: var(--menu-text-color);
|
||||||
--calendar-weekday-labels-color: var(--muted-text-color);
|
--calendar-weekday-labels-color: var(--muted-text-color);
|
||||||
@@ -275,10 +270,4 @@
|
|||||||
* The --custom-color-hue variable contains the hue of the user-selected note color.
|
* The --custom-color-hue variable contains the hue of the user-selected note color.
|
||||||
* This value is unset for gray tones. */
|
* This value is unset for gray tones. */
|
||||||
--custom-bg-color: hsl(var(--custom-color-hue), 37%, 89%, 1);
|
--custom-bg-color: hsl(var(--custom-color-hue), 37%, 89%, 1);
|
||||||
}
|
|
||||||
|
|
||||||
.tinted-quick-edit-dialog {
|
|
||||||
--modal-background-color: hsl(var(--custom-color-hue), 56%, 96%);
|
|
||||||
--modal-border-color: hsl(var(--custom-color-hue), 33%, 41%);
|
|
||||||
--promoted-attribute-card-background-color: hsl(var(--custom-color-hue), 40%, 88%);
|
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,6 @@
|
|||||||
|
|
||||||
/* Theme capabilities */
|
/* Theme capabilities */
|
||||||
--tab-note-icons: true;
|
--tab-note-icons: true;
|
||||||
--allow-background-effects: true;
|
|
||||||
|
|
||||||
/* To ensure that a tree item's custom color remains sufficiently contrasted and readable,
|
/* To ensure that a tree item's custom color remains sufficiently contrasted and readable,
|
||||||
* the color is adjusted based on the current color scheme (light or dark). The lightness
|
* the color is adjusted based on the current color scheme (light or dark). The lightness
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ div.note-detail-empty {
|
|||||||
--options-card-min-width: 500px;
|
--options-card-min-width: 500px;
|
||||||
--options-card-max-width: 900px;
|
--options-card-max-width: 900px;
|
||||||
--options-card-padding: 17px;
|
--options-card-padding: 17px;
|
||||||
--options-title-font-size: .75rem;
|
--options-title-font-size: 1rem;
|
||||||
--options-title-offset: 13px;
|
--options-title-offset: 13px;
|
||||||
}
|
}
|
||||||
/* Create a gap at the top of the option pages */
|
/* Create a gap at the top of the option pages */
|
||||||
@@ -173,7 +173,8 @@ div.note-detail-empty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.options-section:not(.tn-no-card) {
|
.options-section:not(.tn-no-card) {
|
||||||
border-radius: 8px;
|
margin: auto;
|
||||||
|
border-radius: 12px;
|
||||||
border: 1px solid var(--card-border-color) !important;
|
border: 1px solid var(--card-border-color) !important;
|
||||||
box-shadow: var(--card-box-shadow);
|
box-shadow: var(--card-box-shadow);
|
||||||
background: var(--card-background-color);
|
background: var(--card-background-color);
|
||||||
@@ -181,7 +182,7 @@ div.note-detail-empty {
|
|||||||
margin-bottom: calc(var(--options-title-offset) + 26px) !important;
|
margin-bottom: calc(var(--options-title-offset) + 26px) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.desktop .options-section:not(.tn-no-card) {
|
body.desktop .option-section:not(.tn-no-card) {
|
||||||
min-width: var(--options-card-min-width);
|
min-width: var(--options-card-min-width);
|
||||||
max-width: var(--options-card-max-width);
|
max-width: var(--options-card-max-width);
|
||||||
}
|
}
|
||||||
@@ -192,16 +193,9 @@ body.desktop .options-section:not(.tn-no-card) {
|
|||||||
padding-bottom: var(--default-padding);
|
padding-bottom: var(--default-padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
.options-section:not(.tn-no-card) h4,
|
|
||||||
.options-section:not(.tn-no-card) h5 {
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: .4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.options-section:not(.tn-no-card) h4 {
|
.options-section:not(.tn-no-card) h4 {
|
||||||
font-size: var(--options-title-font-size);
|
font-size: var(--options-title-font-size);
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
color: var(--launcher-pane-text-color);
|
color: var(--launcher-pane-text-color);
|
||||||
margin-top: calc(-1 * var(--options-card-padding) - var(--options-title-font-size) - var(--options-title-offset)) !important;
|
margin-top: calc(-1 * var(--options-card-padding) - var(--options-title-font-size) - var(--options-title-offset)) !important;
|
||||||
margin-bottom: calc(var(--options-title-offset) + var(--options-card-padding)) !important;
|
margin-bottom: calc(var(--options-title-offset) + var(--options-card-padding)) !important;
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
div.promoted-attributes-container {
|
div.promoted-attributes-container {
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
margin-inline-start: 12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--dropdown-backdrop-filter: blur(20px) saturate(6);
|
--dropdown-backdrop-filter: blur(10px) saturate(6);
|
||||||
--dropdown-border-radius: 10px;
|
--dropdown-border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,52 +35,30 @@ body.mobile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* #region Mica */
|
/* #region Mica */
|
||||||
|
|
||||||
body.background-effects.platform-win32 {
|
body.background-effects.platform-win32 {
|
||||||
/* Quirk: --background-material is read before "theme-supports-background-effects" class
|
|
||||||
* is applied. Apply the matterial even if the theme doesn't support it. */
|
|
||||||
--background-material: tabbed;
|
--background-material: tabbed;
|
||||||
}
|
|
||||||
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32 {
|
|
||||||
--launcher-pane-horiz-border-color: var(--launcher-pane-horiz-border-color-bgfx);
|
--launcher-pane-horiz-border-color: var(--launcher-pane-horiz-border-color-bgfx);
|
||||||
--launcher-pane-horiz-background-color: var(--launcher-pane-horiz-background-color-bgfx);
|
--launcher-pane-horiz-background-color: var(--launcher-pane-horiz-background-color-bgfx);
|
||||||
--launcher-pane-vert-background-color: var(--launcher-pane-vert-background-color-bgfx);
|
--launcher-pane-vert-background-color: var(--launcher-pane-vert-background-color-bgfx);
|
||||||
--tab-background-color: var(--window-background-color-bgfx);
|
--tab-background-color: var(--window-background-color-bgfx);
|
||||||
--new-tab-button-background: var(--window-background-color-bgfx);
|
--new-tab-button-background: var(--window-background-color-bgfx);
|
||||||
--active-tab-background-color: var(--launcher-pane-horiz-background-color);
|
--active-tab-background-color: var(--launcher-pane-horiz-background-color);
|
||||||
--root-background: transparent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body.background-effects.platform-win32.layout-vertical {
|
body.background-effects.platform-win32.layout-vertical {
|
||||||
|
--left-pane-background-color: var(--window-background-color-bgfx);
|
||||||
--background-material: mica;
|
--background-material: mica;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32.layout-vertical {
|
body.background-effects.platform-win32,
|
||||||
--left-pane-background-color: var(--window-background-color-bgfx);
|
body.background-effects.platform-win32 #root-widget {
|
||||||
--center-pane-background-color-bgfx: var(--center-pane-vert-layout-background-color-bgfx);
|
|
||||||
--right-pane-background-color: var(--right-pane-background-color-bgfx);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32.layout-horizontal {
|
|
||||||
--center-pane-background-color-bgfx: var(--center-pane-horiz-layout-background-color-bgfx);
|
|
||||||
}
|
|
||||||
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32,
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32 #root-widget {
|
|
||||||
background: var(--window-background-color-bgfx) !important;
|
background: var(--window-background-color-bgfx) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32.layout-horizontal #horizontal-main-container,
|
body.background-effects.platform-win32.layout-horizontal #horizontal-main-container,
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32.layout-vertical #vertical-main-container {
|
body.background-effects.platform-win32.layout-vertical #vertical-main-container {
|
||||||
background-color: var(--root-background);
|
background-color: var(--root-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note split with background effects */
|
|
||||||
body.background-effects.theme-supports-background-effects.platform-win32 #center-pane .note-split.bgfx {
|
|
||||||
--note-split-background-color: var(--center-pane-background-color-bgfx);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* #endregion */
|
/* #endregion */
|
||||||
|
|
||||||
/* Matches when the left pane is collapsed */
|
/* Matches when the left pane is collapsed */
|
||||||
@@ -1193,18 +1171,23 @@ body.layout-vertical .tab-row-widget-is-sorting .note-tab.note-tab-is-dragging .
|
|||||||
* CENTER PANE
|
* CENTER PANE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* The first visible note split */
|
#center-pane {
|
||||||
.vertical-layout #center-pane .note-split:not(.visible ~ .visible) {
|
background: var(--main-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vertical-layout #center-pane {
|
||||||
border-radius: var(--center-pane-border-radius) 0 0 0;
|
border-radius: var(--center-pane-border-radius) 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#center-pane .note-split {
|
.note-split {
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
background-color: var(--note-split-background-color, var(--main-background-color));
|
animation: note-entrance 100ms linear;
|
||||||
|
/* will-change: opacity; -- causes some weird artifacts to the note menu in split view */
|
||||||
}
|
}
|
||||||
|
|
||||||
body:not(.background-effects) #center-pane .note-split {
|
.split-note-container-widget > .gutter {
|
||||||
animation: note-entrance 100ms linear;
|
background: var(--root-background) !important;
|
||||||
|
transition: background 150ms ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1217,9 +1200,9 @@ body:not(.background-effects) #center-pane .note-split {
|
|||||||
|
|
||||||
@keyframes note-entrance {
|
@keyframes note-entrance {
|
||||||
from {
|
from {
|
||||||
filter: opacity(0);
|
opacity: 0;
|
||||||
} to {
|
} to {
|
||||||
filter: opacity(1);
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1345,7 +1328,8 @@ div.promoted-attribute-cell {
|
|||||||
--pa-card-padding-inline-end: 2px;
|
--pa-card-padding-inline-end: 2px;
|
||||||
--input-background-color: transparent;
|
--input-background-color: transparent;
|
||||||
|
|
||||||
box-shadow: var(--promoted-attribute-card-shadow);
|
box-shadow: 1px 1px 2px var(--promoted-attribute-card-shadow-color);
|
||||||
|
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
@@ -1732,7 +1716,7 @@ div.find-replace-widget div.find-widget-found-wrapper > span {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#right-pane {
|
#right-pane {
|
||||||
background: var(--right-pane-background-color);
|
background: var(--main-background-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
#right-pane div.card-header {
|
#right-pane div.card-header {
|
||||||
|
|||||||
@@ -520,7 +520,9 @@
|
|||||||
"max_content_width": {
|
"max_content_width": {
|
||||||
"max_width_unit": "بكسل",
|
"max_width_unit": "بكسل",
|
||||||
"title": "عرض المحتوى",
|
"title": "عرض المحتوى",
|
||||||
"max_width_label": "اقصى عرض للمحتوى"
|
"reload_button": "اعادة تحميل الواجهة",
|
||||||
|
"max_width_label": "اقصى عرض للمحتوى",
|
||||||
|
"reload_description": "تغييرات من خيارات المظهر"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"enabled": "مفعل",
|
"enabled": "مفعل",
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
"bulk_actions_executed": "批量操作已成功执行。",
|
"bulk_actions_executed": "批量操作已成功执行。",
|
||||||
"none_yet": "暂无操作 ... 通过点击上方的可用操作添加一个操作。",
|
"none_yet": "暂无操作 ... 通过点击上方的可用操作添加一个操作。",
|
||||||
"labels": "标签",
|
"labels": "标签",
|
||||||
"relations": "关联关系",
|
"relations": "关系",
|
||||||
"notes": "笔记",
|
"notes": "笔记",
|
||||||
"other": "其它"
|
"other": "其它"
|
||||||
},
|
},
|
||||||
@@ -104,7 +104,8 @@
|
|||||||
"export_status": "导出状态",
|
"export_status": "导出状态",
|
||||||
"export_in_progress": "导出进行中:{{progressCount}}",
|
"export_in_progress": "导出进行中:{{progressCount}}",
|
||||||
"export_finished_successfully": "导出成功完成。",
|
"export_finished_successfully": "导出成功完成。",
|
||||||
"format_pdf": "PDF - 用于打印或共享目的。"
|
"format_pdf": "PDF - 用于打印或共享目的。",
|
||||||
|
"share-format": "HTML 网页发布——采用与共享笔记相同的主题,但可发布为静态网站。"
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"noteNavigation": "笔记导航",
|
"noteNavigation": "笔记导航",
|
||||||
@@ -184,7 +185,8 @@
|
|||||||
},
|
},
|
||||||
"import-status": "导入状态",
|
"import-status": "导入状态",
|
||||||
"in-progress": "导入进行中:{{progress}}",
|
"in-progress": "导入进行中:{{progress}}",
|
||||||
"successful": "导入成功完成。"
|
"successful": "导入成功完成。",
|
||||||
|
"importZipRecommendation": "导入 ZIP 文件时,笔记层级将反映压缩文件内的子目录结构。"
|
||||||
},
|
},
|
||||||
"include_note": {
|
"include_note": {
|
||||||
"dialog_title": "包含笔记",
|
"dialog_title": "包含笔记",
|
||||||
@@ -1105,6 +1107,9 @@
|
|||||||
"title": "内容宽度",
|
"title": "内容宽度",
|
||||||
"default_description": "Trilium默认会限制内容的最大宽度以提高在宽屏中全屏时的可读性。",
|
"default_description": "Trilium默认会限制内容的最大宽度以提高在宽屏中全屏时的可读性。",
|
||||||
"max_width_label": "内容最大宽度(像素)",
|
"max_width_label": "内容最大宽度(像素)",
|
||||||
|
"apply_changes_description": "要应用内容宽度更改,请点击",
|
||||||
|
"reload_button": "重载前端",
|
||||||
|
"reload_description": "来自外观选项的更改",
|
||||||
"max_width_unit": "像素"
|
"max_width_unit": "像素"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
@@ -1554,7 +1559,9 @@
|
|||||||
"window-on-top": "保持此窗口置顶"
|
"window-on-top": "保持此窗口置顶"
|
||||||
},
|
},
|
||||||
"note_detail": {
|
"note_detail": {
|
||||||
"could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget"
|
"could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget",
|
||||||
|
"printing": "正在打印…",
|
||||||
|
"printing_pdf": "正在导出为PDF…"
|
||||||
},
|
},
|
||||||
"note_title": {
|
"note_title": {
|
||||||
"placeholder": "请输入笔记标题..."
|
"placeholder": "请输入笔记标题..."
|
||||||
|
|||||||
@@ -104,7 +104,8 @@
|
|||||||
"export_status": "Exportstatus",
|
"export_status": "Exportstatus",
|
||||||
"export_in_progress": "Export läuft: {{progressCount}}",
|
"export_in_progress": "Export läuft: {{progressCount}}",
|
||||||
"export_finished_successfully": "Der Export wurde erfolgreich abgeschlossen.",
|
"export_finished_successfully": "Der Export wurde erfolgreich abgeschlossen.",
|
||||||
"format_pdf": "PDF - für Ausdrucke oder Teilen."
|
"format_pdf": "PDF - für Ausdrucke oder Teilen.",
|
||||||
|
"share-format": "HTML für die Web-Veröffentlichung – verwendet dasselbe Theme wie bei freigegebenen Notizen, kann jedoch als statische Website veröffentlicht werden."
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"noteNavigation": "Notiz Navigation",
|
"noteNavigation": "Notiz Navigation",
|
||||||
@@ -1103,6 +1104,9 @@
|
|||||||
"title": "Inhaltsbreite",
|
"title": "Inhaltsbreite",
|
||||||
"default_description": "Trilium begrenzt standardmäßig die maximale Inhaltsbreite, um die Lesbarkeit für maximierte Bildschirme auf Breitbildschirmen zu verbessern.",
|
"default_description": "Trilium begrenzt standardmäßig die maximale Inhaltsbreite, um die Lesbarkeit für maximierte Bildschirme auf Breitbildschirmen zu verbessern.",
|
||||||
"max_width_label": "Maximale Inhaltsbreite in Pixel",
|
"max_width_label": "Maximale Inhaltsbreite in Pixel",
|
||||||
|
"apply_changes_description": "Um Änderungen an der Inhaltsbreite anzuwenden, klicke auf",
|
||||||
|
"reload_button": "Frontend neu laden",
|
||||||
|
"reload_description": "Änderungen an den Darstellungsoptionen",
|
||||||
"max_width_unit": "Pixel"
|
"max_width_unit": "Pixel"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
|
|||||||
@@ -1107,7 +1107,10 @@
|
|||||||
"title": "Content Width",
|
"title": "Content Width",
|
||||||
"default_description": "Trilium by default limits max content width to improve readability for maximized screens on wide screens.",
|
"default_description": "Trilium by default limits max content width to improve readability for maximized screens on wide screens.",
|
||||||
"max_width_label": "Max content width",
|
"max_width_label": "Max content width",
|
||||||
"max_width_unit": "pixels"
|
"max_width_unit": "pixels",
|
||||||
|
"apply_changes_description": "To apply content width changes, click on",
|
||||||
|
"reload_button": "reload frontend",
|
||||||
|
"reload_description": "changes from appearance options"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Native Title Bar (requires app restart)",
|
"title": "Native Title Bar (requires app restart)",
|
||||||
|
|||||||
@@ -104,7 +104,8 @@
|
|||||||
"export_status": "Estado de exportación",
|
"export_status": "Estado de exportación",
|
||||||
"export_in_progress": "Exportación en curso: {{progressCount}}",
|
"export_in_progress": "Exportación en curso: {{progressCount}}",
|
||||||
"export_finished_successfully": "La exportación finalizó exitosamente.",
|
"export_finished_successfully": "La exportación finalizó exitosamente.",
|
||||||
"format_pdf": "PDF - para propósitos de impresión o compartición."
|
"format_pdf": "PDF - para propósitos de impresión o compartición.",
|
||||||
|
"share-format": "HTML para publicación web: utiliza el mismo tema que se utiliza en las notas compartidas, pero se puede publicar como un sitio web estático."
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"noteNavigation": "Navegación de notas",
|
"noteNavigation": "Navegación de notas",
|
||||||
@@ -184,7 +185,8 @@
|
|||||||
},
|
},
|
||||||
"import-status": "Estado de importación",
|
"import-status": "Estado de importación",
|
||||||
"in-progress": "Importación en progreso: {{progress}}",
|
"in-progress": "Importación en progreso: {{progress}}",
|
||||||
"successful": "Importación finalizada exitosamente."
|
"successful": "Importación finalizada exitosamente.",
|
||||||
|
"importZipRecommendation": "Al importar un archivo ZIP, la jerarquía de notas reflejará la estructura de subdirectorios dentro del archivo comprimido."
|
||||||
},
|
},
|
||||||
"include_note": {
|
"include_note": {
|
||||||
"dialog_title": "Incluir nota",
|
"dialog_title": "Incluir nota",
|
||||||
@@ -1105,7 +1107,10 @@
|
|||||||
"title": "Ancho del contenido",
|
"title": "Ancho del contenido",
|
||||||
"default_description": "Trilium limita de forma predeterminada el ancho máximo del contenido para mejorar la legibilidad de ventanas maximizadas en pantallas anchas.",
|
"default_description": "Trilium limita de forma predeterminada el ancho máximo del contenido para mejorar la legibilidad de ventanas maximizadas en pantallas anchas.",
|
||||||
"max_width_label": "Ancho máximo del contenido en píxeles",
|
"max_width_label": "Ancho máximo del contenido en píxeles",
|
||||||
"max_width_unit": "píxeles"
|
"max_width_unit": "píxeles",
|
||||||
|
"apply_changes_description": "Para aplicar cambios en el ancho del contenido, haga clic en",
|
||||||
|
"reload_button": "recargar la interfaz",
|
||||||
|
"reload_description": "cambios desde las opciones de apariencia"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Barra de título nativa (requiere reiniciar la aplicación)",
|
"title": "Barra de título nativa (requiere reiniciar la aplicación)",
|
||||||
@@ -1711,7 +1716,9 @@
|
|||||||
"window-on-top": "Mantener esta ventana en la parte superior"
|
"window-on-top": "Mantener esta ventana en la parte superior"
|
||||||
},
|
},
|
||||||
"note_detail": {
|
"note_detail": {
|
||||||
"could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'"
|
"could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'",
|
||||||
|
"printing": "Impresión en curso...",
|
||||||
|
"printing_pdf": "Exportando a PDF en curso.."
|
||||||
},
|
},
|
||||||
"note_title": {
|
"note_title": {
|
||||||
"placeholder": "escriba el título de la nota aquí..."
|
"placeholder": "escriba el título de la nota aquí..."
|
||||||
|
|||||||
@@ -1106,6 +1106,9 @@
|
|||||||
"title": "Largeur du contenu",
|
"title": "Largeur du contenu",
|
||||||
"default_description": "Trilium limite par défaut la largeur maximale du contenu pour améliorer la lisibilité sur des écrans larges.",
|
"default_description": "Trilium limite par défaut la largeur maximale du contenu pour améliorer la lisibilité sur des écrans larges.",
|
||||||
"max_width_label": "Largeur maximale du contenu en pixels",
|
"max_width_label": "Largeur maximale du contenu en pixels",
|
||||||
|
"apply_changes_description": "Pour appliquer les modifications de largeur du contenu, cliquez sur",
|
||||||
|
"reload_button": "recharger l'interface",
|
||||||
|
"reload_description": "changements par rapport aux options d'apparence",
|
||||||
"max_width_unit": "Pixels"
|
"max_width_unit": "Pixels"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
|
|||||||
@@ -1573,7 +1573,10 @@
|
|||||||
"title": "Larghezza del contenuto",
|
"title": "Larghezza del contenuto",
|
||||||
"default_description": "Per impostazione predefinita, Trilium limita la larghezza massima del contenuto per migliorare la leggibilità sugli schermi più grandi.",
|
"default_description": "Per impostazione predefinita, Trilium limita la larghezza massima del contenuto per migliorare la leggibilità sugli schermi più grandi.",
|
||||||
"max_width_label": "Larghezza massima del contenuto",
|
"max_width_label": "Larghezza massima del contenuto",
|
||||||
"max_width_unit": "pixel"
|
"max_width_unit": "pixel",
|
||||||
|
"apply_changes_description": "Per applicare le modifiche alla larghezza del contenuto, fare clic su",
|
||||||
|
"reload_button": "ricarica frontend",
|
||||||
|
"reload_description": "modifiche dalle opzioni di aspetto"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Barra del titolo nativa (richiede il riavvio dell'app)",
|
"title": "Barra del titolo nativa (richiede il riavvio dell'app)",
|
||||||
|
|||||||
@@ -254,7 +254,8 @@
|
|||||||
"export_status": "エクスポート状況",
|
"export_status": "エクスポート状況",
|
||||||
"export_in_progress": "エクスポート処理中: {{progressCount}}",
|
"export_in_progress": "エクスポート処理中: {{progressCount}}",
|
||||||
"export_finished_successfully": "エクスポートが正常に完了しました。",
|
"export_finished_successfully": "エクスポートが正常に完了しました。",
|
||||||
"format_pdf": "PDF - 印刷または共有目的に。"
|
"format_pdf": "PDF - 印刷または共有目的に。",
|
||||||
|
"share-format": "Web 公開用の HTML - 共有ノートで使用されるのと同じテーマを使用しますが、静的 Web サイトとして公開できます。"
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"title": "チートシート",
|
"title": "チートシート",
|
||||||
@@ -833,10 +834,13 @@
|
|||||||
"theme_defined": "テーマが定義されました"
|
"theme_defined": "テーマが定義されました"
|
||||||
},
|
},
|
||||||
"max_content_width": {
|
"max_content_width": {
|
||||||
|
"reload_button": "フロントエンドをリロード",
|
||||||
"title": "コンテンツ幅",
|
"title": "コンテンツ幅",
|
||||||
"default_description": "Triliumは、ワイドスクリーンで最大化された画面での可読性を向上させるために、デフォルトでコンテンツの最大幅を制限しています。",
|
"default_description": "Triliumは、ワイドスクリーンで最大化された画面での可読性を向上させるために、デフォルトでコンテンツの最大幅を制限しています。",
|
||||||
"max_width_label": "最大コンテンツ幅",
|
"max_width_label": "最大コンテンツ幅",
|
||||||
"max_width_unit": "ピクセル"
|
"max_width_unit": "ピクセル",
|
||||||
|
"apply_changes_description": "コンテンツ幅の変更を適用するには、クリックしてください",
|
||||||
|
"reload_description": "外観設定から変更"
|
||||||
},
|
},
|
||||||
"theme": {
|
"theme": {
|
||||||
"title": "アプリのテーマ",
|
"title": "アプリのテーマ",
|
||||||
|
|||||||
@@ -1464,7 +1464,10 @@
|
|||||||
"title": "Szerokość zawartości",
|
"title": "Szerokość zawartości",
|
||||||
"default_description": "Trilium domyślnie ogranicza maksymalną szerokość zawartości, aby poprawić czytelność na zmaksymalizowanych ekranach o dużej szerokości.",
|
"default_description": "Trilium domyślnie ogranicza maksymalną szerokość zawartości, aby poprawić czytelność na zmaksymalizowanych ekranach o dużej szerokości.",
|
||||||
"max_width_label": "Maksymalna szerokość zawartości",
|
"max_width_label": "Maksymalna szerokość zawartości",
|
||||||
"max_width_unit": "piksele"
|
"max_width_unit": "piksele",
|
||||||
|
"apply_changes_description": "Aby zastosować zmiany szerokości zawartości, kliknij na",
|
||||||
|
"reload_button": "przeładuj frontend",
|
||||||
|
"reload_description": "zmiany z opcji wyglądu"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Natywny pasek tytułu (wymaga ponownego uruchomienia aplikacji)",
|
"title": "Natywny pasek tytułu (wymaga ponownego uruchomienia aplikacji)",
|
||||||
|
|||||||
@@ -1082,7 +1082,10 @@
|
|||||||
"title": "Largura do Conteúdo",
|
"title": "Largura do Conteúdo",
|
||||||
"default_description": "Por padrão, o Trilium limita a largura máxima do conteúdo para melhorar a legibilidade em janelas maximizadas em ecrãs largos.",
|
"default_description": "Por padrão, o Trilium limita a largura máxima do conteúdo para melhorar a legibilidade em janelas maximizadas em ecrãs largos.",
|
||||||
"max_width_label": "Largura máxima do conteúdo",
|
"max_width_label": "Largura máxima do conteúdo",
|
||||||
"max_width_unit": "pixels"
|
"max_width_unit": "pixels",
|
||||||
|
"apply_changes_description": "Para aplicar as alterações de largura do conteúdo, clique em",
|
||||||
|
"reload_button": "recarregar frontend",
|
||||||
|
"reload_description": "alterações de opções de aparência"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Barra de Título Nativa (requer recarregar a app)",
|
"title": "Barra de Título Nativa (requer recarregar a app)",
|
||||||
|
|||||||
@@ -1304,6 +1304,9 @@
|
|||||||
"title": "Largura do Conteúdo",
|
"title": "Largura do Conteúdo",
|
||||||
"max_width_label": "Largura máxima do conteúdo",
|
"max_width_label": "Largura máxima do conteúdo",
|
||||||
"max_width_unit": "pixels",
|
"max_width_unit": "pixels",
|
||||||
|
"apply_changes_description": "Para aplicar as alterações de largura do conteúdo, clique em",
|
||||||
|
"reload_button": "recarregar frontend",
|
||||||
|
"reload_description": "alterações de opções de aparência",
|
||||||
"default_description": "Por padrão, o Trilium limita a largura máxima do conteúdo para melhorar a legibilidade em janelas maximizadas em telas wide."
|
"default_description": "Por padrão, o Trilium limita a largura máxima do conteúdo para melhorar a legibilidade em janelas maximizadas em telas wide."
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
|
|||||||
@@ -800,9 +800,12 @@
|
|||||||
"modal_body_text": "Din cauza limitărilor la nivel de navigator, nu este posibilă citirea clipboard-ului din JavaScript. Inserați Markdown-ul pentru a-l importa în caseta de mai jos și dați clic pe butonul Import"
|
"modal_body_text": "Din cauza limitărilor la nivel de navigator, nu este posibilă citirea clipboard-ului din JavaScript. Inserați Markdown-ul pentru a-l importa în caseta de mai jos și dați clic pe butonul Import"
|
||||||
},
|
},
|
||||||
"max_content_width": {
|
"max_content_width": {
|
||||||
|
"apply_changes_description": "Pentru a aplica schimbările de lățime a conținutului, dați click pe",
|
||||||
"default_description": "În mod implicit Trilium limitează lățimea conținutului pentru a îmbunătăți lizibilitatea pentru ferestrele maximizate pe ecrane late.",
|
"default_description": "În mod implicit Trilium limitează lățimea conținutului pentru a îmbunătăți lizibilitatea pentru ferestrele maximizate pe ecrane late.",
|
||||||
"max_width_label": "Lungimea maximă a conținutului",
|
"max_width_label": "Lungimea maximă a conținutului",
|
||||||
"max_width_unit": "pixeli",
|
"max_width_unit": "pixeli",
|
||||||
|
"reload_button": "reîncarcă interfața",
|
||||||
|
"reload_description": "schimbări din opțiunile de afișare",
|
||||||
"title": "Lățime conținut"
|
"title": "Lățime conținut"
|
||||||
},
|
},
|
||||||
"mobile_detail_menu": {
|
"mobile_detail_menu": {
|
||||||
|
|||||||
@@ -1203,8 +1203,11 @@
|
|||||||
"max_content_width": {
|
"max_content_width": {
|
||||||
"max_width_unit": "пикселей",
|
"max_width_unit": "пикселей",
|
||||||
"title": "Ширина контентной области",
|
"title": "Ширина контентной области",
|
||||||
|
"reload_button": "перезагрузить интерфейс",
|
||||||
"default_description": "Trilium по умолчанию ограничивает максимальную ширину контента, чтобы улучшить читаемость на широких экранах.",
|
"default_description": "Trilium по умолчанию ограничивает максимальную ширину контента, чтобы улучшить читаемость на широких экранах.",
|
||||||
"max_width_label": "Максимальная ширина контентной области"
|
"max_width_label": "Максимальная ширина контентной области",
|
||||||
|
"apply_changes_description": "Чтобы применить изменения, нажмите на",
|
||||||
|
"reload_description": "изменения в параметрах внешнего вида"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"enabled": "включено",
|
"enabled": "включено",
|
||||||
|
|||||||
@@ -104,7 +104,8 @@
|
|||||||
"export_in_progress": "正在匯出:{{progressCount}}",
|
"export_in_progress": "正在匯出:{{progressCount}}",
|
||||||
"export_finished_successfully": "成功匯出。",
|
"export_finished_successfully": "成功匯出。",
|
||||||
"format_html": "HTML - 推薦,因為它保留了所有格式",
|
"format_html": "HTML - 推薦,因為它保留了所有格式",
|
||||||
"format_pdf": "PDF - 用於列印或與他人分享。"
|
"format_pdf": "PDF - 用於列印或與他人分享。",
|
||||||
|
"share-format": "HTML 網頁發佈——使用與共享筆記相同的佈景主題,但可發佈為靜態網站。"
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"noteNavigation": "筆記導航",
|
"noteNavigation": "筆記導航",
|
||||||
@@ -1103,6 +1104,9 @@
|
|||||||
"title": "內容寬度",
|
"title": "內容寬度",
|
||||||
"default_description": "Trilium 預設會限制內容的最大寬度以提高在寬螢幕中全螢幕時的可讀性。",
|
"default_description": "Trilium 預設會限制內容的最大寬度以提高在寬螢幕中全螢幕時的可讀性。",
|
||||||
"max_width_label": "內容最大寬度(像素)",
|
"max_width_label": "內容最大寬度(像素)",
|
||||||
|
"apply_changes_description": "要套用內容寬度更改,請點擊",
|
||||||
|
"reload_button": "重新載入前端",
|
||||||
|
"reload_description": "來自外觀選項的更改",
|
||||||
"max_width_unit": "像素"
|
"max_width_unit": "像素"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
|
|||||||
@@ -1204,7 +1204,10 @@
|
|||||||
"title": "Ширина вмісту",
|
"title": "Ширина вмісту",
|
||||||
"default_description": "Trilium за замовчуванням обмежує максимальну ширину вмісту, щоб поліпшити читабельність на широкоформатних екранах у режимі максимального розширення.",
|
"default_description": "Trilium за замовчуванням обмежує максимальну ширину вмісту, щоб поліпшити читабельність на широкоформатних екранах у режимі максимального розширення.",
|
||||||
"max_width_label": "Максимальна ширина вмісту",
|
"max_width_label": "Максимальна ширина вмісту",
|
||||||
"max_width_unit": "пікселів"
|
"max_width_unit": "пікселів",
|
||||||
|
"apply_changes_description": "Щоб застосувати зміни ширини вмісту, натисніть на",
|
||||||
|
"reload_button": "перезавантажити інтерфейс",
|
||||||
|
"reload_description": "зміни в параметрах зовнішнього вигляду"
|
||||||
},
|
},
|
||||||
"native_title_bar": {
|
"native_title_bar": {
|
||||||
"title": "Нативний рядок заголовка (потрібен перезапуск)",
|
"title": "Нативний рядок заголовка (потрібен перезапуск)",
|
||||||
|
|||||||
@@ -23,24 +23,6 @@ export class CssVarReader {
|
|||||||
return (!isNaN(number.valueOf()) ? number.valueOf() : defaultValue)
|
return (!isNaN(number.valueOf()) ? number.valueOf() : defaultValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
asBoolean(defaultValue?: boolean) {
|
|
||||||
let value = this.value.toLocaleLowerCase().trim();
|
|
||||||
let result: boolean | undefined;
|
|
||||||
|
|
||||||
switch (value) {
|
|
||||||
case "true":
|
|
||||||
case "1":
|
|
||||||
result = true;
|
|
||||||
break;
|
|
||||||
case "false":
|
|
||||||
case "0":
|
|
||||||
result = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (result !== undefined) ? result : defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
asEnum<T>(enumType: T, defaultValue?: T[keyof T]): T[keyof T] | undefined {
|
asEnum<T>(enumType: T, defaultValue?: T[keyof T]): T[keyof T] | undefined {
|
||||||
let result: T[keyof T] | undefined;
|
let result: T[keyof T] | undefined;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
.floating-buttons-children,
|
.floating-buttons-children,
|
||||||
.show-floating-buttons {
|
.show-floating-buttons {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: var(--floating-buttons-vert-offset, 14px);
|
top: var(--floating-buttons-vert-offset, 10px);
|
||||||
inset-inline-end: var(--floating-buttons-horiz-offset, 10px);
|
inset-inline-end: var(--floating-buttons-horiz-offset, 10px);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
.note-list-widget {
|
.note-list-widget {
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
max-width: var(--max-content-width); /* Inherited from .note-split */
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
contain: none !important;
|
contain: none !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import { EventData } from "../../components/app_context.js";
|
import { EventData } from "../../components/app_context.js";
|
||||||
import { LOCALES } from "@triliumnext/commons";
|
|
||||||
import { readCssVar } from "../../utils/css-var.js";
|
|
||||||
import FlexContainer from "./flex_container.js";
|
import FlexContainer from "./flex_container.js";
|
||||||
import options from "../../services/options.js";
|
import options from "../../services/options.js";
|
||||||
import type BasicWidget from "../basic_widget.js";
|
import type BasicWidget from "../basic_widget.js";
|
||||||
import utils from "../../services/utils.js";
|
import utils from "../../services/utils.js";
|
||||||
|
import { LOCALES } from "@triliumnext/commons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The root container is the top-most widget/container, from which the entire layout derives.
|
* The root container is the top-most widget/container, from which the entire layout derives.
|
||||||
@@ -31,11 +30,9 @@ export default class RootContainer extends FlexContainer<BasicWidget> {
|
|||||||
window.visualViewport?.addEventListener("resize", () => this.#onMobileResize());
|
window.visualViewport?.addEventListener("resize", () => this.#onMobileResize());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#setMaxContentWidth(options.getInt("maxContentWidth") ?? 0);
|
|
||||||
this.#setMotion(options.is("motionEnabled"));
|
this.#setMotion(options.is("motionEnabled"));
|
||||||
this.#setShadows(options.is("shadowsEnabled"));
|
this.#setShadows(options.is("shadowsEnabled"));
|
||||||
this.#setBackdropEffects(options.is("backdropEffectsEnabled"));
|
this.#setBackdropEffects(options.is("backdropEffectsEnabled"));
|
||||||
this.#setThemeCapabilities();
|
|
||||||
this.#setLocaleAndDirection(options.get("locale"));
|
this.#setLocaleAndDirection(options.get("locale"));
|
||||||
|
|
||||||
return super.render();
|
return super.render();
|
||||||
@@ -53,24 +50,14 @@ export default class RootContainer extends FlexContainer<BasicWidget> {
|
|||||||
if (loadResults.isOptionReloaded("backdropEffectsEnabled")) {
|
if (loadResults.isOptionReloaded("backdropEffectsEnabled")) {
|
||||||
this.#setBackdropEffects(options.is("backdropEffectsEnabled"));
|
this.#setBackdropEffects(options.is("backdropEffectsEnabled"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadResults.isOptionReloaded("maxContentWidth")) {
|
|
||||||
this.#setMaxContentWidth(options.getInt("maxContentWidth") ?? 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#onMobileResize() {
|
#onMobileResize() {
|
||||||
const currentViewportHeight = getViewportHeight();
|
const currentViewportHeight = getViewportHeight();
|
||||||
const isKeyboardOpened = (currentViewportHeight < this.originalViewportHeight);
|
const isKeyboardOpened = (currentViewportHeight < this.originalViewportHeight);
|
||||||
this.$widget.toggleClass("virtual-keyboard-opened", isKeyboardOpened);
|
this.$widget.toggleClass("virtual-keyboard-opened", isKeyboardOpened);
|
||||||
}
|
}
|
||||||
|
|
||||||
#setMaxContentWidth(width: number) {
|
|
||||||
width = Math.max(width, 640);
|
|
||||||
document.body.style.setProperty("--preferred-max-content-width", `${width}px`);
|
|
||||||
}
|
|
||||||
|
|
||||||
#setMotion(enabled: boolean) {
|
#setMotion(enabled: boolean) {
|
||||||
document.body.classList.toggle("motion-disabled", !enabled);
|
document.body.classList.toggle("motion-disabled", !enabled);
|
||||||
jQuery.fx.off = !enabled;
|
jQuery.fx.off = !enabled;
|
||||||
@@ -84,15 +71,6 @@ export default class RootContainer extends FlexContainer<BasicWidget> {
|
|||||||
document.body.classList.toggle("backdrop-effects-disabled", !enabled);
|
document.body.classList.toggle("backdrop-effects-disabled", !enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
#setThemeCapabilities() {
|
|
||||||
// Supports background effects
|
|
||||||
|
|
||||||
const useBgfx = readCssVar(document.documentElement, "allow-background-effects")
|
|
||||||
.asBoolean(false);
|
|
||||||
|
|
||||||
document.body.classList.toggle("theme-supports-background-effects", useBgfx);
|
|
||||||
}
|
|
||||||
|
|
||||||
#setLocaleAndDirection(locale: string) {
|
#setLocaleAndDirection(locale: string) {
|
||||||
const correspondingLocale = LOCALES.find(l => l.id === locale);
|
const correspondingLocale = LOCALES.find(l => l.id === locale);
|
||||||
document.body.lang = locale;
|
document.body.lang = locale;
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ export default function ExportDialog() {
|
|||||||
values={[
|
values={[
|
||||||
{ value: "html", label: t("export.format_html_zip") },
|
{ value: "html", label: t("export.format_html_zip") },
|
||||||
{ value: "markdown", label: t("export.format_markdown") },
|
{ value: "markdown", label: t("export.format_markdown") },
|
||||||
{ value: "opml", label: t("export.format_opml") },
|
{ value: "share", label: t("export.share-format") },
|
||||||
{ value: "share", label: t("export.share-format") }
|
{ value: "opml", label: t("export.format_opml") }
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -57,19 +57,17 @@ const TPL = /*html*/`\
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="quick-edit-dialog-wrapper">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-content">
|
||||||
<div class="modal-content">
|
<div class="modal-header">
|
||||||
<div class="modal-header">
|
<div class="modal-title">
|
||||||
<div class="modal-title">
|
<!-- This is where the first child will be injected -->
|
||||||
<!-- This is where the first child will be injected -->
|
|
||||||
</div>
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
||||||
</div>
|
</div>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<!-- This is where all but the first child will be injected. -->
|
<!-- This is where all but the first child will be injected. -->
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -81,7 +79,6 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
private noteContext: NoteContext;
|
private noteContext: NoteContext;
|
||||||
private $modalHeader!: JQuery<HTMLElement>;
|
private $modalHeader!: JQuery<HTMLElement>;
|
||||||
private $modalBody!: JQuery<HTMLElement>;
|
private $modalBody!: JQuery<HTMLElement>;
|
||||||
private $wrapper!: JQuery<HTMLDivElement>;
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
@@ -96,7 +93,6 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
const $newWidget = $(TPL);
|
const $newWidget = $(TPL);
|
||||||
this.$modalHeader = $newWidget.find(".modal-title");
|
this.$modalHeader = $newWidget.find(".modal-title");
|
||||||
this.$modalBody = $newWidget.find(".modal-body");
|
this.$modalBody = $newWidget.find(".modal-body");
|
||||||
this.$wrapper = $newWidget.find(".quick-edit-dialog-wrapper");
|
|
||||||
|
|
||||||
const children = this.$widget.children();
|
const children = this.$widget.children();
|
||||||
this.$modalHeader.append(children[0]);
|
this.$modalHeader.append(children[0]);
|
||||||
@@ -116,21 +112,6 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const colorClass = this.noteContext.note?.getColorClass();
|
|
||||||
const wrapperElement = this.$wrapper.get(0)!;
|
|
||||||
|
|
||||||
if (colorClass) {
|
|
||||||
wrapperElement.className = "quick-edit-dialog-wrapper " + colorClass;
|
|
||||||
} else {
|
|
||||||
wrapperElement.className = "quick-edit-dialog-wrapper";
|
|
||||||
}
|
|
||||||
|
|
||||||
const customHue = getComputedStyle(wrapperElement).getPropertyValue("--custom-color-hue");
|
|
||||||
if (customHue) {
|
|
||||||
/* Apply the tinted-dialog class only if the custom color CSS class specifies a hue */
|
|
||||||
wrapperElement.classList.add("tinted-quick-edit-dialog");
|
|
||||||
}
|
|
||||||
|
|
||||||
const activeEl = document.activeElement;
|
const activeEl = document.activeElement;
|
||||||
if (activeEl && "blur" in activeEl) {
|
if (activeEl && "blur" in activeEl) {
|
||||||
(activeEl as HTMLElement).blur();
|
(activeEl as HTMLElement).blur();
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ const TPL = /*html*/`
|
|||||||
<div class="note-detail">
|
<div class="note-detail">
|
||||||
<style>
|
<style>
|
||||||
.note-detail {
|
.note-detail {
|
||||||
max-width: var(--max-content-width); /* Inherited from .note-split */
|
|
||||||
font-family: var(--detail-font-family);
|
font-family: var(--detail-font-family);
|
||||||
font-size: var(--detail-font-size);
|
font-size: var(--detail-font-size);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ export default class NoteWrapperWidget extends FlexContainer<BasicWidget> {
|
|||||||
|
|
||||||
const note = this.noteContext?.note;
|
const note = this.noteContext?.note;
|
||||||
if (!note) {
|
if (!note) {
|
||||||
this.$widget.addClass("bgfx");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +61,7 @@ export default class NoteWrapperWidget extends FlexContainer<BasicWidget> {
|
|||||||
|
|
||||||
this.$widget.addClass(utils.getNoteTypeClass(note.type));
|
this.$widget.addClass(utils.getNoteTypeClass(note.type));
|
||||||
this.$widget.addClass(utils.getMimeTypeClass(note.mime));
|
this.$widget.addClass(utils.getMimeTypeClass(note.mime));
|
||||||
this.$widget.toggleClass("bgfx", note.isOptions());
|
|
||||||
this.$widget.toggleClass("protected", note.isProtected);
|
this.$widget.toggleClass("protected", note.isProtected);
|
||||||
|
|
||||||
const noteLanguage = note?.getLabelValue("language");
|
const noteLanguage = note?.getLabelValue("language");
|
||||||
@@ -71,7 +70,7 @@ export default class NoteWrapperWidget extends FlexContainer<BasicWidget> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#isFullWidthNote(note: FNote) {
|
#isFullWidthNote(note: FNote) {
|
||||||
if (["code", "image", "mermaid", "book", "render", "canvas", "webView", "mindMap"].includes(note.type)) {
|
if (["image", "mermaid", "book", "render", "canvas", "webView", "mindMap"].includes(note.type)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -299,6 +299,10 @@ function MaxContentWidth() {
|
|||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
</Column>
|
</Column>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{t("max_content_width.apply_changes_description")} <Button text={t("max_content_width.reload_button")} size="micro" onClick={reloadFrontendApp} />
|
||||||
|
</p>
|
||||||
</OptionsSection>
|
</OptionsSection>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ function TokenList({ tokens }: { tokens: EtapiToken[] }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
tokens.length ? (
|
tokens.length ? (
|
||||||
<div style={{ overflow: "auto"}}>
|
<div style={{ overflow: "auto", height: "500px"}}>
|
||||||
<table className="table table-stripped">
|
<table className="table table-stripped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
2
apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json
generated
vendored
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<figure class="image image_resized" style="width:63.68%;">
|
<figure class="image image_resized" style="width:63.68%;">
|
||||||
<img style="aspect-ratio:1363/1364;" src="Introduction_image.png"
|
<img style="aspect-ratio:1363/1364;" src="AI_image.png"
|
||||||
width="1363" height="1364">
|
width="1363" height="1364">
|
||||||
<figcaption>An example chat with an LLM</figcaption>
|
<figcaption>An example chat with an LLM</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
@@ -11,12 +11,12 @@
|
|||||||
<p>The quickest way to get started is to navigate to the “AI/LLM” settings:</p>
|
<p>The quickest way to get started is to navigate to the “AI/LLM” settings:</p>
|
||||||
<figure
|
<figure
|
||||||
class="image image_resized" style="width:74.04%;">
|
class="image image_resized" style="width:74.04%;">
|
||||||
<img style="aspect-ratio:1916/1906;" src="5_Introduction_image.png"
|
<img style="aspect-ratio:1916/1906;" src="5_AI_image.png"
|
||||||
width="1916" height="1906">
|
width="1916" height="1906">
|
||||||
</figure>
|
</figure>
|
||||||
<p>Enable the feature:</p>
|
<p>Enable the feature:</p>
|
||||||
<figure class="image image_resized" style="width:82.82%;">
|
<figure class="image image_resized" style="width:82.82%;">
|
||||||
<img style="aspect-ratio:1911/997;" src="1_Introduction_image.png"
|
<img style="aspect-ratio:1911/997;" src="1_AI_image.png"
|
||||||
width="1911" height="997">
|
width="1911" height="997">
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ class="image image_resized" style="width:74.04%;">
|
|||||||
We will then hit the “refresh” button to have it fetch our models:</p>
|
We will then hit the “refresh” button to have it fetch our models:</p>
|
||||||
<figure
|
<figure
|
||||||
class="image image_resized" style="width:82.28%;">
|
class="image image_resized" style="width:82.28%;">
|
||||||
<img style="aspect-ratio:1912/1075;" src="4_Introduction_image.png"
|
<img style="aspect-ratio:1912/1075;" src="4_AI_image.png"
|
||||||
width="1912" height="1075">
|
width="1912" height="1075">
|
||||||
</figure>
|
</figure>
|
||||||
<p>When selecting the dropdown for the “Embedding Model”, embedding models
|
<p>When selecting the dropdown for the “Embedding Model”, embedding models
|
||||||
@@ -51,21 +51,21 @@ class="image image_resized" style="width:74.04%;">
|
|||||||
a horizontal line, as seen below:</p>
|
a horizontal line, as seen below:</p>
|
||||||
<figure class="image image_resized"
|
<figure class="image image_resized"
|
||||||
style="width:61.73%;">
|
style="width:61.73%;">
|
||||||
<img style="aspect-ratio:1232/959;" src="8_Introduction_image.png"
|
<img style="aspect-ratio:1232/959;" src="8_AI_image.png"
|
||||||
width="1232" height="959">
|
width="1232" height="959">
|
||||||
</figure>
|
</figure>
|
||||||
<p>After selecting an embedding model, embeddings should automatically begin
|
<p>After selecting an embedding model, embeddings should automatically begin
|
||||||
to be generated by checking the embedding statistics at the top of the
|
to be generated by checking the embedding statistics at the top of the
|
||||||
“AI/LLM” settings panel:</p>
|
“AI/LLM” settings panel:</p>
|
||||||
<figure class="image image_resized" style="width:67.06%;">
|
<figure class="image image_resized" style="width:67.06%;">
|
||||||
<img style="aspect-ratio:1333/499;" src="7_Introduction_image.png"
|
<img style="aspect-ratio:1333/499;" src="7_AI_image.png"
|
||||||
width="1333" height="499">
|
width="1333" height="499">
|
||||||
</figure>
|
</figure>
|
||||||
<p>If you don't see any embeddings being created, you will want to scroll
|
<p>If you don't see any embeddings being created, you will want to scroll
|
||||||
to the bottom of the settings, and hit “Recreate All Embeddings”:</p>
|
to the bottom of the settings, and hit “Recreate All Embeddings”:</p>
|
||||||
<figure
|
<figure
|
||||||
class="image image_resized" style="width:65.69%;">
|
class="image image_resized" style="width:65.69%;">
|
||||||
<img style="aspect-ratio:1337/1490;" src="3_Introduction_image.png"
|
<img style="aspect-ratio:1337/1490;" src="3_AI_image.png"
|
||||||
width="1337" height="1490">
|
width="1337" height="1490">
|
||||||
</figure>
|
</figure>
|
||||||
<p>Creating the embeddings will take some time, and will be regenerated when
|
<p>Creating the embeddings will take some time, and will be regenerated when
|
||||||
@@ -139,7 +139,7 @@ class="image image_resized" style="width:74.04%;">
|
|||||||
<p>When Tools are executed within your Chat, you'll see output like the following:</p>
|
<p>When Tools are executed within your Chat, you'll see output like the following:</p>
|
||||||
<figure
|
<figure
|
||||||
class="image image_resized" style="width:66.88%;">
|
class="image image_resized" style="width:66.88%;">
|
||||||
<img style="aspect-ratio:1372/1591;" src="6_Introduction_image.png"
|
<img style="aspect-ratio:1372/1591;" src="6_AI_image.png"
|
||||||
width="1372" height="1591">
|
width="1372" height="1591">
|
||||||
</figure>
|
</figure>
|
||||||
<p>You don't need to tell the LLM to execute a certain tool, it should “smartly”
|
<p>You don't need to tell the LLM to execute a certain tool, it should “smartly”
|
||||||
@@ -149,13 +149,13 @@ class="image image_resized" style="width:74.04%;">
|
|||||||
use the “Chat with Notes” button, where you can go ahead and start chatting!:</p>
|
use the “Chat with Notes” button, where you can go ahead and start chatting!:</p>
|
||||||
<figure
|
<figure
|
||||||
class="image image_resized" style="width:60.77%;">
|
class="image image_resized" style="width:60.77%;">
|
||||||
<img style="aspect-ratio:1378/539;" src="2_Introduction_image.png"
|
<img style="aspect-ratio:1378/539;" src="2_AI_image.png"
|
||||||
width="1378" height="539">
|
width="1378" height="539">
|
||||||
</figure>
|
</figure>
|
||||||
<p>If you don't see the “Chat with Notes” button on your side launchbar,
|
<p>If you don't see the “Chat with Notes” button on your side launchbar,
|
||||||
you might need to move it from the “Available Launchers” section to the
|
you might need to move it from the “Available Launchers” section to the
|
||||||
“Visible Launchers” section:</p>
|
“Visible Launchers” section:</p>
|
||||||
<figure class="image image_resized" style="width:69.81%;">
|
<figure class="image image_resized" style="width:69.81%;">
|
||||||
<img style="aspect-ratio:1765/1287;" src="9_Introduction_image.png"
|
<img style="aspect-ratio:1765/1287;" src="9_AI_image.png"
|
||||||
width="1765" height="1287">
|
width="1765" height="1287">
|
||||||
</figure>
|
</figure>
|
||||||
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
@@ -11,12 +11,12 @@
|
|||||||
<p>To set your preferred chat model, you'll want to enter the provider's
|
<p>To set your preferred chat model, you'll want to enter the provider's
|
||||||
name here:</p>
|
name here:</p>
|
||||||
<figure class="image image_resized" style="width:88.38%;">
|
<figure class="image image_resized" style="width:88.38%;">
|
||||||
<img style="aspect-ratio:1884/1267;" src="AI Provider Information_im.png"
|
<img style="aspect-ratio:1884/1267;" src="Providers_image.png"
|
||||||
width="1884" height="1267">
|
width="1884" height="1267">
|
||||||
</figure>
|
</figure>
|
||||||
<p>And to set your preferred embedding provider:</p>
|
<p>And to set your preferred embedding provider:</p>
|
||||||
<figure class="image image_resized"
|
<figure class="image image_resized"
|
||||||
style="width:93.47%;">
|
style="width:93.47%;">
|
||||||
<img style="aspect-ratio:1907/1002;" src="1_AI Provider Information_im.png"
|
<img style="aspect-ratio:1907/1002;" src="1_Providers_image.png"
|
||||||
width="1907" height="1002">
|
width="1907" height="1002">
|
||||||
</figure>
|
</figure>
|
||||||
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
@@ -6,7 +6,16 @@
|
|||||||
<li>Note Map, which shows the hierarchical tree structure.</li>
|
<li>Note Map, which shows the hierarchical tree structure.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>Link Map</h2>
|
<h2>Link Map</h2>
|
||||||
<p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p>
|
<p>The Link map is a visualization of links and <a class="reference-link"
|
||||||
|
href="#root/_help_Cq5X6iKQop6R">Relations</a> incoming to and outgoing from
|
||||||
|
a particular note.</p>
|
||||||
|
<p>The map indicates the following types of relations:</p>
|
||||||
|
<ul>
|
||||||
|
<li><a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> between
|
||||||
|
notes.</li>
|
||||||
|
<li><a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
<img src="1_Note Map (Link map, Tree m.png">
|
<img src="1_Note Map (Link map, Tree m.png">
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
125
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html
generated
vendored
@@ -149,7 +149,7 @@ class="image">
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a>
|
<th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
|
||||||
</th>
|
</th>
|
||||||
<td>Not supported.</td>
|
<td>Not supported.</td>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
@@ -208,9 +208,19 @@ class="image">
|
|||||||
This allows you to manage and navigate through all the notes you have made
|
This allows you to manage and navigate through all the notes you have made
|
||||||
public.</p>
|
public.</p>
|
||||||
<h2>Security considerations</h2>
|
<h2>Security considerations</h2>
|
||||||
<p>Shared notes are published on the open internet and can be accessed by
|
<ul>
|
||||||
anyone with the URL. The URL's randomness does not provide security, so
|
<li>Shared notes are published on the open internet and can be accessed by
|
||||||
it is crucial not to share sensitive information through this feature.</p>
|
anyone with the URL unless the notes are password-protected.</li>
|
||||||
|
<li>The URL's randomness does not provide security, so it is crucial not to
|
||||||
|
share sensitive information through this feature.</li>
|
||||||
|
<li>Trilium takes precautions to protect your publicly shared instance from
|
||||||
|
leaking information for non-shared notes, including opening a separate
|
||||||
|
read-only connection to the <a class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>.
|
||||||
|
Depending on your threat model, it might make more sense to use
|
||||||
|
<a
|
||||||
|
class="reference-link" href="#root/_help_ycBFjKrrwE9p">Exporting HTML for web publishing</a> and use battle-tested web servers
|
||||||
|
such as Nginx or Apache to serve static content.</li>
|
||||||
|
</ul>
|
||||||
<h3>Password protection</h3>
|
<h3>Password protection</h3>
|
||||||
<p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute.
|
<p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute.
|
||||||
Add this label to the note with the format <code>#shareCredentials="username:password"</code>.
|
Add this label to the note with the format <code>#shareCredentials="username:password"</code>.
|
||||||
@@ -280,6 +290,15 @@ for (const attr of parentNote.attributes) {
|
|||||||
<li>Using slashes (<code>/</code>) within aliases to create subpaths is not
|
<li>Using slashes (<code>/</code>) within aliases to create subpaths is not
|
||||||
supported.</li>
|
supported.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
<aside class="admonition tip">
|
||||||
|
<ul>
|
||||||
|
<li>To easily identify pages that don't have a share alias, run a
|
||||||
|
<a
|
||||||
|
class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a> with <code>#!shareAlias</code>.</li>
|
||||||
|
<li>To be able to enter the share alias faster, consider using <a class="reference-link"
|
||||||
|
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> (for example <code>#label:shareAlias(inheritable)="promoted,alias=Slug,single,text"</code>).</li>
|
||||||
|
</ul>
|
||||||
|
</aside>
|
||||||
<h3>Setting a custom favicon</h3>
|
<h3>Setting a custom favicon</h3>
|
||||||
<p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing
|
<p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing
|
||||||
to a file note containing the favicon (e.g., in <code>.ico</code> format).</p>
|
to a file note containing the favicon (e.g., in <code>.ico</code> format).</p>
|
||||||
@@ -300,7 +319,11 @@ for (const attr of parentNote.attributes) {
|
|||||||
When viewed, the list of shared roots will be displayed at the bottom of
|
When viewed, the list of shared roots will be displayed at the bottom of
|
||||||
the note.</p>
|
the note.</p>
|
||||||
<h2>Attribute reference</h2>
|
<h2>Attribute reference</h2>
|
||||||
<table>
|
<table class="ck-table-resized">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:18.38%;">
|
||||||
|
<col style="width:81.62%;">
|
||||||
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Attribute</th>
|
<th>Attribute</th>
|
||||||
@@ -309,40 +332,40 @@ for (const attr of parentNote.attributes) {
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareHiddenFromTree</code>
|
<td><code>#shareHiddenFromTree</code>
|
||||||
</td>
|
</td>
|
||||||
<td>this note is hidden from left navigation tree, but still accessible with
|
<td>this note is hidden from left navigation tree, but still accessible with
|
||||||
its URL</td>
|
its URL</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareExternalLink</code>
|
<td><code>#shareExternalLink</code>
|
||||||
</td>
|
</td>
|
||||||
<td>note will act as a link to an external website in the share tree</td>
|
<td>note will act as a link to an external website in the share tree</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareAlias</code>
|
<td><code>#shareAlias</code>
|
||||||
</td>
|
</td>
|
||||||
<td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code>
|
<td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareOmitDefaultCss</code>
|
<td><code>#shareOmitDefaultCss</code>
|
||||||
</td>
|
</td>
|
||||||
<td>default share page CSS will be omitted. Use when you make extensive styling
|
<td>default share page CSS will be omitted. Use when you make extensive styling
|
||||||
changes.</td>
|
changes.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareRoot</code>
|
<td><code>#shareRoot</code>
|
||||||
</td>
|
</td>
|
||||||
<td>marks note which is served on /share root.</td>
|
<td>marks note which is served on /share root.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareDescription</code>
|
<td><code>#shareDescription</code>
|
||||||
</td>
|
</td>
|
||||||
<td>define text to be added to the HTML meta tag for description</td>
|
<td>define text to be added to the HTML meta tag for description</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareRaw</code>
|
<td><code>#shareRaw</code>
|
||||||
</td>
|
</td>
|
||||||
<td>Note will be served in its raw format, without HTML wrapper. See also
|
<td>Note will be served in its raw format, without HTML wrapper. See also
|
||||||
<a
|
<a
|
||||||
@@ -350,7 +373,7 @@ for (const attr of parentNote.attributes) {
|
|||||||
without setting an attribute.</td>
|
without setting an attribute.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareDisallowRobotIndexing</code>
|
<td><code>#shareDisallowRobotIndexing</code>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p>Indicates to web crawlers that the page should not be indexed of this
|
<p>Indicates to web crawlers that the page should not be indexed of this
|
||||||
@@ -362,19 +385,19 @@ for (const attr of parentNote.attributes) {
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareCredentials</code>
|
<td><code>#shareCredentials</code>
|
||||||
</td>
|
</td>
|
||||||
<td>require credentials to access this shared note. Value is expected to be
|
<td>require credentials to access this shared note. Value is expected to be
|
||||||
in format <code>username:password</code>. Don't forget to make this inheritable
|
in format <code>username:password</code>. Don't forget to make this inheritable
|
||||||
to apply to child-notes/images.</td>
|
to apply to child-notes/images.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareIndex</code>
|
<td><code>#shareIndex</code>
|
||||||
</td>
|
</td>
|
||||||
<td>Note with this label will list all roots of shared notes.</td>
|
<td>Note with this label will list all roots of shared notes.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>shareHtmlLocation</code>
|
<td><code>#shareHtmlLocation</code>
|
||||||
</td>
|
</td>
|
||||||
<td>defines where custom HTML injected via <code>~shareHtml</code> relation
|
<td>defines where custom HTML injected via <code>~shareHtml</code> relation
|
||||||
should be placed. Applied to the HTML snippet note itself. Format: <code>location:position</code> where
|
should be placed. Applied to the HTML snippet note itself. Format: <code>location:position</code> where
|
||||||
@@ -384,6 +407,76 @@ for (const attr of parentNote.attributes) {
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<h3>Customizing logo</h3>
|
||||||
|
<p>It's possible to adjust the logo which is displayed on the top-left of
|
||||||
|
the left pane.</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Attribute</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><code>~shareLogo</code>
|
||||||
|
</td>
|
||||||
|
<td>Relation set to an image to use as logo. The image must be part of the
|
||||||
|
share tree (it can be hidden if needed).</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareLogoWidth</code>
|
||||||
|
</td>
|
||||||
|
<td>The width (in pixels, without unit) to set for the logo. Default is <code>53</code>.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareLogoHeight</code>
|
||||||
|
</td>
|
||||||
|
<td>The height (in pixels, without unit) to set for the logo. Default is <code>40</code>.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareRootLink</code>
|
||||||
|
</td>
|
||||||
|
<td>URL to navigate to when the logo is pressed.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Customizing OpenGraph</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Attribute</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareOpenGraphColor</code>
|
||||||
|
</td>
|
||||||
|
<td>This adjusts the <code>theme-color</code> meta-property.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareOpenGraphURL</code>
|
||||||
|
</td>
|
||||||
|
<td>This adjusts the <code>og:url</code> and <code>twitter:url</code> meta-properties.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareOpenGraphDomain</code>
|
||||||
|
</td>
|
||||||
|
<td>Adjusts the <code>twitter:domain</code> meta-property.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>#shareOpenGraphImage</code>
|
||||||
|
<br><code>~shareOpenGraphImage</code>
|
||||||
|
</td>
|
||||||
|
<td>Can be either a label, case in which the value is passed on as-is, or
|
||||||
|
it can be a relation to an image <a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>.
|
||||||
|
This controls the <code>og:image</code> meta-property.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
<h2>Credits</h2>
|
<h2>Credits</h2>
|
||||||
<p>Since v0.95.0, a new theme was introduced (and enabled by default) which
|
<p>Since v0.95.0, a new theme was introduced (and enabled by default) which
|
||||||
greatly improves the visual aspect of the Share feature, as well as its
|
greatly improves the visual aspect of the Share feature, as well as its
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<p>As described in <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a>,
|
<p>As described in <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||||
Trilium can act as a public server in which the shared notes are displayed
|
Trilium can act as a public server in which the shared notes are displayed
|
||||||
in read-only mode. While this can work in most cases, it's generally not
|
in read-only mode. While this can work in most cases, it's generally not
|
||||||
meant for high-traffic websites and since it's running on a Node.js server
|
meant for high-traffic websites and since it's running on a Node.js server
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
static site generators such as <a href="https://www.mkdocs.org/">MkDocs</a>).
|
static site generators such as <a href="https://www.mkdocs.org/">MkDocs</a>).
|
||||||
Since the normal HTML ZIP export does not contain any styling or additional
|
Since the normal HTML ZIP export does not contain any styling or additional
|
||||||
functionality, Trilium provides a way to export the same layout and style
|
functionality, Trilium provides a way to export the same layout and style
|
||||||
as the <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a> function
|
as the <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a> function
|
||||||
into static HTML files.</p>
|
into static HTML files.</p>
|
||||||
<p>Apart from the enhanced security, these HTML files are also easy to deploy
|
<p>Apart from the enhanced security, these HTML files are also easy to deploy
|
||||||
on “serverless” deployments such as GitHub Pages or CloudFlare Pages and
|
on “serverless” deployments such as GitHub Pages or CloudFlare Pages and
|
||||||
@@ -20,26 +20,25 @@
|
|||||||
importing the Markdown documentation and exporting it via a script to the
|
importing the Markdown documentation and exporting it via a script to the
|
||||||
static web format.</p>
|
static web format.</p>
|
||||||
</aside>
|
</aside>
|
||||||
<h2>Differences from normal sharing and export</h2>
|
<h2>Differences from normal sharing</h2>
|
||||||
<p>Apart from normal <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a>,
|
<p>Apart from normal <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||||
exporting to static HTML files comes with a few subtle differences:</p>
|
exporting to static HTML files comes with a few subtle differences:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li data-list-item-id="e9e5a7d50e33698fb322f4dc65108f3a9">The URL structure is different. Where in normal sharing it's something
|
<li>The URL structure is different. Where in normal sharing it's something
|
||||||
along the way of <code>example.com/share/noteid</code>, the notes follow
|
along the way of <code>example.com/share/noteid</code>, the notes follow
|
||||||
an hierarchical structure, such as <code>docs.triliumnotes.org/user-guide/concepts/navigation/tree-concepts</code>.</li>
|
an hierarchical structure, such as <code>docs.triliumnotes.org/user-guide/concepts/navigation/tree-concepts</code>.</li>
|
||||||
<li
|
<li>The <code>favicon.ico</code> is not handled automatically, it needs to be
|
||||||
data-list-item-id="e3995e60b9751ea177ac920a901635d4b">The <code>favicon.ico</code> is not handled automatically, it needs to be
|
|
||||||
manually added on the server after the export is generated.</li>
|
manually added on the server after the export is generated.</li>
|
||||||
<li data-list-item-id="e72c2a986808ce27eb3bb5001fe4710cb">The “Last updated” for notes is not available.</li>
|
<li>The “Last updated” for notes is not available.</li>
|
||||||
<li data-list-item-id="e53e8959701206c7a064ba811c0123bef">The search functionality works slightly different since the normal one
|
<li>The search functionality works slightly different since the normal one
|
||||||
requires an active API to work. In the static export, search still works
|
requires an active API to work. In the static export, search still works
|
||||||
but uses a different mechanism so results might be different.</li>
|
but uses a different mechanism so results might be different.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>Differences from normal .zip export</h2>
|
<h2>Differences from normal .zip export</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li data-list-item-id="e8a16c7135d6f6c4de3bc448bd8795289">The name of the files/URLs will prefer <code>shareAlias</code> to allow
|
<li>The name of the files/URLs will prefer <code>shareAlias</code> to allow
|
||||||
for clean URLs.</li>
|
for clean URLs.</li>
|
||||||
<li data-list-item-id="ef8bfdfc599c07ba70fbb4be97a3e26ab">The export requires a functional web server as the pages will not render
|
<li>The export requires a functional web server as the pages will not render
|
||||||
properly if accessed locally via a web browser due to the use of module
|
properly if accessed locally via a web browser due to the use of module
|
||||||
scripts.</li>
|
scripts.</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -50,7 +49,10 @@
|
|||||||
can be installed via:</p><pre><code class="language-text-x-trilium-auto">npm i -g http-server</code></pre>
|
can be installed via:</p><pre><code class="language-text-x-trilium-auto">npm i -g http-server</code></pre>
|
||||||
<p>Once installed simply:</p>
|
<p>Once installed simply:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li data-list-item-id="ebc8d02c8cdcdb030c746f1fd5eccb5bd">Extract the exported .zip file.</li>
|
<li>Extract the exported .zip file.</li>
|
||||||
<li data-list-item-id="e1d20f408fb89d0af0c1003984373f808">Inside the extracted directory, run <code>http-server</code>.</li>
|
<li>Inside the extracted directory, run <code>http-server</code>.</li>
|
||||||
<li data-list-item-id="ecf0c59f3a26c8e766bb1d739f8355e33">Access the indicated address (e.g. http://localhost:8080).</li>
|
<li>Access the indicated address (e.g. <a href="http://localhost:8080">http://localhost:8080</a>).</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
<h2>Automation</h2>
|
||||||
|
<p><a class="reference-link" href="#root/_help_pgxEVkzLl1OP">ETAPI (REST API)</a> could
|
||||||
|
potentially be used to automate an export on a scheduled task.</p>
|
||||||
18
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Reverse proxy configuration.html
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<p>It might be desirable to only expose the share functionality of Trilium
|
||||||
|
to the Internet, and keep the application accessible only within a local
|
||||||
|
network or via VPN.</p>
|
||||||
|
<p>To do so, a reverse proxy is required.</p>
|
||||||
|
<h2>Caddy</h2><pre><code class="language-text-x-trilium-auto">http://domain.com {
|
||||||
|
reverse_proxy /share http://localhost:8080/share
|
||||||
|
}</code></pre>
|
||||||
|
<p>This is for newer versions where the share functionality is isolated,
|
||||||
|
for older versions it's required to also include <code>/assets</code>.<sup><a href="#fn2b8mg20aol8">[1]</a></sup>
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p><sup><strong><a href="#fnref2b8mg20aol8">^</a></strong></sup>
|
||||||
|
</p>
|
||||||
|
<p><a href="https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897">https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897</a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
30
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export.html
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<p>Trilium natively supports the following formats for both import and export.</p>
|
||||||
|
<ul>
|
||||||
|
<li>HTML:
|
||||||
|
<ul>
|
||||||
|
<li>This is the main format used by Trilium, where standard tags are used
|
||||||
|
to represent basic formatting and layout (e.g. <code><strong></code>, <code><table></code>, <code><pre></code>).</li>
|
||||||
|
<li>Note that HTML is not a standardized format so some more specific features
|
||||||
|
such as admonitions or <a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> might
|
||||||
|
not be supported by other applications.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a class="reference-link" href="#root/_help_Oau6X9rCuegd">Markdown</a>
|
||||||
|
<ul>
|
||||||
|
<li>Most of the formatting is preserved, see <a class="reference-link"
|
||||||
|
href="#root/_help_rJ9grSgoExl9">Supported syntax</a>.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>OPML (Outliner Interchange Format)
|
||||||
|
<ul>
|
||||||
|
<li>Supports both OPML v1.0 for plain text and v2.0 with HTML support.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>To import from other applications, see the dedicated pages:</p>
|
||||||
|
<ul>
|
||||||
|
<li><a class="reference-link" href="#root/_help_syuSEKf2rUGr">Evernote</a>
|
||||||
|
</li>
|
||||||
|
<li><a class="reference-link" href="#root/_help_GnhlmrATVqcH">OneNote</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
@@ -1,5 +1,76 @@
|
|||||||
<p>Collections are a unique type of notes that don't have a content, but
|
<p>Collections are a unique type of notes that don't have a content, but
|
||||||
instead display its child notes in various presentation methods.</p>
|
instead display its child notes in various presentation methods.</p>
|
||||||
|
<h2>Main collections</h2>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<figure class="image">
|
||||||
|
<img style="aspect-ratio:1651/810;" src="Collections_collection_ca.webp"
|
||||||
|
width="1651" height="810">
|
||||||
|
</figure>
|
||||||
|
</td>
|
||||||
|
<td><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar</a>
|
||||||
|
<br>which displays a week, month or year calendar with the notes being shown
|
||||||
|
as events. New events can be added easily by dragging across the calendar.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<figure class="image">
|
||||||
|
<img style="aspect-ratio:1643/647;" src="Collections_collection_ta.webp"
|
||||||
|
width="1643" height="647">
|
||||||
|
</figure>
|
||||||
|
</td>
|
||||||
|
<td><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table</a>
|
||||||
|
<br>displays each note as a row in a table, with <a class="reference-link"
|
||||||
|
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being shown as well.
|
||||||
|
This makes it easy to visualize attributes of notes, as well as making
|
||||||
|
them easily editable.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<figure class="image">
|
||||||
|
<img style="aspect-ratio:1174/850;" src="Collections_collection_bo.webp"
|
||||||
|
width="1174" height="850">
|
||||||
|
</figure>
|
||||||
|
</td>
|
||||||
|
<td><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Kanban Board</a>
|
||||||
|
<br>displays notes in columns, grouped by the value of a label. Items and
|
||||||
|
columns can easily be created or dragged around to change their status.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<figure class="image">
|
||||||
|
<img style="aspect-ratio:844/639;" src="Collections_collection_ge.webp"
|
||||||
|
width="844" height="639">
|
||||||
|
</figure>
|
||||||
|
</td>
|
||||||
|
<td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
|
||||||
|
<br>which displays a geographical map in which the notes are represented as
|
||||||
|
markers/pins on the map. New events can be easily added by pointing on
|
||||||
|
the map.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<figure class="image">
|
||||||
|
<img style="aspect-ratio:1120/763;" src="Collections_collection_pr.webp"
|
||||||
|
width="1120" height="763">
|
||||||
|
</figure>
|
||||||
|
</td>
|
||||||
|
<td><a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation</a>
|
||||||
|
<br>which shows each note as a slide and can be presented full-screen with
|
||||||
|
smooth transitions or exported to PDF for sharing.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2>Classic collections</h2>
|
||||||
<p>Classic collections are read-only mode and compiles the contents of all
|
<p>Classic collections are read-only mode and compiles the contents of all
|
||||||
child notes into one continuous view. This makes it ideal for reading extensive
|
child notes into one continuous view. This makes it ideal for reading extensive
|
||||||
information broken into smaller, manageable segments.</p>
|
information broken into smaller, manageable segments.</p>
|
||||||
@@ -13,32 +84,22 @@
|
|||||||
but it displays the notes one under the other with the content being expandable/collapsible,
|
but it displays the notes one under the other with the content being expandable/collapsible,
|
||||||
but also works recursively.</li>
|
but also works recursively.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>More specialized collections were introduced, such as the:</p>
|
<h2>Creating a new collection</h2>
|
||||||
<ul>
|
|
||||||
<li><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a> which
|
|
||||||
displays a week, month or year calendar with the notes being shown as events.
|
|
||||||
New events can be added easily by dragging across the calendar.</li>
|
|
||||||
<li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a> which
|
|
||||||
displays a geographical map in which the notes are represented as markers/pins
|
|
||||||
on the map. New events can be easily added by pointing on the map.</li>
|
|
||||||
<li><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table View</a> displays
|
|
||||||
each note as a row in a table, with <a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being
|
|
||||||
shown as well. This makes it easy to visualize attributes of notes, as
|
|
||||||
well as making them easily editable.</li>
|
|
||||||
<li><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Board View</a> (Kanban)
|
|
||||||
displays notes in columns, grouped by the value of a label.</li>
|
|
||||||
</ul>
|
|
||||||
<p>For a quick presentation of all the supported view types, see the child
|
|
||||||
notes of this help page, including screenshots.</p>
|
|
||||||
<h2>Configuration</h2>
|
|
||||||
<p>To adjust the view type, see the dedicated <em>Collections</em> tab in the
|
|
||||||
<a
|
|
||||||
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
|
|
||||||
<h2>Use cases</h2>
|
|
||||||
<h3>Creating a new collection</h3>
|
|
||||||
<p>To create a new collections, right click in the <a class="reference-link"
|
<p>To create a new collections, right click in the <a class="reference-link"
|
||||||
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and look for the <em>Collections</em> entry
|
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and look for the <em>Collections</em> entry
|
||||||
and select the desired type.</p>
|
and select the desired type.</p>
|
||||||
|
<h2>Configuration</h2>
|
||||||
|
<p>To change the configuration of a collection or even switch to a different
|
||||||
|
collection (e.g. from Kanban Board to a Calendar), see the dedicated <em>Collections</em> tab
|
||||||
|
in the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
|
||||||
|
<h2>Archived notes</h2>
|
||||||
|
<p>By default, <a href="#root/_help_MKmLg5x6xkor">archived notes</a> will not be
|
||||||
|
shown in collections. This behaviour can be changed by going to <em>Collection Properties</em> in
|
||||||
|
the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and
|
||||||
|
checking <em>Show archived notes</em>.</p>
|
||||||
|
<p>Archived notes will be generally indicated by being greyed out as opposed
|
||||||
|
to the normal ones.</p>
|
||||||
|
<h2>Advanced use cases</h2>
|
||||||
<h3>Adding a description to a collection</h3>
|
<h3>Adding a description to a collection</h3>
|
||||||
<p>To add a text before the collection, for example to describe it:</p>
|
<p>To add a text before the collection, for example to describe it:</p>
|
||||||
<ol>
|
<ol>
|
||||||
@@ -75,13 +136,6 @@
|
|||||||
<li>Consult the help page of the corresponding view type in order to understand
|
<li>Consult the help page of the corresponding view type in order to understand
|
||||||
how to configure them.</li>
|
how to configure them.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h2>Archived notes</h2>
|
|
||||||
<p>By default, archived notes will not be shown in collections. This behaviour
|
|
||||||
can be changed by going to <em>Collection Properties</em> in the
|
|
||||||
<a
|
|
||||||
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and checking <em>Show archived notes</em>.</p>
|
|
||||||
<p>Archived notes will be generally indicated by being greyed out as opposed
|
|
||||||
to the normal ones.</p>
|
|
||||||
<h2>Under the hood</h2>
|
<h2>Under the hood</h2>
|
||||||
<p>Collections by themselves are simply notes with no content that rely on
|
<p>Collections by themselves are simply notes with no content that rely on
|
||||||
the <a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a> mechanism
|
the <a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a> mechanism
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 179 B |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B |
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1014 B After Width: | Height: | Size: 1014 B |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 966 B After Width: | Height: | Size: 966 B |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:767/606;" src="4_Calendar View_image.png"
|
<img style="aspect-ratio:767/606;" src="4_Calendar_image.png"
|
||||||
width="767" height="606">
|
width="767" height="606">
|
||||||
</figure>
|
</figure>
|
||||||
<p>The Calendar view will display each child note in a calendar that has
|
<p>The Calendar view will display each child note in a calendar that has
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>
|
<td>
|
||||||
<img src="2_Calendar View_image.png">
|
<img src="2_Calendar_image.png">
|
||||||
</td>
|
</td>
|
||||||
<td>The Calendar View works only for Collection note types. To create a new
|
<td>The Calendar View works only for Collection note types. To create a new
|
||||||
note, right click on the note tree on the left and select Insert note after,
|
note, right click on the note tree on the left and select Insert note after,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<img src="3_Calendar View_image.png">
|
<img src="3_Calendar_image.png">
|
||||||
</td>
|
</td>
|
||||||
<td>Once created, the “View type” of the Collection needs changed to “Calendar”,
|
<td>Once created, the “View type” of the Collection needs changed to “Calendar”,
|
||||||
by selecting the “Collection Properties” tab in the ribbon.</td>
|
by selecting the “Collection Properties” tab in the ribbon.</td>
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
<li>It's possible to drag across multiple days to set both the start and end
|
<li>It's possible to drag across multiple days to set both the start and end
|
||||||
date of a particular note.
|
date of a particular note.
|
||||||
<br>
|
<br>
|
||||||
<img src="Calendar View_image.png">
|
<img src="Calendar_image.png">
|
||||||
</li>
|
</li>
|
||||||
<li>Creating new notes from the calendar will respect the <code>~child:template</code> relation
|
<li>Creating new notes from the calendar will respect the <code>~child:template</code> relation
|
||||||
if set on the Collection note.</li>
|
if set on the Collection note.</li>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Hovering the mouse over an event will display information about the note.
|
<li>Hovering the mouse over an event will display information about the note.
|
||||||
<br>
|
<br>
|
||||||
<img src="7_Calendar View_image.png">
|
<img src="7_Calendar_image.png">
|
||||||
</li>
|
</li>
|
||||||
<li>Left clicking the event will open a <a class="reference-link" href="#root/_help_ZjLYv08Rp3qC">Quick edit</a> to
|
<li>Left clicking the event will open a <a class="reference-link" href="#root/_help_ZjLYv08Rp3qC">Quick edit</a> to
|
||||||
edit the note in a popup while allowing easy return to the calendar by
|
edit the note in a popup while allowing easy return to the calendar by
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
like this:
|
like this:
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<img src="9_Calendar View_image.png">
|
<img src="9_Calendar_image.png">
|
||||||
<br>
|
<br>
|
||||||
<br><code>#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>
|
<br><code>#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>
|
||||||
<br>
|
<br>
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
|
|
||||||
<h2>How the calendar works</h2>
|
<h2>How the calendar works</h2>
|
||||||
<p>
|
<p>
|
||||||
<img src="11_Calendar View_image.png">
|
<img src="11_Calendar_image.png">
|
||||||
</p>
|
</p>
|
||||||
<p>The calendar displays all the child notes of the Collection that have
|
<p>The calendar displays all the child notes of the Collection that have
|
||||||
a <code>#startDate</code>. An <code>#endDate</code> can optionally be added.</p>
|
a <code>#startDate</code>. An <code>#endDate</code> can optionally be added.</p>
|
||||||
@@ -259,7 +259,7 @@
|
|||||||
#hidePromotedAttributes </code></pre>
|
#hidePromotedAttributes </code></pre>
|
||||||
<p>This will result in:</p>
|
<p>This will result in:</p>
|
||||||
<p>
|
<p>
|
||||||
<img src="10_Calendar View_image.png">
|
<img src="10_Calendar_image.png">
|
||||||
</p>
|
</p>
|
||||||
<p>When not used in a Journal, the calendar is recursive. That is, it will
|
<p>When not used in a Journal, the calendar is recursive. That is, it will
|
||||||
look for events not just in its child notes but also in the children of
|
look for events not just in its child notes but also in the children of
|
||||||
@@ -283,8 +283,8 @@
|
|||||||
not having a <code>dateNote</code> attribute. Children of the child notes
|
not having a <code>dateNote</code> attribute. Children of the child notes
|
||||||
will not be displayed.</li>
|
will not be displayed.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<img src="8_Calendar View_image.png"
|
<img src="8_Calendar_image.png" width="1217"
|
||||||
width="1217" height="724">
|
height="724">
|
||||||
|
|
||||||
<h3>Using a different attribute as event title</h3>
|
<h3>Using a different attribute as event title</h3>
|
||||||
<p>By default, events are displayed on the calendar by their note title.
|
<p>By default, events are displayed on the calendar by their note title.
|
||||||
@@ -309,7 +309,7 @@ width="1217" height="724">
|
|||||||
<td>
|
<td>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:445/124;" src="5_Calendar View_image.png"
|
<img style="aspect-ratio:445/124;" src="5_Calendar_image.png"
|
||||||
width="445" height="124">
|
width="445" height="124">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -335,8 +335,8 @@ width="1217" height="724">
|
|||||||
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
|
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<img src="6_Calendar View_image.png"
|
<img src="6_Calendar_image.png" width="294"
|
||||||
width="294" height="151">
|
height="151">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -359,7 +359,7 @@ width="1217" height="724">
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:296/150;" src="1_Calendar View_image.png"
|
<img style="aspect-ratio:296/150;" src="1_Calendar_image.png"
|
||||||
width="296" height="150">
|
width="296" height="150">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 968 B |
@@ -5,7 +5,7 @@
|
|||||||
href="#root/_help_0ESUbbAxVnoK">Note List</a>. </p>
|
href="#root/_help_0ESUbbAxVnoK">Note List</a>. </p>
|
||||||
</aside>
|
</aside>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:892/675;" src="9_Geo Map View_image.png"
|
<img style="aspect-ratio:892/675;" src="9_Geo Map_image.png"
|
||||||
width="892" height="675">
|
width="892" height="675">
|
||||||
</figure>
|
</figure>
|
||||||
<p>This note type displays the children notes on a geographical map, based
|
<p>This note type displays the children notes on a geographical map, based
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image">
|
<figure class="image">
|
||||||
<img style="aspect-ratio:483/413;" src="15_Geo Map View_image.png"
|
<img style="aspect-ratio:483/413;" src="15_Geo Map_image.png"
|
||||||
width="483" height="413">
|
width="483" height="413">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center image_resized" style="width:53.44%;">
|
<figure class="image image-style-align-center image_resized" style="width:53.44%;">
|
||||||
<img style="aspect-ratio:1720/1396;" src="8_Geo Map View_image.png"
|
<img style="aspect-ratio:1720/1396;" src="8_Geo Map_image.png"
|
||||||
width="1720" height="1396">
|
width="1720" height="1396">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -67,18 +67,18 @@
|
|||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>To create a marker, first navigate to the desired point on the map. Then
|
<td>To create a marker, first navigate to the desired point on the map. Then
|
||||||
press the
|
press the
|
||||||
<img src="10_Geo Map View_image.png">button in the <a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a> (top-right)
|
<img src="10_Geo Map_image.png">button in the <a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a> (top-right)
|
||||||
area.
|
area.
|
||||||
<br>
|
<br>
|
||||||
<br>If the button is not visible, make sure the button section is visible
|
<br>If the button is not visible, make sure the button section is visible
|
||||||
by pressing the chevron button (
|
by pressing the chevron button (
|
||||||
<img src="17_Geo Map View_image.png">) in the top-right of the map.</td>
|
<img src="17_Geo Map_image.png">) in the top-right of the map.</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map_image.png"
|
||||||
width="1730" height="416">
|
width="1730" height="416">
|
||||||
</td>
|
</td>
|
||||||
<td>Once pressed, the map will enter in the insert mode, as illustrated by
|
<td>Once pressed, the map will enter in the insert mode, as illustrated by
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>3</td>
|
<td>3</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map_image.png"
|
||||||
width="1586" height="404">
|
width="1586" height="404">
|
||||||
</td>
|
</td>
|
||||||
<td>Enter the name of the marker/note to be created.</td>
|
<td>Enter the name of the marker/note to be created.</td>
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>4</td>
|
<td>4</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="16_Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="16_Geo Map_image.png"
|
||||||
width="1696" height="608">
|
width="1696" height="608">
|
||||||
</td>
|
</td>
|
||||||
<td>Once confirmed, the marker will show up on the map and it will also be
|
<td>Once confirmed, the marker will show up on the map and it will also be
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
<h2>How the location of the markers is stored</h2>
|
<h2>How the location of the markers is stored</h2>
|
||||||
<p>The location of a marker is stored in the <code>#geolocation</code> attribute
|
<p>The location of a marker is stored in the <code>#geolocation</code> attribute
|
||||||
of the child notes:</p>
|
of the child notes:</p>
|
||||||
<img src="18_Geo Map View_image.png"
|
<img src="18_Geo Map_image.png"
|
||||||
width="1288" height="278">
|
width="1288" height="278">
|
||||||
<p>This value can be added manually if needed. The value of the attribute
|
<p>This value can be added manually if needed. The value of the attribute
|
||||||
is made up of the latitude and longitude separated by a comma.</p>
|
is made up of the latitude and longitude separated by a comma.</p>
|
||||||
@@ -191,7 +191,7 @@ width="1288" height="278">
|
|||||||
</ol>
|
</ol>
|
||||||
<h2>Icon and color of the markers</h2>
|
<h2>Icon and color of the markers</h2>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:523/295;" src="Geo Map View_image.jpg"
|
<img style="aspect-ratio:523/295;" src="Geo Map_image.jpg"
|
||||||
alt="image" width="523" height="295">
|
alt="image" width="523" height="295">
|
||||||
</figure>
|
</figure>
|
||||||
<p>The markers will have the same icon as the note.</p>
|
<p>The markers will have the same icon as the note.</p>
|
||||||
@@ -216,7 +216,7 @@ width="1288" height="278">
|
|||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center image_resized" style="width:56.84%;">
|
<figure class="image image-style-align-center image_resized" style="width:56.84%;">
|
||||||
<img style="aspect-ratio:732/918;" src="12_Geo Map View_image.png"
|
<img style="aspect-ratio:732/918;" src="12_Geo Map_image.png"
|
||||||
width="732" height="918">
|
width="732" height="918">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -233,7 +233,7 @@ width="1288" height="278">
|
|||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
||||||
<img style="aspect-ratio:518/84;" src="4_Geo Map View_image.png"
|
<img style="aspect-ratio:518/84;" src="4_Geo Map_image.png"
|
||||||
width="518" height="84">
|
width="518" height="84">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -243,7 +243,7 @@ width="1288" height="278">
|
|||||||
<td>3</td>
|
<td>3</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
||||||
<img style="aspect-ratio:1074/276;" src="11_Geo Map View_image.png"
|
<img style="aspect-ratio:1074/276;" src="11_Geo Map_image.png"
|
||||||
width="1074" height="276">
|
width="1074" height="276">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -269,7 +269,7 @@ width="1288" height="278">
|
|||||||
<tr>
|
<tr>
|
||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map_image.png"
|
||||||
width="562" height="454">
|
width="562" height="454">
|
||||||
</td>
|
</td>
|
||||||
<td>Go to any location on openstreetmap.org and right click to bring up the
|
<td>Go to any location on openstreetmap.org and right click to bring up the
|
||||||
@@ -278,7 +278,7 @@ width="1288" height="278">
|
|||||||
<tr>
|
<tr>
|
||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map_image.png"
|
||||||
width="696" height="480">
|
width="696" height="480">
|
||||||
</td>
|
</td>
|
||||||
<td>The address will be visible in the top-left of the screen, in the place
|
<td>The address will be visible in the top-left of the screen, in the place
|
||||||
@@ -289,7 +289,7 @@ width="1288" height="278">
|
|||||||
<tr>
|
<tr>
|
||||||
<td>3</td>
|
<td>3</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map View_image.png"
|
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map_image.png"
|
||||||
width="640" height="276">
|
width="640" height="276">
|
||||||
</td>
|
</td>
|
||||||
<td>Simply paste the value inside the text box into the <code>#geolocation</code> attribute
|
<td>Simply paste the value inside the text box into the <code>#geolocation</code> attribute
|
||||||
@@ -313,7 +313,7 @@ width="1288" height="278">
|
|||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:226/74;" src="3_Geo Map View_image.png"
|
<img style="aspect-ratio:226/74;" src="3_Geo Map_image.png"
|
||||||
width="226" height="74">
|
width="226" height="74">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -324,7 +324,7 @@ width="1288" height="278">
|
|||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:322/222;" src="14_Geo Map View_image.png"
|
<img style="aspect-ratio:322/222;" src="14_Geo Map_image.png"
|
||||||
width="322" height="222">
|
width="322" height="222">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -335,7 +335,7 @@ width="1288" height="278">
|
|||||||
<td>3</td>
|
<td>3</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="image image-style-align-center">
|
<figure class="image image-style-align-center">
|
||||||
<img style="aspect-ratio:620/530;" src="6_Geo Map View_image.png"
|
<img style="aspect-ratio:620/530;" src="6_Geo Map_image.png"
|
||||||
width="620" height="530">
|
width="620" height="530">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
@@ -400,7 +400,7 @@ width="1288" height="278">
|
|||||||
of the scale of the map.</p>
|
of the scale of the map.</p>
|
||||||
<h2>Troubleshooting</h2>
|
<h2>Troubleshooting</h2>
|
||||||
<figure class="image image-style-align-right image_resized" style="width:34.06%;">
|
<figure class="image image-style-align-right image_resized" style="width:34.06%;">
|
||||||
<img style="aspect-ratio:678/499;" src="13_Geo Map View_image.png"
|
<img style="aspect-ratio:678/499;" src="13_Geo Map_image.png"
|
||||||
width="678" height="499">
|
width="678" height="499">
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||