vault backup: 2025-03-21 09:44:39

This commit is contained in:
huchuan 2025-03-21 09:44:39 +08:00
parent 323de25967
commit da08dbc7a2
39 changed files with 3101 additions and 52151 deletions

View File

@ -5,9 +5,8 @@
"editor-width-slider",
"dataview",
"obsidian-tasks-plugin",
"obsidian-annotator",
"drawio-obsidian",
"workbooks",
"obsidian-mind-map",
"obsidian-kanban"
"obsidian-kanban",
"homepage"
]

View File

@ -23559,73 +23559,172 @@ __export(main_exports, {
default: () => ColoredFont
});
module.exports = __toCommonJS(main_exports);
var import_obsidian4 = require("obsidian");
var import_obsidian5 = require("obsidian");
// src/statusBar.ts
var import_obsidian = require("obsidian");
// src/constants/defaults.ts
var MAX_CELL_COUNT = 20;
var DEFAULT_COLOR = "#000000";
var DEFAULT_SETTINGS = {
favoriteColors: [
"#c00000",
"#ff0000",
"#ffc000",
"#ffff00",
"#92d050",
"#00b050",
"#00b0f0",
"#0070c0",
"#002060",
"#7030a0"
],
colorArr: Array(5).fill(DEFAULT_COLOR),
colorCellCount: "5",
hidePlugin: false
};
var STATUS_BAR_COLOR_LIGHT = "#f6f6f6";
var STATUS_BAR_COLOR_DARK = "#262626";
var COLORED_TEXT_MODE_HIGHLIGHTED_LIGHT = "rgba(180, 180, 180, 0.3)";
var COLORED_TEXT_MODE_HIGHLIGHTED_DARK = "rgba(220, 220, 220, 0.3)";
// src/colorUtils.ts
var ColorUtils = class {
componentToHex(c2) {
const hex = c2.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
rgbToHex(rgb) {
const substr2 = rgb.substring(4, rgb.length - 1);
const rgbArr = substr2.split(",");
let hexStr = "#";
for (let i2 = 0; i2 < 3; i2++) {
hexStr += this.componentToHex(parseInt(rgbArr[i2]));
}
return hexStr;
}
getContrastBorderColor(cellColor, curTheme) {
const statusBarColor = curTheme === "dark" ? STATUS_BAR_COLOR_DARK : STATUS_BAR_COLOR_LIGHT;
cellColor = this.rgbToHex(cellColor);
const rgb1 = [
parseInt(cellColor[1] + cellColor[2], 16),
parseInt(cellColor[3] + cellColor[4], 16),
parseInt(cellColor[5] + cellColor[6], 16)
];
const rgb2 = [
parseInt(statusBarColor[1] + statusBarColor[2], 16),
parseInt(statusBarColor[3] + statusBarColor[4], 16),
parseInt(statusBarColor[5] + statusBarColor[6], 16)
];
const avgRgb = [(rgb1[0] + rgb2[0]) / 2, (rgb1[1] + rgb2[1]) / 2, (rgb1[2] + rgb2[2]) / 2];
const oppositeRgb = [255 - avgRgb[0], 255 - avgRgb[1], 255 - avgRgb[2]];
const grayScaleValue = (oppositeRgb[0] + oppositeRgb[1] + oppositeRgb[2]) / 3;
const grayScaleRgb = [grayScaleValue, grayScaleValue, grayScaleValue];
const oppositeHex = "#" + grayScaleRgb.map((value) => {
const hex = Math.round(value).toString(16);
return hex.length === 1 ? "0" + hex : hex;
}).join("");
return oppositeHex;
}
};
// src/statusBar.ts
var StatusBar = class {
constructor(plugin) {
this.onClickColorBar = (index) => () => {
if (this.plugin.curIndex === index) {
this.plugin.openColorModal();
this.colorDivs = [];
this.onClickColoredText = () => () => {
this.clickColoredText();
};
this.colorUtils = new ColorUtils();
this.plugin = plugin;
this.curIndex = 0;
this.coloredText = false;
this.cellCount = +plugin.colorsData.colorCellCount > MAX_CELL_COUNT ? MAX_CELL_COUNT : +plugin.colorsData.colorCellCount;
this.hidePlugin = plugin.colorsData.hidePlugin;
this.addColorCells(plugin);
this.addColoredTextMode(plugin);
}
addColorCells(plugin) {
const onClickColorBar = (index) => () => {
if (this.curIndex === index) {
plugin.openColorModal();
} else {
this.plugin.selectColor(index);
this.changeCurrentIndex(2 /* Select */, index);
}
};
this.onClickHighlight = () => () => {
this.clickHighlight();
};
this.plugin = plugin;
}
// region Color Cells
addColorCells() {
for (let i2 = 0; i2 < this.plugin.cellCount; i2++) {
const statusBarColor = this.plugin.addStatusBarItem();
for (let i2 = 0; i2 < this.cellCount; i2++) {
const statusBarColor = plugin.addStatusBarItem();
statusBarColor.style.paddingLeft = "0";
statusBarColor.style.paddingRight = "0";
statusBarColor.style.order = `${i2 + 2}`;
if (this.plugin.hidePlugin) {
if (this.hidePlugin) {
statusBarColor.style.height = "0";
statusBarColor.style.width = "0";
}
statusBarColor.addClasses(["mod-clickable"]);
statusBarColor.addEventListener("click", this.onClickColorBar(i2));
statusBarColor.addEventListener("click", onClickColorBar(i2));
const colorIcon = statusBarColor.createDiv(
{
cls: "status-color"
cls: ["status-color"]
}
);
if (i2 > this.plugin.colorsData.colorArr.length - 1) {
if (i2 > plugin.colorsData.colorArr.length - 1) {
colorIcon.style.backgroundColor = "#000000";
} else {
colorIcon.style.backgroundColor = this.plugin.colorsData.colorArr[i2];
colorIcon.style.backgroundColor = plugin.colorsData.colorArr[i2];
}
this.plugin.colorDivs.push(colorIcon);
this.colorDivs.push(colorIcon);
}
if (!this.hidePlugin) {
this.colorDivs[0].style.borderStyle = "solid";
this.colorDivs[0].style.borderColor = this.colorUtils.getContrastBorderColor(this.getCurCellColor(), plugin.curTheme);
}
if (!this.plugin.hidePlugin)
this.plugin.colorDivs[0].style.borderStyle = "solid";
}
// endregion
// region Highlight Mode
addHighlightMode() {
const item = this.plugin.addStatusBarItem();
addColoredTextMode(plugin) {
const item = plugin.addStatusBarItem();
item.style.order = "1";
item.ariaLabel = "Highlight Mode";
this.highlightButton = item;
item.ariaLabel = "Colored Text";
this.coloredTextButton = item;
item.addClass("mod-clickable");
item.addEventListener("click", this.onClickHighlight());
item.addEventListener("click", this.onClickColoredText());
(0, import_obsidian.setIcon)(item, "highlighter");
if (this.plugin.hidePlugin) {
if (this.hidePlugin) {
item.style.height = "0";
item.style.width = "0";
}
}
clickHighlight() {
this.plugin.highlightMode = !this.plugin.highlightMode;
if (!this.plugin.hidePlugin)
this.highlightButton.style.backgroundColor = this.plugin.highlightMode ? "rgba(220, 220, 220, 0.3)" : "rgba(220, 220, 220, 0)";
clickColoredText() {
this.coloredText = !this.coloredText;
if (!this.hidePlugin) {
const coloredTextHighlightColor = this.plugin.curTheme === "dark" ? COLORED_TEXT_MODE_HIGHLIGHTED_DARK : COLORED_TEXT_MODE_HIGHLIGHTED_LIGHT;
this.coloredTextButton.style.backgroundColor = this.coloredText ? coloredTextHighlightColor : "rgba(220, 220, 220, 0)";
}
}
changeCurrentIndex(indexMode, newIndex = 0) {
this.prevIndex = this.curIndex;
if (indexMode === 2 /* Select */) {
this.curIndex = newIndex;
} else if (indexMode === 0 /* Forward */) {
this.curIndex = this.curIndex + 1 >= this.cellCount ? 0 : this.curIndex + 1;
} else {
this.curIndex = this.curIndex - 1 < 0 ? this.cellCount - 1 : this.curIndex - 1;
}
if (!this.hidePlugin) {
this.colorDivs[this.prevIndex].style.borderStyle = "none";
this.colorDivs[this.curIndex].style.borderStyle = "solid";
this.colorDivs[this.curIndex].style.borderColor = this.colorUtils.getContrastBorderColor(this.getCurCellColor(), this.plugin.curTheme);
}
}
refreshBorderColorOfCurrentCell() {
this.colorDivs[this.curIndex].style.borderColor = this.colorUtils.getContrastBorderColor(this.getCurCellColor(), this.plugin.curTheme);
}
changeCellColor(modalResult) {
this.colorDivs[this.curIndex].style.backgroundColor = modalResult;
}
getCurCellColor() {
return this.colorDivs[this.curIndex].style.backgroundColor;
}
// endregion
};
// src/colorModal.tsx
@ -24988,14 +25087,15 @@ var ColorPalette_default = ColorPalette;
// src/colorModal.tsx
var ColorModal = class extends import_obsidian2.Modal {
constructor(app2, plugin, prevColor, onSubmit) {
super(app2);
constructor(app, plugin, prevColor, onSubmit) {
super(app);
this.onModalColorClick = (color) => {
this.colorResult = color;
};
this.colorUtils = new ColorUtils();
this.colorResult = prevColor;
this.plugin = plugin;
this.prevColor = prevColor;
this.prevColor = this.colorUtils.rgbToHex(prevColor);
this.onSubmit = onSubmit;
}
async onOpen() {
@ -25039,44 +25139,6 @@ var ColorModal = class extends import_obsidian2.Modal {
}
};
// src/rgbConverter.ts
var RgbConverter = class {
componentToHex(c2) {
const hex = c2.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
rgbToHex(rgb) {
const substr2 = rgb.substring(4, rgb.length - 1);
const rgbArr = substr2.split(",");
let hexStr = "#";
for (let i2 = 0; i2 < 3; i2++) {
hexStr += this.componentToHex(parseInt(rgbArr[i2]));
}
return hexStr;
}
};
// src/constants/defaults.ts
var MAX_CELL_COUNT = 20;
var DEFAULT_COLOR = "#000000";
var DEFAULT_SETTINGS = {
favoriteColors: [
"#c00000",
"#ff0000",
"#ffc000",
"#ffff00",
"#92d050",
"#00b050",
"#00b0f0",
"#0070c0",
"#002060",
"#7030a0"
],
colorArr: Array(5).fill(DEFAULT_COLOR),
colorCellCount: "5",
hidePlugin: false
};
// src/colorRemover.ts
function removeColor(editor) {
const fromCursor = editor.getCursor("from");
@ -25132,31 +25194,27 @@ function removeColor(editor) {
}
// src/contextMenu.ts
function contextMenu(app2, menu, editor, plugin, curColor) {
function contextMenu(menu, editor, colorHandler) {
const selection = editor.getSelection();
if (selection) {
menu.addItem((item) => {
item.setTitle("Color Text").onClick((e) => {
if (editor.getSelection()) {
editor.replaceSelection(`<span style="color:${curColor}">${selection}</span>`);
const cursorEnd = editor.getCursor("to");
editor.setCursor(cursorEnd.line, cursorEnd.ch + 1);
}
item.setTitle("Color Text").onClick(() => {
colorHandler.changeColor();
});
});
menu.addItem((item) => {
item.setTitle("Remove Color").onClick((e) => {
item.setTitle("Remove Color").onClick(() => {
removeColor(editor);
});
});
}
}
// src/settings.ts
// src/settingsTab.ts
var import_obsidian3 = require("obsidian");
var SettingsTab = class extends import_obsidian3.PluginSettingTab {
constructor(app2, plugin) {
super(app2, plugin);
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
@ -25209,104 +25267,160 @@ var TextFormatting = class {
constructor(view) {
this.editorView = view;
this.shouldInsert = "none";
this.posAfterAsterisk = 0;
}
// This function detects if bold or italic markdown added. And if it is added, it will return
// boolean accordingly
detectMarkdown(update) {
this.shouldInsert = "none";
detectSandwichAsterisks(update) {
for (const tr of update.transactions) {
tr.changes.iterChanges((fromA, toA, fromB, toB) => {
if (toB - fromA > 0) {
const insertedCharText = this.editorView.state.doc.slice(fromA, toB);
const insertedChar = insertedCharText.sliceString(0, insertedCharText.length);
if (insertedChar.contains("*")) {
const nextCharText = this.editorView.state.doc.slice(toB, toB + 4);
const nextChar = nextCharText.sliceString(0, nextCharText.length);
if (nextChar.contains("<s")) {
this.shouldInsert = insertedChar.length === 1 ? "italic" : "bold";
this.posAfterAsterisk = toB + nextChar.indexOf("<") + 13;
}
}
const changes = tr.changes.toJSON();
if (changes.length === 5 && Array.isArray(changes[1]) && Array.isArray(changes[3]) && changes[1].length === 2 && changes[3].length === 2 && changes[1][1].contains("*") && changes[3][1].contains("*")) {
const selectedText = this.editorView.state.doc.slice(changes[0], changes[0] + changes[2]).sliceString(0);
if (selectedText.contains("span") && selectedText.contains("color")) {
this.shouldInsert = changes[1][1].length === 1 ? "italic" : "bold";
this.changes = changes;
return true;
}
});
if (this.shouldInsert)
break;
} else if (changes.length === 4 && Array.isArray(changes[0]) && Array.isArray(changes[2]) && changes[0].length === 2 && changes[2].length === 2 && changes[0][1].contains("*") && changes[2][1].contains("*")) {
const selectedText = this.editorView.state.doc.slice(0, changes[1]).sliceString(0);
if (selectedText.contains("span") && selectedText.contains("color")) {
this.shouldInsert = changes[0][1].length === 1 ? "italic" : "bold";
changes.unshift(0);
this.changes = changes;
return true;
}
} else if (changes.length === 4 && Array.isArray(changes[1]) && Array.isArray(changes[3]) && changes[1].length === 2 && changes[3].length === 2 && changes[1][1].contains("*") && changes[3][1].contains("*")) {
const selectedText = this.editorView.state.doc.slice(changes[0], changes[0] + changes[2]).sliceString(0);
if (selectedText.contains("span") && selectedText.contains("color")) {
this.shouldInsert = changes[1][1].length === 1 ? "italic" : "bold";
changes.push(0);
this.changes = changes;
return true;
}
}
}
return this.shouldInsert !== "none";
return false;
}
updateEditor() {
addStylingToSandwichAsterisks(update) {
if (this.shouldInsert === "none")
return;
let anchorPos = 0;
const styleText = this.shouldInsert === "bold" ? "font-weight:bold; " : "font-style:italic; ";
const textLen = this.changes[1][1].length;
const editorChanges = [
{ from: this.changes[0], to: this.changes[0] + textLen, insert: "" },
{ from: this.changes[0] + this.changes[2] + textLen, to: this.changes[0] + this.changes[2] + textLen * 2, insert: "" }
];
const selectedText = this.editorView.state.doc.slice(this.changes[0], this.changes[0] + this.changes[2]).sliceString(0);
if (!selectedText.contains(this.shouldInsert)) {
const searchedText = '<span style="';
const idx = selectedText.search(searchedText) + searchedText.length - textLen;
editorChanges.push({ from: this.changes[0] + idx + textLen, insert: styleText });
anchorPos = this.changes[0] + this.changes[2] + styleText.length + 1;
} else {
const idx = selectedText.search(styleText);
const from2 = this.changes[0] + idx;
const to = from2 + styleText.length;
editorChanges.push({ from: from2, to, insert: "" });
anchorPos = this.changes[0] + this.changes[2] - styleText.length + 1;
}
if (this.changes[4] === 0) {
anchorPos -= 1;
}
setTimeout(() => {
const insertStyle = this.shouldInsert === "bold" ? "font-weight:bold; " : "font-style:italic; ";
this.editorView.dispatch({
changes: { from: this.posAfterAsterisk, insert: insertStyle }
changes: editorChanges,
selection: { anchor: anchorPos }
// Move the cursor to end of the html element
});
}, 0);
});
}
};
// src/editorExtension/editorExtension.ts
var EditorExtension = class {
constructor(view, plugin) {
constructor(view, colorHandler, colorBar) {
this.handleMouseUp = () => {
if (this.plugin.highlightMode)
this.plugin.changeColor();
if (this.colorBar.coloredText)
this.colorHandler.changeColor(1 /* ColoredText */);
};
this.editorView = view;
this.textFormatting = new TextFormatting(view);
this.plugin = plugin;
this.colorHandler = colorHandler;
this.colorBar = colorBar;
this.editorView.contentDOM.addEventListener("mouseup", this.handleMouseUp);
}
update(update) {
if (this.textFormatting.detectMarkdown(update)) {
this.textFormatting.updateEditor();
if (this.textFormatting.detectSandwichAsterisks(update)) {
this.textFormatting.addStylingToSandwichAsterisks(update);
}
}
destroy() {
this.editorView.contentDOM.removeEventListener("mouseup", this.handleMouseUp);
}
};
function createEditorExtensionClass(plugin) {
function createEditorExtensionClass(colorHandler, colorBar) {
return class extends EditorExtension {
constructor(view) {
super(view, plugin);
super(view, colorHandler, colorBar);
}
};
}
// src/main.ts
var import_view = require("@codemirror/view");
var ColoredFont = class extends import_obsidian4.Plugin {
constructor() {
super(...arguments);
this.colorDivs = [];
this.rgbConverter = new RgbConverter();
this.handleColorChangeInContextMenu = (menu, editor) => {
contextMenu(app, menu, editor, this, this.curColor);
};
// src/colorHandler.ts
var import_obsidian4 = require("obsidian");
var ColorHandler = class {
constructor(app, colorBar) {
this.app = app;
this.colorBar = colorBar;
this.colorUtils = new ColorUtils();
}
changeColor(colorMode = 0 /* Normal */) {
const view = this.app.workspace.getActiveViewOfType(import_obsidian4.MarkdownView);
if (view) {
const editor = view.editor;
const selection = editor.getSelection();
const curCellColor = this.colorBar.getCurCellColor();
if (selection.length === 0 && colorMode === 1 /* ColoredText */)
return;
editor.replaceSelection(`<span style="color:${curCellColor}">${selection}</span>`);
const cursorEnd = editor.getCursor("to");
try {
const cursorEndChar = selection.length === 0 ? cursorEnd.ch - 7 : cursorEnd.ch + 1;
editor.setCursor(cursorEnd.line, cursorEndChar);
} catch (e) {
const lineText = editor.getLine(cursorEnd.line);
editor.setLine(cursorEnd.line, lineText + " ");
}
}
}
};
// src/main.ts
var ColoredFont = class extends import_obsidian5.Plugin {
async onload() {
this.curColor = DEFAULT_COLOR;
this.curIndex = 0;
this.highlightMode = false;
this.curTheme = this.getCurrentTheme();
await this.loadColorData();
this.cellCount = +this.colorsData.colorCellCount > MAX_CELL_COUNT ? MAX_CELL_COUNT : +this.colorsData.colorCellCount;
this.hidePlugin = this.colorsData.hidePlugin;
this.addSettingTab(new SettingsTab(this.app, this));
const EditorExtensionClass = createEditorExtensionClass(this);
this.registerEditorExtension(import_view.ViewPlugin.fromClass(EditorExtensionClass));
this.registerEvent(
this.app.workspace.on("editor-menu", this.handleColorChangeInContextMenu)
);
this.colorBar = new StatusBar(this);
this.colorBar.addColorCells();
this.colorBar.addHighlightMode();
this.colorHandler = new ColorHandler(this.app, this.colorBar);
const EditorExtensionClass = createEditorExtensionClass(this.colorHandler, this.colorBar);
this.registerEditorExtension(import_view.ViewPlugin.fromClass(EditorExtensionClass));
setInterval(() => {
this.curTheme = this.getCurrentTheme();
this.colorBar.refreshBorderColorOfCurrentCell();
}, 1e3);
this.registerEvent(
this.app.workspace.on("editor-menu", (menu, editor) => {
contextMenu(menu, editor, this.colorHandler);
})
);
this.addCommand({
id: "color-text",
name: "Color Text",
hotkeys: [],
editorCallback: () => {
this.changeColor();
this.colorHandler.changeColor();
}
});
this.addCommand({
@ -25321,13 +25435,13 @@ var ColoredFont = class extends import_obsidian4.Plugin {
id: "move-color-cell-forward",
name: "Move the Color Cell Forward",
hotkeys: [],
callback: () => this.selectColor(this.curIndex == this.cellCount - 1 ? 0 : this.curIndex + 1)
callback: () => this.colorBar.changeCurrentIndex(0 /* Forward */)
});
this.addCommand({
id: "move-color-cell-backwards",
name: "Change the Color Backwards",
hotkeys: [],
callback: () => this.selectColor(this.curIndex == 0 ? this.cellCount - 1 : this.curIndex - 1)
callback: () => this.colorBar.changeCurrentIndex(1 /* Backwards */)
});
this.addCommand({
id: "remove-color",
@ -25338,51 +25452,34 @@ var ColoredFont = class extends import_obsidian4.Plugin {
}
});
this.addCommand({
id: "change-highlight-mode",
name: "Activate/Deactivate Highlight Mode",
id: "change-colored-text-mode",
name: "Activate/Deactivate Colored Text Mode",
hotkeys: [],
editorCallback: () => {
console.log("change-highlight");
this.colorBar.clickHighlight();
this.colorBar.clickColoredText();
}
});
}
onunload() {
}
getCurrentTheme() {
let theme = this.app.getTheme();
if (theme === "moonstone") {
theme = "light";
} else if (theme === "obsidian") {
theme = "dark";
} else {
theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
return theme;
}
openColorModal() {
new ColorModal(this.app, this, this.curColor, (result) => {
this.curColor = result;
this.colorDivs[this.curIndex].style.backgroundColor = result;
this.colorsData.colorArr[this.curIndex] = result;
new ColorModal(this.app, this, this.colorBar.getCurCellColor(), (result) => {
this.colorBar.changeCellColor(result);
this.colorsData.colorArr[this.colorBar.curIndex] = result;
this.saveColorData();
}).open();
}
changeColor() {
const view = this.app.workspace.getActiveViewOfType(import_obsidian4.MarkdownView);
if (view) {
const editor = view.editor;
const selection = editor.getSelection();
if (selection.length > 0) {
editor.replaceSelection(`<span style="color:${this.curColor}">${selection}</span>`);
const cursorEnd = editor.getCursor("to");
try {
editor.setCursor(cursorEnd.line, cursorEnd.ch + 1);
} catch (e) {
const lineText = editor.getLine(cursorEnd.line);
editor.setLine(cursorEnd.line, lineText + " ");
}
}
}
}
selectColor(newIndex) {
this.prevIndex = this.curIndex;
this.curIndex = newIndex;
if (!this.hidePlugin) {
this.colorDivs[this.prevIndex].style.borderStyle = "none";
this.colorDivs[this.curIndex].style.borderStyle = "solid";
}
this.curColor = this.rgbConverter.rgbToHex(this.colorDivs[this.curIndex].style.backgroundColor);
}
async loadColorData() {
this.colorsData = Object.assign(
{},
@ -25393,7 +25490,6 @@ var ColoredFont = class extends import_obsidian4.Plugin {
},
await this.loadData()
);
this.curColor = this.colorsData.colorArr[0];
}
async saveColorData() {
await this.saveData(this.colorsData);
@ -25447,3 +25543,5 @@ react-dom/cjs/react-dom.development.js:
* @license Modernizr 3.0.0pre (Custom Build) | MIT
*)
*/
/* nosourcemap */

View File

@ -1,7 +1,7 @@
{
"id": "colored-text",
"name": "Colored Text",
"version": "1.0.0",
"version": "1.2.0",
"minAppVersion": "0.15.0",
"description": "Color the selected texts.",
"author": "Erinc Ayaz",

View File

@ -2,7 +2,7 @@
width: 15px;
height: 15px;
border-width: 1px;
border-width: 1.5px;
border-color: white;
margin-left: 3px;

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"id": "drawio-obsidian",
"name": "Diagrams",
"version": "1.5.0",
"version": "1.5.4",
"minAppVersion": "0.9.12",
"description": "Draw.io diagrams for Obsidian. This plugin introduces diagrams that can be included within notes or as stand-alone files. Diagrams are created as SVG files (although .drawio extensions are also supported).",
"author": "Sam Greenhalgh",

23
.obsidian/plugins/homepage/data.json vendored Normal file
View File

@ -0,0 +1,23 @@
{
"version": 4,
"homepages": {
"Main Homepage": {
"value": "HOMEPAGE",
"kind": "File",
"openOnStartup": true,
"openMode": "Replace all open notes",
"manualOpenMode": "Keep open notes",
"view": "Default view",
"revertView": true,
"openWhenEmpty": false,
"refreshDataview": false,
"autoCreate": false,
"autoScroll": false,
"pin": false,
"commands": [],
"alwaysApply": false,
"hideReleaseNotes": false
}
},
"separateMobile": false
}

4
.obsidian/plugins/homepage/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,13 @@
{
"id": "homepage",
"name": "Homepage",
"version": "4.1",
"minAppVersion": "1.4.10",
"description": "Open a specified note, canvas, or workspace on startup, or set it for quick access later.",
"author": "novov",
"authorUrl": "https://novov.me",
"isDesktopOnly": false,
"fundingUrl": {
"Ko-fi": "https://ko-fi.com/novov"
}
}

238
.obsidian/plugins/homepage/styles.css vendored Normal file
View File

@ -0,0 +1,238 @@
.nv-homepage-interstitial {
position: absolute;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
background: var(--background-primary);
z-index: 9999;
animation: 0.02s ease-in 0.5s forwards nv-interstitial-destroy;
pointer-events: none;
}
@keyframes nv-interstitial-destroy {
from { opacity: 1; }
to { opacity: 0; }
}
.setting-item[nv-greyed] {
opacity: .5;
pointer-events: none !important;
}
#nv-main-setting {
flex-wrap: wrap;
margin-bottom: 30px;
}
#nv-main-setting .setting-item-control {
padding-top: var(--size-4-2);
flex-basis: 100%;
align-items: stretch;
}
#nv-main-setting .setting-item-control input, #nv-main-setting .setting-item-control select {
font-size: var(--font-ui-medium);
font-weight: 600;
}
#nv-main-setting .setting-item-control select {
padding: var(--size-4-3) var(--size-4-4);
padding-right: var(--size-4-8);
height: auto;
}
#nv-main-setting .setting-item-control input {
flex-grow: 1;
padding: var(--size-4-5) var(--size-4-4);
}
#nv-main-setting .setting-item-control input[disabled] {
opacity: 0.3;
}
#nv-main-setting #nv-desc, #nv-main-setting #nv-info {
flex-basis: 100%;
}
#nv-main-setting #nv-desc {
font-weight: 500;
color: var(--text-normal);
font-size: var(--font-ui-small);
padding: 10px 0 0;
}
#nv-main-setting #nv-desc.mod-warning {
color: var(--text-error);
}
#nv-main-setting #nv-desc code {
font-family: var(--font-monospace);
font-size: var(--font-smaller);
border-radius: var(--radius-s);
}
#nv-main-setting #nv-desc small {
display: block;
font-weight: 400;
color: var(--text-muted);
font-size: calc(var(--font-ui-smaller) * 0.9);
padding: 5px 0 0;
}
.nv-mobile-setting {
flex-wrap: wrap;
row-gap: var(--size-2-2);
}
.nv-mobile-setting .nv-mobile-info {
font-size: var(--font-ui-smaller);
width: 100%;
margin-right: var(--size-4-18);
}
.nv-command-desc {
padding: 1.2em 0 0;
border-top: 1px solid var(--background-modifier-border);
}
.nv-command-box {
margin: 1em 0 1.75em;
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
.nv-command-pill {
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border-hover);
border-radius: var(--radius-s);
font-size: var(--font-ui-small);
padding: var(--size-2-1) var(--size-2-2) var(--size-2-1) var(--size-2-3) ;
}
.nv-command-pill.nv-command-invalid {
color: var(--text-faint);
}
.nv-command-pill button {
display: inline-block;
padding: 0;
margin: 0 0 0 3px;
vertical-align: bottom;
}
.nv-command-pill button:first-of-type {
margin-left: var(--size-4-2);
}
.nv-command-pill button.nv-command-selected {
margin-left: var(--size-2-2);
padding: 0 var(--size-2-1);
}
.nv-command-pill button.nv-command-selected span {
color: var(--text-accent);
display: inline-block;
font-size: 0.9em;
vertical-align: top;
position: relative;
top: -1px;
}
.nv-command-pill > .svg-icon, .nv-command-pill button .svg-icon {
height: 1em;
width: 1em;
}
.nv-command-pill > .svg-icon {
vertical-align: text-bottom;
position: relative;
margin: 0 var(--size-2-1) 0 0;
}
.nv-command-pill.nv-dragging {
background-color: transparent;
}
.nv-command-add-button {
font-size: var(--font-ui-small);
padding: var(--size-2-2) var(--size-4-2);
height: auto;
}
#nv-main-setting + .setting-item, .nv-command-desc + .setting-item {
padding-top: 20px;
border-top: none !important;
}
.nv-debug-button {
margin: 3em 0 -0.2em;
font-size: var(--font-ui-smaller);
padding: 0;
height: auto;
float: right;
box-shadow: none !important;
background: none !important;
color: var(--text-accent);
font-weight: 600;
cursor: pointer;
}
.nv-debug-button:hover, .nv-debug-button:active {
text-decoration: underline;
}
.is-phone #nv-main-setting .setting-item-control {
flex-wrap: wrap;
justify-content: flex-start;
}
.is-phone #nv-main-setting .setting-item-control select {
width: auto;
max-width: auto;
}
.is-phone .nv-mobile-setting {
row-gap: var(--size-4-2);
}
.is-phone .nv-mobile-setting .setting-item-info {
max-width: calc(100% - 100px);
}
.is-phone .nv-mobile-setting {
row-gap: var(--size-4-2);
}
.is-phone .nv-mobile-setting .setting-item-info {
max-width: calc(100% - 100px);
}
.is-phone .nv-command-pill {
width: 100%;
border: none;
background: none;
padding: 0 0 var(--size-4-2);
display: flex;
gap: var(--size-4-4);
align-items: baseline;
}
.is-phone .nv-command-pill .nv-command-text {
flex-grow: 1;
overflow: hidden;
text-overflow: ellipsis;
}
.is-phone .nv-command-pill, .is-phone .nv-command-add-button {
font-size: var(--font-ui-medium);
justify-content: space-between;
}
.is-phone .nv-command-pill button {
line-height: var(--font-ui-medium);
height: 100%;
margin: 0 !important;
}

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.0.25",
"version": "2.9.2",
"minAppVersion": "1.1.6",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"author": "Zsolt Viczian",
"authorUrl": "https://zsolt.blog",
"authorUrl": "https://www.zsolt.blog",
"fundingUrl": "https://ko-fi.com/zsolt",
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
"isDesktopOnly": false
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Backup your vault with Git.",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"js": "main.js",
"version": "2.24.1"
"version": "2.32.0"
}

View File

@ -0,0 +1,23 @@
#!/bin/sh
PROMPT="$1"
TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT"
cleanup() {
rm -f "$TEMP_FILE" "$TEMP_FILE.response"
}
trap cleanup EXIT
echo "$PROMPT" > "$TEMP_FILE"
while [ ! -e "$TEMP_FILE.response" ]; do
if [ ! -e "$TEMP_FILE" ]; then
echo "Trigger file got removed: Abort" >&2
exit 1
fi
sleep 0.1
done
RESPONSE=$(cat "$TEMP_FILE.response")
echo "$RESPONSE"

View File

@ -39,6 +39,10 @@
margin-right: auto;
}
.obsidian-git-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
@ -77,6 +81,10 @@
height: auto;
}
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
@ -549,3 +557,20 @@
padding: 0px 6px 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"id": "obsidian-markmind",
"name": "Markmind",
"version": "3.1.1",
"version": "3.1.2",
"minAppVersion": "0.9.12",
"description": "This is a mindmap , outline tool for obsidian.",
"author": "Mark",

View File

@ -374,6 +374,10 @@
border: 1px solid #000
}
.theme-dark .cm-structure-delete svg {
fill: #adabab;
}
.cm-structure-item {
display: inline-flex;
width: 120px;

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,11 @@
{
"id": "obsidian-tasks-plugin",
"name": "Tasks",
"version": "6.2.0",
"minAppVersion": "1.1.1",
"description": "Task management for Obsidian",
"version": "7.18.3",
"minAppVersion": "1.4.0",
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
"helpUrl": "https://publish.obsidian.md/tasks/",
"author": "Martin Schenck and Clare Macrae",
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
"authorUrl": "https://github.com/obsidian-tasks-group",
"fundingUrl": "https://github.com/sponsors/claremacrae",
"isDesktopOnly": false

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.2.3",
"version": "2.10.0",
"description": "Create and use templates",
"minAppVersion": "1.5.0",
"author": "SilentVoid",

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,11 @@
{
"id": "univer",
"name": "Univer",
"version": "1.1.2",
"version": "1.1.5",
"minAppVersion": "1.5.11",
"description": "Create, edit, and view spreadsheets and documents in various formats like Excel and Word directly within your knowledge base.",
"author": "DreamNum",
"authorUrl": "https://github.com/dream-num",
"fundingUrl": "https://opencollective.com/univer",
"isDesktopOnly": false
"isDesktopOnly": true
}

File diff suppressed because one or more lines are too long

23
.obsidian/types.json vendored
View File

@ -20,6 +20,27 @@
"excalidraw-border-color": "text",
"excalidraw-css": "text",
"excalidraw-autoexport": "checkbox",
"excalidraw-iframe-theme": "text"
"excalidraw-iframe-theme": "text",
"TQ_explain": "checkbox",
"TQ_extra_instructions": "text",
"TQ_short_mode": "checkbox",
"TQ_show_backlink": "checkbox",
"TQ_show_cancelled_date": "checkbox",
"TQ_show_created_date": "checkbox",
"TQ_show_depends_on": "checkbox",
"TQ_show_done_date": "checkbox",
"TQ_show_due_date": "checkbox",
"TQ_show_edit_button": "checkbox",
"TQ_show_id": "checkbox",
"TQ_show_on_completion": "checkbox",
"TQ_show_postpone_button": "checkbox",
"TQ_show_priority": "checkbox",
"TQ_show_recurrence_rule": "checkbox",
"TQ_show_scheduled_date": "checkbox",
"TQ_show_start_date": "checkbox",
"TQ_show_tags": "checkbox",
"TQ_show_task_count": "checkbox",
"TQ_show_tree": "checkbox",
"TQ_show_urgency": "checkbox"
}
}

View File

@ -1,8 +1,7 @@
#提纲类
- 整个笔记应该是一种“记忆的呈现”,以及“必要信息“的积累。
- 但是所谓的”必要信息“是否还必要值得商榷。因为诸如秘塔这类的搜索只需要很短的时间就可以搜索出答案,笔记中的”必要信息”到底是否还需要?
- 所以笔记更主要是一种记忆的呈现,让人快速回忆起之前经历的事情以正确的快速复用。
- 所以本质上是说,笔记中的内容是我已经学会的东西,为了使大脑快速重新激活而准备的材料。
- ==所以笔记更主要是一种记忆的呈现,让人快速回忆起之前经历的事情以正确的快速复用。本质上是说,笔记中的内容是我已经学会的东西,为了使大脑快速重新激活而准备的材料。==
- Project 有时有终的任务叫做项目,笔记中重点记录“过程”,“心得”,“备忘”
- 快速信息

View File

@ -1,3 +1,11 @@
# 3月19日
- 编写《E3 指南》
# 3月18日
- 功耗测试
- 4J10与E3搭配测试问题 2lane/4lane
- 诺存 合代码 何熙review 《适配指南》
- e3还有点问题
- 9902看着还是只有2个iic地址呢 0x44 0x45
# 3月14日
- E3 板子测试分发
- 测试功耗 4n/2n初步结果 功耗数据/json/频率 /电压
@ -7,7 +15,7 @@
- E3 板子测试分发
- 产品电源芯片整理
# 3月12日
- 王品领问题 2.4 刘哲
- 王品领问题 2.4 刘哲
- 才仕民沟通 prd写到他的文档里。
- 6940测试
- 3.3v的时候所有的io都是3.53v clk/data 这是因为电平转换芯片本来应该给1.8v的但是给了3.3v

View File

@ -8,7 +8,7 @@ kanban-plugin: board
- [ ] 产品的诺存3.3v的Norflash
- 现在1.8v的单板Nand也不连接 @{2025-03-15}
- [ ] avl文档review @{2025-03-15}
- [ ] 测试1.8v的电源 @{2025-03-18}
## 阻塞
@ -55,6 +55,7 @@ kanban-plugin: board
- [ ] 文金需要buck后的峰值电流测试方法更新到《v24说明》
- [ ] vnne在rtt下的测试
- [ ] 6941 OSC 文档更新到9.0
- [ ] avl文档review @{2025-03-15}

File diff suppressed because it is too large Load Diff

3
HOMEPAGE.md Normal file
View File

@ -0,0 +1,3 @@
[[000整体看板]]
[[3月日记]]
[[3月看板]]