mirror of
https://github.com/zadam/trilium.git
synced 2025-12-06 07:24:25 +01:00
- Complete Manifest V3 conversion for Chrome extension future compatibility - Add progressive status notifications with real-time feedback - Optimize performance with non-blocking async operations - Convert to ES module architecture with service worker - Replace browser.* APIs with chrome.* throughout - Add smart content script injection (dynamic, only when needed) - Enhance error handling with graceful degradation - Preserve all existing functionality while improving UX - Faster save operations with clean error-free console logs Breaking Changes: None - fully backward compatible Performance: Significantly improved save operation speed UX: Added real-time status updates during save operations
29 lines
874 B
JavaScript
29 lines
874 B
JavaScript
export function randomString(len) {
|
|
let text = "";
|
|
const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
|
|
for (let i = 0; i < len; i++) {
|
|
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
}
|
|
|
|
return text;
|
|
}
|
|
|
|
export function getBaseUrl() {
|
|
let output = getPageLocationOrigin() + location.pathname;
|
|
|
|
if (output[output.length - 1] !== '/') {
|
|
output = output.split('/');
|
|
output.pop();
|
|
output = output.join('/');
|
|
}
|
|
|
|
return output;
|
|
}
|
|
|
|
export function getPageLocationOrigin() {
|
|
// location.origin normally returns the protocol + domain + port (eg. https://example.com:8080)
|
|
// but for file:// protocol this is browser dependant and in particular Firefox returns "null" in this case.
|
|
return location.protocol === 'file:' ? 'file://' : location.origin;
|
|
}
|