vault backup: 2023-08-02 17:03:47

This commit is contained in:
胡楠
2023-08-02 17:03:47 +08:00
parent 399b82090f
commit d932a900d7
43 changed files with 41454 additions and 18 deletions

6
.obsidian/app.json vendored
View File

@@ -1 +1,5 @@
{}
{
"showLineNumber": true,
"showFrontmatter": true,
"showUnsupportedFiles": true
}

View File

@@ -2,5 +2,12 @@
"obsidian-git",
"obsidian-outliner",
"dataview",
"obsidian-excalidraw-plugin"
"obsidian-excalidraw-plugin",
"remotely-save",
"templater-obsidian",
"quickadd",
"obsidian-markmind",
"codeblock-customizer",
"obsidian-jupyter",
"obsidian-admonition"
]

4457
.obsidian/plugins/calendar/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
{
"id": "calendar",
"name": "Calendar",
"description": "Calendar view of your daily notes",
"version": "1.5.10",
"author": "Liam Cain",
"authorUrl": "https://github.com/liamcain/",
"isDesktopOnly": false,
"minAppVersion": "0.9.11"
}

View File

@@ -0,0 +1,86 @@
{
"bEnableLineNumbers": true,
"bActiveCodeblockLineHighlight": true,
"bActiveLineHighlight": true,
"bGutterHighlight": false,
"ExcludeLangs": "dataview, ad-*",
"activeCodeBlockLineColor": "#073642",
"activeLineColor": "#468eeb33",
"backgroundColor": "#002B36",
"highlightColor": "#054b5c",
"bDisplayCodeBlockLanguage": true,
"bDisplayCodeBlockIcon": false,
"gutterTextColor": "#6c6c6c",
"gutterBackgroundColor": "#073642",
"SelectedTheme": "Dark Theme",
"header": {
"bHeaderBold": false,
"bHeaderItalic": false,
"bCodeblockLangBold": true,
"bCodeblockLangItalic": true,
"bAlwaysDisplayCodeblockLang": false,
"bAlwaysDisplayCodeblockIcon": false,
"bDefaultDarkTheme": false,
"bDefaultLightTheme": false,
"color": "#0a4554",
"textColor": "#DADADA",
"lineColor": "#46cced",
"codeBlockLangColor": "#000000",
"codeBlockLangBackgroundColor": "#008080"
},
"colorThemes": [
{
"name": "Dark Theme",
"colors": {
"activeCodeBlockLineColor": "#073642",
"activeLineColor": "#468eeb33",
"backgroundColor": "#002B36",
"highlightColor": "#054b5c",
"gutterTextColor": "#6c6c6c",
"gutterBackgroundColor": "#073642",
"header": {
"bHeaderBold": false,
"bHeaderItalic": false,
"bCodeblockLangBold": true,
"bCodeblockLangItalic": true,
"bAlwaysDisplayCodeblockLang": false,
"bAlwaysDisplayCodeblockIcon": false,
"bDefaultDarkTheme": true,
"bDefaultLightTheme": false,
"color": "#0a4554",
"textColor": "#DADADA",
"lineColor": "#46cced",
"codeBlockLangColor": "#000000",
"codeBlockLangBackgroundColor": "#008080"
}
}
},
{
"name": "Light Theme",
"colors": {
"activeCodeBlockLineColor": "#EDE8D6",
"activeLineColor": "#60460633",
"backgroundColor": "#FCF6E4",
"highlightColor": "#E9DFBA",
"gutterTextColor": "#6c6c6c",
"gutterBackgroundColor": "#EDE8D6",
"header": {
"bHeaderBold": false,
"bHeaderItalic": false,
"bCodeblockLangBold": true,
"bCodeblockLangItalic": true,
"bAlwaysDisplayCodeblockLang": false,
"bAlwaysDisplayCodeblockIcon": false,
"bDefaultDarkTheme": false,
"bDefaultLightTheme": true,
"color": "#D5CCB4",
"textColor": "#866704",
"lineColor": "#EDD489",
"codeBlockLangColor": "#C25F30",
"codeBlockLangBackgroundColor": "#B8B5AA"
}
}
}
],
"alternateColors": []
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "codeblock-customizer",
"name": "Codeblock Customizer",
"version": "1.1.9",
"minAppVersion": "0.15.0",
"description": "This Obsidian plugin lets you customize your codeblocks in editing, and reading mode as well.",
"author": "mugiwara",
"authorUrl": "https://github.com/mugiwara85",
"fundingUrl": "https://www.buymeacoffee.com/ThePirateKing",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

168
.obsidian/plugins/codestats/main.js vendored Normal file
View File

@@ -0,0 +1,168 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/main.ts
var main_exports = {};
__export(main_exports, {
default: () => CodeStatsPlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian3 = require("obsidian");
// src/getISOTimestamp.ts
function getISOTimestamp(date) {
const offset = -date.getTimezoneOffset();
const prefix = offset >= 0 ? "+" : "-";
function pad(num) {
const norm = Math.abs(Math.floor(num));
return (norm < 10 ? "0" : "") + norm;
}
return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()) + "T" + pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds()) + prefix + pad(offset / 60) + pad(offset % 60);
}
// src/ApiKeyModal.ts
var import_obsidian = require("obsidian");
var ApiKeyModal = class extends import_obsidian.Modal {
constructor(app, plugin) {
super(app);
this.opened = false;
this.plugin = plugin;
}
onOpen() {
if (this.opened) {
return;
}
this.opened = true;
const { contentEl } = this;
contentEl.classList.add("codestats-modal");
contentEl.createEl("p", { text: "Enter Code::Stats API key" });
const input = contentEl.createEl("input", {
type: "text",
placeholder: "Enter your API key here",
value: this.plugin.settings.API_KEY
});
contentEl.createEl("button", { text: "Save" }).addEventListener("click", () => {
this.plugin.settings.API_KEY = input.value;
this.plugin.saveSettings();
this.close();
});
}
onClose() {
const { contentEl } = this;
contentEl.empty();
this.opened = false;
}
};
// src/SettingsTab.ts
var import_obsidian2 = require("obsidian");
var SettingsTab = class extends import_obsidian2.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
containerEl.createEl("h2", { text: "Code::Stats plugin settings" });
new import_obsidian2.Setting(containerEl).setName("Code::stats API key").setDesc("It can be found or created on https://codestats.net/my/machines page").addText((text) => text.setPlaceholder("Enter your API key here").setValue(this.plugin.settings.API_KEY).onChange(async (value) => {
this.plugin.settings.API_KEY = value;
await this.plugin.saveSettings();
}));
}
};
// src/main.ts
var DEFAULT_SETTINGS = {
API_KEY: "",
API_URL: "https://codestats.net/api"
};
var keysSet = /* @__PURE__ */ new Set(["Meta", "Alt", "Shift", "Control", "CapsLock"]);
var CodeStatsPlugin = class extends import_obsidian3.Plugin {
constructor() {
super(...arguments);
this.counter = 0;
this.modal = null;
}
async onload() {
await this.loadSettings();
this.modal = new ApiKeyModal(this.app, this);
this.addCommand({
id: "open-codestats-key-modal",
name: "Enter Code::Stats API key",
callback: () => {
var _a;
(_a = this.modal) == null ? void 0 : _a.open();
}
});
const statusBarItemEl = this.addStatusBarItem();
statusBarItemEl.setText("C::S");
this.addSettingTab(new SettingsTab(this.app, this));
this.registerDomEvent(document, "keyup", (evt) => {
if (keysSet.has(evt.key) || evt.key.indexOf("Arrow") !== -1) {
return;
}
this.counter += 1;
});
this.registerInterval(window.setInterval(() => {
if (this.counter > 0) {
void this.updateStats();
}
}, 1e4));
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
async updateStats() {
var _a;
if (!this.settings.API_KEY) {
(_a = this.modal) == null ? void 0 : _a.open();
return;
}
try {
void (0, import_obsidian3.requestUrl)({
url: this.settings.API_URL + "/my/pulses",
method: "POST",
headers: {
"X-API-Token": this.settings.API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
coded_at: getISOTimestamp(new Date()),
xps: [{
language: "Markdown",
xp: this.counter
}]
})
});
} finally {
this.counter = 0;
}
}
onunload() {
void this.updateStats();
}
};

View File

@@ -0,0 +1,11 @@
{
"id": "codestats",
"name": "Code::Stats",
"version": "1.0.0",
"minAppVersion": "1.1.16",
"description": "The Code::Stats plugin allows you to track your coding progress and earn XP for writing markdown in the Obsidian editor.",
"author": "MiskaMyasa",
"authorUrl": "https://github.com/Miskamyasa",
"fundingUrl": "https://patreon.com/MiskaMyasa",
"isDesktopOnly": true
}

View File

@@ -0,0 +1,4 @@
.codestats-modal input {
width: 100%;
margin-bottom: 8px;
}

View File

@@ -0,0 +1,24 @@
{
"userAdmonitions": {},
"syntaxHighlight": false,
"copyButton": false,
"version": "9.3.3",
"autoCollapse": false,
"defaultCollapseType": "open",
"injectColor": true,
"parseTitles": true,
"dropShadow": true,
"hideEmpty": false,
"open": {
"admonitions": true,
"icons": true,
"other": true,
"advanced": false
},
"icons": [],
"useFontAwesome": true,
"rpgDownloadedOnce": false,
"msDocConverted": false,
"useSnippet": false,
"snippetPath": "custom-admonitions.b4fc6d"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-admonition",
"name": "Admonition",
"version": "9.3.3",
"minAppVersion": "1.1.0",
"description": "Enhanced callouts for Obsidian.md",
"author": "Jeremy Valentine",
"authorUrl": "",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-advanced-slides",
"name": "Advanced Slides",
"version": "1.20.0",
"minAppVersion": "0.12.0",
"description": "Create markdown-based presentations in Obsidian",
"author": "Matthäus Szturc",
"authorUrl": "https://github.com/MSzturc",
"isDesktopOnly": true
}

View File

@@ -0,0 +1,34 @@
/* Styles */
.view-content.reveal-preview-view {
padding: 0;
overflow: hidden;
}
.view-content.reveal-preview-view>iframe, div.reveal-preview-view>iframe {
border-style: none;
width: 100%;
height: 100%;
}
div.reveal-preview-view {
aspect-ratio: 16/9;
padding: 0;
overflow: hidden;
}
.releaseNotes .modal-content{
padding-right: 5px;
margin-right: -5px;
user-select: text;
}
.releaseNotes .modal {
max-height: 90%;
width: auto;
max-width: 70ch;
}
.releaseNotes p>a>img {
width: 100%
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{
"id": "obsidian-editor-shortcuts",
"name": "Code Editor Shortcuts",
"version": "1.14.0",
"minAppVersion": "1.1.0",
"description": "Add keyboard shortcuts (hotkeys) commonly found in code editors such as Visual Studio Code (vscode) or Sublime Text",
"author": "Tim Hor",
"authorUrl": "https://github.com/timhor",
"fundingUrl": "https://ko-fi.com/timhor",
"isDesktopOnly": false
}

View File

@@ -82,7 +82,7 @@
"mdBorderColor": "Black",
"mdCSS": "",
"scriptEngineSettings": {},
"defaultTrayMode": true,
"defaultTrayMode": false,
"previousRelease": "1.9.12",
"showReleaseNotes": true,
"showNewVersionNotification": true,

3376
.obsidian/plugins/obsidian-jupyter/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"author": "Till Hoffmann",
"authorUrl": "https://github.com/tillahoffmann/obsidian-jupyter",
"description": "This plugin allows code blocks to be executed as Jupyter notebooks.",
"id": "obsidian-jupyter",
"isDesktopOnly": true,
"minAppVersion": "0.9.12",
"name": "Jupyter plugin",
"version": "0.8.5"
}

View File

@@ -0,0 +1,17 @@
/* hide the output prompts of jupyter cells*/
.obsidian-jupyter .prompt, .obsidian-jupyter .input {
display: none;
}
.wideSettingsElement textarea, .wideSettingsElement input {
min-width: 300px;
}
.setupScriptTextArea textarea {
font-family: monospace;
}
.notebookPreview {
border: none;
width: 100%;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-markmind",
"name": "obsidian markmind",
"version": "1.7.6",
"minAppVersion": "0.9.12",
"description": "This is a mindmapoutline and pdf annotate tool for obsidian.",
"author": "Mark",
"authorUrl": "https://github.com/MarkMindCkm/obsidian-markmind",
"isDesktopOnly": false
}

File diff suppressed because it is too large Load Diff

24
.obsidian/plugins/quickadd/data.json vendored Normal file
View File

@@ -0,0 +1,24 @@
{
"choices": [],
"macros": [],
"inputPrompt": "single-line",
"devMode": false,
"templateFolderPath": "",
"announceUpdates": true,
"version": "1.2.1",
"disableOnlineFeatures": true,
"ai": {
"OpenAIApiKey": "",
"defaultModel": "Ask me",
"defaultSystemPrompt": "As an AI assistant within Obsidian, your primary goal is to help users manage their ideas and knowledge more effectively. Format your responses using Markdown syntax. Please use the [[Obsidian]] link format. You can write aliases for the links by writing [[Obsidian|the alias after the pipe symbol]]. To use mathematical notation, use LaTeX syntax. LaTeX syntax for larger equations should be on separate lines, surrounded with double dollar signs ($$). You can also inline math expressions by wrapping it in $ symbols. For example, use $$w_{ij}^{\text{new}}:=w_{ij}^{\text{current}}+etacdotdelta_jcdot x_{ij}$$ on a separate line, but you can write \"($eta$ = learning rate, $delta_j$ = error term, $x_{ij}$ = input)\" inline.",
"promptTemplatesFolderPath": "",
"showAssistant": true
},
"migrations": {
"migrateToMacroIDFromEmbeddedMacro": true,
"useQuickAddTemplateFolder": true,
"incrementFileNameSettingMoveToDefaultBehavior": true,
"mutualExclusionInsertAfterAndWriteToBottomOfFile": true,
"setVersionAfterUpdateModalRelease": true
}
}

19631
.obsidian/plugins/quickadd/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "quickadd",
"name": "QuickAdd",
"version": "1.2.1",
"minAppVersion": "0.13.19",
"description": "Quickly add new pages or content to your vault.",
"author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com",
"fundingUrl": "https://www.buymeacoffee.com/chhoumann",
"isDesktopOnly": false
}

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

@@ -0,0 +1,238 @@
/* src/styles.css */
.configureMacroDiv {
display: grid;
grid-template-rows: 1fr;
min-width: 12rem;
}
.configureMacroDivItem {
display: flex;
align-content: center;
justify-content: space-between;
margin-bottom: 10px;
}
.configureMacroDivItemButton {
display: flex;
align-content: center;
justify-content: center;
margin-bottom: 10px;
}
.macroContainer {
display: grid;
grid-template-rows: repeat(auto-fill, 120px);
grid-gap: 40px;
overflow-y: auto;
max-height: 30em;
padding: 2em;
}
@media screen and (max-width: 540px) {
.macroContainer1 {
grid-template-columns: repeat(1, 1fr);
}
.macroContainer2 {
grid-template-columns: repeat(1, 1fr);
}
.macroContainer3 {
grid-template-columns: repeat(1, 1fr);
}
.wideInputPromptInputEl {
width: 20rem;
max-width: 100%;
height: 3rem;
}
}
@media screen and (max-width: 540px) and (max-width: 780px) {
.macroContainer1 {
grid-template-columns: repeat(1, 1fr);
}
.macroContainer2 {
grid-template-columns: repeat(2, 1fr);
}
.macroContainer3 {
grid-template-columns: repeat(2, 1fr);
}
.wideInputPromptInputEl {
width: 30rem;
max-width: 100%;
height: 20rem;
}
}
@media screen and (min-width: 781px) {
.macroContainer1 {
grid-template-columns: repeat(1, 1fr);
}
.macroContainer2 {
grid-template-columns: repeat(2, 1fr);
}
.macroContainer3 {
grid-template-columns: repeat(2, 1fr);
}
.wideInputPromptInputEl {
width: 40rem;
max-width: 100%;
height: 20rem;
}
}
.addMacroBarContainer {
display: flex;
align-content: center;
justify-content: space-around;
margin-top: 20px;
}
.captureToActiveFileContainer {
display: flex;
align-content: center;
justify-content: space-between;
margin-bottom: 10px;
}
.choiceNameHeader {
text-align: center;
}
.choiceNameHeader:hover {
cursor: pointer;
}
.folderInputContainer {
display: flex;
align-content: center;
justify-content: space-between;
margin-bottom: 8px;
gap: 4px;
}
.selectMacroDropdownContainer {
display: flex;
align-content: center;
justify-content: center;
}
.quickAddModal .modal {
min-width: 35%;
overflow-y: auto;
max-height: 70%;
}
.checkboxRowContainer {
margin: 30px 0px;
display: grid;
grid-template-rows: auto;
align-content: center;
gap: 5px;
}
.checkboxRow {
display: flex;
justify-content: space-between;
align-content: center;
}
.checkboxRow .checkbox-container {
flex-shrink: 0;
}
.checkboxRow span {
font-size: 16px;
word-break: break-all;
}
.submitButtonContainer {
display: flex;
align-content: center;
justify-content: center;
}
.chooseFolderWhenCreatingNoteContainer {
display: flex;
align-content: center;
justify-content: space-between;
margin-bottom: 10px;
}
.chooseFolderFromSubfolderContainer {
margin: 20px 0 0 0;
}
.clickable:hover {
cursor: pointer;
}
.quickAddCommandListItem {
display: flex;
flex: 1 1 auto;
align-items: center;
justify-content: space-between;
}
.quickCommandContainer {
display: flex;
justify-content: flex-end;
align-content: center;
margin-bottom: 1em;
gap: 4px;
}
.yesNoPromptButtonContainer {
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 2rem;
}
.yesNoPromptParagraph {
text-align: center;
}
.qaFileSuggestionItem {
display: flex;
flex-direction: column;
width: 100%;
}
.qaFileSuggestionItem .suggestion-main-text {
font-weight: bold;
}
.qaFileSuggestionItem .suggestion-sub-text {
font-style: italic;
}
.choiceListItem {
display: flex;
font-size: 16px;
align-items: center;
margin: 12px 0 0 0;
transition: 1000ms ease-in-out;
}
.choiceListItemName {
flex: 1 0 0;
}
.choiceListItemName p {
margin: 0;
display: inline;
}
.quickadd-choice-suggestion p {
margin: 0;
}
.macroDropdownContainer {
display: flex;
align-content: center;
justify-content: center;
margin-bottom: 10px;
gap: 10px;
}
.macro-choice-buttonsContainer {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 10px;
}
@media only screen and (max-width: 600px) {
.macroDropdownContainer {
flex-direction: column;
align-items: center;
}
.macroDropdownContainer .macro-choice-buttonsContainer {
gap: 20px;
}
}
.quickadd-update-modal-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.quickadd-update-modal {
min-width: 35%;
max-height: 70%;
}
.quickadd-update-modal img {
width: 100%;
height: auto;
margin: 5px;
}
.quickadd-bmac-container {
display: flex;
justify-content: center;
align-items: center;
}

View File

@@ -0,0 +1,17 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.19.1",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "1.16.0",
"description": "Create and use templates",
"minAppVersion": "0.11.13",
"author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,281 @@
.templater_search {
width: calc(100% - 20px);
}
.templater_div {
border-top: 1px solid var(--background-modifier-border);
}
.templater_div > .setting-item {
border-top: none !important;
align-self: center;
}
.templater_div > .setting-item > .setting-item-control {
justify-content: space-around;
padding: 0;
width: 100%;
}
.templater_div
> .setting-item
> .setting-item-control
> .setting-editor-extra-setting-button {
align-self: center;
}
.templater_donating {
margin: 10px;
}
.templater_title {
margin: 0;
padding: 0;
margin-top: 5px;
text-align: center;
}
.templater_template {
align-self: center;
margin-left: 5px;
margin-right: 5px;
width: 70%;
}
.templater_cmd {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.templater_div2 > .setting-item {
align-content: center;
justify-content: center;
}
.templater-prompt-div {
display: flex;
}
.templater-prompt-form {
display: flex;
flex-grow: 1;
}
.templater-prompt-input {
flex-grow: 1;
}
.templater-button-div {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 1rem;
}
textarea.templater-prompt-input {
height: 10rem;
}
textarea.templater-prompt-input:focus {
border-color: var(--interactive-accent);
}
.cm-s-obsidian .templater-command-bg {
left: 0px;
right: 0px;
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command {
font-size: 0.85em;
font-family: var(--font-monospace);
line-height: 1.3;
}
.cm-s-obsidian .templater-inline .cm-templater-command {
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
color: #008bff;
}
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
color: #c0d700;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-keyword {
color: #00a7aa;
font-weight: normal;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-atom {
color: #f39b35;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-number {
color: #a06fca;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-type {
color: #a06fca;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-def {
color: #98e342;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-property {
color: #d4d4d4;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable {
color: #d4d4d4;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable-2 {
color: #da7dae;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable-3 {
color: #a06fca;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-type.cm-def {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-property.cm-def {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-callee {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-operator {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-qualifier {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-tag {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-tag.cm-bracket {
color: #d4d4d4;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-attribute {
color: #a06fca;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment {
color: #696d70;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment.cm-tag {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
color: #d4d4d4;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-string {
color: #e6db74;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-string-2 {
color: #f39b35;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-meta {
color: #d4d4d4;
background: inherit;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-builtin {
color: #fc4384;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-header {
color: #da7dae;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-hr {
color: #98e342;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-link {
color: #696d70;
}
.theme-dark .cm-s-obsidian .cm-templater-command.cm-error {
border-bottom: 1px solid #c42412;
}
.theme-dark .cm-s-obsidian pre.HyperMD-codeblock .cm-keyword {
font-weight: normal;
}
.theme-dark
.cm-s-obsidian
.cm-templater-command.CodeMirror-activeline-background {
background: #272727;
}
.theme-dark .cm-s-obsidian .cm-templater-command.CodeMirror-matchingbracket {
outline: 1px solid grey;
color: #d4d4d4 !important;
}
.CodeMirror-hints {
position: absolute;
z-index: 10;
overflow: hidden;
list-style: none;
margin: 0;
padding: 2px;
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
border-radius: 3px;
border: 1px solid silver;
background: white;
font-size: 90%;
font-family: monospace;
max-height: 20em;
overflow-y: auto;
}
.CodeMirror-hint {
margin: 0;
padding: 0 4px;
border-radius: 2px;
white-space: pre;
color: black;
cursor: pointer;
}
li.CodeMirror-hint-active {
background: #08f;
color: white;
}

View File

@@ -4,16 +4,16 @@
"type": "split",
"children": [
{
"id": "74f072c6bdb696d6",
"id": "940b7184c97fb74a",
"type": "tabs",
"children": [
{
"id": "e40d06ad0b0ac7ee",
"id": "e25807b4d76ea8f6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "数据结构.md",
"file": "线性表/线性表.md",
"mode": "source",
"source": false
}
@@ -85,7 +85,7 @@
"state": {
"type": "backlink",
"state": {
"file": "数据结构.md",
"file": "线性表/线性表.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -102,7 +102,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "数据结构.md",
"file": "线性表/线性表.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -125,7 +125,7 @@
"state": {
"type": "outline",
"state": {
"file": "数据结构.md"
"file": "线性表/线性表.md"
}
}
},
@@ -154,11 +154,28 @@
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false
"command-palette:打开命令面板": false,
"remotely-save:Remotely Save": false,
"templater-obsidian:Templater": false
}
},
"active": "aafaa5a821c90ec9",
"active": "e25807b4d76ea8f6",
"lastOpenFiles": [
"数据结构.md"
"线性表/Drawing 2023-08-02 15.48.35.excalidraw.md",
"线性表/pic/Pasted image 20230802163617.png",
"线性表/pic/Pasted image 20230802154616.png",
"线性表/pic/Pasted image 20230802163607.png",
"线性表/pic",
"线性表/线性表.md",
"线性表/code",
"线性表/init.c.md",
"线性表/code/init.c",
"未命名.md",
"未命名.canvas",
"线性表/Drawing 2023-08-02 15.07.11.excalidraw.md",
"第一章绪论/绪论.md",
"线性表",
"第一章绪论/Pasted image 20230802145127.png",
"第一章绪论"
]
}

View File

@@ -1,6 +0,0 @@
## 第一章
数据结构(三要素)
* 逻辑结构
* 存储结构
* 数据运算

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

37
第一章绪论/绪论.md Normal file
View File

@@ -0,0 +1,37 @@
## 第一章 绪论
数据结构(三要素)
* 逻辑结构
* 线性结构:线性表、栈、队列
* 非线性结构:树、图、集合
* 存储结构
* 顺序存储 (随机存取)
* 链式存储 (顺序存取)
* 索引存储 (索引速度快)
* 散列存储 hash
* 数据运算
![[Pasted image 20230802145127.png]]
算法: 有穷性、确定性、可行性、输入、输出
正确性、可读性、健壮性、高效性与低存储量需求
时间复杂度: 最坏情况
$$
T(n) = O(f(n))
$$
$$
O(1) < O(\log_2 n) < O(n) < O(n \log_2 n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
$$
空间复杂度
$$
S(n) = O(g(n))
$$

0
线性表/code/init.c Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

40
线性表/线性表.md Normal file
View File

@@ -0,0 +1,40 @@
相同数据类型的n个数据元素的有限序列。 L
![[Pasted image 20230802154616.png]]
## 顺序表
* 逻辑顺序与物理顺序相同
* 随机访问
* O1
### 基础操作
- 插入 O(n)
- 删除 O(n)
- 按值查找 O(n)
## 链式表
### 单链
单链表定义
```c
typedef struct LNode{
ElemType data;
struct LNode *next;
} LNode, *LinkList;
```
存在头指针问题;
头节点和头指针。头指针的节点内容一般为null但是头指针地址不一定为空。
- 头插法
头节点之后插入
![[Pasted image 20230802163607.png]]
- 尾插法
最后插入
![[Pasted image 20230802163617.png]]