vault backup: 2025-03-21 09:44:39
This commit is contained in:
parent
323de25967
commit
da08dbc7a2
|
@ -5,9 +5,8 @@
|
|||
"editor-width-slider",
|
||||
"dataview",
|
||||
"obsidian-tasks-plugin",
|
||||
"obsidian-annotator",
|
||||
"drawio-obsidian",
|
||||
"workbooks",
|
||||
"obsidian-mind-map",
|
||||
"obsidian-kanban"
|
||||
"obsidian-kanban",
|
||||
"homepage"
|
||||
]
|
|
@ -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 */
|
|
@ -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",
|
||||
|
|
|
@ -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
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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
|
@ -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
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
|
@ -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
|
@ -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",
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -1,8 +1,7 @@
|
|||
#提纲类
|
||||
- 整个笔记应该是一种“记忆的呈现”,以及“必要信息“的积累。
|
||||
- 但是所谓的”必要信息“是否还必要值得商榷。因为诸如秘塔这类的搜索只需要很短的时间就可以搜索出答案,笔记中的”必要信息”到底是否还需要?
|
||||
- 所以笔记更主要是一种记忆的呈现,让人快速回忆起之前经历的事情以正确的快速复用。
|
||||
- 所以本质上是说,笔记中的内容是我已经学会的东西,为了使大脑快速重新激活而准备的材料。
|
||||
- ==所以笔记更主要是一种记忆的呈现,让人快速回忆起之前经历的事情以正确的快速复用。本质上是说,笔记中的内容是我已经学会的东西,为了使大脑快速重新激活而准备的材料。==
|
||||
|
||||
- Project 有时有终的任务叫做项目,笔记中重点记录“过程”,“心得”,“备忘”
|
||||
- 快速信息
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -0,0 +1,3 @@
|
|||
[[000整体看板]]
|
||||
[[3月日记]]
|
||||
[[3月看板]]
|
Loading…
Reference in New Issue