From 70e11b0bc73693b1087fd516c88967d2aa8a202a Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:16:41 -0700 Subject: [PATCH 01/81] feat: add prettier --- .prettierignore | 3 +++ .prettierrc | 5 +++++ package.json | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..c8aa8eb6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +# Minimized files +**.min.css +fuse_*.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..5f65942b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "proseWrap": "always", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/package.json b/package.json index a92f3ee9..e46adaec 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "build:rm-db.json": "rm db.json || exit 0", "build:css": "npx postcss themes/coo/source/css/style.tailwindcss -o themes/coo/source/css/style.css", "build:generate": "npx hexo generate", - "build:gulp": "npx gulp --max-old-space-size=4096" + "build:gulp": "npx gulp --max-old-space-size=4096", + "format": "prettier --write" }, "hexo": { "version": "5.4.2" @@ -69,6 +70,8 @@ "postcss-cli": "^9.1.0", "postcss-import": "^14.0.2", "postcss-minify": "^1.1.0", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.14", "sync-request": "^6.1.0", "tailwindcss": "^3.0.1", "tailwindcss-animate": "^1.0.5", From a3333f1d10a9639d894e2d08fb2147a2eaf506c8 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:43:21 -0700 Subject: [PATCH 02/81] fix: delete unused scaffold files They were not mentioned anywhere else else in the code after doing a quick grep. The format was going to bug out the Prettier formatting, so I have made the decision to remove them instead of adding an ignore on files that are not beign used. --- scaffolds/draft.md | 6 ------ scaffolds/page.md | 4 ---- scaffolds/post.md | 16 ---------------- scaffolds/table.md | 6 ------ 4 files changed, 32 deletions(-) delete mode 100644 scaffolds/draft.md delete mode 100644 scaffolds/page.md delete mode 100644 scaffolds/post.md delete mode 100644 scaffolds/table.md diff --git a/scaffolds/draft.md b/scaffolds/draft.md deleted file mode 100644 index 29457456..00000000 --- a/scaffolds/draft.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} -categories: -tags: ---- diff --git a/scaffolds/page.md b/scaffolds/page.md deleted file mode 100644 index f01ba3cd..00000000 --- a/scaffolds/page.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} ---- diff --git a/scaffolds/post.md b/scaffolds/post.md deleted file mode 100644 index 648dba74..00000000 --- a/scaffolds/post.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} -icon: icon-{{ title }} -background: bg-blue-400 -tags: - - -categories: - - -intro: ---- - - - - - diff --git a/scaffolds/table.md b/scaffolds/table.md deleted file mode 100644 index 29457456..00000000 --- a/scaffolds/table.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} -categories: -tags: ---- From bc3e778e80212a3caa96a141b1cf7cda53d9351e Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:46:06 -0700 Subject: [PATCH 03/81] fix: format trivial changes Replaces quotations and does basic indentation that is trivial. This is separate as the other will make more changes for files that are actual code. --- .github/FUNDING.yml | 2 +- .github/ISSUE_TEMPLATE/cheatsheet-request.md | 4 +-- .markdownlint.json | 2 +- _config.yml | 26 +++++++++----------- source/ga_analytics_tops.json | 2 +- tailwind.config.js | 2 +- themes/coo/_config.yml | 1 - themes/coo/languages/default.yml | 14 +++++------ 8 files changed, 24 insertions(+), 29 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 16e06e6c..716b352c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom: ['https://buymeacoffee.com/randy8080'] +custom: ["https://buymeacoffee.com/randy8080"] diff --git a/.github/ISSUE_TEMPLATE/cheatsheet-request.md b/.github/ISSUE_TEMPLATE/cheatsheet-request.md index 3c6baf47..b2f37345 100644 --- a/.github/ISSUE_TEMPLATE/cheatsheet-request.md +++ b/.github/ISSUE_TEMPLATE/cheatsheet-request.md @@ -1,9 +1,7 @@ --- name: Cheatsheet request about: For request cheatsheet and reference. -title: 'Cheatsheet request: ' +title: "Cheatsheet request: " labels: request assignees: Fechin --- - - diff --git a/.markdownlint.json b/.markdownlint.json index 919784c2..da118f7b 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -9,4 +9,4 @@ "code_blocks": true, "spaces_per_tab": 2 } -} \ No newline at end of file +} diff --git a/_config.yml b/_config.yml index aa43e0b6..ab82fb74 100644 --- a/_config.yml +++ b/_config.yml @@ -4,12 +4,12 @@ # Site title: CheatSheets.zip -subtitle: 'Quick Reference Cheat Sheet' -description: 'Share quick reference and cheat sheet for developers' +subtitle: "Quick Reference Cheat Sheet" +description: "Share quick reference and cheat sheet for developers" keywords: reference,cheatsheet,code table,snippets,linux author: CheatSheets.zip language: en -timezone: '' +timezone: "" # URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' @@ -39,7 +39,7 @@ titlecase: false # Transform title into titlecase external_link: enable: true # Open external links in new tab field: site # Apply to the whole site - exclude: '' + exclude: "" filename_case: 1 render_drafts: false post_asset_folder: false @@ -53,7 +53,7 @@ highlight: # per_page: Posts displayed per page. (0 = disable pagination) # order_by: Posts order. (Order by date descending by default) index_generator: - path: '' + path: "" per_page: 0 order_by: -date @@ -73,7 +73,7 @@ meta_generator: false date_format: YYYY-MM-DD time_format: HH:mm:ss ## Use post's date for updated date unless set in front-matter -updated_option: 'date' +updated_option: "date" # Pagination ## Set per_page to 0 to disable pagination @@ -96,7 +96,7 @@ nofollow: enable: true field: site exclude: - - 'exclude1.com' + - "exclude1.com" excerpt: depth: 2 @@ -104,11 +104,10 @@ excerpt: more_excludes: [] hideWholePostExcerpts: true - # Deployment ## Docs: https://hexo.io/docs/deployment.html deploy: -# - type: cjh_google_url_submitter + # - type: cjh_google_url_submitter - type: cjh_bing_url_submitter - type: cjh_baidu_url_submitter @@ -123,7 +122,6 @@ sitemap: tags: false categories: false - # Markdown-it configuration ## Docs: https://github.com/celsomiranda/hexo-renderer-markdown-it/wiki markdown: @@ -133,12 +131,12 @@ markdown: breaks: false linkify: false typographer: false - quotes: '“”‘’' + quotes: "“”‘’" anchors: level: 2 - collisionSuffix: '' + collisionSuffix: "" permalink: true permalinkClass: h-anchor - permalinkSymbol: '#' + permalinkSymbol: "#" case: 1 - separator: '-' + separator: "-" diff --git a/source/ga_analytics_tops.json b/source/ga_analytics_tops.json index 53846282..1c17a5ce 100644 --- a/source/ga_analytics_tops.json +++ b/source/ga_analytics_tops.json @@ -59,4 +59,4 @@ "path": "postgres.html", "background": "bg-[#3d6488]" } -] \ No newline at end of file +] diff --git a/tailwind.config.js b/tailwind.config.js index c24a3c5d..d67c7aae 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -23,4 +23,4 @@ module.exports = { content: { files: ['**/*.{ejs,md}', '**/widget/*.html', '**/js/main.js'], } -}; \ No newline at end of file +}; diff --git a/themes/coo/_config.yml b/themes/coo/_config.yml index d7c41722..47d34e85 100644 --- a/themes/coo/_config.yml +++ b/themes/coo/_config.yml @@ -23,7 +23,6 @@ index_recommends: - regex - awk - # Related popular posts # Dependencies: https://github.com/tea3/hexo-related-popular-posts related_posts: diff --git a/themes/coo/languages/default.yml b/themes/coo/languages/default.yml index db3af1ca..ad2b04ec 100644 --- a/themes/coo/languages/default.yml +++ b/themes/coo/languages/default.yml @@ -15,14 +15,14 @@ readmore: READ MORE floatmenu: Menu menu: - home: Home - archives: Archives - category: Categories - search: Search + home: Home + archives: Archives + category: Categories + search: Search current_page: Current page page_name: - categories: (Categories) - tags: (Tags) - archives: (Archives) + categories: (Categories) + tags: (Tags) + archives: (Archives) go_back_home: Go back home no_title: No title From ef823489fef6f5eaef902878e84761d8b4c6f2ca Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:48:39 -0700 Subject: [PATCH 04/81] fix: format complex changes Formats all the general js files. Separate in case these should be treated differently for any reason. This commit includes all javascript and HTML files. --- gulpfile.js | 67 +- postcss.config.js | 14 +- source/assets/page/oops.htm | 298 ++++---- source/widget/chmod.html | 195 ++--- tailwind.config.js | 44 +- themes/coo/scripts/add_field.js | 81 +- themes/coo/scripts/github.js | 19 +- themes/coo/scripts/global.js | 142 ++-- themes/coo/scripts/markdown_plugin.js | 310 ++++---- themes/coo/scripts/merge_configs.js | 4 +- themes/coo/scripts/pagination_generator.js | 22 +- themes/coo/scripts/seo.js | 109 ++- themes/coo/scripts/share.js | 60 +- themes/coo/scripts/top_generator.js | 20 +- themes/coo/source/js/main.js | 841 ++++++++++----------- 15 files changed, 1117 insertions(+), 1109 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 1539b723..c1492cb6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,37 +1,44 @@ -const gulp = require('gulp'); -const htmlmin = require('gulp-htmlmin'); -const htmlclean = require('gulp-htmlclean'); -const version = require('gulp-version-number'); -const terser = require('gulp-terser'); +const gulp = require("gulp"); +const htmlmin = require("gulp-htmlmin"); +const htmlclean = require("gulp-htmlclean"); +const version = require("gulp-version-number"); +const terser = require("gulp-terser"); // Compress js files -gulp.task('js', function () { - return gulp.src(['./public/js/main.js']) - .pipe(terser({ - compress: true - })) - .pipe(gulp.dest('./public/js')); +gulp.task("js", function () { + return gulp + .src(["./public/js/main.js"]) + .pipe( + terser({ + compress: true, + }), + ) + .pipe(gulp.dest("./public/js")); }); - // Build html files -gulp.task('html', function () { - return gulp.src('./public/**/*.html') - .pipe(htmlclean()) - .pipe(htmlmin({ - removeComments: true, - minifyJS: true, - minifyCSS: true, - minifyURLs: true, - })) - .pipe(version({ - 'append': { - 'key': '_v', - 'cover': 1, - 'to': ['css', 'js', 'png', 'jpg', 'woff2'] - } - })) - .pipe(gulp.dest('./public')); +gulp.task("html", function () { + return gulp + .src("./public/**/*.html") + .pipe(htmlclean()) + .pipe( + htmlmin({ + removeComments: true, + minifyJS: true, + minifyCSS: true, + minifyURLs: true, + }), + ) + .pipe( + version({ + append: { + key: "_v", + cover: 1, + to: ["css", "js", "png", "jpg", "woff2"], + }, + }), + ) + .pipe(gulp.dest("./public")); }); -gulp.task('default', gulp.parallel('js', 'html')); \ No newline at end of file +gulp.task("default", gulp.parallel("js", "html")); diff --git a/postcss.config.js b/postcss.config.js index dff409fa..00ee441b 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,8 @@ module.exports = { - plugins: { - 'postcss-import': {path: 'themes/coo/source/css'}, - 'tailwindcss': {config: './tailwind.config.js'}, - 'autoprefixer': {}, - 'postcss-minify':{}, - } -}; \ No newline at end of file + plugins: { + "postcss-import": { path: "themes/coo/source/css" }, + tailwindcss: { config: "./tailwind.config.js" }, + autoprefixer: {}, + "postcss-minify": {}, + }, +}; diff --git a/source/assets/page/oops.htm b/source/assets/page/oops.htm index e4027e06..1baaf2e6 100644 --- a/source/assets/page/oops.htm +++ b/source/assets/page/oops.htm @@ -1,171 +1,171 @@ - + - - - - + + + + 404 Page NotFound - + - - -
-
+ + +
+
-
-
-
+
+
+

oops!

Error 404 : Page Not Found

go back +
-
- + diff --git a/source/widget/chmod.html b/source/widget/chmod.html index 67053c5d..e3964356 100644 --- a/source/widget/chmod.html +++ b/source/widget/chmod.html @@ -1,95 +1,102 @@ -
-
-

Permissions:

-
-
- -
-
- -
+
+
+

Permissions:

+
+
+ +
+
+ +
- + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - +
UserGroupOtherUserGroupOther
ReadRead
WriteWrite
ExecuteExecute
- - \ No newline at end of file + diff --git a/tailwind.config.js b/tailwind.config.js index d67c7aae..31b88004 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,26 +1,26 @@ module.exports = { - darkMode: 'class', // or 'media' or 'class' - plugins: [ - // https://github.com/jamiebuilds/tailwindcss-animate - require("tailwindcss-animate"), - ], - theme: { - boxShadow: { - /* Customized */ - DEFAULT: '0 6px 8px rgba(102, 119, 136, 0.03), 0 1px 2px rgba(102, 119, 136, 0.3)', - md: '0 4px 6px -1px rgba(102, 119, 136, 0.05), 0 2px 4px -1px rgba(102, 119, 136, 0.35)', + darkMode: "class", // or 'media' or 'class' + plugins: [ + // https://github.com/jamiebuilds/tailwindcss-animate + require("tailwindcss-animate"), + ], + theme: { + boxShadow: { + /* Customized */ + DEFAULT: "0 6px 8px rgba(102, 119, 136, 0.03), 0 1px 2px rgba(102, 119, 136, 0.3)", + md: "0 4px 6px -1px rgba(102, 119, 136, 0.05), 0 2px 4px -1px rgba(102, 119, 136, 0.35)", - /* Default */ - sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)', - lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)', - xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)', - '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)', - '3xl': '0 35px 60px -15px rgba(0, 0, 0, 0.3)', - inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)', - none: 'none', - } + /* Default */ + sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)", + lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", + xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", + "2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.25)", + "3xl": "0 35px 60px -15px rgba(0, 0, 0, 0.3)", + inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)", + none: "none", }, - content: { - files: ['**/*.{ejs,md}', '**/widget/*.html', '**/js/main.js'], - } + }, + content: { + files: ["**/*.{ejs,md}", "**/widget/*.html", "**/js/main.js"], + }, }; diff --git a/themes/coo/scripts/add_field.js b/themes/coo/scripts/add_field.js index 22c012c6..5fa8bec9 100644 --- a/themes/coo/scripts/add_field.js +++ b/themes/coo/scripts/add_field.js @@ -1,51 +1,50 @@ const h2_re = /

#<\/a>(.*)<\/h2>/gm; const h3_re = /

#<\/a>(.*)<\/h3>/gm; - hexo.extend.filter.register("after_post_render", function (data) { - let h2_m; - let h2_list = []; - while ((h2_m = h2_re.exec(data.content)) !== null) { - h2_list.push({ - anchor: h2_m[1].trim(), - title: h2_m[2].trim(), - start: h2_m.index - }) - } + let h2_m; + let h2_list = []; + while ((h2_m = h2_re.exec(data.content)) !== null) { + h2_list.push({ + anchor: h2_m[1].trim(), + title: h2_m[2].trim(), + start: h2_m.index, + }); + } - let h3_list = []; - for (let i = 0; i < h2_list.length; i++) { - let start = h2_list[i].start; - let end = data.content.length; - let next = h2_list[i + 1]; - if (next !== undefined) { - end = next.start; - } - const h2_section = data.content.substring(start, end); - let h3_m; - let h3_items = []; - while ((h3_m = h3_re.exec(h2_section)) !== null) { - h3_items.push({ - anchor: h3_m[1].trim(), - title: h3_m[2].trim() - }); - } - h2_list[i] = h2_list[i]; - h3_list.push(h3_items); + let h3_list = []; + for (let i = 0; i < h2_list.length; i++) { + let start = h2_list[i].start; + let end = data.content.length; + let next = h2_list[i + 1]; + if (next !== undefined) { + end = next.start; + } + const h2_section = data.content.substring(start, end); + let h3_m; + let h3_items = []; + while ((h3_m = h3_re.exec(h2_section)) !== null) { + h3_items.push({ + anchor: h3_m[1].trim(), + title: h3_m[2].trim(), + }); } + h2_list[i] = h2_list[i]; + h3_list.push(h3_items); + } - let cards = [] - for (let i = 0; i < h2_list.length; i++) { - if (h3_list[i].length === 0) { - continue; - } - delete h2_list[i]['start']; - cards.push({ - h2: h2_list[i], - h3: h3_list[i] - }); + let cards = []; + for (let i = 0; i < h2_list.length; i++) { + if (h3_list[i].length === 0) { + continue; } + delete h2_list[i]["start"]; + cards.push({ + h2: h2_list[i], + h3: h3_list[i], + }); + } - data.sections = cards; - return data; + data.sections = cards; + return data; }); diff --git a/themes/coo/scripts/github.js b/themes/coo/scripts/github.js index e6d2bd6f..e5d29055 100644 --- a/themes/coo/scripts/github.js +++ b/themes/coo/scripts/github.js @@ -1,17 +1,16 @@ hexo.extend.helper.register("request_cheatsheet", function () { - return `https://github.com/Fechin/reference/issues/new?title=Cheatsheet+request%3A+&labels=request&template=cheatsheet-request.md&assignee=Fechin`; + return `https://github.com/Fechin/reference/issues/new?title=Cheatsheet+request%3A+&labels=request&template=cheatsheet-request.md&assignee=Fechin`; }); hexo.extend.helper.register("contributing", function () { - return `https://github.com/Fechin/reference`; + return `https://github.com/Fechin/reference`; }); - hexo.extend.helper.register("edit_page", function () { - let postPage = this.page['layout'] === 'post'; - let url = "https://github.com/Fechin/reference"; - if (postPage) { - url += `/blob/main/source/_posts/${this.page.slug}.md`; - } - return url; -}); \ No newline at end of file + let postPage = this.page["layout"] === "post"; + let url = "https://github.com/Fechin/reference"; + if (postPage) { + url += `/blob/main/source/_posts/${this.page.slug}.md`; + } + return url; +}); diff --git a/themes/coo/scripts/global.js b/themes/coo/scripts/global.js index f7f0e1fd..930a3799 100644 --- a/themes/coo/scripts/global.js +++ b/themes/coo/scripts/global.js @@ -1,82 +1,84 @@ -const fs = require('fs'); -const path = require('path'); +const fs = require("fs"); +const path = require("path"); hexo.extend.helper.register("icon", (name) => svgIcon(name)); -hexo.extend.generator.register('json', function (locals) { - - let searchName = "search.json"; - let datas = locals.posts.sort('date') || []; - - let res = [] - let index = 0 - - datas.each(function (data) { - if (data.indexing !== undefined && !data.indexing) return; - if (data.layout === "note") return; - let temp_data = {} - - temp_data.index = index; - temp_data.title = data.title; - temp_data.path = data.permalink.replace(hexo.config.url, ""); - temp_data.icon = svgIcon(data.slug); - temp_data.background = data.background; - temp_data.intro = data.intro; - - // categories - temp_data.categories = []; - if (data.categories && data.categories.length > 0) { - data.categories.forEach(function (category) { - temp_data.categories.push(category.name); - }); - } +hexo.extend.generator.register("json", function (locals) { + let searchName = "search.json"; + let datas = locals.posts.sort("date") || []; + + let res = []; + let index = 0; + + datas.each(function (data) { + if (data.indexing !== undefined && !data.indexing) return; + if (data.layout === "note") return; + let temp_data = {}; + + temp_data.index = index; + temp_data.title = data.title; + temp_data.path = data.permalink.replace(hexo.config.url, ""); + temp_data.icon = svgIcon(data.slug); + temp_data.background = data.background; + temp_data.intro = data.intro; + + // categories + temp_data.categories = []; + if (data.categories && data.categories.length > 0) { + data.categories.forEach(function (category) { + temp_data.categories.push(category.name); + }); + } - // tags - temp_data.tags = []; - if (data.tags && data.tags.length > 0) { - data.tags.forEach(function (tag) { - temp_data.tags.push(tag.name); - }); - } - // sections - temp_data.sections = data.sections; + // tags + temp_data.tags = []; + if (data.tags && data.tags.length > 0) { + data.tags.forEach(function (tag) { + temp_data.tags.push(tag.name); + }); + } + // sections + temp_data.sections = data.sections; - res[index] = temp_data; - index += 1; - }); + res[index] = temp_data; + index += 1; + }); - let json = JSON.stringify(res); - return {path: searchName, data: json}; + let json = JSON.stringify(res); + return { path: searchName, data: json }; }); - -hexo.extend.generator.register('list', function (locals) { - const themeConfig = hexo.theme.config; - let content = ""; - - themeConfig.index_categories.forEach(function (category) { - content += `
\n${category}\n\n`; - locals.categories.findOne({name: category}).posts.sort('-date').map(function (post) { - content += `- [${post.title}](https://cheatsheets.zip/${post.path}): ${post.intro.trim()}\n`; - }) - content += `\n
\n\n`; - }); - - return { - path: 'list.md', - data: content - }; +hexo.extend.generator.register("list", function (locals) { + const themeConfig = hexo.theme.config; + let content = ""; + + themeConfig.index_categories.forEach(function (category) { + content += `
\n${category}\n\n`; + locals.categories + .findOne({ name: category }) + .posts.sort("-date") + .map(function (post) { + content += `- [${post.title}](https://cheatsheets.zip/${post.path}): ${post.intro.trim()}\n`; + }); + content += `\n
\n\n`; + }); + + return { + path: "list.md", + data: content, + }; }); - function svgIcon(name) { - // Check file exists - let svgPath = path.resolve("./", "source/assets/icon/", `${name}.svg`); - if (fs.existsSync(svgPath)) { - return fs.readFileSync(svgPath, 'utf8') - } else { - return "\n" + - " \n" + - ""; - } + // Check file exists + let svgPath = path.resolve("./", "source/assets/icon/", `${name}.svg`); + if (fs.existsSync(svgPath)) { + return fs.readFileSync(svgPath, "utf8"); + } else { + return ( + '\n' + + ' \n' + + "" + ); + } } diff --git a/themes/coo/scripts/markdown_plugin.js b/themes/coo/scripts/markdown_plugin.js index 37282c78..001757a7 100644 --- a/themes/coo/scripts/markdown_plugin.js +++ b/themes/coo/scripts/markdown_plugin.js @@ -1,172 +1,172 @@ -const fs = require('fs'); -const path = require('path'); - -hexo.extend.filter.register('markdown-it:renderer', function (md) { - md.use(require('markdown-it-abbr'), {}); - md.use(require('markdown-it-footnote'), {}); - md.use(require('markdown-it-ins'), {}); - md.use(require('markdown-it-sub'), {}); - md.use(require('markdown-it-sup'), {}); - md.use(require('markdown-it-task-lists'), {}); - md.use(require('markdown-it-emoji'), {}); - md.use(require('markdown-it-attrs'), {}); - md.use(require('markdown-it-highlightjs'), {}); - md.use(require('markdown-it-checkbox'), {}); - md.use(require('markdown-it-multimd-table'), { - multiline: false, - rowspan: true, - headerless: false, - }); - md.use(require('markdown-it-shortcode-tag'), { - widget: { - render: function (attrs, env) { - let widgetPath = path.resolve(`./source/widget/${attrs.name}.html`); - if (fs.existsSync(widgetPath)) { - return fs.readFileSync(widgetPath, 'utf8').trim(); - } else { - let error = `Error: ${attrs.name} widget not Found!`; - console.log(error); - return error; - } - } +const fs = require("fs"); +const path = require("path"); + +hexo.extend.filter.register("markdown-it:renderer", function (md) { + md.use(require("markdown-it-abbr"), {}); + md.use(require("markdown-it-footnote"), {}); + md.use(require("markdown-it-ins"), {}); + md.use(require("markdown-it-sub"), {}); + md.use(require("markdown-it-sup"), {}); + md.use(require("markdown-it-task-lists"), {}); + md.use(require("markdown-it-emoji"), {}); + md.use(require("markdown-it-attrs"), {}); + md.use(require("markdown-it-highlightjs"), {}); + md.use(require("markdown-it-checkbox"), {}); + md.use(require("markdown-it-multimd-table"), { + multiline: false, + rowspan: true, + headerless: false, + }); + md.use(require("markdown-it-shortcode-tag"), { + widget: { + render: function (attrs, env) { + let widgetPath = path.resolve(`./source/widget/${attrs.name}.html`); + if (fs.existsSync(widgetPath)) { + return fs.readFileSync(widgetPath, "utf8").trim(); + } else { + let error = `Error: ${attrs.name} widget not Found!`; + console.log(error); + return error; } - }); - headerSections(md, { - h2: { - wrapperClass: 'h2-wrap', - innerClass: 'h3-wrap-list', - }, - h3: { - wrapperClass: 'h3-wrap', - innerClass: 'section', - }, - tagName: "div" - }); + }, + }, + }); + headerSections(md, { + h2: { + wrapperClass: "h2-wrap", + innerClass: "h3-wrap-list", + }, + h3: { + wrapperClass: "h3-wrap", + innerClass: "section", + }, + tagName: "div", + }); }); function headerSections(md, options) { - const opts = Object.assign({}, options); - - function addSections(state) { - let tokens = []; // output - let Token = state.Token; - let sections = []; - let nestedLevel = 0; - - function openTag(token, parser, classOptName) { - let t = new Token(parser, opts.tagName, 1); - t.block = true; - const cls = token && opts[token.tag] && opts[token.tag][classOptName]; - t.attrs = appendClass(token.attrs, cls); - return t; - } - - function closeTag(parser) { - let t = new Token(parser, opts.tagName, -1); - t.block = true; - return t; - } + const opts = Object.assign({}, options); + + function addSections(state) { + let tokens = []; // output + let Token = state.Token; + let sections = []; + let nestedLevel = 0; + + function openTag(token, parser, classOptName) { + let t = new Token(parser, opts.tagName, 1); + t.block = true; + const cls = token && opts[token.tag] && opts[token.tag][classOptName]; + t.attrs = appendClass(token.attrs, cls); + return t; + } - function closeSections(section) { - while (last(sections) && section.header <= last(sections).header) { - sections.pop(); - tokens.push(closeTag('section_inner_close')); - tokens.push(closeTag('section_wrapper_close')); - } - } + function closeTag(parser) { + let t = new Token(parser, opts.tagName, -1); + t.block = true; + return t; + } - function closeSectionsToCurrentNesting(nesting) { - while (last(sections) && nesting < last(sections).nesting) { - sections.pop(); - tokens.push(closeTag('section_inner_close')); - tokens.push(closeTag('section_wrapper_close')); - } - } + function closeSections(section) { + while (last(sections) && section.header <= last(sections).header) { + sections.pop(); + tokens.push(closeTag("section_inner_close")); + tokens.push(closeTag("section_wrapper_close")); + } + } - function closeAllSections() { - while (sections.pop()) { - tokens.push(closeTag('section_inner_close')); - tokens.push(closeTag('section_wrapper_close')); - } - } + function closeSectionsToCurrentNesting(nesting) { + while (last(sections) && nesting < last(sections).nesting) { + sections.pop(); + tokens.push(closeTag("section_inner_close")); + tokens.push(closeTag("section_wrapper_close")); + } + } - for (let i = 0, l = state.tokens.length; i < l; i++) { - let token = state.tokens[i]; - - // record level of nesting - if (token.type.search('heading') !== 0) { - nestedLevel += token.nesting; - } - if (last(sections) && nestedLevel < last(sections).nesting) { - closeSectionsToCurrentNesting(nestedLevel); - } - - // add sections before headers - let expect = opts.hasOwnProperty(token.tag); - if (token.type === 'heading_open') { - let section = { - header: headingLevel(token.tag), - nesting: nestedLevel - }; - if (last(sections) && section.header <= last(sections).header && expect) { - closeSections(section); - } - if (expect) { - tokens.push(openTag(token, 'section_wrapper_open', 'wrapperClass')); - if (token.attrIndex('id') !== -1) { - // remove ID from token - token.attrs.splice(token.attrIndex('id'), 1); - } - sections.push(section); - - // The attribute has been placed in section_open, - // clear the attribute of the header tag - token.attrs = []; - } - - tokens.push(token); - } else if (token.type === 'heading_close') { // add inner section after headers - tokens.push(token); - if (expect) { - tokens.push(openTag(token, 'section_inner_open', 'innerClass')); - } - } else { - tokens.push(token); - } - - } // end for every token - closeAllSections(); - - state.tokens = tokens; + function closeAllSections() { + while (sections.pop()) { + tokens.push(closeTag("section_inner_close")); + tokens.push(closeTag("section_wrapper_close")); + } } - function appendClass(attrs, cls) { - if (cls == null) { - return attrs; + for (let i = 0, l = state.tokens.length; i < l; i++) { + let token = state.tokens[i]; + + // record level of nesting + if (token.type.search("heading") !== 0) { + nestedLevel += token.nesting; + } + if (last(sections) && nestedLevel < last(sections).nesting) { + closeSectionsToCurrentNesting(nestedLevel); + } + + // add sections before headers + let expect = opts.hasOwnProperty(token.tag); + if (token.type === "heading_open") { + let section = { + header: headingLevel(token.tag), + nesting: nestedLevel, + }; + if (last(sections) && section.header <= last(sections).header && expect) { + closeSections(section); } - if (attrs == null) { - attrs = []; + if (expect) { + tokens.push(openTag(token, "section_wrapper_open", "wrapperClass")); + if (token.attrIndex("id") !== -1) { + // remove ID from token + token.attrs.splice(token.attrIndex("id"), 1); + } + sections.push(section); + + // The attribute has been placed in section_open, + // clear the attribute of the header tag + token.attrs = []; } - let appended = false; - attrs.forEach(function (x, i) { - if (x[0] === "class") { - x[1] = cls + " " + x[1]; - appended = true; - } - }); - if (!appended) { - attrs.push(["class", cls.trim()]) + + tokens.push(token); + } else if (token.type === "heading_close") { + // add inner section after headers + tokens.push(token); + if (expect) { + tokens.push(openTag(token, "section_inner_open", "innerClass")); } - return attrs; + } else { + tokens.push(token); + } + } // end for every token + closeAllSections(); + + state.tokens = tokens; + } + + function appendClass(attrs, cls) { + if (cls == null) { + return attrs; } - - function headingLevel(header) { - return parseInt(header.charAt(1)); + if (attrs == null) { + attrs = []; } - - function last(arr) { - return arr.slice(-1)[0]; + let appended = false; + attrs.forEach(function (x, i) { + if (x[0] === "class") { + x[1] = cls + " " + x[1]; + appended = true; + } + }); + if (!appended) { + attrs.push(["class", cls.trim()]); } + return attrs; + } + + function headingLevel(header) { + return parseInt(header.charAt(1)); + } + + function last(arr) { + return arr.slice(-1)[0]; + } - md.core.ruler.push('header_sections', addSections); -} \ No newline at end of file + md.core.ruler.push("header_sections", addSections); +} diff --git a/themes/coo/scripts/merge_configs.js b/themes/coo/scripts/merge_configs.js index ab8c0eac..d5f601bd 100644 --- a/themes/coo/scripts/merge_configs.js +++ b/themes/coo/scripts/merge_configs.js @@ -3,6 +3,6 @@ * This fixes an issue with hexo-renderer-stylus, which otherwise ignores these * configuration overrides. */ -hexo.on('generateBefore', function () { - hexo.theme.config = Object.assign({}, hexo.theme.config, hexo.config.theme_config); +hexo.on("generateBefore", function () { + hexo.theme.config = Object.assign({}, hexo.theme.config, hexo.config.theme_config); }); diff --git a/themes/coo/scripts/pagination_generator.js b/themes/coo/scripts/pagination_generator.js index 7529e47a..9ad84ef5 100644 --- a/themes/coo/scripts/pagination_generator.js +++ b/themes/coo/scripts/pagination_generator.js @@ -1,14 +1,14 @@ let pagination = require("hexo-pagination"); hexo.extend.generator.register("notes-pagination", function (locals) { - let config = this.config; - let posts = locals.posts.filter(post => post.layout === "note").sort("-date"); - return pagination("notes", posts, { - perPage: config.per_page, - layout: ['notes'], - format: "%d/", - data: { - _isNotePagination: true - } - }); -}); \ No newline at end of file + let config = this.config; + let posts = locals.posts.filter((post) => post.layout === "note").sort("-date"); + return pagination("notes", posts, { + perPage: config.per_page, + layout: ["notes"], + format: "%d/", + data: { + _isNotePagination: true, + }, + }); +}); diff --git a/themes/coo/scripts/seo.js b/themes/coo/scripts/seo.js index d5879676..1131593a 100644 --- a/themes/coo/scripts/seo.js +++ b/themes/coo/scripts/seo.js @@ -1,69 +1,68 @@ -const fs = require('fs'); -const path = require('path'); +const fs = require("fs"); +const path = require("path"); hexo.extend.helper.register("page_title", function () { - let title = ""; - if (this.is_home()) { - title = `${this.config.title} - ${this.config.subtitle}`; - } else if (this.page.layout === "note") { - title = `${this.page.title} - ${this.config.title}`; - } else if (this.is_page()) { - title = `${this.page.title} - ${this.config.title}`; - } else if (this.is_post()) { - title = this.page.title; - let hasCommand = this.page.categories.findOne({name: "Linux Command"}); - if (hasCommand) { - title += " Command"; - } - title = `${title} Cheat Sheet & Quick Reference`; - } else if (this.page._isNotePagination) { - title = `Page ${this.page.current} of Notes - ${this.config.title}` + let title = ""; + if (this.is_home()) { + title = `${this.config.title} - ${this.config.subtitle}`; + } else if (this.page.layout === "note") { + title = `${this.page.title} - ${this.config.title}`; + } else if (this.is_page()) { + title = `${this.page.title} - ${this.config.title}`; + } else if (this.is_post()) { + title = this.page.title; + let hasCommand = this.page.categories.findOne({ name: "Linux Command" }); + if (hasCommand) { + title += " Command"; } - return title; + title = `${title} Cheat Sheet & Quick Reference`; + } else if (this.page._isNotePagination) { + title = `Page ${this.page.current} of Notes - ${this.config.title}`; + } + return title; }); hexo.extend.helper.register("page_description", function () { - let description; - if (this.is_home()) { - description = this.config.description; - } else if (this.page != null && this.page.intro != null) { - description = this.strip_html(this.markdown(this.page.intro)).substring(0, 110); - } else { - description = this.strip_html(this.page.content).substring(0, 130); - } - description = description.replace(/[\r\n\s\s+]+/g, " "); - return description; + let description; + if (this.is_home()) { + description = this.config.description; + } else if (this.page != null && this.page.intro != null) { + description = this.strip_html(this.markdown(this.page.intro)).substring(0, 110); + } else { + description = this.strip_html(this.page.content).substring(0, 130); + } + description = description.replace(/[\r\n\s\s+]+/g, " "); + return description; }); - hexo.extend.helper.register("page_keywords", function () { - let keywords = this.config.keywords; - if (this.page.tags && this.page.tags.each) { - this.page.tags.each(function (tag) { - keywords += ("," + tag.name); - }); - } - return keywords; + let keywords = this.config.keywords; + if (this.page.tags && this.page.tags.each) { + this.page.tags.each(function (tag) { + keywords += "," + tag.name; + }); + } + return keywords; }); hexo.extend.helper.register("page_image", function () { - let homePng = "preview.png"; - let postPng = ""; - if (this.is_post()) { - postPng = `${this.page.slug}-preview.png`; - } + let homePng = "preview.png"; + let postPng = ""; + if (this.is_post()) { + postPng = `${this.page.slug}-preview.png`; + } - let version = (Math.random() + 1).toString(36).substring(7); - let imageURL; + let version = (Math.random() + 1).toString(36).substring(7); + let imageURL; - // Check file exists - let postPath = path.resolve("./", "source/assets/image/", postPng); - if (fs.existsSync(postPath)) { - // Generate image url - imageURL = `${this.config.url}/assets/image/${postPng}?v=${version}`; - } else { - // console.warn(`Warning: ${postPath} not Found!`); - imageURL = `${this.config.url}/assets/image/${homePng}?v=${version}`; - } - return imageURL; -}); \ No newline at end of file + // Check file exists + let postPath = path.resolve("./", "source/assets/image/", postPng); + if (fs.existsSync(postPath)) { + // Generate image url + imageURL = `${this.config.url}/assets/image/${postPng}?v=${version}`; + } else { + // console.warn(`Warning: ${postPath} not Found!`); + imageURL = `${this.config.url}/assets/image/${homePng}?v=${version}`; + } + return imageURL; +}); diff --git a/themes/coo/scripts/share.js b/themes/coo/scripts/share.js index d04a3a25..dc5b0e24 100644 --- a/themes/coo/scripts/share.js +++ b/themes/coo/scripts/share.js @@ -1,32 +1,32 @@ -const {encodeURL} = require('hexo-util'); +const { encodeURL } = require("hexo-util"); hexo.extend.helper.register("share_link", function (type) { - let title = this.page_title(); - let description = this.page_description(); - let url = this.url_for(this.url); - let link = ""; - switch (type) { - case "facebook": - link = `https://facebook.com/sharer/sharer.php?u=${url}`; - break; - case "twitter": - link = `https://twitter.com/intent/tweet/?text=${description}&url=${url}`; - break; - case "linkedin": - link = `https://www.linkedin.com/shareArticle?url=${url}&title=${title}&summary=${description}`; - break; - case "reddit": - link = `https://reddit.com/submit/?url=${url}&resubmit=true&title=${description}`; - break; - case "pinterest": - link = `https://pinterest.com/pin/create/button/?url=${url}&description=${description}`; - break; - case "mail": - link = `mailto:?subject=${title}&body=\n${description}\n\n${url}`; - break; - case "line": - link = `https://social-plugins.line.me/lineit/share?url=${url}`; - break; - } - return encodeURL(link); -}); \ No newline at end of file + let title = this.page_title(); + let description = this.page_description(); + let url = this.url_for(this.url); + let link = ""; + switch (type) { + case "facebook": + link = `https://facebook.com/sharer/sharer.php?u=${url}`; + break; + case "twitter": + link = `https://twitter.com/intent/tweet/?text=${description}&url=${url}`; + break; + case "linkedin": + link = `https://www.linkedin.com/shareArticle?url=${url}&title=${title}&summary=${description}`; + break; + case "reddit": + link = `https://reddit.com/submit/?url=${url}&resubmit=true&title=${description}`; + break; + case "pinterest": + link = `https://pinterest.com/pin/create/button/?url=${url}&description=${description}`; + break; + case "mail": + link = `mailto:?subject=${title}&body=\n${description}\n\n${url}`; + break; + case "line": + link = `https://social-plugins.line.me/lineit/share?url=${url}`; + break; + } + return encodeURL(link); +}); diff --git a/themes/coo/scripts/top_generator.js b/themes/coo/scripts/top_generator.js index eebdc7f0..30241692 100644 --- a/themes/coo/scripts/top_generator.js +++ b/themes/coo/scripts/top_generator.js @@ -1,15 +1,15 @@ -const path = require('path'); -const fs = require('hexo-fs'); +const path = require("path"); +const fs = require("hexo-fs"); -const outputFile = path.resolve("./", "source/ga_analytics_tops.json") +const outputFile = path.resolve("./", "source/ga_analytics_tops.json"); const cache = new Map(); hexo.extend.helper.register("topPosts", function (maximum = 4) { - let posts = cache.get(outputFile); - if (!posts) { - let content = fs.readFileSync(outputFile); - posts = JSON.parse(content); - cache.set(outputFile, posts); - } - return posts.slice(0, maximum); + let posts = cache.get(outputFile); + if (!posts) { + let content = fs.readFileSync(outputFile); + posts = JSON.parse(content); + cache.set(outputFile, posts); + } + return posts.slice(0, maximum); }); diff --git a/themes/coo/source/js/main.js b/themes/coo/source/js/main.js index 4052bd98..c81e06e4 100644 --- a/themes/coo/source/js/main.js +++ b/themes/coo/source/js/main.js @@ -1,421 +1,421 @@ let Utils = (function () { - return { - LIBRARY: { - fuse: { - lib: ['/js/fuse_6.4.6.js'], - instance: 'Fuse', - attr: {async: true} - } - }, - loadScripts: function (urls, callback, attr = {}, container = document.head) { - let scripts = []; - for (let i in urls) { - scripts[i] = document.createElement('script'); - scripts[i].setAttribute("type", "text/javascript"); - scripts[i].setAttribute("src", urls[i]); - Object.keys(attr).forEach(function (key) { - scripts[i].setAttribute(key, attr[key]); - }) - } - let loadNextScript = function () { - let script = scripts.shift(); - let loaded = false; - container.appendChild(script); - script.onload = script.onreadystatechange = function () { - let rs = this.readyState; - if (rs && rs !== 'complete' && rs !== 'loaded') return; - if (loaded) return; - loaded = true; - if (scripts.length) { - loadNextScript(); - } else { - callback() - } - }; - }; + return { + LIBRARY: { + fuse: { + lib: ["/js/fuse_6.4.6.js"], + instance: "Fuse", + attr: { async: true }, + }, + }, + loadScripts: function (urls, callback, attr = {}, container = document.head) { + let scripts = []; + for (let i in urls) { + scripts[i] = document.createElement("script"); + scripts[i].setAttribute("type", "text/javascript"); + scripts[i].setAttribute("src", urls[i]); + Object.keys(attr).forEach(function (key) { + scripts[i].setAttribute(key, attr[key]); + }); + } + let loadNextScript = function () { + let script = scripts.shift(); + let loaded = false; + container.appendChild(script); + script.onload = script.onreadystatechange = function () { + let rs = this.readyState; + if (rs && rs !== "complete" && rs !== "loaded") return; + if (loaded) return; + loaded = true; + if (scripts.length) { loadNextScript(); - }, - externalLibrary(library) { - return new Promise(resolve => { - if (window[library.instance] == null) { - this.loadScripts(library.lib, function () { - resolve(window[library.instance]); - }, library.attr, library.container); - } else { - resolve(window[library.instance]); - } - }); + } else { + callback(); + } + }; + }; + loadNextScript(); + }, + externalLibrary(library) { + return new Promise((resolve) => { + if (window[library.instance] == null) { + this.loadScripts( + library.lib, + function () { + resolve(window[library.instance]); + }, + library.attr, + library.container, + ); + } else { + resolve(window[library.instance]); } - }; -}()); - + }); + }, + }; +})(); -window.addEventListener('load', () => { - const isDarkMode = document.documentElement.classList.contains("dark") - if (!isDarkMode) { - let icon = document.querySelector("#darkMode > i").classList; - icon.toggle('icon-light') - icon.toggle('icon-dark') - } - document.querySelector("#darkMode").addEventListener("click", function () { - let html = document.documentElement.classList; - html.toggle('dark') - let icon = document.querySelector("#darkMode > i").classList; - icon.toggle('icon-light') - icon.toggle('icon-dark') - let isDarkMode = html.contains("dark"); - localStorage.theme = isDarkMode ? "dark" : ""; - }); +window.addEventListener("load", () => { + const isDarkMode = document.documentElement.classList.contains("dark"); + if (!isDarkMode) { + let icon = document.querySelector("#darkMode > i").classList; + icon.toggle("icon-light"); + icon.toggle("icon-dark"); + } + document.querySelector("#darkMode").addEventListener("click", function () { + let html = document.documentElement.classList; + html.toggle("dark"); + let icon = document.querySelector("#darkMode > i").classList; + icon.toggle("icon-light"); + icon.toggle("icon-dark"); + let isDarkMode = html.contains("dark"); + localStorage.theme = isDarkMode ? "dark" : ""; + }); - /******** List Collapsible ***********/ - document.querySelectorAll("ul.collapsible > li > strong").forEach(function (strong) { - let li = strong.parentElement; - li.classList.add("active"); - strong.classList.toggle("arrow-down"); - strong.addEventListener("click", function () { - li.classList.toggle("active"); - this.classList.toggle("arrow-down"); - }); + /******** List Collapsible ***********/ + document.querySelectorAll("ul.collapsible > li > strong").forEach(function (strong) { + let li = strong.parentElement; + li.classList.add("active"); + strong.classList.toggle("arrow-down"); + strong.addEventListener("click", function () { + li.classList.toggle("active"); + this.classList.toggle("arrow-down"); }); + }); - - /******** Remove bottom border noise ********/ - document.querySelectorAll(".h3-wrap ul").forEach(function (ul, i) { - let length = ul.querySelectorAll("li").length; - let matches = ul.className.match("cols-([0-9]+)"); - let cols = matches === null ? 1 : parseInt(matches[1]); - let no_border_length = length === 1 || length % cols === 0 ? cols : length % cols; - for (let j = 1; j <= no_border_length; j++) { - let element = ul.querySelector(`li:nth-last-child(${j})`); - if (element != null) { - element.style.borderBottom = "none"; - } - } - }); - - - /******** h3-wrap blink ***********/ - function blinkSection() { - let hash = window.location.hash; - let anchor = document.querySelector(`a[class="h-anchor"][href="${hash}"]`); - if (anchor != null) { - let anchorSection = anchor.parentElement.parentElement; - document.querySelectorAll(".boxed").forEach((e) => { - e.classList.remove("boxed") - }); - let timer = setTimeout(function () { - anchorSection.classList.add("boxed"); - clearTimeout(timer); - }, 100); - } + /******** Remove bottom border noise ********/ + document.querySelectorAll(".h3-wrap ul").forEach(function (ul, i) { + let length = ul.querySelectorAll("li").length; + let matches = ul.className.match("cols-([0-9]+)"); + let cols = matches === null ? 1 : parseInt(matches[1]); + let no_border_length = length === 1 || length % cols === 0 ? cols : length % cols; + for (let j = 1; j <= no_border_length; j++) { + let element = ul.querySelector(`li:nth-last-child(${j})`); + if (element != null) { + element.style.borderBottom = "none"; + } } + }); - blinkSection(); - window.addEventListener('popstate', blinkSection); - - - /******** Search ***********/ - const searchEngine = function (options) { - let settings = options ? options : {}; - let defaultOptions = { - trigger: "#mysearch-trigger", - container: "#mysearch", - dbPath: `${location.protocol}//${location.host}/search.json?v=1.0` - }; - this.container = (typeof settings.container != 'undefined') ? settings.container : defaultOptions.container; - this.trigger = (typeof settings.trigger != 'undefined') ? settings.trigger : defaultOptions.trigger; - this.dbPath = (typeof settings.dbPath != 'undefined') ? settings.dbPath : defaultOptions.dbPath; + /******** h3-wrap blink ***********/ + function blinkSection() { + let hash = window.location.hash; + let anchor = document.querySelector(`a[class="h-anchor"][href="${hash}"]`); + if (anchor != null) { + let anchorSection = anchor.parentElement.parentElement; + document.querySelectorAll(".boxed").forEach((e) => { + e.classList.remove("boxed"); + }); + let timer = setTimeout(function () { + anchorSection.classList.add("boxed"); + clearTimeout(timer); + }, 100); + } + } - this.lastSearch = {}; + blinkSection(); + window.addEventListener("popstate", blinkSection); - window.search = this; + /******** Search ***********/ + const searchEngine = function (options) { + let settings = options ? options : {}; + let defaultOptions = { + trigger: "#mysearch-trigger", + container: "#mysearch", + dbPath: `${location.protocol}//${location.host}/search.json?v=1.0`, }; - searchEngine.prototype = { - start: function () { - const _this = this; + this.container = typeof settings.container != "undefined" ? settings.container : defaultOptions.container; + this.trigger = typeof settings.trigger != "undefined" ? settings.trigger : defaultOptions.trigger; + this.dbPath = typeof settings.dbPath != "undefined" ? settings.dbPath : defaultOptions.dbPath; - _this.fetchData(); // Prepare search data - this.search = document.querySelector(this.container); - this.box = document.querySelector("#mysearch-box"); - this.input = document.querySelector("#mysearch-input"); - this.result = document.querySelector("#mysearch-list"); - this.lastSearch.query = this.input.value; + this.lastSearch = {}; - this.detectModal(); + window.search = this; + }; + searchEngine.prototype = { + start: function () { + const _this = this; - // Cancel button - const cancel = document.querySelector(".cancel"); - cancel.addEventListener("click", function (e) { - _this.closeModal(true); - }); + _this.fetchData(); // Prepare search data + this.search = document.querySelector(this.container); + this.box = document.querySelector("#mysearch-box"); + this.input = document.querySelector("#mysearch-input"); + this.result = document.querySelector("#mysearch-list"); + this.lastSearch.query = this.input.value; - // Clear button - const clear = document.querySelector("#mysearch-clear"); - clear.addEventListener("click", function (e) { - _this.doSearch("", true).then(); - }); + this.detectModal(); - // Search trigger - const trigger = document.querySelector(_this.trigger); - trigger.addEventListener("click", function (e) { - _this.openModal(true); - }); + // Cancel button + const cancel = document.querySelector(".cancel"); + cancel.addEventListener("click", function (e) { + _this.closeModal(true); + }); - document.body.addEventListener('click', function (e) { - if (_this.isOpened()) { - if (!_this.box.contains(e.target) && !trigger.contains(e.target)) { - _this.closeModal(); - } - } - }); + // Clear button + const clear = document.querySelector("#mysearch-clear"); + clear.addEventListener("click", function (e) { + _this.doSearch("", true).then(); + }); - // Search input event - this.input.addEventListener("keyup", function (e) { - let value = _this.input.value - if (value === _this.lastSearch.query) { - return; - } - _this.doSearch(value, true).then(); - }); + // Search trigger + const trigger = document.querySelector(_this.trigger); + trigger.addEventListener("click", function (e) { + _this.openModal(true); + }); - document.body.addEventListener('keydown', function (e) { - if (e.key === "ArrowDown") { - if (_this.isOpened()) { - _this.moveItem(false) - e.preventDefault(); - e.stopPropagation(); - } - } else if (e.key === 'ArrowUp') { - if (_this.isOpened()) { - _this.moveItem(true) - e.preventDefault(); - e.stopPropagation(); - } - } else if (e.key === 'Enter') { - if (_this.isOpened()) { - let active = _this.result.querySelector("li.active > a") - if (active != null) { - window.location.href = active.getAttribute("href"); - } - } - e.preventDefault(); - e.stopPropagation(); - } else if (e.key === 'Escape') { - _this.closeModal(); - e.preventDefault(); - e.stopPropagation(); - } else if ((e.ctrlKey || e.metaKey) && e.key === 'k') { - _this.toggleModal(); - e.preventDefault(); - e.stopPropagation(); - } - }); + document.body.addEventListener("click", function (e) { + if (_this.isOpened()) { + if (!_this.box.contains(e.target) && !trigger.contains(e.target)) { + _this.closeModal(); + } + } + }); - }, + // Search input event + this.input.addEventListener("keyup", function (e) { + let value = _this.input.value; + if (value === _this.lastSearch.query) { + return; + } + _this.doSearch(value, true).then(); + }); - moveItem: function (up) { - let current = this.result.querySelector("li.active") - let next = up ? current.previousElementSibling : current.nextElementSibling; - if (next !== null) { - current.classList.remove("active"); - current.classList.add("inactive"); - next.classList.remove("inactive"); - next.classList.add("active"); - this.renderPreview(); - } - }, - detectModal: function () { - const url_string = window.location.href; - const url = new URL(url_string); - const query = url.searchParams.get("q"); - if (query != null) { - this.input.value = query; - this.openModal(false); - } - }, - isOpened: function () { - return this.search.classList.contains("block"); - }, - toggleModal: function () { - if (this.isOpened()) { - this.closeModal(); - } else { - this.openModal(); - } - }, - openModal: function (reset) { - this.search.classList.remove("hidden") - this.search.classList.add("block") - if (reset) { - this.input.value = ""; - } - document.body.classList.add("overflow-hidden"); - this.doSearch(this.input.value, false); - this.input.focus(); - }, - closeModal: function (reset) { - this.search.classList.remove("block") - this.search.classList.add("hidden") - if (reset) { - this.input.value = ""; + document.body.addEventListener("keydown", function (e) { + if (e.key === "ArrowDown") { + if (_this.isOpened()) { + _this.moveItem(false); + e.preventDefault(); + e.stopPropagation(); + } + } else if (e.key === "ArrowUp") { + if (_this.isOpened()) { + _this.moveItem(true); + e.preventDefault(); + e.stopPropagation(); + } + } else if (e.key === "Enter") { + if (_this.isOpened()) { + let active = _this.result.querySelector("li.active > a"); + if (active != null) { + window.location.href = active.getAttribute("href"); } - document.body.classList.remove("overflow-hidden"); - this.input.blur(); - }, - changeUrl: function (params) { - let baseURL = `${location.protocol}//${location.host}${location.pathname}`; - let newURL = baseURL; - if (params !== "" && params != null) { - newURL = `${baseURL}?${params}` - } - history.pushState({}, null, newURL); - }, - fetchData: async function () { - const _this = this; - if (_this.index !== undefined) { - return; - } - return await fetch(_this.dbPath) - .then(resp => resp.text()) - .then(resp => { - _this.db = JSON.parse(resp); - _this.index = new Fuse(_this.db, { - // isCaseSensitive: false, - includeScore: false, - shouldSort: true, - includeMatches: true, - matchEmptyQuery: true, - // minMatchCharLength: 1, - // location: 0, - threshold: 0.1, - // distance: 100, - // useExtendedSearch: false, - // ignoreLocation: true, - // ignoreFieldNorm: false, - keys: [ - {name: 'title', weight: 12}, - {name: 'tags', weight: 6}, - {name: 'categories', weight: 6}, - {name: 'sections.h3.title', weight: 5}, - {name: 'sections.h2.title', weight: 1}, - {name: 'intro', weight: 1}, - ] - }); - // default return all - _this.lastSearch.whole = _this.db.map((doc, idx) => ({ - item: doc, - score: 1, - refIndex: idx - })); - return resp; - }); - }, - doSearch: async function (value, history) { - const _this = this; - await _this.fetchData().then(() => { - if (this.lastSearch.query === value && this.lastSearch.resp !== undefined) { - this.renderResult(this.lastSearch.resp); - this.renderPreview(); - } else { - let results = value !== "" ? _this.index.search(`${value}`) : _this.lastSearch.whole; - if (history) { - this.changeUrl(value === "" ? null : `q=${value}`); - } - this.lastSearch.query = value; - this.lastSearch.resp = results; - this.renderResult(results); - this.renderPreview(); - } - }); - }, - addEventToResult: function () { - const _this = this; - this.result.querySelectorAll("li").forEach(function (li) { - li.addEventListener("mouseover", function (e) { - if (_this.isOpened()) { - _this.result.querySelectorAll("li").forEach(function (e) { - e.classList.remove("active") - e.classList.add("inactive") - }); - this.classList.remove("inactive"); - this.classList.add("active"); - _this.renderPreview(); - } - }); + } + e.preventDefault(); + e.stopPropagation(); + } else if (e.key === "Escape") { + _this.closeModal(); + e.preventDefault(); + e.stopPropagation(); + } else if ((e.ctrlKey || e.metaKey) && e.key === "k") { + _this.toggleModal(); + e.preventDefault(); + e.stopPropagation(); + } + }); + }, + + moveItem: function (up) { + let current = this.result.querySelector("li.active"); + let next = up ? current.previousElementSibling : current.nextElementSibling; + if (next !== null) { + current.classList.remove("active"); + current.classList.add("inactive"); + next.classList.remove("inactive"); + next.classList.add("active"); + this.renderPreview(); + } + }, + detectModal: function () { + const url_string = window.location.href; + const url = new URL(url_string); + const query = url.searchParams.get("q"); + if (query != null) { + this.input.value = query; + this.openModal(false); + } + }, + isOpened: function () { + return this.search.classList.contains("block"); + }, + toggleModal: function () { + if (this.isOpened()) { + this.closeModal(); + } else { + this.openModal(); + } + }, + openModal: function (reset) { + this.search.classList.remove("hidden"); + this.search.classList.add("block"); + if (reset) { + this.input.value = ""; + } + document.body.classList.add("overflow-hidden"); + this.doSearch(this.input.value, false); + this.input.focus(); + }, + closeModal: function (reset) { + this.search.classList.remove("block"); + this.search.classList.add("hidden"); + if (reset) { + this.input.value = ""; + } + document.body.classList.remove("overflow-hidden"); + this.input.blur(); + }, + changeUrl: function (params) { + let baseURL = `${location.protocol}//${location.host}${location.pathname}`; + let newURL = baseURL; + if (params !== "" && params != null) { + newURL = `${baseURL}?${params}`; + } + history.pushState({}, null, newURL); + }, + fetchData: async function () { + const _this = this; + if (_this.index !== undefined) { + return; + } + return await fetch(_this.dbPath) + .then((resp) => resp.text()) + .then((resp) => { + _this.db = JSON.parse(resp); + _this.index = new Fuse(_this.db, { + // isCaseSensitive: false, + includeScore: false, + shouldSort: true, + includeMatches: true, + matchEmptyQuery: true, + // minMatchCharLength: 1, + // location: 0, + threshold: 0.1, + // distance: 100, + // useExtendedSearch: false, + // ignoreLocation: true, + // ignoreFieldNorm: false, + keys: [ + { name: "title", weight: 12 }, + { name: "tags", weight: 6 }, + { name: "categories", weight: 6 }, + { name: "sections.h3.title", weight: 5 }, + { name: "sections.h2.title", weight: 1 }, + { name: "intro", weight: 1 }, + ], + }); + // default return all + _this.lastSearch.whole = _this.db.map((doc, idx) => ({ + item: doc, + score: 1, + refIndex: idx, + })); + return resp; + }); + }, + doSearch: async function (value, history) { + const _this = this; + await _this.fetchData().then(() => { + if (this.lastSearch.query === value && this.lastSearch.resp !== undefined) { + this.renderResult(this.lastSearch.resp); + this.renderPreview(); + } else { + let results = value !== "" ? _this.index.search(`${value}`) : _this.lastSearch.whole; + if (history) { + this.changeUrl(value === "" ? null : `q=${value}`); + } + this.lastSearch.query = value; + this.lastSearch.resp = results; + this.renderResult(results); + this.renderPreview(); + } + }); + }, + addEventToResult: function () { + const _this = this; + this.result.querySelectorAll("li").forEach(function (li) { + li.addEventListener("mouseover", function (e) { + if (_this.isOpened()) { + _this.result.querySelectorAll("li").forEach(function (e) { + e.classList.remove("active"); + e.classList.add("inactive"); }); - }, - mark: function (text, matches) { - let result = [] - let pair = matches.shift() - // Build the formatted string - for (let i = 0; i < text.length; i++) { - let char = text.charAt(i) - if (pair && i === pair[0]) { - result.push('') - } - result.push(char) - if (pair && i === pair[1]) { - result.push('') - pair = matches.shift() - } - } - return result.join(''); - }, - highlightMatches: function (result) { - if (result.matches === undefined || result.item.length === 0) { - return; + this.classList.remove("inactive"); + this.classList.add("active"); + _this.renderPreview(); + } + }); + }); + }, + mark: function (text, matches) { + let result = []; + let pair = matches.shift(); + // Build the formatted string + for (let i = 0; i < text.length; i++) { + let char = text.charAt(i); + if (pair && i === pair[0]) { + result.push(""); + } + result.push(char); + if (pair && i === pair[1]) { + result.push(""); + pair = matches.shift(); + } + } + return result.join(""); + }, + highlightMatches: function (result) { + if (result.matches === undefined || result.item.length === 0) { + return; + } + const _this = this; + result.item = JSON.parse(JSON.stringify(_this.db[result.refIndex])); + result.matches.forEach((m) => { + switch (m.key) { + case "tags": + case "categories": + result.item[m.key][m.refIndex] = _this.mark(m.value, m.indices); + break; + case "sections.h2.title": + result.item["sections"][m.refIndex]["h2"]["title"] = _this.mark(m.value, m.indices); + break; + case "sections.h3.title": + let currLength = 0; + let lastLength = 0; + for (let i = 0; i < result.item["sections"].length; i++) { + let subArr = result.item["sections"][i]["h3"]; + currLength += subArr.length; + if (m.refIndex >= lastLength && m.refIndex < currLength) { + result.item["sections"][i]["h3"][m.refIndex - lastLength]["title"] = _this.mark(m.value, m.indices); + break; + } + lastLength += subArr.length; } - const _this = this; - result.item = JSON.parse(JSON.stringify(_this.db[result.refIndex])) - result.matches.forEach(m => { - switch (m.key) { - case "tags": - case "categories": - result.item[m.key][m.refIndex] = _this.mark(m.value, m.indices); - break; - case "sections.h2.title": - result.item["sections"][m.refIndex]["h2"]["title"] = _this.mark(m.value, m.indices); - break; - case "sections.h3.title": - let currLength = 0; - let lastLength = 0; - for (let i = 0; i < result.item["sections"].length; i++) { - let subArr = result.item["sections"][i]["h3"]; - currLength += subArr.length; - if (m.refIndex >= lastLength && m.refIndex < currLength) { - result.item["sections"][i]["h3"][m.refIndex - lastLength]["title"] = _this.mark(m.value, m.indices) - break; - } - lastLength += subArr.length; - } - break; - default: - result.item[m.key] = _this.mark(m.value, m.indices); - break; - } - }) - }, - renderResult: function (results) { - const _this = this; - let liHtml = ""; - let index = 0; - results.forEach(function (result, itemIndex) { - let activeStr = "inactive"; - if (index === 0) { - activeStr = "active"; - } + break; + default: + result.item[m.key] = _this.mark(m.value, m.indices); + break; + } + }); + }, + renderResult: function (results) { + const _this = this; + let liHtml = ""; + let index = 0; + results.forEach(function (result, itemIndex) { + let activeStr = "inactive"; + if (index === 0) { + activeStr = "active"; + } - _this.highlightMatches(result); + _this.highlightMatches(result); - let hit = result.item; - let tags = hit.tags || []; - let categories = hit.categories || []; - let tagStr = tags.join(""); - let tagsHTML = ""; - if (tagStr !== "") { - tagsHTML = `
${tagStr}` - } - liHtml += `
  • + let hit = result.item; + let tags = hit.tags || []; + let categories = hit.categories || []; + let tagStr = tags.join(""); + let tagsHTML = ""; + if (tagStr !== "") { + tagsHTML = `
    ${tagStr}`; + } + liHtml += `
  • `; - index++; - }); + index++; + }); - this.result.innerHTML = liHtml; - this.addEventToResult(); - }, - renderPreview() { - const active = this.search.querySelector("li.active"); - if (active == null) { - return; - } - const _this = this; - let itemIndex = active.getAttribute("data-index"); - let hit = _this.lastSearch.resp[parseInt(itemIndex)].item; + this.result.innerHTML = liHtml; + this.addEventToResult(); + }, + renderPreview() { + const active = this.search.querySelector("li.active"); + if (active == null) { + return; + } + const _this = this; + let itemIndex = active.getAttribute("data-index"); + let hit = _this.lastSearch.resp[parseInt(itemIndex)].item; - let olInnerHtml = ""; + let olInnerHtml = ""; - hit.sections.forEach(function (section, index, array) { - let h3HTML = ""; - section.h3.forEach(function (h3) { - let anchor = hit.path + h3.anchor; - h3HTML += `${h3.title.toLowerCase()}` - }); - let anchor = hit.path + section.h2.anchor; - olInnerHtml += `
  • + hit.sections.forEach(function (section, index, array) { + let h3HTML = ""; + section.h3.forEach(function (h3) { + let anchor = hit.path + h3.anchor; + h3HTML += `${h3.title.toLowerCase()}`; + }); + let anchor = hit.path + section.h2.anchor; + olInnerHtml += `
  • ${section.h2.title}
  • ${h3HTML}`; - }) + }); - - document.querySelector(".preview-panel").innerHTML = `
    + document.querySelector(".preview-panel").innerHTML = `
    -
    +
    ${hit.icon}
    ${hit.title}
      ${olInnerHtml}
    `; - } - }; + }, + }; - // Start search - Utils.externalLibrary(Utils.LIBRARY.fuse).then(() => new searchEngine().start()); + // Start search + Utils.externalLibrary(Utils.LIBRARY.fuse).then(() => new searchEngine().start()); }); From 8b522dc6271e1eaf31fdb425ced3370cfbee391f Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:49:20 -0700 Subject: [PATCH 05/81] chore: lint README Lints the README. Separate commit as it does a lot of reflowing. --- README.md | 391 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 250 insertions(+), 141 deletions(-) diff --git a/README.md b/README.md index e3216a8e..cab3cf01 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,11 @@ [![License](https://badgen.net/badge/license/MIT/blue)](https://github.com/Fechin/reference/blob/main/LICENSE) [![Follow us on Twitter](https://img.shields.io/twitter/follow/FechinLi?style=social)](https://twitter.com/FechinLi) +Reference is a collection of cheat sheets contributed by open source angels. It shares a quick reference cheat sheet for +developers in a nice layout. \[ [中文版](https://github.com/jaywcjlove/reference) | ... \] -Reference is a collection of cheat sheets contributed by open source angels. It shares a quick reference cheat sheet for developers in a nice layout. \[ [中文版](https://github.com/jaywcjlove/reference) | ... \] - -We encourage you to share your own cheat sheets with the community and make Reference even better. If you notice a cheat sheet that could be improved, feel free to submit a [pull request](#-contributing). - - - +We encourage you to share your own cheat sheets with the community and make Reference even better. If you notice a cheat +sheet that could be improved, feel free to submit a [pull request](#-contributing). ## 👀 Live Demonstration @@ -18,79 +16,121 @@ You can view the cheat sheets live at [https://cheatsheets.zip](https://cheatshe [![Quick reference](https://cheatsheets.zip/assets/image/preview.png)](https://cheatsheets.zip) - ## 📚 Cheat Sheets List Reference provides cheat sheets for the following: -
    Programming -- [Kubernetes](https://cheatsheets.zip/kubernetes.html): This page contains a list of commonly used kubectl commands and flags. -- [ES6](https://cheatsheets.zip/es6.html): A quick reference cheat sheet of what's new in JavaScript for ES2015, ES2016, ES2017, ES2018 and beyond -- [MATLAB](https://cheatsheets.zip/matlab.html): This quick reference cheat sheet provides an example introduction to using the [MATLAB](https://mathworks.cn/) scientific computing language to get started quickly +- [Kubernetes](https://cheatsheets.zip/kubernetes.html): This page contains a list of commonly used kubectl commands and + flags. +- [ES6](https://cheatsheets.zip/es6.html): A quick reference cheat sheet of what's new in JavaScript for ES2015, ES2016, + ES2017, ES2018 and beyond +- [MATLAB](https://cheatsheets.zip/matlab.html): This quick reference cheat sheet provides an example introduction to + using the [MATLAB](https://mathworks.cn/) scientific computing language to get started quickly - [C](https://cheatsheets.zip/c.html): C quick reference cheat sheet that provides basic syntax and methods. -- [INI](https://cheatsheets.zip/ini.html): This is a quick reference cheat sheet for understanding and writing INI-format configuration files. -- [LaTeX](https://cheatsheets.zip/latex.html): This cheat sheet summarizes a reference list of [LaTeX](https://www.latex-project.org/) commonly used display math notation and some application examples of [KaTeX](https://katex.org/). -- [Rust](https://cheatsheets.zip/rust.html): The Rust quick reference cheat sheet that aims at providing help on writing basic syntax and methods. +- [INI](https://cheatsheets.zip/ini.html): This is a quick reference cheat sheet for understanding and writing + INI-format configuration files. +- [LaTeX](https://cheatsheets.zip/latex.html): This cheat sheet summarizes a reference list of + [LaTeX](https://www.latex-project.org/) commonly used display math notation and some application examples of + [KaTeX](https://katex.org/). +- [Rust](https://cheatsheets.zip/rust.html): The Rust quick reference cheat sheet that aims at providing help on writing + basic syntax and methods. - [C#](https://cheatsheets.zip/cs.html): C# quick reference cheat sheet that provides basic syntax and methods. -- [Laravel](https://cheatsheets.zip/laravel.html): [Laravel](https://laravel.com/docs/8.x/) is an expressive and progressive web application framework for PHP. - This cheat sheet provides a reference for common commands and features for Laravel 8. -- [Dart](https://cheatsheets.zip/dart.html): A Dart cheat sheet with the most important concepts, functions, methods, and more. A complete quick reference for beginners. -- [JSON](https://cheatsheets.zip/json.html): This is a quick reference cheat sheet for understanding and writing JSON format configuration files. -- [Hook](https://cheatsheets.zip/hook.html): The [Hook](https://github.com/hook-lang/hook/) cheat sheet is a one-page reference sheet for the Hook programming language. -- [HTML](https://cheatsheets.zip/html.html): This HTML quick reference cheat sheet lists the common HTML and HTML5 tags in readable layout. -- [GraphQL](https://cheatsheets.zip/graphql.html): This quick reference cheat sheet provides a brief overview of GraphQL. +- [Laravel](https://cheatsheets.zip/laravel.html): [Laravel](https://laravel.com/docs/8.x/) is an expressive and + progressive web application framework for PHP. This cheat sheet provides a reference for common commands and features + for Laravel 8. +- [Dart](https://cheatsheets.zip/dart.html): A Dart cheat sheet with the most important concepts, functions, methods, + and more. A complete quick reference for beginners. +- [JSON](https://cheatsheets.zip/json.html): This is a quick reference cheat sheet for understanding and writing JSON + format configuration files. +- [Hook](https://cheatsheets.zip/hook.html): The [Hook](https://github.com/hook-lang/hook/) cheat sheet is a one-page + reference sheet for the Hook programming language. +- [HTML](https://cheatsheets.zip/html.html): This HTML quick reference cheat sheet lists the common HTML and HTML5 tags + in readable layout. +- [GraphQL](https://cheatsheets.zip/graphql.html): This quick reference cheat sheet provides a brief overview of + GraphQL. - [C++](https://cheatsheets.zip/cpp.html): C++ quick reference cheat sheet that provides basic syntax and methods. -- [Java](https://cheatsheets.zip/java.html): This cheat sheet is a crash course for Java beginners and help review the basic syntax of the Java language. -- [PHP](https://cheatsheets.zip/php.html): This [PHP](https://www.php.net/manual/en/) cheat sheet provides a reference for quickly looking up the correct syntax for the code you use most frequently. -- [Docker](https://cheatsheets.zip/docker.html): This is a quick reference cheat sheet for [Docker](https://docs.docker.com/get-started/). And you can find the most common Docker commands here. -- [TOML](https://cheatsheets.zip/toml.html): This is a quick reference cheat sheet to the TOML format configuration file syntax. -- [YAML](https://cheatsheets.zip/yaml.html): This is a quick reference cheat sheet for understanding and writing YAML format configuration files. -- [CSS 3](https://cheatsheets.zip/css.html): This is a quick reference cheat sheet for CSS goodness, listing selector syntax, properties, units and other useful bits of information. -- [jQuery](https://cheatsheets.zip/jquery.html): This [jQuery](https://jquery.com/) cheat sheet is a great reference for both beginners and experienced developers. -- [JavaScript](https://cheatsheets.zip/javascript.html): A JavaScript cheat sheet with the most important concepts, functions, methods, and more. A complete quick reference for beginners. -- [Python](https://cheatsheets.zip/python.html): The [Python](https://www.python.org/) cheat sheet is a one-page reference sheet for the Python 3 programming language. -- [Sass](https://cheatsheets.zip/sass.html): This is a quick reference cheat sheet that lists the most useful features of [SASS](https://sass-lang.com). -- [Go](https://cheatsheets.zip/go.html): This cheat sheet provided basic syntax and methods to help you using [Go](https://go.dev/). +- [Java](https://cheatsheets.zip/java.html): This cheat sheet is a crash course for Java beginners and help review the + basic syntax of the Java language. +- [PHP](https://cheatsheets.zip/php.html): This [PHP](https://www.php.net/manual/en/) cheat sheet provides a reference + for quickly looking up the correct syntax for the code you use most frequently. +- [Docker](https://cheatsheets.zip/docker.html): This is a quick reference cheat sheet for + [Docker](https://docs.docker.com/get-started/). And you can find the most common Docker commands here. +- [TOML](https://cheatsheets.zip/toml.html): This is a quick reference cheat sheet to the TOML format configuration file + syntax. +- [YAML](https://cheatsheets.zip/yaml.html): This is a quick reference cheat sheet for understanding and writing YAML + format configuration files. +- [CSS 3](https://cheatsheets.zip/css.html): This is a quick reference cheat sheet for CSS goodness, listing selector + syntax, properties, units and other useful bits of information. +- [jQuery](https://cheatsheets.zip/jquery.html): This [jQuery](https://jquery.com/) cheat sheet is a great reference for + both beginners and experienced developers. +- [JavaScript](https://cheatsheets.zip/javascript.html): A JavaScript cheat sheet with the most important concepts, + functions, methods, and more. A complete quick reference for beginners. +- [Python](https://cheatsheets.zip/python.html): The [Python](https://www.python.org/) cheat sheet is a one-page + reference sheet for the Python 3 programming language. +- [Sass](https://cheatsheets.zip/sass.html): This is a quick reference cheat sheet that lists the most useful features + of [SASS](https://sass-lang.com). +- [Go](https://cheatsheets.zip/go.html): This cheat sheet provided basic syntax and methods to help you using + [Go](https://go.dev/). - [Markdown](https://cheatsheets.zip/markdown.html): This is a quick reference cheat sheet to the Markdown syntax. -- [Bash](https://cheatsheets.zip/bash.html): This is a quick reference cheat sheet to getting started with Linux bash shell scripting. +- [Bash](https://cheatsheets.zip/bash.html): This is a quick reference cheat sheet to getting started with Linux bash + shell scripting.
    Toolkit -- [ChatGPT](https://cheatsheets.zip/chatgpt.html): This cheat sheet lists out prompts and tips from all over the world on how to use ChatGPT effectively -- [VSCode](https://cheatsheets.zip/vscode.html): This VSCode (Visual Studio Code) quick reference cheat sheet shows its keyboard shortcuts and commands. -- [Mitmproxy](https://cheatsheets.zip/mitmproxy.html): [Mitmproxy](https://mitmproxy.org/) is a free and open source interactive HTTPS proxy. This is a quick reference cheat sheet to the Mitmproxy. -- [XPath](https://cheatsheets.zip/xpath.html): This is an [XPath](https://en.wikipedia.org/wiki/XPath) selectors cheat sheet, which lists commonly used XPath positioning methods and CSS selectors -- [Emacs](https://cheatsheets.zip/emacs.html): [Emacs](https://www.gnu.org/software/emacs) is the extensible, customizable, self-documenting real time display text editor. - This reference was made for Emacs 27. -- [Emmet](https://cheatsheets.zip/emmet.html): [Emmet](https://emmet.io/) is a web-developer’s toolkit for boosting HTML & CSS code writing, which allows you to write large HTML code blocks at speed of light using well-known CSS selectors. -- [RegEX](https://cheatsheets.zip/regex.html): A quick reference for regular expressions (regex), including symbols, ranges, grouping, assertions and some sample patterns to get you started. -- [Vim](https://cheatsheets.zip/vim.html): A useful collection of [Vim](http://www.vim.org/) 8.2 quick reference cheat sheets to help you learn vim editor faster. +- [ChatGPT](https://cheatsheets.zip/chatgpt.html): This cheat sheet lists out prompts and tips from all over the world + on how to use ChatGPT effectively +- [VSCode](https://cheatsheets.zip/vscode.html): This VSCode (Visual Studio Code) quick reference cheat sheet shows its + keyboard shortcuts and commands. +- [Mitmproxy](https://cheatsheets.zip/mitmproxy.html): [Mitmproxy](https://mitmproxy.org/) is a free and open source + interactive HTTPS proxy. This is a quick reference cheat sheet to the Mitmproxy. +- [XPath](https://cheatsheets.zip/xpath.html): This is an [XPath](https://en.wikipedia.org/wiki/XPath) selectors cheat + sheet, which lists commonly used XPath positioning methods and CSS selectors +- [Emacs](https://cheatsheets.zip/emacs.html): [Emacs](https://www.gnu.org/software/emacs) is the extensible, + customizable, self-documenting real time display text editor. This reference was made for Emacs 27. +- [Emmet](https://cheatsheets.zip/emmet.html): [Emmet](https://emmet.io/) is a web-developer’s toolkit for boosting HTML + & CSS code writing, which allows you to write large HTML code blocks at speed of light using well-known CSS selectors. +- [RegEX](https://cheatsheets.zip/regex.html): A quick reference for regular expressions (regex), including symbols, + ranges, grouping, assertions and some sample patterns to get you started. +- [Vim](https://cheatsheets.zip/vim.html): A useful collection of [Vim](http://www.vim.org/) 8.2 quick reference cheat + sheets to help you learn vim editor faster.
    Linux Command -- [Curl](https://cheatsheets.zip/curl.html): This [Curl](https://github.com/curl/curl) cheat sheet contains commands and examples of some common Curl tricks. -- [PM2](https://cheatsheets.zip/pm2.html): [PM2] is a daemon process manager that will help you manage and keep your application online. Getting started with PM2 is straightforward, it is offered as a simple and intuitive CLI. -- [Chmod](https://cheatsheets.zip/chmod.html): This quick reference cheat sheet provides a brief overview of file permissions, and the operation of the chmod command -- [Tmux](https://cheatsheets.zip/tmux.html): The tmux cheat sheet quick reference of most commonly used shortcuts and commands +- [Curl](https://cheatsheets.zip/curl.html): This [Curl](https://github.com/curl/curl) cheat sheet contains commands and + examples of some common Curl tricks. +- [PM2](https://cheatsheets.zip/pm2.html): [PM2] is a daemon process manager that will help you manage and keep your + application online. Getting started with PM2 is straightforward, it is offered as a simple and intuitive CLI. +- [Chmod](https://cheatsheets.zip/chmod.html): This quick reference cheat sheet provides a brief overview of file + permissions, and the operation of the chmod command +- [Tmux](https://cheatsheets.zip/tmux.html): The tmux cheat sheet quick reference of most commonly used shortcuts and + commands - [Lsof](https://cheatsheets.zip/lsof.html): This quick reference cheat sheet provides various for using lsof command. - [SSH](https://cheatsheets.zip/ssh.html): This quick reference cheat sheet provides various for using SSH. -- [Netstat](https://cheatsheets.zip/netstat.html): This quick reference cheat sheet provides various for using netstat command. +- [Netstat](https://cheatsheets.zip/netstat.html): This quick reference cheat sheet provides various for using netstat + command. - [Screen](https://cheatsheets.zip/screen.html): This is a quick reference guide cheat sheet for the screen command. -- [Awk](https://cheatsheets.zip/awk.html): This is a one page quick reference cheat sheet to the [GNU awk](https://www.gnu.org/software/gawk/manual/gawk.html), which covers commonly used awk expressions and commands. -- [Find](https://cheatsheets.zip/find.html): This is a quick reference list of cheat sheet for Linux find command, contains common options and examples. -- [Sed](https://cheatsheets.zip/sed.html): [Sed](https://www.gnu.org/software/sed/manual/sed.html) is a stream editor, this sed cheat sheet contains sed commands and some common sed tricks. -- [Cron](https://cheatsheets.zip/cron.html): [Cron](https://en.wikipedia.org/wiki/Cron) is most suitable for scheduling repetitive tasks. Scheduling one-time tasks can be accomplished using the associated at utility. -- [Git](https://cheatsheets.zip/git.html): This cheat sheet summarizes commonly used Git command line instructions for quick reference. -- [Grep](https://cheatsheets.zip/grep.html): This cheat sheet is intended to be a quick reminder for the main concepts involved in using the command line program grep and assumes you already understand its usage. +- [Awk](https://cheatsheets.zip/awk.html): This is a one page quick reference cheat sheet to the + [GNU awk](https://www.gnu.org/software/gawk/manual/gawk.html), which covers commonly used awk expressions and + commands. +- [Find](https://cheatsheets.zip/find.html): This is a quick reference list of cheat sheet for Linux find command, + contains common options and examples. +- [Sed](https://cheatsheets.zip/sed.html): [Sed](https://www.gnu.org/software/sed/manual/sed.html) is a stream editor, + this sed cheat sheet contains sed commands and some common sed tricks. +- [Cron](https://cheatsheets.zip/cron.html): [Cron](https://en.wikipedia.org/wiki/Cron) is most suitable for scheduling + repetitive tasks. Scheduling one-time tasks can be accomplished using the associated at utility. +- [Git](https://cheatsheets.zip/git.html): This cheat sheet summarizes commonly used Git command line instructions for + quick reference. +- [Grep](https://cheatsheets.zip/grep.html): This cheat sheet is intended to be a quick reminder for the main concepts + involved in using the command line program grep and assumes you already understand its usage. - [Netcat](https://cheatsheets.zip/nc.html): This cheat sheet provides various for using netcat on both Linux and Unix. - [Taskset](https://cheatsheets.zip/taskset): This quick reference cheat sheet for tasket command.
    @@ -98,121 +138,191 @@ Reference provides cheat sheets for the following:
    Python -- [NumPy](https://cheatsheets.zip/numpy.html): [NumPy](https://numpy.org/) is the fundamental package for scientific computing with Python. This cheat sheet is a quick reference for NumPy beginners. +- [NumPy](https://cheatsheets.zip/numpy.html): [NumPy](https://numpy.org/) is the fundamental package for scientific + computing with Python. This cheat sheet is a quick reference for NumPy beginners.
    Database -- [Neo4j](https://cheatsheets.zip/neo4j.html): A Neo4j cheat sheet with getting started resources and information on how to query the database with Cypher. -- [PostgreSQL](https://cheatsheets.zip/postgres.html): The [PostgreSQL](https://www.postgresql.org/docs/current/) cheat sheet provides you with the common PostgreSQL commands and statements. -- [Redis](https://cheatsheets.zip/redis.html): This is a [Redis](https://redis.io/) quick reference cheat sheet that lists examples of redis commands -- [MySQL](https://cheatsheets.zip/mysql.html): The SQL cheat sheet provides you with the most commonly used SQL statements for your reference. +- [Neo4j](https://cheatsheets.zip/neo4j.html): A Neo4j cheat sheet with getting started resources and information on how + to query the database with Cypher. +- [PostgreSQL](https://cheatsheets.zip/postgres.html): The [PostgreSQL](https://www.postgresql.org/docs/current/) cheat + sheet provides you with the common PostgreSQL commands and statements. +- [Redis](https://cheatsheets.zip/redis.html): This is a [Redis](https://redis.io/) quick reference cheat sheet that + lists examples of redis commands +- [MySQL](https://cheatsheets.zip/mysql.html): The SQL cheat sheet provides you with the most commonly used SQL + statements for your reference.
    Keyboard Shortcuts -- [Adobe Photoshop](https://cheatsheets.zip/adobe-photoshop.html): A visual cheat-sheet for the 283 keyboard shortcuts found in Adobe Photoshop -- [Apex Legends](https://cheatsheets.zip/apex-legends.html): A visual cheat-sheet for the 27 default keyboard shortcuts found in Apex Legends +- [Adobe Photoshop](https://cheatsheets.zip/adobe-photoshop.html): A visual cheat-sheet for the 283 keyboard shortcuts + found in Adobe Photoshop +- [Apex Legends](https://cheatsheets.zip/apex-legends.html): A visual cheat-sheet for the 27 default keyboard shortcuts + found in Apex Legends - [Figma](https://cheatsheets.zip/figma.html): A visual cheat-sheet for the 119 keyboard shortcuts found in Figma -- [Microsoft Teams](https://cheatsheets.zip/microsoft-teams.html): A visual cheat-sheet for the 38 keyboard shortcuts found in Microsoft Teams -- [TablePlus](https://cheatsheets.zip/table-plus.html): A visual cheat-sheet for the 34 keyboard shortcuts found in TablePlus -- [Bear](https://cheatsheets.zip/bear-notes.html): A visual cheat-sheet for the 66 keyboard shortcuts found in Bear. This application is MacOS-only. -- [Feedly](https://cheatsheets.zip/feedly.html): A visual cheat-sheet for the 25 keyboard shortcuts found on the Feedly app -- [FileZilla](https://cheatsheets.zip/filezilla.html): A visual cheat-sheet for the 30 keyboard shortcuts found on the FileZilla program +- [Microsoft Teams](https://cheatsheets.zip/microsoft-teams.html): A visual cheat-sheet for the 38 keyboard shortcuts + found in Microsoft Teams +- [TablePlus](https://cheatsheets.zip/table-plus.html): A visual cheat-sheet for the 34 keyboard shortcuts found in + TablePlus +- [Bear](https://cheatsheets.zip/bear-notes.html): A visual cheat-sheet for the 66 keyboard shortcuts found in Bear. + This application is MacOS-only. +- [Feedly](https://cheatsheets.zip/feedly.html): A visual cheat-sheet for the 25 keyboard shortcuts found on the Feedly + app +- [FileZilla](https://cheatsheets.zip/filezilla.html): A visual cheat-sheet for the 30 keyboard shortcuts found on the + FileZilla program - [Reddit](https://cheatsheets.zip/reddit.html): A visual cheat-sheet for the 17 keyboard shortcuts found on Reddit.com - [Slack](https://cheatsheets.zip/slack.html): A visual cheat-sheet for the 62 keyboard shortcuts found in Slack -- [SoundCloud](https://cheatsheets.zip/soundcloud.html): A visual cheat-sheet for the 22 keyboard shortcuts found on SoundCloud +- [SoundCloud](https://cheatsheets.zip/soundcloud.html): A visual cheat-sheet for the 22 keyboard shortcuts found on + SoundCloud - [Twitter](https://cheatsheets.zip/twitter.html): A visual cheat-sheet for the 26 keyboard shortcuts found on Twitter -- [Android Studio](https://cheatsheets.zip/android-studio.html): A visual cheat-sheet for the 130 keyboard shortcuts found in the Android Studio software +- [Android Studio](https://cheatsheets.zip/android-studio.html): A visual cheat-sheet for the 130 keyboard shortcuts + found in the Android Studio software - [Github](https://cheatsheets.zip/github.html): A visual cheat-sheet for the 80 keyboard shortcuts found on Github.com -- [Shopify](https://cheatsheets.zip/shopify.html): A visual cheat-sheet for the 50 keyboard shortcuts found on the Shopify website -- [Zoom](https://cheatsheets.zip/zoom.html): A visual cheat-sheet for the 32 keyboard shortcuts found in Zoom. These shortcuts are for MacOS, for Windows visit /zoom-windows. -- [Adobe XD](https://cheatsheets.zip/adobe-xd.html): A visual cheat-sheet for the 97 keyboard shortcuts found in Adobe XD +- [Shopify](https://cheatsheets.zip/shopify.html): A visual cheat-sheet for the 50 keyboard shortcuts found on the + Shopify website +- [Zoom](https://cheatsheets.zip/zoom.html): A visual cheat-sheet for the 32 keyboard shortcuts found in Zoom. These + shortcuts are for MacOS, for Windows visit /zoom-windows. +- [Adobe XD](https://cheatsheets.zip/adobe-xd.html): A visual cheat-sheet for the 97 keyboard shortcuts found in Adobe + XD - [Firefox](https://cheatsheets.zip/firefox.html): A visual cheat-sheet for the 116 keyboard shortcuts found in Firefox -- [PhpStorm](https://cheatsheets.zip/phpstorm.html): A visual cheat-sheet for the 96 keyboard shortcuts found in JetBrains PhpStorm +- [PhpStorm](https://cheatsheets.zip/phpstorm.html): A visual cheat-sheet for the 96 keyboard shortcuts found in + JetBrains PhpStorm - [Postman](https://cheatsheets.zip/postman.html): A visual cheat-sheet for the 23 keyboard shortcuts found in Postman - [Webflow](https://cheatsheets.zip/webflow.html): A visual cheat-sheet for the 41 keyboard shortcuts found in Webflow -- [Adobe Lightroom CC](https://cheatsheets.zip/adobe-lightroom.html): A visual cheat-sheet for the 251 keyboard shortcuts found in Adobe Lightroom CC -- [1Password](https://cheatsheets.zip/1password.html): A cheat sheet for 1password's keyboard shortcuts in Mac, Windows, iOS, Linux. -- [Affinity Designer](https://cheatsheets.zip/affinity-designer.html): A visual cheat-sheet for the 108 keyboard shortcuts found in Affinity Designer -- [Pocket](https://cheatsheets.zip/pocket.html): A visual cheat-sheet for the 36 keyboard shortcuts found on Pocket for Web +- [Adobe Lightroom CC](https://cheatsheets.zip/adobe-lightroom.html): A visual cheat-sheet for the 251 keyboard + shortcuts found in Adobe Lightroom CC +- [1Password](https://cheatsheets.zip/1password.html): A cheat sheet for 1password's keyboard shortcuts in Mac, Windows, + iOS, Linux. +- [Affinity Designer](https://cheatsheets.zip/affinity-designer.html): A visual cheat-sheet for the 108 keyboard + shortcuts found in Affinity Designer +- [Pocket](https://cheatsheets.zip/pocket.html): A visual cheat-sheet for the 36 keyboard shortcuts found on Pocket for + Web - [Trello](https://cheatsheets.zip/trello.html): A visual cheat-sheet for the 29 keyboard shortcuts found on Trello -- [Audacity](https://cheatsheets.zip/audacity.html): A visual cheat-sheet for the 135 default keyboard shortcuts found in Audacity -- [Framer X](https://cheatsheets.zip/framer-x.html): A visual cheat-sheet for the 45 keyboard shortcuts found in Framer X. This application is MacOS-only. -- [Google Drive](https://cheatsheets.zip/google-drive.html): A visual cheat-sheet for the 54 keyboard shortcuts found in Google Drive on the web +- [Audacity](https://cheatsheets.zip/audacity.html): A visual cheat-sheet for the 135 default keyboard shortcuts found + in Audacity +- [Framer X](https://cheatsheets.zip/framer-x.html): A visual cheat-sheet for the 45 keyboard shortcuts found in Framer + X. This application is MacOS-only. +- [Google Drive](https://cheatsheets.zip/google-drive.html): A visual cheat-sheet for the 54 keyboard shortcuts found in + Google Drive on the web - [PuTTy](https://cheatsheets.zip/putty.html): A visual cheat-sheet for the 32 keyboard shortcuts found on the PuTTy app -- [Sequel Pro](https://cheatsheets.zip/sequel-pro.html): A visual cheat-sheet for the 71 keyboard shortcuts found in Sequel Pro. This application is MacOS-only. -- [Apple Music](https://cheatsheets.zip/apple-music.html): A visual cheat-sheet for the 62 keyboard shortcuts found in the Apple Music app. This application is MacOS-only. +- [Sequel Pro](https://cheatsheets.zip/sequel-pro.html): A visual cheat-sheet for the 71 keyboard shortcuts found in + Sequel Pro. This application is MacOS-only. +- [Apple Music](https://cheatsheets.zip/apple-music.html): A visual cheat-sheet for the 62 keyboard shortcuts found in + the Apple Music app. This application is MacOS-only. - [Blender](https://cheatsheets.zip/blender.html): A visual cheat-sheet for the 187 keyboard shortcuts found in Blender -- [Obsidian](https://cheatsheets.zip/obsidian.html): A visual cheat-sheet for the 17 keyboard shortcuts found in the Obsidian knowledge base app. -- [Telegram Desktop](https://cheatsheets.zip/telegram.html): A visual cheat-sheet for the 37 keyboard shortcuts found on the Telegram Desktop app -- [YouTube](https://cheatsheets.zip/youtube.html): A visual cheat-sheet for the 18 keyboard shortcuts found on YouTube.com -- [Airtable](https://cheatsheets.zip/airtable.html): A visual cheat-sheet for the 36 keyboard shortcuts found in Airtable -- [Bitbucket](https://cheatsheets.zip/bitbucket.html): A visual cheat-sheet for the 35 keyboard shortcuts found on Bitbucket -- [Fortnite](https://cheatsheets.zip/fortnite.html): A visual cheat-sheet for the 26 default keyboard shortcuts found in Fortnite +- [Obsidian](https://cheatsheets.zip/obsidian.html): A visual cheat-sheet for the 17 keyboard shortcuts found in the + Obsidian knowledge base app. +- [Telegram Desktop](https://cheatsheets.zip/telegram.html): A visual cheat-sheet for the 37 keyboard shortcuts found on + the Telegram Desktop app +- [YouTube](https://cheatsheets.zip/youtube.html): A visual cheat-sheet for the 18 keyboard shortcuts found on + YouTube.com +- [Airtable](https://cheatsheets.zip/airtable.html): A visual cheat-sheet for the 36 keyboard shortcuts found in + Airtable +- [Bitbucket](https://cheatsheets.zip/bitbucket.html): A visual cheat-sheet for the 35 keyboard shortcuts found on + Bitbucket +- [Fortnite](https://cheatsheets.zip/fortnite.html): A visual cheat-sheet for the 26 default keyboard shortcuts found in + Fortnite - [Gmail](https://cheatsheets.zip/gmail.html): A visual cheat-sheet for the 90 keyboard shortcuts found on Gmail -- [Sketch](https://cheatsheets.zip/sketch.html): A visual cheat-sheet for the 149 keyboard shortcuts found in Sketch. This application is MacOS-only. +- [Sketch](https://cheatsheets.zip/sketch.html): A visual cheat-sheet for the 149 keyboard shortcuts found in Sketch. + This application is MacOS-only. - [Spotify](https://cheatsheets.zip/spotify.html): A visual cheat-sheet for the 23 keyboard shortcuts found in Spotify -- [Brave Browser](https://cheatsheets.zip/brave.html): A visual cheat-sheet for the 64 keyboard shortcuts found in the Brave browser -- [KanbanMail](https://cheatsheets.zip/kanbanmail.html): A visual cheat-sheet for the 29 keyboard shortcuts found in KanbanMail -- [Microsoft Outlook](https://cheatsheets.zip/outlook.html): A visual cheat-sheet for the 210 keyboard shortcuts found in Microsoft Outlook -- [Principle](https://cheatsheets.zip/principle.html): A visual cheat-sheet for the 30 keyboard shortcuts found in Principle. This application is MacOS-only. +- [Brave Browser](https://cheatsheets.zip/brave.html): A visual cheat-sheet for the 64 keyboard shortcuts found in the + Brave browser +- [KanbanMail](https://cheatsheets.zip/kanbanmail.html): A visual cheat-sheet for the 29 keyboard shortcuts found in + KanbanMail +- [Microsoft Outlook](https://cheatsheets.zip/outlook.html): A visual cheat-sheet for the 210 keyboard shortcuts found + in Microsoft Outlook +- [Principle](https://cheatsheets.zip/principle.html): A visual cheat-sheet for the 30 keyboard shortcuts found in + Principle. This application is MacOS-only. - [Skype](https://cheatsheets.zip/skype.html): A visual cheat-sheet for the 31 keyboard shortcuts found in Skype -- [Arduino IDE](https://cheatsheets.zip/arduino.html): A visual cheat-sheet for the 12 keyboard shortcuts found in the Arduino IDE +- [Arduino IDE](https://cheatsheets.zip/arduino.html): A visual cheat-sheet for the 12 keyboard shortcuts found in the + Arduino IDE - [Asana](https://cheatsheets.zip/asana.html): A visual cheat-sheet for the 40 keyboard shortcuts found in Asana -- [Code Editor for iOS](https://cheatsheets.zip/code-editor-ios.html): A visual cheat-sheet for the 43 keyboard shortcuts found in the Code Editor for iOS app. This application is MacOS-only. +- [Code Editor for iOS](https://cheatsheets.zip/code-editor-ios.html): A visual cheat-sheet for the 43 keyboard + shortcuts found in the Code Editor for iOS app. This application is MacOS-only. - [Jira](https://cheatsheets.zip/jira.html): A visual cheat-sheet for the 44 keyboard shortcuts found in Jira - [Quip.com](https://cheatsheets.zip/quip.html): A visual cheat-sheet for the 52 keyboard shortcuts found in Quip -- [WordPress](https://cheatsheets.zip/wordpress.html): A visual cheat-sheet for the 34 keyboard shortcuts found in the WordPress visual editor -- [Chrome Developer Tools](https://cheatsheets.zip/chrome-devtools.html): A visual cheat-sheet for the 56 keyboard shortcuts found in Chrome's Developer Tools +- [WordPress](https://cheatsheets.zip/wordpress.html): A visual cheat-sheet for the 34 keyboard shortcuts found in the + WordPress visual editor +- [Chrome Developer Tools](https://cheatsheets.zip/chrome-devtools.html): A visual cheat-sheet for the 56 keyboard + shortcuts found in Chrome's Developer Tools - [GIMP](https://cheatsheets.zip/gimp.html): A visual cheat-sheet for the 97 keyboard shortcuts found in GIMP -- [Google Chrome](https://cheatsheets.zip/google-chrome.html): A visual cheat-sheet for the 65 keyboard shortcuts found in Google Chrome +- [Google Chrome](https://cheatsheets.zip/google-chrome.html): A visual cheat-sheet for the 65 keyboard shortcuts found + in Google Chrome - [Todoist](https://cheatsheets.zip/todoist.html): A visual cheat-sheet for the 37 keyboard shortcuts found in Todoist -- [TickTick](https://cheatsheets.zip/ticktick.html): A visual cheat-sheet for the 25 keyboard shortcuts found in the TickTick desktop app +- [TickTick](https://cheatsheets.zip/ticktick.html): A visual cheat-sheet for the 25 keyboard shortcuts found in the + TickTick desktop app - [VLC Player](https://cheatsheets.zip/vlc.html): A visual cheat-sheet for the 82 keyboard shortcuts found in VLC Player - [Missive](https://cheatsheets.zip/missive.html): A visual cheat-sheet for the 83 keyboard shortcuts found in Missive -- [Origami Studio](https://cheatsheets.zip/origami.html): A visual cheat-sheet for the 71 keyboard shortcuts found in Origami Studio. This application is MacOS-only. -- [Sublime Text](https://cheatsheets.zip/sublime-text.html): A visual cheat-sheet for the 49 keyboard shortcuts found in Sublime Text -- [Transmit](https://cheatsheets.zip/transmit.html): A visual cheat-sheet for the 62 keyboard shortcuts found in Transmit. This application is MacOS-only. -- [Affinity Photo](https://cheatsheets.zip/affinity-photo.html): A visual cheat-sheet for the 177 keyboard shortcuts found in Affinity Photo -- [Monday.com](https://cheatsheets.zip/monday.html): A visual cheat-sheet for the 24 keyboard shortcuts found on Monday.com -- [Proto.io](https://cheatsheets.zip/proto-io.html): A visual cheat-sheet for the 48 keyboard shortcuts found in Proto.io -- [Superhuman](https://cheatsheets.zip/superhuman.html): A visual cheat-sheet for the 105 keyboard shortcuts found in Superhuman. This application is MacOS-only. -- [Vivaldi Browser](https://cheatsheets.zip/vivaldi.html): A visual cheat-sheet for the 69 default keyboard shortcuts found in the Vivaldi browser -- [Finder](https://cheatsheets.zip/finder.html): A visual cheat-sheet for the 55 keyboard shortcuts found in Finder. This application is part of MacOS. +- [Origami Studio](https://cheatsheets.zip/origami.html): A visual cheat-sheet for the 71 keyboard shortcuts found in + Origami Studio. This application is MacOS-only. +- [Sublime Text](https://cheatsheets.zip/sublime-text.html): A visual cheat-sheet for the 49 keyboard shortcuts found in + Sublime Text +- [Transmit](https://cheatsheets.zip/transmit.html): A visual cheat-sheet for the 62 keyboard shortcuts found in + Transmit. This application is MacOS-only. +- [Affinity Photo](https://cheatsheets.zip/affinity-photo.html): A visual cheat-sheet for the 177 keyboard shortcuts + found in Affinity Photo +- [Monday.com](https://cheatsheets.zip/monday.html): A visual cheat-sheet for the 24 keyboard shortcuts found on + Monday.com +- [Proto.io](https://cheatsheets.zip/proto-io.html): A visual cheat-sheet for the 48 keyboard shortcuts found in + Proto.io +- [Superhuman](https://cheatsheets.zip/superhuman.html): A visual cheat-sheet for the 105 keyboard shortcuts found in + Superhuman. This application is MacOS-only. +- [Vivaldi Browser](https://cheatsheets.zip/vivaldi.html): A visual cheat-sheet for the 69 default keyboard shortcuts + found in the Vivaldi browser +- [Finder](https://cheatsheets.zip/finder.html): A visual cheat-sheet for the 55 keyboard shortcuts found in Finder. + This application is part of MacOS. - [GitLab](https://cheatsheets.zip/gitlab.html): A visual cheat-sheet for the 58 keyboard shortcuts found in GitLab -- [Guitar Pro](https://cheatsheets.zip/guitar-pro.html): A visual cheat-sheet for the 129 keyboard shortcuts found in Guitar Pro -- [Roam Research](https://cheatsheets.zip/roam.html): A visual cheat-sheet for the 45 keyboard shortcuts found on Roam Research -- [SketchUp Pro](https://cheatsheets.zip/sketchup.html): A visual cheat-sheet for the 135 default keyboard shortcuts found in SketchUp Pro -- [Unity 3D](https://cheatsheets.zip/unity-3d.html): A visual cheat-sheet for the 50 keyboard shortcuts found in Unity 3D -- [IntelliJ IDEA](https://cheatsheets.zip/idea.html): IntelliJ IDEA is a very good Java IDE, most of its commands have shortcuts to keep your hands from leaving the keyboard -- [WebStorm](https://cheatsheets.zip/webstorm.html): This quick reference cheat sheet lists the default keyboard shortcuts for WebStorm running on Windows/Linux or Mac +- [Guitar Pro](https://cheatsheets.zip/guitar-pro.html): A visual cheat-sheet for the 129 keyboard shortcuts found in + Guitar Pro +- [Roam Research](https://cheatsheets.zip/roam.html): A visual cheat-sheet for the 45 keyboard shortcuts found on Roam + Research +- [SketchUp Pro](https://cheatsheets.zip/sketchup.html): A visual cheat-sheet for the 135 default keyboard shortcuts + found in SketchUp Pro +- [Unity 3D](https://cheatsheets.zip/unity-3d.html): A visual cheat-sheet for the 50 keyboard shortcuts found in Unity + 3D +- [IntelliJ IDEA](https://cheatsheets.zip/idea.html): IntelliJ IDEA is a very good Java IDE, most of its commands have + shortcuts to keep your hands from leaving the keyboard +- [WebStorm](https://cheatsheets.zip/webstorm.html): This quick reference cheat sheet lists the default keyboard + shortcuts for WebStorm running on Windows/Linux or Mac
    Other -- [Google Search](https://cheatsheets.zip/google-search.html): This quick reference cheat sheet lists of Google advanced search operators. -- [ASCII Code](https://cheatsheets.zip/ascii-code.html): This cheat sheet is a complete list of ASCII Code Table with their numbers and names. -- [Aspect Ratio](https://cheatsheets.zip/aspect-ratio.html): This cheat sheet lists some common aspect ratios and their pixel resolutions. Always confirm your final delivery ratio when shooting. -- [HTML Characters Entities](https://cheatsheets.zip/html-char.html): This cheat sheet is a complete list of HTML entities with their numbers and names. Also included is a full list of ASCII characters that can be represented in HTML. -- [ISO 639-1 Language Code](https://cheatsheets.zip/iso-639-1.html): This is a list of the ISO language codes that conform to the ISO 639-1 standard, it provide reference for multi-language website. -- [Resolutions](https://cheatsheets.zip/resolutions.html): This cheat sheet lists screen sizes, viewport size and CSS media queries for popular Phones, Tablets, Laptops and Watches -- [HTTP Status Code](https://cheatsheets.zip/http-status-code.html): The http status codes cheat sheet. A quick reference to every HTTP status code. -- [Emoji](https://cheatsheets.zip/emoji.html): Some of the emoji codes are not super easy to remember, so here is a little cheat sheet. -- [CheatSheets](https://cheatsheets.zip/quickref.html): This is the magic syntax variant manual that you can use on CheatSheets.zip, It's a good practice for contributors. -- [MIME types](https://cheatsheets.zip/mime.html): This cheat sheet lists some common MIME types for the Web. You can look in the [IANA/MIME Media Types registry](http://www.iana.org/assignments/media-types/index.html) which contains all registered MIME types. +- [Google Search](https://cheatsheets.zip/google-search.html): This quick reference cheat sheet lists of Google advanced + search operators. +- [ASCII Code](https://cheatsheets.zip/ascii-code.html): This cheat sheet is a complete list of ASCII Code Table with + their numbers and names. +- [Aspect Ratio](https://cheatsheets.zip/aspect-ratio.html): This cheat sheet lists some common aspect ratios and their + pixel resolutions. Always confirm your final delivery ratio when shooting. +- [HTML Characters Entities](https://cheatsheets.zip/html-char.html): This cheat sheet is a complete list of HTML + entities with their numbers and names. Also included is a full list of ASCII characters that can be represented in + HTML. +- [ISO 639-1 Language Code](https://cheatsheets.zip/iso-639-1.html): This is a list of the ISO language codes that + conform to the ISO 639-1 standard, it provide reference for multi-language website. +- [Resolutions](https://cheatsheets.zip/resolutions.html): This cheat sheet lists screen sizes, viewport size and CSS + media queries for popular Phones, Tablets, Laptops and Watches +- [HTTP Status Code](https://cheatsheets.zip/http-status-code.html): The http status codes cheat sheet. A quick + reference to every HTTP status code. +- [Emoji](https://cheatsheets.zip/emoji.html): Some of the emoji codes are not super easy to remember, so here is a + little cheat sheet. +- [CheatSheets](https://cheatsheets.zip/quickref.html): This is the magic syntax variant manual that you can use on + CheatSheets.zip, It's a good practice for contributors. +- [MIME types](https://cheatsheets.zip/mime.html): This cheat sheet lists some common MIME types for the Web. You can + look in the [IANA/MIME Media Types registry](http://www.iana.org/assignments/media-types/index.html) which contains + all registered MIME types.
    - - ## 🗂️ Directory structure + ``` . ├── source @@ -234,25 +344,25 @@ Reference provides cheat sheets for the following: └── coo # Theme files ``` - - - ## 🤝 Contributing -We would like to extend our gratitude to you for considering a contribution to Reference. Your support is what makes CheatSheets.zip a truly amazing resource. Please feel free to [submit issues](https://github.com/Fechin/reference/issues/new?assignee=Fechin) and enhancement requests. +We would like to extend our gratitude to you for considering a contribution to Reference. Your support is what makes +CheatSheets.zip a truly amazing resource. Please feel free to +[submit issues](https://github.com/Fechin/reference/issues/new?assignee=Fechin) and enhancement requests. -For consistency, we encourage you to refer to the [https://cheatsheets.zip/quickref](https://cheatsheets.zip/quickref) when creating or editing cheat sheets. To get started with development, follow these steps: +For consistency, we encourage you to refer to the [https://cheatsheets.zip/quickref](https://cheatsheets.zip/quickref) +when creating or editing cheat sheets. To get started with development, follow these steps: 1. Clone Github repo `git clone https://github.com/Fechin/reference.git` -2. Install `npm` package manager (Read [installation guide](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)) +2. Install `npm` package manager (Read + [installation guide](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)) 3. Run `npm install` in the root folder to install dependencies. -4. Run `npm run dev` to start a dev server. This serves the project and live reloads when any files are changed, then visit http://127.0.0.1:4000 preview. +4. Run `npm run dev` to start a dev server. This serves the project and live reloads when any files are changed, then + visit http://127.0.0.1:4000 preview. 5. Submit a pull request and wait for it to be reviewed and merged. - - -To create or edit a cheat sheet, you'll need to create or edit a markdown file in `source/_posts/{filename}.md`. The file should include a front matter section with the following format: - +To create or edit a cheat sheet, you'll need to create or edit a markdown file in `source/_posts/{filename}.md`. The +file should include a front matter section with the following format: ```markdown --- @@ -266,24 +376,23 @@ categories: intro: This is a reference of styles that you can use on quickref cheat sheets! --- ``` -Only the `title` and `intro` fields are required, and the other options can be left blank. +Only the `title` and `intro` fields are required, and the other options can be left blank. - ## 🐦 Follow us on Twitter [![Follow us on Twitter](https://img.shields.io/twitter/follow/FechinLi?color=%234a99e9&style=for-the-badge)](https://twitter.com/FechinLi) -Stay up-to-date with our project by following us on Twitter! Get all the latest news and updates right in your feed. It's the perfect way to stay in the loop. +Stay up-to-date with our project by following us on Twitter! Get all the latest news and updates right in your feed. +It's the perfect way to stay in the loop. - ## 📃 License -The project is licensed under the [MIT](https://github.com/Fechin/reference/blob/main/LICENSE) License and is maintained by [Fechin](https://github.com/Fechin). - +The project is licensed under the [MIT](https://github.com/Fechin/reference/blob/main/LICENSE) License and is maintained +by [Fechin](https://github.com/Fechin). From bf532d2d74a8b80d89a83aa11e56bd07bca148a7 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 01:59:06 -0700 Subject: [PATCH 06/81] chore: lint CSS Lints CSS files from this repo. This does NOT affect minimized css via the ignore file. --- .../coo/source/css/components/bsa_carbon.css | 96 +++++----- .../coo/source/css/components/bsa_custom.css | 56 +++--- .../css/components/bsa_custom_right_card.css | 2 +- themes/coo/source/css/components/code.css | 45 +++-- themes/coo/source/css/components/common.css | 14 +- .../coo/source/css/components/custom_tag.css | 10 +- themes/coo/source/css/components/layer.css | 51 +++--- .../coo/source/css/components/layout_list.css | 137 +++++++-------- .../coo/source/css/components/layout_note.css | 164 +++++++++--------- .../source/css/components/layout_table.css | 141 ++++++++------- .../coo/source/css/components/pagination.css | 12 +- themes/coo/source/css/components/search.css | 42 ++--- 12 files changed, 390 insertions(+), 380 deletions(-) diff --git a/themes/coo/source/css/components/bsa_carbon.css b/themes/coo/source/css/components/bsa_carbon.css index 66f91c8e..730752b5 100644 --- a/themes/coo/source/css/components/bsa_carbon.css +++ b/themes/coo/source/css/components/bsa_carbon.css @@ -1,69 +1,71 @@ #carbonads { - display: flex; - position: fixed; - bottom: 50px; - right: 20px; - max-width: 315px; - background-color: hsl(0, 0%, 98%); - box-shadow: 0 6px 8px rgba(102, 119, 136, 0.03), 0 1px 2px rgba(102, 119, 136, 0.3); - animation: scale-up-center 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000) both; - @apply dark:bg-slate-800 rounded-lg z-20 dark:shadow-3xl; + display: flex; + position: fixed; + bottom: 50px; + right: 20px; + max-width: 315px; + background-color: hsl(0, 0%, 98%); + box-shadow: + 0 6px 8px rgba(102, 119, 136, 0.03), + 0 1px 2px rgba(102, 119, 136, 0.3); + animation: scale-up-center 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both; + @apply z-20 rounded-lg dark:bg-slate-800 dark:shadow-3xl; } #carbonads > span { - display: block; - position: relative; - padding: 6px; - background-color: #fff; - @apply dark:bg-slate-800 rounded-lg; + display: block; + position: relative; + padding: 6px; + background-color: #fff; + @apply rounded-lg dark:bg-slate-800; } #carbonads .carbon-wrap { - display: flex; + display: flex; } #carbonads .carbon-img { - margin-right: 10px; - line-height: 1; + margin-right: 10px; + line-height: 1; } -#carbonads .carbon-img > img{ - @apply rounded-lg; +#carbonads .carbon-img > img { + @apply rounded-lg; } #carbonads .carbon-text { - margin-bottom: 12px; - font-size: 12px; - line-height: 1.45; - text-decoration: none; - color: #637381; - @apply dark:text-slate-300; + margin-bottom: 12px; + font-size: 12px; + line-height: 1.45; + text-decoration: none; + color: #637381; + @apply dark:text-slate-300; } #carbonads .carbon-poweredby { - position: absolute; - bottom: 10px; - left: 152px; + position: absolute; + bottom: 10px; + left: 152px; - font-size: 8px; - font-weight: 500; - line-height: 1; - text-decoration: none; - letter-spacing: .5px; - text-transform: uppercase; - color: #c5cdd0; - @apply dark:text-slate-600; + font-size: 8px; + font-weight: 500; + line-height: 1; + text-decoration: none; + letter-spacing: 0.5px; + text-transform: uppercase; + color: #c5cdd0; + @apply dark:text-slate-600; } @keyframes scale-up-center { - 0% { - opacity: 0; - -webkit-transform: scale(0.9); - transform: scale(0.9); - } - 100% { - opacity: 1; - -webkit-transform: scale(1); - transform: scale(1); - } -} \ No newline at end of file + 0% { + opacity: 0; + -webkit-transform: scale(0.9); + transform: scale(0.9); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} diff --git a/themes/coo/source/css/components/bsa_custom.css b/themes/coo/source/css/components/bsa_custom.css index 188f2a13..de1e3a8e 100644 --- a/themes/coo/source/css/components/bsa_custom.css +++ b/themes/coo/source/css/components/bsa_custom.css @@ -8,44 +8,44 @@ */ #bsa_custom { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, - Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; - font-size: 12px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", + sans-serif; + font-size: 12px; } #bsa_custom .native-fixed { - box-shadow: inset 0 1px 0 hsla(0, 0%, 0%, 0.075); - position: fixed; - inset: auto 0 0 0; - display: flex; - justify-content: center; - align-items: center; - z-index: 10; - @apply bg-emerald-500 dark:bg-slate-700; + box-shadow: inset 0 1px 0 hsla(0, 0%, 0%, 0.075); + position: fixed; + inset: auto 0 0 0; + display: flex; + justify-content: center; + align-items: center; + z-index: 10; + @apply bg-emerald-500 dark:bg-slate-700; } #bsa_custom a { - text-decoration: none; - display: flex; - justify-content: center; - align-items: center; - /*padding: 1.75ex 2ch;*/ - color: #ffffff; + text-decoration: none; + display: flex; + justify-content: center; + align-items: center; + /*padding: 1.75ex 2ch;*/ + color: #ffffff; } #bsa_custom .native-sponsor { - border-radius: 0.5ex; - margin-right: 1ch; - line-height: 1; - /*padding: 1ex 1ch;*/ - font-weight: 600; - font-size: 0.75em; - text-transform: uppercase; - color: #2db67c; - @apply bg-white dark:bg-slate-900; + border-radius: 0.5ex; + margin-right: 1ch; + line-height: 1; + /*padding: 1ex 1ch;*/ + font-weight: 600; + font-size: 0.75em; + text-transform: uppercase; + color: #2db67c; + @apply bg-white dark:bg-slate-900; } #bsa_custom .native-text { - font-size: 1em; - line-height: 1.3; + font-size: 1em; + line-height: 1.3; } diff --git a/themes/coo/source/css/components/bsa_custom_right_card.css b/themes/coo/source/css/components/bsa_custom_right_card.css index fd342275..32158e75 100644 --- a/themes/coo/source/css/components/bsa_custom_right_card.css +++ b/themes/coo/source/css/components/bsa_custom_right_card.css @@ -25,4 +25,4 @@ }); } }); - */ \ No newline at end of file + */ diff --git a/themes/coo/source/css/components/code.css b/themes/coo/source/css/components/code.css index 8d846c1d..837124f6 100644 --- a/themes/coo/source/css/components/code.css +++ b/themes/coo/source/css/components/code.css @@ -1,58 +1,57 @@ code { - @apply text-emerald-600; - @apply dark:text-slate-300; + @apply text-emerald-600; + @apply dark:text-slate-300; } pre { - line-height: 1.5; - @apply p-4 overflow-hidden overflow-x-auto bg-white; - @apply dark:bg-slate-800; + line-height: 1.5; + @apply overflow-hidden overflow-x-auto bg-white p-4; + @apply dark:bg-slate-800; } .mdLayout pre + p:not(:last-child) { - @apply border-t border-slate-200; - @apply dark:border-slate-700/50; + @apply border-t border-slate-200; + @apply dark:border-slate-700/50; } /* When there is only one pre code block, the scroll bar is displayed at the bottom */ pre:only-child { - @apply h-full; + @apply h-full; } pre > code { - color: #345; - padding: 0!important; - background: transparent; - overflow: visible; + color: #345; + padding: 0 !important; + background: transparent; + overflow: visible; } pre > code.wrap { - @apply break-words whitespace-pre-wrap !important; + @apply whitespace-pre-wrap break-words !important; } .mdLayout .line-highlight { - transform: translate3d(0, 2px, 0); - background: linear-gradient(to right, rgba(20, 175, 131, 0.05) 25%, transparent); + transform: translate3d(0, 2px, 0); + background: linear-gradient(to right, rgba(20, 175, 131, 0.05) 25%, transparent); } .mdLayout .line-highlight[data-end] { - margin-top: 0; + margin-top: 0; } -.mdLayout .line-highlight::before, .mdLayout .line-highlight::after { - display: none; +.mdLayout .line-highlight::before, +.mdLayout .line-highlight::after { + display: none; } .mdLayout code.hljs { - background: transparent; + background: transparent; } - .note-content pre { - padding: 6px 0 !important; + padding: 6px 0 !important; } .note-content pre code { - padding: 1rem !important; + padding: 1rem !important; } - diff --git a/themes/coo/source/css/components/common.css b/themes/coo/source/css/components/common.css index 0fd4ec9c..f137e733 100644 --- a/themes/coo/source/css/components/common.css +++ b/themes/coo/source/css/components/common.css @@ -1,11 +1,11 @@ a.underline { - text-decoration: none; - background-image: linear-gradient(transparent, transparent 6px, #34495e 6px, #34495e); - background-position: bottom; - background-size: 100% 6px; - background-repeat: repeat-x; + text-decoration: none; + background-image: linear-gradient(transparent, transparent 6px, #34495e 6px, #34495e); + background-position: bottom; + background-size: 100% 6px; + background-repeat: repeat-x; } a.underline:hover { - background-image: linear-gradient(transparent, transparent 4px, #1d1d1d 4px, #1D1D1DFF); -} \ No newline at end of file + background-image: linear-gradient(transparent, transparent 4px, #1d1d1d 4px, #1d1d1dff); +} diff --git a/themes/coo/source/css/components/custom_tag.css b/themes/coo/source/css/components/custom_tag.css index e96bcaf7..6c97f33b 100644 --- a/themes/coo/source/css/components/custom_tag.css +++ b/themes/coo/source/css/components/custom_tag.css @@ -1,15 +1,15 @@ yel { - @apply text-amber-600; + @apply text-amber-600; } red { - @apply text-red-600; + @apply text-red-600; } pur { - @apply text-purple-600; + @apply text-purple-600; } blu { - @apply text-blue-600; -} \ No newline at end of file + @apply text-blue-600; +} diff --git a/themes/coo/source/css/components/layer.css b/themes/coo/source/css/components/layer.css index 08da8393..810ba978 100644 --- a/themes/coo/source/css/components/layer.css +++ b/themes/coo/source/css/components/layer.css @@ -1,38 +1,37 @@ @layer components { - .openAnimation { - animation: 200ms cubic-bezier(0, 0, 0.2, 1) 0s 1 normal both running openAnimation; - } + .openAnimation { + animation: 200ms cubic-bezier(0, 0, 0.2, 1) 0s 1 normal both running openAnimation; + } - .closeAnimation { - animation: 200ms cubic-bezier(0.4, 0, 1, 1) 0s 1 normal both running closeAnimation; - } + .closeAnimation { + animation: 200ms cubic-bezier(0.4, 0, 1, 1) 0s 1 normal both running closeAnimation; + } - .fadeIn { - @apply animate-in fade-in duration-100; - } + .fadeIn { + @apply duration-100 animate-in fade-in; + } } - @keyframes openAnimation { - from { - transform: scale(0.8); - opacity: 0; - } + from { + transform: scale(0.8); + opacity: 0; + } - to { - transform: scale(1); - opacity: 1; - } + to { + transform: scale(1); + opacity: 1; + } } @keyframes closeAnimation { - from { - transform: scale(1); - opacity: 1; - } + from { + transform: scale(1); + opacity: 1; + } - to { - transform: scale(0.8); - opacity: 0; - } + to { + transform: scale(0.8); + opacity: 0; + } } diff --git a/themes/coo/source/css/components/layout_list.css b/themes/coo/source/css/components/layout_list.css index 33188f22..ee0305fb 100644 --- a/themes/coo/source/css/components/layout_list.css +++ b/themes/coo/source/css/components/layout_list.css @@ -1,134 +1,125 @@ .mdLayout .h3-wrap > .section ul > li { - padding: 9px; - padding-left: 26px; - position: relative; - border-bottom: solid 1px #ececec94; - @apply dark:border-slate-700/50; + padding: 9px; + padding-left: 26px; + position: relative; + border-bottom: solid 1px #ececec94; + @apply dark:border-slate-700/50; } .mdLayout .h3-wrap > .section ul > li > p { - margin: 0; - padding: 0; + margin: 0; + padding: 0; } .mdLayout .h3-wrap > .section ul:not(.marker-none):not(.collapsible) > li::before { - content: ''; - position: absolute; - display: inline-block; - width: 5px; - height: 5px; - background: #556677; - border-radius: 50%; - left: 14px; - top: 18px; + content: ""; + position: absolute; + display: inline-block; + width: 5px; + height: 5px; + background: #556677; + border-radius: 50%; + left: 14px; + top: 18px; } .mdLayout .h3-wrap > .section ul.marker-round > li { - padding-left: 30px; + padding-left: 30px; } -.mdLayout .h3-wrap > .section ul.marker-round > li::before{ - content: ""; - top: 16px; - @apply inline-block w-2 h-2 bg-white border border-2 border-emerald-600 rounded-full; +.mdLayout .h3-wrap > .section ul.marker-round > li::before { + content: ""; + top: 16px; + @apply inline-block h-2 w-2 rounded-full border border-2 border-emerald-600 bg-white; } - .mdLayout .h3-wrap > .section > ul.collapsible > li > pre { - display: none; + display: none; } -.mdLayout .h3-wrap > .section > ul.collapsible > li.active > pre { - display: block; +.mdLayout .h3-wrap > .section > ul.collapsible > li.active > pre { + display: block; } -.mdLayout .h3-wrap > .section > ul.collapsible > li > strong:hover{ - cursor: pointer; +.mdLayout .h3-wrap > .section > ul.collapsible > li > strong:hover { + cursor: pointer; } .mdLayout .h3-wrap > .section > ul.collapsible > li > strong.arrow-down:before { - content: "▼"; /*▼*/ + content: "▼"; /*▼*/ } .mdLayout .h3-wrap > .section > ul.collapsible > li > strong:before { - content: "▶"; /*▼*/ - position: absolute; - left: 10px; - font-size: 0.825em; - @apply text-emerald-500; + content: "▶"; /*▼*/ + position: absolute; + left: 10px; + font-size: 0.825em; + @apply text-emerald-500; } .mdLayout .h3-wrap > .section > ul.marker-timeline { - counter-reset: stepCount; - margin-top:1rem; + counter-reset: stepCount; + margin-top: 1rem; } .mdLayout .h3-wrap > .section > ul.marker-timeline > li { - padding-top: 2px; - padding-bottom: 1.25rem; - border-left: 2px solid #48c78e; - position: relative; - padding-left: 22px; - margin-left: 30px; - border-bottom: 0; - @apply text-slate-900 dark:text-slate-50 dark:border-slate-600; + padding-top: 2px; + padding-bottom: 1.25rem; + border-left: 2px solid #48c78e; + position: relative; + padding-left: 22px; + margin-left: 30px; + border-bottom: 0; + @apply text-slate-900 dark:border-slate-600 dark:text-slate-50; } - .mdLayout .h3-wrap > .section > ul.marker-timeline > li:last-child { - padding-bottom: 0.8rem; + padding-bottom: 0.8rem; } - .mdLayout .h3-wrap > .section > ul.marker-timeline > li > pre { - padding: 0; - margin-top: 1rem; + padding: 0; + margin-top: 1rem; } .mdLayout .h3-wrap > .section > ul.marker-timeline > li::before { - counter-increment: stepCount; - content: counter(stepCount); - left: -14px; - border: 2px solid #48c78e; - @apply absolute rounded-full w-6 h-6 top-0 text-center bg-white text-sm; - @apply dark:border-slate-600 dark:bg-slate-800; + counter-increment: stepCount; + content: counter(stepCount); + left: -14px; + border: 2px solid #48c78e; + @apply absolute top-0 h-6 w-6 rounded-full bg-white text-center text-sm; + @apply dark:border-slate-600 dark:bg-slate-800; } - .mdLayout .h3-wrap > .section > ul.marker-timeline > li:first-child::before { - background: #48c78e; - color:white; + background: #48c78e; + color: white; } - -.mdLayout .h3-wrap > .section > ul.marker-timeline > li:last-child{ - border-image: linear-gradient(to bottom, #48c78e, rgba(0, 0, 0, 0)) 1 100%; +.mdLayout .h3-wrap > .section > ul.marker-timeline > li:last-child { + border-image: linear-gradient(to bottom, #48c78e, rgba(0, 0, 0, 0)) 1 100%; } - .mdLayout .h3-wrap > .section > ul.marker-timeline > li > h4 { - color: #2a2839; - font-family: "Poppins", sans-serif; - font-weight: 500; - @apply dark:text-slate-300; + color: #2a2839; + font-family: "Poppins", sans-serif; + font-weight: 500; + @apply dark:text-slate-300; } - .mdLayout .h3-wrap > .section > ul.icon-list { - @apply list-none list-inside; + @apply list-inside list-none; } .mdLayout .h3-wrap > .section > ul.icon-list > li { - padding: 9px; + padding: 9px; } .mdLayout .h3-wrap > .section > ul.icon-list > li a { - @apply flex items-center hover:bg-gray-200 rounded-lg p-3 text-slate-800; - @apply fadeIn no-underline; + @apply flex items-center rounded-lg p-3 text-slate-800 hover:bg-gray-200; + @apply fadeIn no-underline; } .mdLayout .h3-wrap > .section > ul.icon-list > li a img { - @apply h-6 mr-4; + @apply mr-4 h-6; } - - diff --git a/themes/coo/source/css/components/layout_note.css b/themes/coo/source/css/components/layout_note.css index f1f4a5aa..e73acb43 100644 --- a/themes/coo/source/css/components/layout_note.css +++ b/themes/coo/source/css/components/layout_note.css @@ -1,148 +1,154 @@ .note-content ul > li { - @apply py-2.5 md:px-2.5; - position: relative; + @apply py-2.5 md:px-2.5; + position: relative; } -.note-content ul > li:first-child{ - @apply pt-5; +.note-content ul > li:first-child { + @apply pt-5; } .note-content { - color: #34495e; - font-display: swap; - font-size: 18px; - font-family: source sans pro, open sans, helvetica neue, Arial, sans-serif; - line-height: 1.8; - /*@apply dark:text-slate-300;*/ + color: #34495e; + font-display: swap; + font-size: 18px; + font-family: + source sans pro, + open sans, + helvetica neue, + Arial, + sans-serif; + line-height: 1.8; + /*@apply dark:text-slate-300;*/ } .note-width { - max-width: 46rem; + max-width: 46rem; } .note-content { - min-height: 100%; - overflow-wrap: break-word + min-height: 100%; + overflow-wrap: break-word; } -.note-content ul, .note-content ol { - margin: 2px 0 16px +.note-content ul, +.note-content ol { + margin: 2px 0 16px; } .note-content p { - margin: 4px 0; - hyphens: auto; - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto + margin: 4px 0; + hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; } -.node-item pre, .node-item pre > code, -.note-content pre, .note-content pre > code{ - @apply bg-[#f6f6f6] rounded-lg mt-3; - @apply dark:bg-slate-800; +.node-item pre, +.node-item pre > code, +.note-content pre, +.note-content pre > code { + @apply mt-3 rounded-lg bg-[#f6f6f6]; + @apply dark:bg-slate-800; } .note-content a { - color: #0366d6; - text-decoration: none; - background-image: linear-gradient(transparent, transparent 6px, #34495e 6px, #34495e); - background-position: bottom; - background-size: 100% 6px; - background-repeat: repeat-x + color: #0366d6; + text-decoration: none; + background-image: linear-gradient(transparent, transparent 6px, #34495e 6px, #34495e); + background-position: bottom; + background-size: 100% 6px; + background-repeat: repeat-x; } .note-content a:hover { - background-image: linear-gradient(transparent, transparent 4px, #2bbc8a 4px, #2bbc8a) + background-image: linear-gradient(transparent, transparent 4px, #2bbc8a 4px, #2bbc8a); } .note-content h2 { - font-weight: 500; - font-size: 1.5rem; - margin: 24px 0 2px 0; + font-weight: 500; + font-size: 1.5rem; + margin: 24px 0 2px 0; } .note-content h3 { - font-weight: 400; - font-size: 1.3rem; - margin: 24px 0 2px 0; + font-weight: 400; + font-size: 1.3rem; + margin: 24px 0 2px 0; } - -.note-content img, .note-content video { - display: block; - margin: auto; - max-width: 100%; - height: auto +.note-content img, +.note-content video { + display: block; + margin: auto; + max-width: 100%; + height: auto; } .note-content blockquote { - border-left: 3px solid #2bbc8a; - border-left-width: 6px; - background-color: #f8f8f8; - padding: 15px 20px; - margin-left: -1rem; - margin-right: -1rem; + border-left: 3px solid #2bbc8a; + border-left-width: 6px; + background-color: #f8f8f8; + padding: 15px 20px; + margin-left: -1rem; + margin-right: -1rem; } .note-content blockquote p { - margin: 0 + margin: 0; } .note-content blockquote footer { - margin: 0; - color: #8c8c8c; - font-size: 11px + margin: 0; + color: #8c8c8c; + font-size: 11px; } .note-content blockquote footer a { - background-image: linear-gradient(transparent, transparent 5px, #8c8c8c 5px, #8c8c8c); - color: #8c8c8c + background-image: linear-gradient(transparent, transparent 5px, #8c8c8c 5px, #8c8c8c); + color: #8c8c8c; } .note-content blockquote footer a:hover { - background-image: linear-gradient(transparent, transparent 4px, #a3a3a3 4px, #a3a3a3); - color: #a3a3a3 + background-image: linear-gradient(transparent, transparent 4px, #a3a3a3 4px, #a3a3a3); + color: #a3a3a3; } .note-content blockquote footer cite:before { - padding: 0 .5em; - content: "—" + padding: 0 0.5em; + content: "—"; } - .note-content .h-anchor { - display: none; + display: none; } .note-content ul.popular-posts > li { - @apply py-2.5 ; - position: relative; - border-bottom: solid 1px #ececec94; + @apply py-2.5; + position: relative; + border-bottom: solid 1px #ececec94; } -.note-content ul.popular-posts > li:first-child{ - @apply pt-5; +.note-content ul.popular-posts > li:first-child { + @apply pt-5; } - /* tags style */ .post-tags-list { - margin-top: 20px; - margin-bottom: 30px; - display: table; + margin-top: 20px; + margin-bottom: 30px; + display: table; } .post-tags-list-item { - float: left; - font-size: 12px; - margin-right: 10px; - background: rgba(102, 128, 153, 0.075); - border-radius: 4px; - padding: 2px 5px; - color: rgba(44, 63, 81, 0.5); + float: left; + font-size: 12px; + margin-right: 10px; + background: rgba(102, 128, 153, 0.075); + border-radius: 4px; + padding: 2px 5px; + color: rgba(44, 63, 81, 0.5); } .post-tags-list-link { - cursor: default; -} \ No newline at end of file + cursor: default; +} diff --git a/themes/coo/source/css/components/layout_table.css b/themes/coo/source/css/components/layout_table.css index d6af5298..a4505a0c 100644 --- a/themes/coo/source/css/components/layout_table.css +++ b/themes/coo/source/css/components/layout_table.css @@ -1,118 +1,131 @@ .mdLayout table { - width: 100%; + width: 100%; } .mdLayout .section > table:last-child::after { - content: ''; - @apply block h-2; + content: ""; + @apply block h-2; } .mdLayout table tr + tr { - border-top: solid 1px #ececec94; - @apply dark:border-slate-700/50; + border-top: solid 1px #ececec94; + @apply dark:border-slate-700/50; } .mdLayout table tbody + tbody { - border-top: solid 1px rgb(135 137 139 / 30%); + border-top: solid 1px rgb(135 137 139 / 30%); } -.mdLayout table td, .mdLayout table th { - padding: 9px 14px; - text-align: left; +.mdLayout table td, +.mdLayout table th { + padding: 9px 14px; + text-align: left; } -.mdLayout table tr th:last-child, .mdLayout table tr td:last-child { - text-align: right; +.mdLayout table tr th:last-child, +.mdLayout table tr td:last-child { + text-align: right; } .mdLayout table td[rowspan] { - vertical-align: middle !important; + vertical-align: middle !important; } .mdLayout table td[colspan] { - text-align: center !important; + text-align: center !important; } .mdLayout table td:first-child { - white-space: nowrap; + white-space: nowrap; } .mdLayout table td:first-child > code { - @apply text-emerald-600; + @apply text-emerald-600; } -.mdLayout table a, .mdLayout table a:visited { - color: #35a; - text-decoration: none; +.mdLayout table a, +.mdLayout table a:visited { + color: #35a; + text-decoration: none; } .mdLayout table td:first-child > code ~ em { - font-size: 11px; - font-style: normal; - color: #556677; + font-size: 11px; + font-style: normal; + color: #556677; } .mdLayout table thead { - display: none; + display: none; } .mdLayout table thead th { - font-weight: normal; -} - - -.mdLayout table.shortcuts td:not(:last-child) > code, .mdLayout ul.shortcuts > li > code, kbd { - letter-spacing: 0.075rem; - /*margin: 0px 0.1em;*/ - padding: 0.1em 0.54em; - border: 1px solid rgb(204, 204, 204); - line-height: 1.6; - font-family: Arial,Helvetica,sans-serif; - font-size: 12px; - display: inline-block; - box-shadow: 0px 1px 0px rgb(0 0 0 / 20%), inset 0px 0px 0px 2px #ffffff; - background-color: rgb(247, 247, 247); - -moz-box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2), 0 0 0 2px #ffffff inset; - -webkit-box-shadow: 0 1px 0px rgb(0 0 0 / 20%), 0 0 0 2px #ffffff inset; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - /*text-shadow: 0 1px 0 #fff;*/ - color: #303835; - @apply dark:shadow-slate-500 dark:border-slate-700 dark:bg-slate-700/50 dark:text-slate-300 dark:shadow-none; -} - - -.mdLayout table.left-text tr th, .mdLayout table.left-text tr td, .mdLayout table.left-text tr td:last-child { - text-align: left; -} - -.mdLayout table.center-text tr th, .mdLayout table.center-text tr td, .mdLayout table.center-text tr td:last-child { - text-align: center; + font-weight: normal; +} + +.mdLayout table.shortcuts td:not(:last-child) > code, +.mdLayout ul.shortcuts > li > code, +kbd { + letter-spacing: 0.075rem; + /*margin: 0px 0.1em;*/ + padding: 0.1em 0.54em; + border: 1px solid rgb(204, 204, 204); + line-height: 1.6; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + display: inline-block; + box-shadow: + 0px 1px 0px rgb(0 0 0 / 20%), + inset 0px 0px 0px 2px #ffffff; + background-color: rgb(247, 247, 247); + -moz-box-shadow: + 0 1px 0px rgba(0, 0, 0, 0.2), + 0 0 0 2px #ffffff inset; + -webkit-box-shadow: + 0 1px 0px rgb(0 0 0 / 20%), + 0 0 0 2px #ffffff inset; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + /*text-shadow: 0 1px 0 #fff;*/ + color: #303835; + @apply dark:border-slate-700 dark:bg-slate-700/50 dark:text-slate-300 dark:shadow-none dark:shadow-slate-500; +} + +.mdLayout table.left-text tr th, +.mdLayout table.left-text tr td, +.mdLayout table.left-text tr td:last-child { + text-align: left; +} + +.mdLayout table.center-text tr th, +.mdLayout table.center-text tr td, +.mdLayout table.center-text tr td:last-child { + text-align: center; } .mdLayout table.show-header thead { - display: table-header-group; - border-bottom: solid 1px rgba(85, 102, 119, 0.3); + display: table-header-group; + border-bottom: solid 1px rgba(85, 102, 119, 0.3); } .mdLayout table.bold-first tr > td:first-child { - font-weight: bold; + font-weight: bold; } .mdLayout table.plus-first tr > td:first-child { - @apply text-2xl; + @apply text-2xl; } -.mdLayout table.no-wrap td, .mdLayout table.no-wrap th { - white-space: nowrap; +.mdLayout table.no-wrap td, +.mdLayout table.no-wrap th { + white-space: nowrap; } .mdLayout table td em { - opacity: 0.6; - @apply dark:opacity-90; + opacity: 0.6; + @apply dark:opacity-90; } - .mdLayout table.style-list td + td, .mdLayout table.style-list-arrow td + td { padding-top: 0 !important; @@ -124,10 +137,9 @@ text-align: left !important; } - .mdLayout table.style-list-arrow td:first-child::before, ul.style-arrow li:before { - content: ''; + content: ""; display: inline-block; width: 0px; height: 0px; @@ -136,4 +148,3 @@ ul.style-arrow li:before { border-left: 6px solid #228e6c; border-bottom: 5px solid transparent; } - diff --git a/themes/coo/source/css/components/pagination.css b/themes/coo/source/css/components/pagination.css index f54eeb4f..8ed92b37 100644 --- a/themes/coo/source/css/components/pagination.css +++ b/themes/coo/source/css/components/pagination.css @@ -1,15 +1,15 @@ .pagination .prev, .pagination .next, .pagination .page-number { - @apply shadow px-3 py-2.5 mx-1 font-medium text-slate-700 bg-white rounded-md hover:bg-emerald-500 hover:text-white; - @apply dark:text-slate-300 dark:bg-slate-800; + @apply mx-1 rounded-md bg-white px-3 py-2.5 font-medium text-slate-700 shadow hover:bg-emerald-500 hover:text-white; + @apply dark:bg-slate-800 dark:text-slate-300; } .pagination .space { - @apply px-3 py-2.5 mx-1 font-medium text-slate-700; - @apply dark:text-slate-300; + @apply mx-1 px-3 py-2.5 font-medium text-slate-700; + @apply dark:text-slate-300; } .pagination .page-number.current { - @apply bg-emerald-500 text-white; -} \ No newline at end of file + @apply bg-emerald-500 text-white; +} diff --git a/themes/coo/source/css/components/search.css b/themes/coo/source/css/components/search.css index b55a6783..a64cbbfe 100644 --- a/themes/coo/source/css/components/search.css +++ b/themes/coo/source/css/components/search.css @@ -1,58 +1,60 @@ #mysearch { - @apply animate-in fade-in duration-200; + @apply duration-200 animate-in fade-in; } #mysearch-box { - animation: 200ms cubic-bezier(0, 0, 0.2, 1) 0s 1 normal both running openAnimation; + animation: 200ms cubic-bezier(0, 0, 0.2, 1) 0s 1 normal both running openAnimation; } #mysearch em { - @apply not-italic text-emerald-500; + @apply not-italic text-emerald-500; } .text-color-inherit { - color: inherit + color: inherit; } @media (min-width: 1200px) { - .xl\:max-h-832 { - max-height: 800px - } + .xl\:max-h-832 { + max-height: 800px; + } } #mysearch-list li.inactive { - @apply border-slate-200; + @apply border-slate-200; } #mysearch-list li.inactive > a.link { - @apply text-slate-900 bg-transparent; + @apply bg-transparent text-slate-900; } #mysearch-list li.inactive .icon-enter { - @apply hidden; + @apply hidden; } -#mysearch-list li.inactive i.icon, #mysearch-list li.inactive .sub-intro { - @apply text-slate-400; +#mysearch-list li.inactive i.icon, +#mysearch-list li.inactive .sub-intro { + @apply text-slate-400; } #mysearch-list li.active { - @apply border-transparent z-10 shadow-sm; + @apply z-10 border-transparent shadow-sm; } #mysearch-list li.active > a { - @apply text-white bg-emerald-500 shadow; + @apply bg-emerald-500 text-white shadow; } #mysearch-list li.active em { - color: inherit; - @apply underline; + color: inherit; + @apply underline; } #mysearch-list li.active .icon-enter { - @apply block; + @apply block; } -#mysearch-list li.active i.icon, #mysearch-list li.active .sub-intro { - @apply text-white; -} \ No newline at end of file +#mysearch-list li.active i.icon, +#mysearch-list li.active .sub-intro { + @apply text-white; +} From 9c0d043f89a21bcaf861abaaaafb20474634673b Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:02:32 -0700 Subject: [PATCH 07/81] chore: lint non-post pages --- source/about/index.md | 32 +++++++++++++++++--------------- source/privacy/index.md | 1 + source/sponsor/index.md | 39 +++++++++++++++------------------------ 3 files changed, 33 insertions(+), 39 deletions(-) diff --git a/source/about/index.md b/source/about/index.md index 8923537e..54f1fd85 100644 --- a/source/about/index.md +++ b/source/about/index.md @@ -3,30 +3,32 @@ title: About date: 2020-03-26 20:45:53 --- -Welcome to [QuickRef] – your go-to resource for [describing content]. Designed with [developers/students/professionals] in mind, our quick reference provides a comprehensive collection of [topics/sections] to help you [solve problems/learn efficiently/etc.]. +Welcome to [QuickRef] – your go-to resource for [describing content]. Designed with [developers/students/professionals] +in mind, our quick reference provides a comprehensive collection of [topics/sections] to help you [solve problems/learn +efficiently/etc.]. -Our user-friendly interface ensures rapid access to the information you need. Whether you're [coding/studying/working], you'll find [specific benefits or standout features]. +Our user-friendly interface ensures rapid access to the information you need. Whether you're [coding/studying/working], +you'll find [specific benefits or standout features]. Key Features: -- Users can grasp essential concepts or instructions in a short period, making cheat sheets ideal for learning on the go. - -- By offering quick access to frequently used information, cheat sheets boost productivity by reducing the need to search or look up details repeatedly. - -- Cheat sheets often organize information in a structured format, making it easier for users to follow steps or understand relationships between concepts. +- Users can grasp essential concepts or instructions in a short period, making cheat sheets ideal for learning on the + go. +- By offering quick access to frequently used information, cheat sheets boost productivity by reducing the need to + search or look up details repeatedly. +- Cheat sheets often organize information in a structured format, making it easier for users to follow steps or + understand relationships between concepts. - Quality cheat sheets are often updated to reflect the latest information, ensuring accuracy and relevance. - - Cheat sheets can be used as study aids, helping learners memorize key information, formulas, or concepts. - - In programming or technical fields, cheat sheets offer quick syntax references, ensuring proper code usage. - -- By avoiding the need to seek through lengthy documentation, cheat sheets save users valuable time during tasks or learning. - +- By avoiding the need to seek through lengthy documentation, cheat sheets save users valuable time during tasks or + learning. - Digital cheat sheets are easily searchable, and users can quickly find what they need by using keywords or phrases. +- QuickRef Cheat sheets act as a rapid review tool, allowing users to refresh their memory on topics they've previously + learned. -- QuickRef Cheat sheets act as a rapid review tool, allowing users to refresh their memory on topics they've previously learned. - -Our team of experts has meticulously crafted this reference to provide instant information. We're committed to evolving our content to meet your needs and bring out fascinating upgrades in the future. +Our team of experts has meticulously crafted this reference to provide instant information. We're committed to evolving +our content to meet your needs and bring out fascinating upgrades in the future. Start exploring now and make [https://quickref.me/] your trusted companion in [area/topic]!! diff --git a/source/privacy/index.md b/source/privacy/index.md index 36488b48..6bb89365 100644 --- a/source/privacy/index.md +++ b/source/privacy/index.md @@ -2,4 +2,5 @@ title: Privacy policy date: 2020-03-26 20:46:04 --- + Coming soon~ diff --git a/source/sponsor/index.md b/source/sponsor/index.md index ff216944..9c603ba1 100644 --- a/source/sponsor/index.md +++ b/source/sponsor/index.md @@ -2,13 +2,10 @@ title: Sponsor date: 2021-12-11 14:37:13 intro: | - We appreciate your help in order to pay for the hosting fees and ensuring I can spend enough time to create and optimize the cheatsheet webpage. + We appreciate your help in order to pay for the hosting fees and ensuring I can spend enough time to create and optimize the cheatsheet webpage. --- -Sponsor ---------------- - - +## Sponsor ### Become a sponsor @@ -25,9 +22,6 @@ Sponsor

    - - - ### Support with Crypto {.col-span-2}
    @@ -47,19 +41,16 @@ Sponsor ### Sponsors {.col-span-3} - -| Name | Amount | Message | -|-----------------|---------|-----------------------------------------------------------------------------------| -| Benjamin Schröer| $ 9.34 | Thanks for cheatsheets.zip! | -| Fabian Barajas | $ 10.00 | | -| [Anonymous] | $ 5.00 | | -| [Anonymous] | $ 20.00 | Your page is the best reference I've ever come across and I'm sharing it with everyone I know. Thanks so much for creating it! | -| Tony Qu | $ 20.00 | Thanks Man ! This looks nice. :-) | -| [Anonymous] | $ 25.00 | As a newcomer to Python, this looks incredibly useful. Thanks for your hard work! | -| VimNewbie | $ 10.00 | Awesome and elegant... fantastic job! | -| Dave Hanson | $ 50.00 | Nice.. great work... | -| Alexander | $ 40.00 | - | -| Frpsi17 | $ 10.00 | I think I just found the greatest site for cheatsheets,Thanks | -| [Anonymous] | $ 5.00 | Awesome! Thank you! | - - +| Name | Amount | Message | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ | +| Benjamin Schröer | $ 9.34 | Thanks for cheatsheets.zip! | +| Fabian Barajas | $ 10.00 | | +| [Anonymous] | $ 5.00 | | +| [Anonymous] | $ 20.00 | Your page is the best reference I've ever come across and I'm sharing it with everyone I know. Thanks so much for creating it! | +| Tony Qu | $ 20.00 | Thanks Man ! This looks nice. :-) | +| [Anonymous] | $ 25.00 | As a newcomer to Python, this looks incredibly useful. Thanks for your hard work! | +| VimNewbie | $ 10.00 | Awesome and elegant... fantastic job! | +| Dave Hanson | $ 50.00 | Nice.. great work... | +| Alexander | $ 40.00 | - | +| Frpsi17 | $ 10.00 | I think I just found the greatest site for cheatsheets,Thanks | +| [Anonymous] | $ 5.00 | Awesome! Thank you! | From e80c168dd984eb4cc7b900288ce3566bc041258c Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:24:44 -0700 Subject: [PATCH 08/81] fix: quickref format Fixed a bunch of style related fixes and formatting errors due caused by incorrect code block languages --- source/_posts/quickref.md | 538 ++++++++++++++++++-------------------- 1 file changed, 248 insertions(+), 290 deletions(-) diff --git a/source/_posts/quickref.md b/source/_posts/quickref.md index bacc2642..531d5464 100644 --- a/source/_posts/quickref.md +++ b/source/_posts/quickref.md @@ -3,42 +3,37 @@ title: CheatSheets date: 2020-11-25 18:28:43 background: bg-gradient-to-l from-green-400 to-blue-500 hover:from-pink-500 hover:to-yellow-500 tags: - - guide - - reference + - guide + - reference categories: - - Other -intro: This is the magic syntax variant manual that you can use on CheatSheets.zip, It's a good practice for contributors. + - Other +intro: + This is the magic syntax variant manual that you can use on CheatSheets.zip, It's a good practice for contributors. plugins: - - copyCode + - copyCode --- - - -Getting Started --------------------- +## Getting Started ### Develop Setup - Clone Repository [View on Github](https://github.com/Fechin/reference.git) - ```shell script {.wrap} - $ git clone https://github.com/Fechin/reference.git - ``` + ```shell script {.wrap} + $ git clone https://github.com/Fechin/reference.git + ``` - Install Dependencies in the project directory - ```shell script - $ npm install - ``` + ```shell script + $ npm install + ``` - Start a Dev Server [http://localhost:4000](http://localhost:4000) - ```shell script - $ npm run dev - ``` + ```shell script + $ npm run dev + ``` - Create or modify `source/_posts/{name}.md` -- Send us pull request and chill -{.marker-timeline} - -It's a good practice to refer to the source code of the [CheatSheets reference](https://github.com/Fechin/reference/blob/main/source/_posts/quickref.md). - - +- Send us pull request and chill {.marker-timeline} +It's a good practice to refer to the source code of the +[CheatSheets reference](https://github.com/Fechin/reference/blob/main/source/_posts/quickref.md). ### Directory Structure @@ -67,7 +62,7 @@ It's a good practice to refer to the source code of the [CheatSheets reference]( ```yaml . -├── Section 1 +├── Section 1 # Header │ ├── Card 1 │ ├── Card 2 │ ├── Card 3 @@ -90,18 +85,18 @@ It's a good practice to refer to the source code of the [CheatSheets reference]( ├── Section 4 └── ... ``` ---------- + +--- + - One cheatsheet contains multiple sections - One section contains multiple cards - One card can contain Code, Table, List and Paragraph - One list can contain Code and Paragraph - One table can contain Code and Paragraph - - ### Syntax Variants -- [Section Variants](#section-variants) +- [Section Variants](#section-variants) - [Card Variants](#card-variants) - [Table Variants](#table-variants) - [List Variants](#list-variants) @@ -111,60 +106,52 @@ It's a good practice to refer to the source code of the [CheatSheets reference]( All the magic variants supported by CheatSheets.zip - -### Create source/_posts/demo.md +### Create source/\_posts/demo.md ```markdown -Getting Started ---------------- +## Getting Started ### List Card {.col-span-2} + - Share quick reference -- Cheatsheet for developers -... -{.style-timeline} +- Cheatsheet for developers ... {.style-timeline} ### Table Card -| id | name | -|----|---------| -| 1 | Roberta | -{.show-header} -``` - - +| id | name | +| --- | ------- | +| 1 | Roberta | +{.show-header} +``` -Section Variants --------------------- +## Section Variants ### Section Overview {.secondary} - | - | - | -|-------------|---------------------------------| +| ----------- | ------------------------------- | | `{.cols-1}` | one-column layout | | `{.cols-2}` | two-column layout | | `{.cols-3}` | three-column layout _(default)_ | | ... | | | `{.cols-6}` | six-column layout | -------- +--- + - Section contains multiple cards - Use {.cols-`n`} to specify section as a `n`-column layout - Click the preview button below to focus on the section [Preview](/quickref#section-variants) {.link-arrow} - - - ### .cols-1 + ```text # One Column Example {.cols-1} -╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ -┆ 1 ┆ -╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ +╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ +┆ 1 ┆ +╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ ╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ┆ 2 ┆ ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ @@ -173,19 +160,17 @@ Section Variants #### ↓ Source Code ```markdown -One Column Example {.cols-1} ----------- +## One Column Example {.cols-1} ### 1 + ### 2 ``` [Preview](resolutions#lists-of-resolutions) {.link-arrow} - - - ### .cols-2 + ```text # Two Columns Example ╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ @@ -199,19 +184,17 @@ One Column Example {.cols-1} #### ↓ Source Code ```markdown -Two Columns Example {.cols-2} ----------- +## Two Columns Example {.cols-2} ### 1 + ### 2 + ### 3 ``` [Preview](resolutions#getting-started) {.link-arrow} - - - ### .cols-3 (default) ```text @@ -219,66 +202,61 @@ Two Columns Example {.cols-2} ╭┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ ╰┈┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈┈╯ -╭┈┈┈┈┈┈┈┈┈┈╮ -┆ 4 ┆ -╰┈┈┈┈┈┈┈┈┈┈╯ +╭┈┈┈┈┈┈┈┈┈┈╮ +┆ 4 ┆ +╰┈┈┈┈┈┈┈┈┈┈╯ ``` #### ↓ Source Code ```markdown -Default ----------- +## Default ### 1 + ### 2 + ### 3 + ### 4 ``` - - - -Card Variants --------------------- +## Card Variants ### Card Overview {.secondary} #### Specifies the number of columns the card spans -| - | - | -|-----------------|---| -| `{.col-span-2}` | [Example](#col-span-2) | -| `{.col-span-3}` | | -| ... | | -| `.col-span-6}` | | +| - | - | +| --------------- | ---------------------- | +| `{.col-span-2}` | [Example](#col-span-2) | +| `{.col-span-3}` | | +| ... | | +| `.col-span-6}` | | #### Specifies the number of rows the card spans {.text-left} -| - | - | -|-----------------|---| -| `{.row-span-2}` | [Example](#row-span-2) | -| `{.row-span-3}` | | -| ... | | -| `{.row-span-6}` | | +| - | - | +| --------------- | ---------------------- | +| `{.row-span-2}` | [Example](#row-span-2) | +| `{.row-span-3}` | | +| ... | | +| `{.row-span-6}` | | #### Emphasize card (aka `H3` Section) -| - | - | -|----------------|-------------------------------------------------------| -| `{.primary}` | Red titles, [Example](#primary-card) | +| - | - | +| -------------- | ----------------------------------------- | +| `{.primary}` | Red titles, [Example](#primary-card) | | `{.secondary}` | Yellow titles, [Example](#secondary-card) | A complete example: [Cards Example](#cards-example) - - - ### .col-span-2 {.row-span-2} #### The fifth card spans two columns -```markdown +```text ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ @@ -286,18 +264,24 @@ A complete example: [Cards Example](#cards-example) ┆ 4 ┆ ┆ 5 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ ``` ------------ + +--- + ```markdown ### 1 + ### 2 + ### 3 + ### 4 + ### 5 {.col-span-2} ``` #### The second card spans two columns -```markdown +```text ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ @@ -305,43 +289,51 @@ A complete example: [Cards Example](#cards-example) ┆ 3 ┆ ┆ 4 ┆ ┆ 5 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ``` ------------ + +--- + ```markdown ### 1 + ### 2 {.col-span-2} + ### 3 + ### 4 + ### 5 ``` #### The fourth card spans two columns -```markdown +```text ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ -╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ -┆ 4 ┆ ┆ 5 ┆ -╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ +╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ +┆ 4 ┆ ┆ 5 ┆ +╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ``` ------------ + +--- + ```markdown ### 1 + ### 2 + ### 3 + ### 4 {.col-span-2} + ### 5 ``` - - - - ### .row-span-2 {.row-span-2} #### The first card spans two rows -```markdown +```text ╭┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ ┆ ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ @@ -349,18 +341,24 @@ A complete example: [Cards Example](#cards-example) ┆ ┆ ┆ 4 ┆ ┆ 5 ┆ ╰┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ``` ----------- + +--- + ```markdown ### 1 {.row-span-2} + ### 2 + ### 3 + ### 4 + ### 5 ``` #### The second card spans two rows -```markdown +```text ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ┆ ┆ ╰┈┈┈┈┈┈┈┈┈╯ @@ -368,40 +366,49 @@ A complete example: [Cards Example](#cards-example) ┆ 4 ┆ ┆ ┆ ┆ 5 ┆ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ``` ---------- + +--- + ```markdown ### 1 + ### 2 {.row-span-2} + ### 3 + ### 4 + ### 5 ``` #### The third card spans two rows -```markdown -╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈╮ -┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ -╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ┆ ┆ -╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ ┆ -┆ 4 ┆ ┆ 5 ┆ ┆ ┆ -╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈╯ -``` ------------ +```text +╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈╮ +┆ 1 ┆ ┆ 2 ┆ ┆ 3 ┆ +╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ┆ ┆ +╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ ┆ +┆ 4 ┆ ┆ 5 ┆ ┆ ┆ +╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈┈┈┈┈┈╯ +``` + +--- + ```markdown ### 1 + ### 2 + ### 3 {.row-span-2} + ### 4 + ### 5 ``` - - - ### .col-span-2 .row-span-2 -```markdown +```text ╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮ ┆ 1 ┆ ┆ 2 ┆ ┆ ┆ ╰┈┈┈┈┈┈┈┈┈╯ @@ -417,23 +424,24 @@ A complete example: [Cards Example](#cards-example) ```markdown ### 1 {.col-span-2 .row-span-2} + ### 2 + ### 3 + ### 4 + ### 5 ``` -Spans rows and columns at the same time - - +Spans rows and columns at the same time -Table Variants --------------------- +## Table Variants ### Table Overview {.secondary} | - | - | -|------------------|------------------------------| +| ---------------- | ---------------------------- | | `{.show-header}` | Show the header of the table | | `{.shortcuts}` | Render shortcut key style | | `{.bold-first}` | Bold first column | @@ -442,13 +450,10 @@ Table Variants | `{.left-text}` | Align the last column left | | `{.no-wrap}` | Don't wrap text | - - - ### Basic table | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | @@ -457,113 +462,106 @@ Table Variants ```markdown | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | ``` - - - ### .shortcuts -| - | - | -|-------------|------------| -| `Ctrl` `N` | New File | -| `Ctrl` `S` | Save | +| - | - | +| ---------- | -------- | +| `Ctrl` `N` | New File | +| `Ctrl` `S` | Save | + {.shortcuts} #### ↓ Source Code ```markdown -| - | - | -|-------------|------------| -| `Ctrl` `N` | New File | -| `Ctrl` `S` | Save | +| - | - | +| ---------- | -------- | +| `Ctrl` `N` | New File | +| `Ctrl` `S` | Save | + {.shortcuts} ``` - - - ### .show-header | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.show-header} #### ↓ Source Code ```markdown | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.show-header} ``` - - - ### .left-text | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.left-text} #### ↓ Source Code ```markdown | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.left-text} ``` - - - ### .bold-first | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.bold-first} #### ↓ Source Code ```markdown | Pattern | Description | -|----------|------------------------| +| -------- | ---------------------- | | `[abc]` | Match a, b or c | | `[^abc]` | Match except a, b or c | | `[a-z]` | Match a to z | + {.bold-first} ``` - - - -List Variants --------------------- +## List Variants ### List Overview {.secondary} + List columns | - | - | -|-------------|------------------------| +| ----------- | ---------------------- | | `{.cols-1}` | one column _(default)_ | | `{.cols-2}` | two columns | | ... | | @@ -571,16 +569,14 @@ List columns List markers -| - | - | -|------------|------------------------| -| `{.marker-none}` | Marker is not set | -| `{.marker-timeline}` | Marker style like timeline | -| `{.marker-round}` | Round marker | - - - +| - | - | +| -------------------- | -------------------------- | +| `{.marker-none}` | Marker is not set | +| `{.marker-timeline}` | Marker style like timeline | +| `{.marker-round}` | Round marker | ### One Column (Default) + - Share quick reference. - cheat sheet for developers. - Contributed by open source angels. @@ -595,10 +591,8 @@ List markers - Manage your code snippets. ``` - - - ### .cols-3 + - Share - Quick - Reference @@ -606,9 +600,11 @@ List markers - Cheat Sheet - For - Developers - {.cols-3} + +{.cols-3} #### ↓ Source Code + ```markdown - Share - Quick @@ -617,104 +613,98 @@ List markers - Cheat Sheet - For - Developers + {.cols-3} ``` - - - ### .marker-timeline {.row-span-2} + - **Renamed** to `new_name` - ```shell script - $ git branch -m - ``` + ```shell script + $ git branch -m + ``` - **Push** and reset - ```shell script - $ git push origin -u - ``` -- **Delete** remote branch - ```shell script - $ git push origin --delete - ``` + ```shell script + $ git push origin -u + ``` +- **Delete** remote branch `shell script $ git push origin --delete ` + {.marker-timeline} #### ↓ Source Code -```markdown + +````markdown - **Renamed** to `new_name` - ```shell script - $ git branch -m - ``` + ```shell script + $ git branch -m + ``` - **Push** and reset - ```shell script - $ git push origin -u - ``` -- **Delete** remote branch - ```shell script - $ git push origin --delete - ``` -{.marker-timeline} -``` - - + ```shell script + $ git push origin -u + ``` +- **Delete** remote branch `shell script $ git push origin --delete ` +{.marker-timeline} +```` ### .marker-none + - Share - Quick - Reference - And - Cheat Sheet - {.cols-2 .marker-none} + +{.cols-2 .marker-none} #### ↓ Source Code + ```markdown - Share - Quick - Reference - And - Cheat Sheet + {.cols-2 .marker-none} ``` - - - ### .marker-round + - Share - Quick - Reference - {.marker-round} + +{.marker-round} #### ↓ Source Code + ```markdown - Share - Quick - Reference + {.marker-round} ``` - - - -Code Variants --------------------- +## Code Variants ### Basic code ```js cheatsheets.zip.is(() => { - awesome.site() -}) + awesome.site(); +}); ``` ```js -here.is.some.more() +here.is.some.more(); ``` #### ↓ Source Code -```markdown -```js +`````markdown +````js cheatsheets.zip.is(() => { awesome.site() }) @@ -723,49 +713,47 @@ cheatsheets.zip.is(() => { ```js here.is.some.more() \``` -``` +```` +````` Code blocks can be placed one after the other. - - - ### Code with headings #### index.js ```js cheatsheets.zip.is(() => { - awesome.site() -}) + awesome.site(); +}); ``` #### other.js ```js -here.is.some.more() +here.is.some.more(); ``` #### ↓ Source Code -```markdown +````markdown #### index.js + ```js cheatsheets.zip.is(() => { - awesome.site() -}) -\``` + awesome.site(); +}); +``` + #### other.js + ```js -here.is.some.more() -\``` +here.is.some.more(); ``` +```` Code blocks can have headings. - - - ### Line wrapping ```js {.wrap} @@ -774,17 +762,14 @@ Code blocks can have headings. #### ↓ Source Code -```markdown {.wrap} +````markdown {.wrap} ```js {.wrap} -\``` ``` +```` Add `{.wrap}` to wrap long lines. - - - ### Long lines (default) ```js @@ -795,28 +780,20 @@ function createNode(nodeName: string, options: { key: string }) { Long lines will have scrollbars. - - - -Paragraph Variants --------------------- +## Paragraph Variants ### Header paragraphs The text that appears in the header - #### ↓ Source Code ```markdown {.wrap} ### Basic paragraphs -The text that appears in the header +The text that appears in the header ``` - - - ### Middle paragraphs {.row-span-2} - This is a list @@ -825,12 +802,13 @@ This paragraph will appear in the middle ```js cheatsheets.is(() => { - awesome.site() -}) + awesome.site(); +}); ``` #### ↓ Source Code -```markdown + +````markdown ### Middle paragraphs - This is a list @@ -839,37 +817,32 @@ This paragraph will appear in the middle ```js cheatsheets.is(() => { - awesome.site() -}) -\``` + awesome.site(); +}); ``` - - - +```` ### Footer paragraphs {.row-span-2} ```js cheatsheets.is(() => { - awesome.site() -}) + awesome.site(); +}); ``` #### ↓ Source Code -```markdown + +````markdown ```js cheatsheets.is(() => { - awesome.site() -}) -\``` - -This paragraph will appear in the footer + awesome.site(); +}); ``` This paragraph will appear in the footer +```` - - +This paragraph will appear in the footer ### Crosslink @@ -881,50 +854,35 @@ Add `{.link-arrow}` to make big loud external links: [Home](/) {.link-arrow} +## Cards Example - - -Cards Example --------------------- - -### row-span-2 {.row-span-2} +### row-span-2 {.row-span-2} ``` 1 ``` - - - -### col-span-2 {.col-span-2} +### col-span-2 {.col-span-2} ``` 2 ``` - - - ### Primary Card {.primary} ``` 3 ``` -Add `{.primary}` to make the title red. - - +Add `{.primary}` to make the title red. ### Secondary Card {.secondary} ``` 4 ``` -Add `{.secondary}` to make the title yellow. - - - +Add `{.secondary}` to make the title yellow. ### col-span-3 {.col-span-3} From b1edd42fd49a184115fd0c65d32fcd1a66709f54 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:35:18 -0700 Subject: [PATCH 09/81] fix: 1password format Fixed all the strange inline code endings --- source/_posts/1password.md | 632 +++++++++++++++++-------------------- 1 file changed, 296 insertions(+), 336 deletions(-) diff --git a/source/_posts/1password.md b/source/_posts/1password.md index a5cfce3a..b3b23d0e 100644 --- a/source/_posts/1password.md +++ b/source/_posts/1password.md @@ -4,422 +4,382 @@ date: 2022-11-23 16:23:31.702312 background: bg-[#397fe4] label: tags: - - tools - - + - tools + - categories: - - Keyboard Shortcuts + - Keyboard Shortcuts intro: | - A cheat sheet for 1password's keyboard shortcuts in Mac, Windows, iOS, Linux. + A cheat sheet for 1password's keyboard shortcuts in Mac, Windows, iOS, Linux. --- - - -1Password Keyboard Shortcuts for Mac ------------------- - +## 1Password Keyboard Shortcuts for Mac ### Global keyboard shortcuts -| `Shortcut ` | Action | -|-----------------------------|--------------------| -| Enter your own shortcut. | Show 1Password. | -| `Shift` `cmd` `Space ` | Show Quick Access. | -| `Shift` `cmd` `L ` | Lock 1Password. | -| `cmd` `\` | Autofill. | -{.shortcuts} - - - - -### 1Password app {.row-span-2} +| `Shortcut` | Action | +| ------------------------ | ------------------ | +| Enter your own shortcut. | Show 1Password. | +| `Shift` `cmd` `Space` | Show Quick Access. | +| `Shift` `cmd` `L` | Lock 1Password. | +| `cmd` `\` | Autofill. | -| `Shortcut ` | Action | -|-----------------------------|----------------------------------------------------------------------------------------------| -| `cmd` `/` | View keyboard shortcuts. | -| `cmd` `,` | Open preferences. | -| `cmd` `F ` | Search for items. | -| `Option` `cmd` `F ` | Find items in the current list. | -| `Esc ` | Clear the search field. | -| `cmd` `1 ` | Switch to All Accounts. | -| `cmd` `2...9` | Switch accounts and collections. | -| `cmd` `[` | Go back. | -| `cmd` `]` | Go forward. | -| `Down Arrow ` | Focus next row. | -| `Up Arrow ` | Focus previous row. | -| `Right Arrow ` | Focus right section. | -| `Left Arrow ` | Focus left section. | -| `Return or Space ` | Activate focused element. | -| `cmd` `C ` | Copy the username or primary field of the selected. | -| `Shift` `cmd` `C ` | Copy the password of the selected. | -| `Option` `cmd` `C ` | Copy the one-time password of the selected. | -| `Shift` `cmd` `F ` | Open the website for the selected login in your browser and fill your username and password. | -| `cmd` `O ` | Open the selected in a new window. | -| `cmd` `N ` | Create a new item. | -| `cmd` `E ` | Edit the selected. | -| `cmd` `S ` | Save changes to an item. | -| `Esc ` | Cancel an edit. | -| `cmd` `R ` | Reveal or conceal secure fields in the selected. | -| `Option ` | Temporarily reveal all secure fields in the selected.* | -| `Delete ` | Move the selected(s) to the Archive. | -| `cmd` `Delete ` | Delete the selected(s). | -| `Shift` `cmd` `D ` | Collapse or expand the sidebar. | -| `cmd` `+` | Zoom in. | -| `cmd` `-` | Zoom out. | -| `cmd` `0 ` | Revert to actual size. | -| `cmd` `M ` | Minimize the app to the Dock. | -| `cmd` `W ` | Close the current window. | {.shortcuts} +### 1Password app {.row-span-2} +| `Shortcut` | Action | +| ------------------ | -------------------------------------------------------------------------------------------- | +| `cmd` `/` | View keyboard shortcuts. | +| `cmd` `,` | Open preferences. | +| `cmd` `F` | Search for items. | +| `Option` `cmd` `F` | Find items in the current list. | +| `Esc` | Clear the search field. | +| `cmd` `1` | Switch to All Accounts. | +| `cmd` `2...9` | Switch accounts and collections. | +| `cmd` `[` | Go back. | +| `cmd` `]` | Go forward. | +| `Down Arrow` | Focus next row. | +| `Up Arrow` | Focus previous row. | +| `Right Arrow` | Focus right section. | +| `Left Arrow` | Focus left section. | +| `Return or Space` | Activate focused element. | +| `cmd` `C` | Copy the username or primary field of the selected. | +| `Shift` `cmd` `C` | Copy the password of the selected. | +| `Option` `cmd` `C` | Copy the one-time password of the selected. | +| `Shift` `cmd` `F` | Open the website for the selected login in your browser and fill your username and password. | +| `cmd` `O` | Open the selected in a new window. | +| `cmd` `N` | Create a new item. | +| `cmd` `E` | Edit the selected. | +| `cmd` `S` | Save changes to an item. | +| `Esc` | Cancel an edit. | +| `cmd` `R` | Reveal or conceal secure fields in the selected. | +| `Option` | Temporarily reveal all secure fields in the selected.\* | +| `Delete` | Move the selected(s) to the Archive. | +| `cmd` `Delete` | Delete the selected(s). | +| `Shift` `cmd` `D` | Collapse or expand the sidebar. | +| `cmd` `+` | Zoom in. | +| `cmd` `-` | Zoom out. | +| `cmd` `0` | Revert to actual size. | +| `cmd` `M` | Minimize the app to the Dock. | +| `cmd` `W` | Close the current window. | - -### 1Password in the browser {.row-span-2} - -| `Shortcut ` | Action | -|-----------------------------|-------------------------------------------------------------------------------------------| -| `Shift` `cmd` `X ` | Open or close the 1Password pop-up in Chrome, Edge, Brave, or Safari. | -| `cmd` `.` | Open or close the 1Password pop-up in Firefox. | -| `cmd` `F ` | Search for items. | -| `Esc ` | Clear the search field. | -| `cmd` `D ` | Show the list of vaults. | -| `cmd` `Down Arrow ` | Open or close the category menu. | -| `Down Arrow ` | Select the next category, item, or field. | -| `Up Arrow ` | Select the previous category, item, or field. | -| `Right Arrow ` | Select the item details. | -| `Left Arrow ` | Select the item list. | -| `Space ` | Expand item overview banners. | -| `Return ` | Copy the selected detail.Perform the default action for the selected. | -| `cmd` `C ` | Copy the username of the selected. | -| `Shift` `cmd` `C ` | Copy the password of the selected. | -| `Control` `Shift` `cmd` `C` | Copy the one-time password of the selected. | -| `cmd` `Return ` | Open the website for the selected login in a new tab and fill your username and password. | -| `cmd` `O ` | Open the selected in a separate window. | -| `cmd` `I ` | Create a new item. | -| `cmd` `E ` | Edit the selected. | -| `Control` `Option ` | Temporarily reveal all secure fields in the selected. | -| `cmd` `G ` | Show the password generator. | -| `cmd` `C ` | Copy a password from the password generator. | -| `Shift` `cmd` `L ` | Lock 1Password. | -| `Esc ` | Close the 1Password pop-up. | {.shortcuts} +### 1Password in the browser {.row-span-2} +| `Shortcut` | Action | +| --------------------------- | ----------------------------------------------------------------------------------------- | +| `Shift` `cmd` `X` | Open or close the 1Password pop-up in Chrome, Edge, Brave, or Safari. | +| `cmd` `.` | Open or close the 1Password pop-up in Firefox. | +| `cmd` `F` | Search for items. | +| `Esc` | Clear the search field. | +| `cmd` `D` | Show the list of vaults. | +| `cmd` `Down Arrow` | Open or close the category menu. | +| `Down Arrow` | Select the next category, item, or field. | +| `Up Arrow` | Select the previous category, item, or field. | +| `Right Arrow` | Select the item details. | +| `Left Arrow` | Select the item list. | +| `Space` | Expand item overview banners. | +| `Return` | Copy the selected detail.Perform the default action for the selected. | +| `cmd` `C` | Copy the username of the selected. | +| `Shift` `cmd` `C` | Copy the password of the selected. | +| `Control` `Shift` `cmd` `C` | Copy the one-time password of the selected. | +| `cmd` `Return` | Open the website for the selected login in a new tab and fill your username and password. | +| `cmd` `O` | Open the selected in a separate window. | +| `cmd` `I` | Create a new item. | +| `cmd` `E` | Edit the selected. | +| `Control` `Option` | Temporarily reveal all secure fields in the selected. | +| `cmd` `G` | Show the password generator. | +| `cmd` `C` | Copy a password from the password generator. | +| `Shift` `cmd` `L` | Lock 1Password. | +| `Esc` | Close the 1Password pop-up. | - -### Quick Access - -| `Shortcut ` | Action | -|-----------------------------|-------------------------------------------------------------------------------------| -| `Shift` `cmd` `Space` | Open or close Quick Access. | -| `Esc ` | Clear the search field. | -| `cmd` `1...9` | Switch accounts or collections. | -| `Right Arrow ` | View all available actions. | -| `cmd` `C ` | Copy username or primary field. | -| `Shift` `cmd` `C ` | Copy password. | -| `Option` `cmd` `C ` | Copy one-time password. | -| `cmd` `O ` | Open item details in new window. | -| `Option` `Return ` | Open the website for the login in your browser and fill your username and password. | -| `Shift` `Return ` | Fill the item in the currently focused app. | -| `Shift` `cmd` `O ` | Open the item in the app. | {.shortcuts} +### Quick Access +| `Shortcut` | Action | +| --------------------- | ----------------------------------------------------------------------------------- | +| `Shift` `cmd` `Space` | Open or close Quick Access. | +| `Esc` | Clear the search field. | +| `cmd` `1...9` | Switch accounts or collections. | +| `Right Arrow` | View all available actions. | +| `cmd` `C` | Copy username or primary field. | +| `Shift` `cmd` `C` | Copy password. | +| `Option` `cmd` `C` | Copy one-time password. | +| `cmd` `O` | Open item details in new window. | +| `Option` `Return` | Open the website for the login in your browser and fill your username and password. | +| `Shift` `Return` | Fill the item in the currently focused app. | +| `Shift` `cmd` `O` | Open the item in the app. | +{.shortcuts} - -1Password Keyboard Shortcuts for iOS ------------------- +## 1Password Keyboard Shortcuts for iOS ### 1Password app (I) -| `Shortcut ` | Action | -|---------------------------|----------------------------------------------------------| -| `cmd` `,` | Open settings. | -| `cmd` `F ` | Search for items. | -| `cmd` `.` | Clear the search field. | -| `cmd` `1 ` | Switch to All Accounts. | -| `cmd` `2...9` | Switch accounts and collections. | -| `cmd` `[` | Go back. | -| `cmd` `]` | Go forward. | -| `Down Arrow ` | Focus next item. | -{.shortcuts} +| `Shortcut` | Action | +| ------------- | -------------------------------- | +| `cmd` `,` | Open settings. | +| `cmd` `F` | Search for items. | +| `cmd` `.` | Clear the search field. | +| `cmd` `1` | Switch to All Accounts. | +| `cmd` `2...9` | Switch accounts and collections. | +| `cmd` `[` | Go back. | +| `cmd` `]` | Go forward. | +| `Down Arrow` | Focus next item. | +{.shortcuts} ### 1Password app (II) -| `Shortcut ` | Action | -|-----------------------------|----------------------------------------------------------| -| `Up Arrow ` | Focus previous item. | -| `Space ` | Activate focused item. | -| `cmd` `C ` | Copy the username or primary field of the selected. | -| `Shift` `cmd` `C ` | Copy the password of the selected. | -| `Option` `cmd` `C ` | Copy the one-time password of the selected. | -| `cmd` `O ` | Open the selected in a separate window. | -| `cmd` `E ` | Edit the selected. | -{.shortcuts} +| `Shortcut` | Action | +| ------------------ | --------------------------------------------------- | +| `Up Arrow` | Focus previous item. | +| `Space` | Activate focused item. | +| `cmd` `C` | Copy the username or primary field of the selected. | +| `Shift` `cmd` `C` | Copy the password of the selected. | +| `Option` `cmd` `C` | Copy the one-time password of the selected. | +| `cmd` `O` | Open the selected in a separate window. | +| `cmd` `E` | Edit the selected. | +{.shortcuts} ### 1Password app (III) -| `Shortcut ` | Action | -|---------------------------|----------------------------------------------------------| -| `cmd` `S ` | Save changes to an item. | -| `cmd` `.` | Cancel an edit. | -| `cmd` `D ` | Add the selected to your favorites. | -| `Delete ` | Move the selected(s) to the Archive. | -| `cmd` `Delete ` | Delete the selected(s). | -| `Shift` `cmd` `D ` | Collapse or expand the sidebar. | -| `Shift` `cmd` `L ` | Lock 1Password. | -{.shortcuts} - +| `Shortcut` | Action | +| ----------------- | ------------------------------------ | +| `cmd` `S` | Save changes to an item. | +| `cmd` `.` | Cancel an edit. | +| `cmd` `D` | Add the selected to your favorites. | +| `Delete` | Move the selected(s) to the Archive. | +| `cmd` `Delete` | Delete the selected(s). | +| `Shift` `cmd` `D` | Collapse or expand the sidebar. | +| `Shift` `cmd` `L` | Lock 1Password. | +{.shortcuts} -1Password Keyboard Shortcuts for Windows ------------------- +## 1Password Keyboard Shortcuts for Windows ### Global keyboard shortcuts -| `Shortcut ` | Action | -|--------------------------|--------------------| +| `Shortcut` | Action | +| -------------------------- | ------------------ | | `Enter your own shortcut.` | Show 1Password. | -| `Ctrl` `Shift` `Space` | Show Quick Access. | -| `Ctrl` `Shift` `L ` | Lock 1Password. | -| `Ctrl` `\` | Fill in Browser. | -{.shortcuts} - - +| `Ctrl` `Shift` `Space` | Show Quick Access. | +| `Ctrl` `Shift` `L` | Lock 1Password. | +| `Ctrl` `\` | Fill in Browser. | - -### 1Password app {.row-span-2} - -| `Shortcut ` | Action | -|--------------------------|----------------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `/` | View keyboard shortcuts. | -| `Ctrl` `,` | Open settings. | -| `Ctrl` `F ` | Search for items. | -| `Ctrl` `Alt` `F ` | Find items in the current list. | -| `Esc ` | Clear the search field. | -| `Ctrl` `1 ` | Switch to All Accounts. | -| `Ctrl` `2...9` | Switch accounts and collections. | -| `Alt` `Left Arrow ` | Go back. | -| `Alt` `Right Arrow ` | Go forward. | -| `Down Arrow ` | Focus next row. | -| `Up Arrow ` | Focus previous row. | -| `Right Arrow ` | Focus right section. | -| `Left Arrow ` | Focus left section. | -| `Space ` | Activate focused element. | -| `Ctrl` `C ` | Copy the username or primary field of the selected. | -| `Ctrl` `Shift` `C ` | Copy the password of the selected. | -| `Ctrl` `Alt` `C ` | Copy the one-time password of the selected. | -| `Ctrl` `Shift` `F ` | Open the website for the selected login in your browser and fill your username and password. | -| `Ctrl` `O ` | Open the selected in a new window. | -| `Ctrl` `N ` | Create a new item. | -| `Ctrl` `E ` | Edit the selected. | -| `Ctrl` `S ` | Save changes to an item. | -| `Esc ` | Cancel an edit. | -| `Ctrl` `R ` | Reveal or conceal secure fields in the selected. | -| `Ctrl` `Alt ` | Temporarily reveal all secure fields in the selected.* | -| `Delete ` | Move the selected(s) to the Archive. | -| `Ctrl` `Delete ` | Delete the selected(s). | -| `Ctrl` `Shift` `D ` | Collapse or expand the sidebar. | -| `Ctrl` `+` | Zoom in. | -| `Ctrl` `-` | Zoom out. | -| `Ctrl` `0 ` | Revert to actual size. | {.shortcuts} +### 1Password app {.row-span-2} +| `Shortcut` | Action | +| ------------------- | -------------------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `/` | View keyboard shortcuts. | +| `Ctrl` `,` | Open settings. | +| `Ctrl` `F` | Search for items. | +| `Ctrl` `Alt` `F` | Find items in the current list. | +| `Esc` | Clear the search field. | +| `Ctrl` `1` | Switch to All Accounts. | +| `Ctrl` `2...9` | Switch accounts and collections. | +| `Alt` `Left Arrow` | Go back. | +| `Alt` `Right Arrow` | Go forward. | +| `Down Arrow` | Focus next row. | +| `Up Arrow` | Focus previous row. | +| `Right Arrow` | Focus right section. | +| `Left Arrow` | Focus left section. | +| `Space` | Activate focused element. | +| `Ctrl` `C` | Copy the username or primary field of the selected. | +| `Ctrl` `Shift` `C` | Copy the password of the selected. | +| `Ctrl` `Alt` `C` | Copy the one-time password of the selected. | +| `Ctrl` `Shift` `F` | Open the website for the selected login in your browser and fill your username and password. | +| `Ctrl` `O` | Open the selected in a new window. | +| `Ctrl` `N` | Create a new item. | +| `Ctrl` `E` | Edit the selected. | +| `Ctrl` `S` | Save changes to an item. | +| `Esc` | Cancel an edit. | +| `Ctrl` `R` | Reveal or conceal secure fields in the selected. | +| `Ctrl` `Alt` | Temporarily reveal all secure fields in the selected.\* | +| `Delete` | Move the selected(s) to the Archive. | +| `Ctrl` `Delete` | Delete the selected(s). | +| `Ctrl` `Shift` `D` | Collapse or expand the sidebar. | +| `Ctrl` `+` | Zoom in. | +| `Ctrl` `-` | Zoom out. | +| `Ctrl` `0` | Revert to actual size. | - -### 1Password in the browser {.row-span-2} - -| `Shortcut ` | Action | -|---------------------------------------|-------------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `X ` | Open or close the 1Password pop-up in Chrome, Edge, or Brave. | -| `Ctrl` `.` | Open or close the 1Password pop-up in Firefox. | -| `Ctrl` `F ` | Search for items. | -| `Esc ` | Clear the search field. | -| `Ctrl` `D ` | Show the list of vaults. | -| `Ctrl` `Down Arrow ` | Open or close the category menu. | -| `Down Arrow ` | Select the next category, item, or field. | -| `Up Arrow ` | Select the previous category, item, or field. | -| `Right Arrow ` | Select the item details. | -| `Left Arrow ` | Select the item list. | -| `Space ` | Expand item overview banners. | -| `Enter ` | Copy the selected detail.Perform the default action for the selected. | -| `Ctrl` `C ` | Copy the username of the selected. | -| `Ctrl` `Shift` `C ` | Copy the password of the selected. | -| `Ctrl` `Shift` `Win` `C` | Copy the one-time password of the selected. | -| `Ctrl` `Enter ` | Open the website for the selected login in a new tab and fill your username and password. | -| `Ctrl` `O ` | Open the selected in a separate window. | -| `Ctrl` `I ` | Create new item. | -| `Ctrl` `E ` | Edit the selected. | -| `Ctrl` `Alt ` | Temporarily reveal all secure fields in the selected. | -| `Ctrl` `G ` | Show the password generator. | -| `Ctrl` `C ` | Copy a password from the password generator. | -| `Ctrl` `Shift` `L ` | Lock 1Password. | -| `Esc ` | Close the 1Password pop-up. | {.shortcuts} +### 1Password in the browser {.row-span-2} +| `Shortcut` | Action | +| ------------------------ | ----------------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `X` | Open or close the 1Password pop-up in Chrome, Edge, or Brave. | +| `Ctrl` `.` | Open or close the 1Password pop-up in Firefox. | +| `Ctrl` `F` | Search for items. | +| `Esc` | Clear the search field. | +| `Ctrl` `D` | Show the list of vaults. | +| `Ctrl` `Down Arrow` | Open or close the category menu. | +| `Down Arrow` | Select the next category, item, or field. | +| `Up Arrow` | Select the previous category, item, or field. | +| `Right Arrow` | Select the item details. | +| `Left Arrow` | Select the item list. | +| `Space` | Expand item overview banners. | +| `Enter` | Copy the selected detail.Perform the default action for the selected. | +| `Ctrl` `C` | Copy the username of the selected. | +| `Ctrl` `Shift` `C` | Copy the password of the selected. | +| `Ctrl` `Shift` `Win` `C` | Copy the one-time password of the selected. | +| `Ctrl` `Enter` | Open the website for the selected login in a new tab and fill your username and password. | +| `Ctrl` `O` | Open the selected in a separate window. | +| `Ctrl` `I` | Create new item. | +| `Ctrl` `E` | Edit the selected. | +| `Ctrl` `Alt` | Temporarily reveal all secure fields in the selected. | +| `Ctrl` `G` | Show the password generator. | +| `Ctrl` `C` | Copy a password from the password generator. | +| `Ctrl` `Shift` `L` | Lock 1Password. | +| `Esc` | Close the 1Password pop-up. | - -### Quick Access - -| `Shortcut ` | Action | -|------------------------------|-------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `Space` | Open or close Quick Access. | -| `Esc ` | Clear the search field. | -| `Ctrl` `1...9 ` | Switch accounts or collections. | -| `Right Arrow ` | View all available actions. | -| `Ctrl` `C ` | Copy username or primary field. | -| `Ctrl` `Shift` `C ` | Copy password. | -| `Ctrl` `Alt` `C ` | Copy one-time password. | -| `Ctrl` `O ` | Open item details in new window. | -| `Alt` `Enter ` | Open the website for the login in your browser and fill your username and password. | -| `Ctrl` `Shift` `O ` | Open the item in the app. | {.shortcuts} +### Quick Access +| `Shortcut` | Action | +| ---------------------- | ----------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `Space` | Open or close Quick Access. | +| `Esc` | Clear the search field. | +| `Ctrl` `1...9` | Switch accounts or collections. | +| `Right Arrow` | View all available actions. | +| `Ctrl` `C` | Copy username or primary field. | +| `Ctrl` `Shift` `C` | Copy password. | +| `Ctrl` `Alt` `C` | Copy one-time password. | +| `Ctrl` `O` | Open item details in new window. | +| `Alt` `Enter` | Open the website for the login in your browser and fill your username and password. | +| `Ctrl` `Shift` `O` | Open the item in the app. | +{.shortcuts} -1Password Keyboard Shortcuts for Linux ------------------- +## 1Password Keyboard Shortcuts for Linux ### X11 -| `Shortcut ` | Action | -|--------------------------|--------------------| +| `Shortcut` | Action | +| ----------------------- | ------------------ | | Enter your own shortcut | Show 1Password. | -| `Ctrl` `Shift` `Space` | Show Quick Access. | -| `Ctrl` `Shift` `L ` | Lock 1Password. | -| `Ctrl` `\` | Fill in Browser. | -{.shortcuts} - +| `Ctrl` `Shift` `Space` | Show Quick Access. | +| `Ctrl` `Shift` `L` | Lock 1Password. | +| `Ctrl` `\` | Fill in Browser. | - - -### 1Password app {.row-span-4} - -| `Shortcut ` | Action | -|--------------------------|----------------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `/` | View keyboard shortcuts. | -| `Alt ` | Show or hide the app menu in the title bar. | -| `Ctrl` `,` | Open settings. | -| `Ctrl` `F ` | Search for items. | -| `Ctrl` `Alt` `F ` | Find items in the current list. | -| `Esc ` | Clear the search field. | -| `Ctrl` `1 ` | Switch to All Accounts. | -| `Ctrl` `2...9` | Switch accounts and collections. | -| `Alt` `Left Arrow ` | Go back. | -| `Alt` `Right Arrow ` | Go forward. | -| `Down Arrow ` | Focus next row. | -| `Up Arrow ` | Focus previous row. | -| `Right Arrow ` | Focus right section. | -| `Left Arrow ` | Focus left section. | -| `Space ` | Activate focused element. | -| `Ctrl` `C ` | Copy the username or primary field of the selected. | -| `Ctrl` `Shift` `C ` | Copy the password of the selected. | -| `Ctrl` `Alt` `C ` | Copy the one-time password of the selected. | -| `Ctrl` `Shift` `F ` | Open the website for the selected login in your browser and fill your username and password. | -| `Ctrl` `O ` | Open the selected in a new window. | -| `Ctrl` `N ` | Create a new item. | -| `Ctrl` `E ` | Edit the selected. | -| `Ctrl` `S ` | Save changes to an item. | -| `Esc ` | Cancel an edit. | -| `Ctrl` `R ` | Reveal or conceal secure fields in the selected. | -| `Ctrl` `Alt ` | Temporarily reveal all secure fields in the selected. | -| `Delete ` | Move the selected(s) to the Archive. | -| `Ctrl` `Delete ` | Delete the selected(s). | -| `Ctrl` `Shift` `D ` | Collapse or expand the sidebar. | -| `Ctrl` `+` | Zoom in. | -| `Ctrl` `-` | Zoom out. | -| `Ctrl` `0 ` | Revert to actual size. | {.shortcuts} +### 1Password app {.row-span-4} +| `Shortcut` | Action | +| ------------------- | -------------------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `/` | View keyboard shortcuts. | +| `Alt` | Show or hide the app menu in the title bar. | +| `Ctrl` `,` | Open settings. | +| `Ctrl` `F` | Search for items. | +| `Ctrl` `Alt` `F` | Find items in the current list. | +| `Esc` | Clear the search field. | +| `Ctrl` `1` | Switch to All Accounts. | +| `Ctrl` `2...9` | Switch accounts and collections. | +| `Alt` `Left Arrow` | Go back. | +| `Alt` `Right Arrow` | Go forward. | +| `Down Arrow` | Focus next row. | +| `Up Arrow` | Focus previous row. | +| `Right Arrow` | Focus right section. | +| `Left Arrow` | Focus left section. | +| `Space` | Activate focused element. | +| `Ctrl` `C` | Copy the username or primary field of the selected. | +| `Ctrl` `Shift` `C` | Copy the password of the selected. | +| `Ctrl` `Alt` `C` | Copy the one-time password of the selected. | +| `Ctrl` `Shift` `F` | Open the website for the selected login in your browser and fill your username and password. | +| `Ctrl` `O` | Open the selected in a new window. | +| `Ctrl` `N` | Create a new item. | +| `Ctrl` `E` | Edit the selected. | +| `Ctrl` `S` | Save changes to an item. | +| `Esc` | Cancel an edit. | +| `Ctrl` `R` | Reveal or conceal secure fields in the selected. | +| `Ctrl` `Alt` | Temporarily reveal all secure fields in the selected. | +| `Delete` | Move the selected(s) to the Archive. | +| `Ctrl` `Delete` | Delete the selected(s). | +| `Ctrl` `Shift` `D` | Collapse or expand the sidebar. | +| `Ctrl` `+` | Zoom in. | +| `Ctrl` `-` | Zoom out. | +| `Ctrl` `0` | Revert to actual size. | - -### 1Password in the browser {.row-span-4} - -| `Shortcut ` | Action | -|--------------------------------|-------------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `X ` | Open or close the 1Password pop-up in Chrome, Edge, or Brave. | -| `Ctrl` `.` | Open or close the 1Password pop-up in Firefox. | -| `Ctrl` `F ` | Search for items. | -| `Esc ` | Clear the search field. | -| `Ctrl` `D ` | Show the list of vaults. | -| `Ctrl` `Down Arrow ` | Open or close the category menu. | -| `Down Arrow ` | Select the next category, item, or field. | -| `Up Arrow ` | Select the previous category, item, or field. | -| `Right Arrow ` | Select the item details. | -| `Left Arrow ` | Select the item list. | -| `Space ` | Expand item overview banners. | -| `Enter ` | Copy the selected detail.Perform the default action for the selected. | -| `Ctrl` `C ` | Copy the username of the selected. | -| `Ctrl` `Shift` `C ` | Copy the password of the selected. | -| `Ctrl` `Shift` `Super key` `C` | Copy the one-time password of the selected. | -| `Ctrl` `Enter ` | Open the website for the selected login in a new tab and fill your username and password. | -| `Ctrl` `O ` | Open the selected in a separate window. | -| `Ctrl` `I ` | Create new item. | -| `Ctrl` `E ` | Edit the selected. | -| `Ctrl` `Alt ` | Temporarily reveal all secure fields in the selected. | -| `Ctrl` `G ` | Show the password generator. | -| `Ctrl` `C ` | Copy a password from the password generator. | -| `Ctrl` `Shift` `L ` | Lock 1Password. | -| `Esc ` | Close the 1Password pop-up. | {.shortcuts} +### 1Password in the browser {.row-span-4} +| `Shortcut` | Action | +| ------------------------------ | ----------------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `X` | Open or close the 1Password pop-up in Chrome, Edge, or Brave. | +| `Ctrl` `.` | Open or close the 1Password pop-up in Firefox. | +| `Ctrl` `F` | Search for items. | +| `Esc` | Clear the search field. | +| `Ctrl` `D` | Show the list of vaults. | +| `Ctrl` `Down Arrow` | Open or close the category menu. | +| `Down Arrow` | Select the next category, item, or field. | +| `Up Arrow` | Select the previous category, item, or field. | +| `Right Arrow` | Select the item details. | +| `Left Arrow` | Select the item list. | +| `Space` | Expand item overview banners. | +| `Enter` | Copy the selected detail.Perform the default action for the selected. | +| `Ctrl` `C` | Copy the username of the selected. | +| `Ctrl` `Shift` `C` | Copy the password of the selected. | +| `Ctrl` `Shift` `Super key` `C` | Copy the one-time password of the selected. | +| `Ctrl` `Enter` | Open the website for the selected login in a new tab and fill your username and password. | +| `Ctrl` `O` | Open the selected in a separate window. | +| `Ctrl` `I` | Create new item. | +| `Ctrl` `E` | Edit the selected. | +| `Ctrl` `Alt` | Temporarily reveal all secure fields in the selected. | +| `Ctrl` `G` | Show the password generator. | +| `Ctrl` `C` | Copy a password from the password generator. | +| `Ctrl` `Shift` `L` | Lock 1Password. | +| `Esc` | Close the 1Password pop-up. | - +{.shortcuts} ### GNOME -| Shortcut | Action | -|------------------------|--------------------------| +| Shortcut | Action | +| ---------------------- | ------------------------ | | `Ctrl` `P` | 1password --show | | `Ctrl` `Shift` `Space` | 1password --quick-access | | `Ctrl` `Shift` `L` | 1password --lock | -| `Ctrl` `\` | 1password --fill | -{.shortcuts} - - +| `Ctrl` `\` | 1password --fill | - -### KDE Plasma - -| `Trigger ` | Action | -|--------------------------|--------------------------| -| `Ctrl` `P ` | 1password --show | -| `Ctrl` `Shift` `Space` | 1password --quick` `access | -| `Ctrl` `Shift` `L ` | 1password --lock | -| `Ctrl` `\` | 1password --fill | {.shortcuts} +### KDE Plasma +| `Trigger` | Action | +| ---------------------- | ------------------------ | +| `Ctrl` `P` | 1password --show | +| `Ctrl` `Shift` `Space` | 1password --quick-access | +| `Ctrl` `Shift` `L` | 1password --lock | +| `Ctrl` `\` | 1password --fill | - - +{.shortcuts} ### Quick Access -| `Shortcut ` | Action | -|------------------------------|-------------------------------------------------------------------------------------| -| `Ctrl` `Shift` `Space` | Open or close Quick Access. | -| `Esc ` | Clear the search field. | -| `Ctrl` `1...9 ` | Switch accounts or collections. | -| `Right Arrow ` | View all available actions. | -| `Ctrl` `C ` | Copy username or primary field. | -| `Ctrl` `Shift` `C ` | Copy password. | -| `Ctrl` `Alt` `C ` | Copy one-time password. | -| `Ctrl` `O ` | Open item details in new window. | -| `Alt` `Enter ` | Open the website for the login in your browser and fill your username and password. | -| `Ctrl` `Shift` `O ` | Open the item in the app. | -{.shortcuts} - +| `Shortcut` | Action | +| ---------------------- | ----------------------------------------------------------------------------------- | +| `Ctrl` `Shift` `Space` | Open or close Quick Access. | +| `Esc` | Clear the search field. | +| `Ctrl` `1...9` | Switch accounts or collections. | +| `Right Arrow` | View all available actions. | +| `Ctrl` `C` | Copy username or primary field. | +| `Ctrl` `Shift` `C` | Copy password. | +| `Ctrl` `Alt` `C` | Copy one-time password. | +| `Ctrl` `O` | Open item details in new window. | +| `Alt` `Enter` | Open the website for the login in your browser and fill your username and password. | +| `Ctrl` `Shift` `O` | Open the item in the app. | +{.shortcuts} +## Also see -Also see --------- - [Keyboard shortcuts for 1Password](https://support.1password.com/keyboard-shortcuts/) _(support.1password.com)_ From 3f8a0ad6c44add938fc7e07140d1e97de01de2de Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:45:49 -0700 Subject: [PATCH 10/81] fix: ai format Added some space between lists and their modifiers --- source/_posts/ai.md | 636 ++++++++++++++++++++++---------------------- 1 file changed, 319 insertions(+), 317 deletions(-) diff --git a/source/_posts/ai.md b/source/_posts/ai.md index 99fe5319..750dafc8 100644 --- a/source/_posts/ai.md +++ b/source/_posts/ai.md @@ -9,946 +9,947 @@ tags: - Resources categories: - Other -intro: This is a quick reference list of cheat sheets for the AI Navigation Directory, designed to help you discover exciting AI tools. +intro: + This is a quick reference list of cheat sheets for the AI Navigation Directory, designed to help you discover exciting + AI tools. --- -Getting Started ---------------- - +## Getting Started ### Health & fitness + - [![Favicon](https://icon.horse/icon/buoyhealth.com) Buoy health](https://buoyhealth.com) - [![Favicon](https://icon.horse/icon/mdacne.com) Mdacne](https://mdacne.com) - [![Favicon](https://icon.horse/icon/youper.ai) Youper](https://youper.ai) - [![Favicon](https://icon.horse/icon/endel.io/sleep) Endel × james blake: wind down](https://endel.io/sleep) - [![Favicon](https://icon.horse/icon/nowdialogue.com) Dialogue](https://nowdialogue.com) - [![Favicon](https://icon.horse/icon/maslo.ai) Maslo ai](https://maslo.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Text + - [![Favicon](https://icon.horse/icon/quillbot.com) Quillbot paraphraser](https://quillbot.com) - [![Favicon](https://icon.horse/icon/notion.so/product/ai) Notion ai](https://notion.so/product/ai) - [![Favicon](https://icon.horse/icon/naturalreaders.com) Naturalreader](https://naturalreaders.com) - [![Favicon](https://icon.horse/icon/wordtune.com/read) Wordtune read](https://wordtune.com/read) - [![Favicon](https://icon.horse/icon/uberduck.ai) Underduck](https://uberduck.ai) - [![Favicon](https://icon.horse/icon/aiseo.ai/templates/slogan-generator.html) Slogan generator](https://aiseo.ai/templates/slogan-generator.html) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Writing + - [![Favicon](https://icon.horse/icon/prowritingaid.com) Prowritingaid](https://prowritingaid.com) - [![Favicon](https://icon.horse/icon/sapling.ai) Sapling](https://sapling.ai) - [![Favicon](https://icon.horse/icon/coschedule.com/headline-studio) Headline studio](https://coschedule.com/headline-studio) - [![Favicon](https://icon.horse/icon/trinka.ai) Trinka](https://trinka.ai) - [![Favicon](https://icon.horse/icon/benchmarkemail.com/features/smart-content) Benchmark email](https://benchmarkemail.com/features/smart-content) - [![Favicon](https://icon.horse/icon/sassbook.com/ai-writer) Sassbook ai writer](https://sassbook.com/ai-writer) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Image editing + - [![Favicon](https://icon.horse/icon/remove.bg) Remove.bg](https://remove.bg) - [![Favicon](https://icon.horse/icon/tools.picsart.com/image) Quicktools by picsart](https://tools.picsart.com/image) - [![Favicon](https://icon.horse/icon/befunky.com) Befunky](https://befunky.com) - [![Favicon](https://icon.horse/icon/topazlabs.com/topaz-photo-ai) Topaz photo ai](https://topazlabs.com/topaz-photo-ai) - [![Favicon](https://icon.horse/icon/photoroom.com) Photoroom](https://photoroom.com) - [![Favicon](https://icon.horse/icon/erase.bg) Erase.bg](https://erase.bg) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Productivity + - [![Favicon](https://icon.horse/icon/openai.com/blog/dall-e) Dall-e](https://openai.com/blog/dall-e) - [![Favicon](https://icon.horse/icon/flowrite.com) Flowrite](https://flowrite.com) - [![Favicon](https://icon.horse/icon/golden.com) Golden](https://golden.com) - [![Favicon](https://icon.horse/icon/picturethisai.com) Picturethis](https://picturethisai.com) - [![Favicon](https://icon.horse/icon/wandb.ai/site) Weights & biases](https://wandb.ai/site) - [![Favicon](https://icon.horse/icon/vwo.com/ab-testing-openai-gpt-3) Vwo humans vs ai](https://vwo.com/ab-testing-openai-gpt-3) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Music + - [![Favicon](https://icon.horse/icon/openai.com/blog/musenet) Musenet (openai)](https://openai.com/blog/musenet) - [![Favicon](https://icon.horse/icon/sites.research.google/trc) Tensorflow research cloud](https://sites.research.google/trc) - [![Favicon](https://icon.horse/icon/moises.ai) Moises app](https://moises.ai) - [![Favicon](https://icon.horse/icon/soundraw.io) Soundraw](https://soundraw.io) - [![Favicon](https://icon.horse/icon/theselyricsdonotexist.com) Ai lyrics generator](https://theselyricsdonotexist.com) - [![Favicon](https://icon.horse/icon/phonicmind.com) Phonicmind](https://phonicmind.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Design assistant + - [![Favicon](https://icon.horse/icon/kapwing.com/cartoonify) Cartoonify](https://kapwing.com/cartoonify) - [![Favicon](https://icon.horse/icon/icons8.com/upscaler) Smart upscaler](https://icons8.com/upscaler) - [![Favicon](https://icon.horse/icon/icons8.com/bgremover) Background remover](https://icons8.com/bgremover) - [![Favicon](https://icon.horse/icon/icons8.com/lunacy) Lunacy](https://icons8.com/lunacy) - [![Favicon](https://icon.horse/icon/pixlr.com) Pixlr](https://pixlr.com) - [![Favicon](https://icon.horse/icon/namecheap.com/logo-maker) Launchaco free logo builder](https://namecheap.com/logo-maker) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Image + - [![Favicon](https://icon.horse/icon/icons8.com/swapper) Swapper](https://icons8.com/swapper) - [![Favicon](https://icon.horse/icon/movavi.com/photo-editor) Movavi picverse](https://movavi.com/photo-editor) - [![Favicon](https://icon.horse/icon/clipstudio.net/en) Clipstudio](https://clipstudio.net/en) - [![Favicon](https://icon.horse/icon/looka.com) Looka](https://looka.com) - [![Favicon](https://icon.horse/icon/midjourney.com) Midjourney](https://midjourney.com) - [![Favicon](https://icon.horse/icon/deepai.org/machine-learning-model/text2img) Text to image api](https://deepai.org/machine-learning-model/text2img) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Business + - [![Favicon](https://icon.horse/icon/tools.picsart.com/text/ai-writer) Ai writer by picsart](https://tools.picsart.com/text/ai-writer) - [![Favicon](https://icon.horse/icon/aiseo.ai/tools/paraphrasing-tool.html) Intelligent paraphraser](https://aiseo.ai/tools/paraphrasing-tool.html) - [![Favicon](https://icon.horse/icon/bardeen.ai) Bardeen ai](https://bardeen.ai) - [![Favicon](https://icon.horse/icon/wonsulting.com/resumai) Resumai](https://wonsulting.com/resumai) - [![Favicon](https://icon.horse/icon/durable.co/ai-website-builder) Durable ai site builder](https://durable.co/ai-website-builder) - [![Favicon](https://icon.horse/icon/tally.so/r/npeJgq) Startup pitch generator](https://tally.so/r/npeJgq) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Virtual reality + - [![Favicon](https://icon.horse/icon/myheritage.com/deep-nostalgia) Deep nostalgia™](https://myheritage.com/deep-nostalgia) - [![Favicon](https://icon.horse/icon/resemble.ai/gpt-3) Gpt-3 custom ai voices](https://resemble.ai/gpt-3) - [![Favicon](https://icon.horse/icon/sketchar.io) Ai portraits by sketchar](https://sketchar.io) - [![Favicon](https://icon.horse/icon/anything.world) Anything world](https://anything.world) - [![Favicon](https://icon.horse/icon/aipoly.com) Aipoly](https://aipoly.com) - [![Favicon](https://icon.horse/icon/aws.amazon.com/comprehend) Amazon comprehend](https://aws.amazon.com/comprehend) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Developer tools + - [![Favicon](https://icon.horse/icon/coda.io/@coda/openai-for-coda) Openai for coda](https://coda.io/@coda/openai-for-coda) - [![Favicon](https://icon.horse/icon/case-study-page-nanonets.webflow.io/ocr-api) Nanonets ocr](https://case-study-page-nanonets.webflow.io/ocr-api) - [![Favicon](https://icon.horse/icon/ai.google) Google.ai](https://ai.google) - [![Favicon](https://icon.horse/icon/assemblyai.com) Assemblyai](https://assemblyai.com) - [![Favicon](https://icon.horse/icon/httpie.io) Httpie ai](https://httpie.io) - [![Favicon](https://icon.horse/icon/runpod.io) Runpod](https://runpod.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Avatar + - [![Favicon](https://icon.horse/icon/myheritage.com/ai-time-machine) Ai time machine](https://myheritage.com/ai-time-machine) - [![Favicon](https://icon.horse/icon/readyplayer.me) Ready player me](https://readyplayer.me) - [![Favicon](https://icon.horse/icon/openart.ai/photobooth) Openart photo booth](https://openart.ai/photobooth) - [![Favicon](https://icon.horse/icon/hey.reface.ai) Reface ai](https://hey.reface.ai) - [![Favicon](https://icon.horse/icon/socialbook.io/ai-avatar) Pandora avatars](https://socialbook.io/ai-avatar) - [![Favicon](https://icon.horse/icon/livereacting.com/ai-host-for-live-stream) Livereacting ai](https://livereacting.com/ai-host-for-live-stream) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Fun tools + - [![Favicon](https://icon.horse/icon/transformer.huggingface.co) Write with artificial intelligence](https://transformer.huggingface.co) - [![Favicon](https://icon.horse/icon/chai.ml) Chai](https://chai.ml) - [![Favicon](https://icon.horse/icon/pudding.cool/2020/12/judge-my-spotify) How bad is your spotify?](https://pudding.cool/2020/12/judge-my-spotify) - [![Favicon](https://icon.horse/icon/playphrase.me/) Playphrase.me](https://playphrase.me/) - [![Favicon](https://icon.horse/icon/dreamily.ai/editor) Dreamily](https://dreamily.ai/editor) - [![Favicon](https://icon.horse/icon/supermeme.ai) Supermeme.ai](https://supermeme.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Seo + - [![Favicon](https://icon.horse/icon/writer.com) Writer](https://writer.com) - [![Favicon](https://icon.horse/icon/jenni.ai) Jenni](https://jenni.ai) - [![Favicon](https://icon.horse/icon/articleforge.com) Articleforge](https://articleforge.com) - [![Favicon](https://icon.horse/icon/wordhero.co) Wordhero](https://wordhero.co) - [![Favicon](https://icon.horse/icon/ai-writer.com) Ai-writer](https://ai-writer.com) - [![Favicon](https://icon.horse/icon/growthbarseo.com) Growthbar](https://growthbarseo.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Video editing + - [![Favicon](https://icon.horse/icon/wave.video) Wave.video](https://wave.video) - [![Favicon](https://icon.horse/icon/topazlabs.com/topaz-video-ai) Topaz video ai](https://topazlabs.com/topaz-video-ai) - [![Favicon](https://icon.horse/icon/unscreen.com) Unscreen.com](https://unscreen.com) - [![Favicon](https://icon.horse/icon/pictory.ai) Pictory](https://pictory.ai) - [![Favicon](https://icon.horse/icon/typestudio.co/tool/video-to-text) Type studio](https://typestudio.co/tool/video-to-text) - [![Favicon](https://icon.horse/icon/papercup.com) Papercup](https://papercup.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Code assistant + - [![Favicon](https://icon.horse/icon/replit.com/site/ghostwriter) Ghostwriter](https://replit.com/site/ghostwriter) - [![Favicon](https://icon.horse/icon/fig.io/user-manual/ai) Fig ai](https://fig.io/user-manual/ai) - [![Favicon](https://icon.horse/icon/continual.ai) Continual](https://continual.ai) - [![Favicon](https://icon.horse/icon/cheatlayer.com) Cheat layer](https://cheatlayer.com) - [![Favicon](https://icon.horse/icon/kodezi.com) Kodezi ai](https://kodezi.com) - [![Favicon](https://icon.horse/icon/whatthediff.ai) Whatthediff](https://whatthediff.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Mac + - [![Favicon](https://icon.horse/icon/myfonts.com) Whatthefont](https://myfonts.com) - [![Favicon](https://icon.horse/icon/references.design) References.design](https://references.design) - [![Favicon](https://icon.horse/icon/github.com/Swift-AI/Swift-AI) Swift ai](https://github.com/Swift-AI/Swift-AI) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Audio editing + - [![Favicon](https://icon.horse/icon/voicemod.net) Voicemod](https://voicemod.net) - [![Favicon](https://icon.horse/icon/podcastle.ai) Podcastle](https://podcastle.ai) - [![Favicon](https://icon.horse/icon/beatoven.ai) Beatoven.ai](https://beatoven.ai) - [![Favicon](https://icon.horse/icon/altered.ai) Altered](https://altered.ai) - [![Favicon](https://icon.horse/icon/cleanvoice.ai) Cleanvoice ai](https://cleanvoice.ai) - [![Favicon](https://icon.horse/icon/krisp.ai) Krisp](https://krisp.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Copywriting + - [![Favicon](https://icon.horse/icon/inkforall.com) Ink](https://inkforall.com) - [![Favicon](https://icon.horse/icon/boomeranggmail.com/respondable) Respondable](https://boomeranggmail.com/respondable) - [![Favicon](https://icon.horse/icon/frase.io) Frase](https://frase.io) - [![Favicon](https://icon.horse/icon/anyword.com) Anyword](https://anyword.com) - [![Favicon](https://icon.horse/icon/copysmith.ai) Copysmith](https://copysmith.ai) - [![Favicon](https://icon.horse/icon/hypotenuse.ai) Hypotenuse ai](https://hypotenuse.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### General writing + - [![Favicon](https://icon.horse/icon/languagetool.org) Languagetool](https://languagetool.org) - [![Favicon](https://icon.horse/icon/wordtune.com) Wordtune](https://wordtune.com) - [![Favicon](https://icon.horse/icon/kickresume.com) Kickresume](https://kickresume.com) - [![Favicon](https://icon.horse/icon/nichesss.com) Nichess](https://nichesss.com) - [![Favicon](https://icon.horse/icon/wordai.com) Wordai](https://wordai.com) - [![Favicon](https://icon.horse/icon/corrector.app) Corrector app](https://corrector.app) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Summarizer + - [![Favicon](https://icon.horse/icon/otter.ai) Otter ai](https://otter.ai) - [![Favicon](https://icon.horse/icon/tldrthis.com) Tldr this](https://tldrthis.com) - [![Favicon](https://icon.horse/icon/summari.com) Summari](https://summari.com) - [![Favicon](https://icon.horse/icon/tactiq.io) Tactiq](https://tactiq.io) - [![Favicon](https://icon.horse/icon/genei.io) Genei](https://genei.io) - [![Favicon](https://icon.horse/icon/upword.ai) Upword](https://upword.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Video generator + - [![Favicon](https://icon.horse/icon/invideo.io) Invideo](https://invideo.io) - [![Favicon](https://icon.horse/icon/replicate.com/google-research/frame-interpolation) Film](https://replicate.com/google-research/frame-interpolation) - [![Favicon](https://icon.horse/icon/synthesia.io) Synthesia](https://synthesia.io) - [![Favicon](https://icon.horse/icon/movio.la) Movio](https://movio.la) - [![Favicon](https://icon.horse/icon/hourone.ai) Hourone](https://hourone.ai) - [![Favicon](https://icon.horse/icon/colossyan.com) Colossyan](https://colossyan.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Legal assistant + - [![Favicon](https://icon.horse/icon/donotpay.com) Donotpay](https://donotpay.com) - [![Favicon](https://icon.horse/icon/darrow.ai) Darrow ai](https://darrow.ai) - [![Favicon](https://icon.horse/icon/spellbook.legal) Spellbook](https://spellbook.legal) - [![Favicon](https://icon.horse/icon/patentpal.com) Patentpal](https://patentpal.com) - [![Favicon](https://icon.horse/icon/legalrobot.com) Legal robot](https://legalrobot.com) - [![Favicon](https://icon.horse/icon/detangle.ai) Detangle.ai](https://detangle.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Generative art + - [![Favicon](https://icon.horse/icon/hotpot.ai/art-generator) Hotpot art generator](https://hotpot.ai/art-generator) - [![Favicon](https://icon.horse/icon/bannerbear.com) Bannerbear](https://bannerbear.com) - [![Favicon](https://icon.horse/icon/6pen.art) 6pen art](https://6pen.art) - [![Favicon](https://icon.horse/icon/admaker.memorable.io) Memorable ad maker](https://admaker.memorable.io) - [![Favicon](https://icon.horse/icon/withflair.ai) Flair](https://withflair.ai) - [![Favicon](https://icon.horse/icon/designedwithai.com) Designed with ai](https://designedwithai.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Text to speech + - [![Favicon](https://icon.horse/icon/speechify.com) Speechify](https://speechify.com) - [![Favicon](https://icon.horse/icon/fakeyou.com) Fakeyou](https://fakeyou.com) - [![Favicon](https://icon.horse/icon/play.ht) Play.ht](https://play.ht) - [![Favicon](https://icon.horse/icon/wellsaidlabs.com) Wellsaidlabs](https://wellsaidlabs.com) - [![Favicon](https://icon.horse/icon/resemble.ai) Resemble](https://resemble.ai) - [![Favicon](https://icon.horse/icon/aiva.ai) Aiva](https://aiva.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Life assistant + - [![Favicon](https://icon.horse/icon/resumeworded.com/index.php) Resume worded](https://resumeworded.com/index.php) - [![Favicon](https://icon.horse/icon/replika.com) Replika](https://replika.com) - [![Favicon](https://icon.horse/icon/justlearn.com) Justlearn](https://justlearn.com) - [![Favicon](https://icon.horse/icon/thekeys.ai) Thekeys](https://thekeys.ai) - [![Favicon](https://icon.horse/icon/looria.com) Looria](https://looria.com) - [![Favicon](https://icon.horse/icon/woebothealth.com) Woebot health](https://woebothealth.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Image generator + - [![Favicon](https://icon.horse/icon/hotpot.ai) Hotpot.ai](https://hotpot.ai) - [![Favicon](https://icon.horse/icon/generated.photos) Generated photos](https://generated.photos) - [![Favicon](https://icon.horse/icon/imgcreator.zmo.ai) Imgcreator](https://imgcreator.zmo.ai) - [![Favicon](https://icon.horse/icon/getimg.ai) Getimg.ai](https://getimg.ai) - [![Favicon](https://icon.horse/icon/stockai.com) Stock ai](https://stockai.com) - [![Favicon](https://icon.horse/icon/gocharlie.ai) Go charlie](https://gocharlie.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Book -- [![Favicon](https://icon.horse/icon/readthistwice.com/sona) Sona](https://readthistwice.com/sona) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/readthistwice.com/sona) Sona](https://readthistwice.com/sona) +{.icon-list .marker-none} ### Gaming + - [![Favicon](https://icon.horse/icon/play.aidungeon.io) Aidungeon](https://play.aidungeon.io) - [![Favicon](https://icon.horse/icon/beam.eyeware.tech) Eyeware beam](https://beam.eyeware.tech) - [![Favicon](https://icon.horse/icon/litrpgadventures.com) Litrpg adventures](https://litrpgadventures.com) - [![Favicon](https://icon.horse/icon/charisma.ai) Charisma](https://charisma.ai) - [![Favicon](https://icon.horse/icon/hiddendoor.co) Hidden door](https://hiddendoor.co) - [![Favicon](https://icon.horse/icon/ggpredict.io) Ggpredict](https://ggpredict.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Image scanning + - [![Favicon](https://icon.horse/icon/experiments.withgoogle.com/thing-translator) Thing translator](https://experiments.withgoogle.com/thing-translator) - [![Favicon](https://icon.horse/icon/poly.cam) Polycam](https://poly.cam) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Sales + - [![Favicon](https://icon.horse/icon/klaviyo.com/product/whats-new/sms-assistant) Klaviyo sms assistant](https://klaviyo.com/product/whats-new/sms-assistant) - [![Favicon](https://icon.horse/icon/instantly.ai) Instantly](https://instantly.ai) - [![Favicon](https://icon.horse/icon/affinity.co) Affinity](https://affinity.co) - [![Favicon](https://icon.horse/icon/trywingman.com) Wingman](https://trywingman.com) - [![Favicon](https://icon.horse/icon/lavender.ai) Lavender](https://lavender.ai) - [![Favicon](https://icon.horse/icon/cresta.com) Cresta](https://cresta.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Audio + - [![Favicon](https://icon.horse/icon/descript.com) Descript](https://descript.com) - [![Favicon](https://icon.horse/icon/lalal.ai) Lalal.ai voice cleaner](https://lalal.ai) - [![Favicon](https://icon.horse/icon/poly.ai) Poly ai](https://poly.ai) - [![Favicon](https://icon.horse/icon/wzrd.ai) Wzrd.ai](https://wzrd.ai) - [![Favicon](https://icon.horse/icon/rythmex.com) Rythmex](https://rythmex.com) - [![Favicon](https://icon.horse/icon/blogaudio.co) Blogaudio](https://blogaudio.co) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Analytics + - [![Favicon](https://icon.horse/icon/paperswithcode.com) Papers with code](https://paperswithcode.com) - [![Favicon](https://icon.horse/icon/explainpaper.com) Explainpaper](https://explainpaper.com) - [![Favicon](https://icon.horse/icon/anania.ai) Anania](https://anania.ai) - [![Favicon](https://icon.horse/icon/voiceops.com) Voiceops](https://voiceops.com) - [![Favicon](https://icon.horse/icon/stormly.com) Stormly 2.0](https://stormly.com) - [![Favicon](https://icon.horse/icon/sahha.ai) Sahha](https://sahha.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Fintech -- [![Favicon](https://icon.horse/icon/novamoney.app.link/PH) Nova money](https://novamoney.app.link/PH) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/novamoney.app.link/PH) Nova money](https://novamoney.app.link/PH) +{.icon-list .marker-none} ### Marketing + - [![Favicon](https://icon.horse/icon/monkeylearn.com) Monkeylearn](https://monkeylearn.com) - [![Favicon](https://icon.horse/icon/wonsulting.com/networkai) Networkai](https://wonsulting.com/networkai) - [![Favicon](https://icon.horse/icon/reply.io) Reply.io](https://reply.io) - [![Favicon](https://icon.horse/icon/outranking.io) Outranking](https://outranking.io) - [![Favicon](https://icon.horse/icon/linkgraph.io/seo-content-assistant) Seo content assistant by searchatlas](https://linkgraph.io/seo-content-assistant) - [![Favicon](https://icon.horse/icon/adcreative.ai) Adcreative.ai](https://adcreative.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Story teller + - [![Favicon](https://icon.horse/icon/novelai.net) Novelai](https://novelai.net) - [![Favicon](https://icon.horse/icon/artflow.ai) Artflow ai](https://artflow.ai) - [![Favicon](https://icon.horse/icon/subtxt.app) Subtxt](https://subtxt.app) - [![Favicon](https://icon.horse/icon/sceneone.app) Scene one](https://sceneone.app) - [![Favicon](https://icon.horse/icon/storypath.app) Story path](https://storypath.app) - [![Favicon](https://icon.horse/icon/whatonearth.xyz) What on earth?](https://whatonearth.xyz) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Low-code/no-code + - [![Favicon](https://icon.horse/icon/vwo.com/testing) Vwo](https://vwo.com/testing) - [![Favicon](https://icon.horse/icon/mutinyhq.com) Mutiny](https://mutinyhq.com) - [![Favicon](https://icon.horse/icon/nanonets.com) Nanonets](https://nanonets.com) - [![Favicon](https://icon.horse/icon/axiom.ai) Axiom](https://axiom.ai) - [![Favicon](https://icon.horse/icon/askviable.com) Viable](https://askviable.com) - [![Favicon](https://icon.horse/icon/durable.co) Durable](https://durable.co) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Art + - [![Favicon](https://icon.horse/icon/wombo.art) Wombo](https://wombo.art) - [![Favicon](https://icon.horse/icon/neural.love) Neural.love art generator](https://neural.love) - [![Favicon](https://icon.horse/icon/promptomania.com) Promptomania](https://promptomania.com) - [![Favicon](https://icon.horse/icon/lexica.art) Lexica](https://lexica.art) - [![Favicon](https://icon.horse/icon/alethea.ai/avatars) Ai avatars](https://alethea.ai/avatars) - [![Favicon](https://icon.horse/icon/diffusionbee.com) Diffusionbee](https://diffusionbee.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Customer communication -- [![Favicon](https://icon.horse/icon/algolia.com/products/recommendations) Algolia recommend](https://algolia.com/products/recommendations) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/algolia.com/products/recommendations) Algolia recommend](https://algolia.com/products/recommendations) +{.icon-list .marker-none} ### Chrome extensions + - [![Favicon](https://icon.horse/icon/sendpulse.com) Sendpulse for slack](https://sendpulse.com) - [![Favicon](https://icon.horse/icon/bizzabo.com) X.ai](https://bizzabo.com) - [![Favicon](https://icon.horse/icon/pipecandy.com) Pipecandy](https://pipecandy.com) - [![Favicon](https://icon.horse/icon/surferseo.com/free-article-outline-generator) Free article outline generator](https://surferseo.com/free-article-outline-generator) - [![Favicon](https://icon.horse/icon/fylehq.com) Fyle](https://fylehq.com) - [![Favicon](https://icon.horse/icon/socialbook.io/cartoonize) Socialbook cartoonizer](https://socialbook.io/cartoonize) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Search engine + - [![Favicon](https://icon.horse/icon/algolia.com) Algolia](https://algolia.com) - [![Favicon](https://icon.horse/icon/everypixel.com) Everypixel](https://everypixel.com) - [![Favicon](https://icon.horse/icon/andisearch.com) Andi](https://andisearch.com) - [![Favicon](https://icon.horse/icon/onemoreai.com) One more ai](https://onemoreai.com) - [![Favicon](https://icon.horse/icon/imaiger.com) Imaiger](https://imaiger.com) - [![Favicon](https://icon.horse/icon/dreamsands.ai) Dreamsands](https://dreamsands.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Research + - [![Favicon](https://icon.horse/icon/elicit.org) Elicit](https://elicit.org) - [![Favicon](https://icon.horse/icon/typeset.io) Scispace](https://typeset.io) - [![Favicon](https://icon.horse/icon/adept.ai) Adept](https://adept.ai) - [![Favicon](https://icon.horse/icon/scholarcy.com) Scholarcy](https://scholarcy.com) - [![Favicon](https://icon.horse/icon/consensus.app) Consensus](https://consensus.app) - [![Favicon](https://icon.horse/icon/akkio.com) Akkio](https://akkio.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Browser extensions -- [![Favicon](https://icon.horse/icon/usemotion.com) Motion task manager](https://usemotion.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/usemotion.com) Motion task manager](https://usemotion.com) +{.icon-list .marker-none} ### Pc -- [![Favicon](https://icon.horse/icon/paperspace.com/gradient) Gradient°](https://paperspace.com/gradient) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/paperspace.com/gradient) Gradient°](https://paperspace.com/gradient) +{.icon-list .marker-none} ### Prompt + - [![Favicon](https://icon.horse/icon/replicate.com/methexis-inc/img2prompt) Img2prompt](https://replicate.com/methexis-inc/img2prompt) - [![Favicon](https://icon.horse/icon/openart.ai) Openart](https://openart.ai) - [![Favicon](https://icon.horse/icon/decktopus.com/blog/chatgpt-prompts-for-your-next-launch) Decktopus](https://decktopus.com/blog/chatgpt-prompts-for-your-next-launch) - [![Favicon](https://icon.horse/icon/promptbase.com) Promptbase](https://promptbase.com) - [![Favicon](https://icon.horse/icon/krea.ai) Krea](https://krea.ai) - [![Favicon](https://icon.horse/icon/pyttipanna.xyz) Pyttipanna](https://pyttipanna.xyz) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Email + - [![Favicon](https://icon.horse/icon/unbounce.com) The landing page analyzer by unbounce](https://unbounce.com) - [![Favicon](https://icon.horse/icon/unbounce.com/smart-copy-everywhere) Smart copy everywhere](https://unbounce.com/smart-copy-everywhere) - [![Favicon](https://icon.horse/icon/breadcrumbs.io/reveal) Breadcrumbs reveal](https://breadcrumbs.io/reveal) - [![Favicon](https://icon.horse/icon/emergingtechbrew.com) Emerging tech brew](https://emergingtechbrew.com) - [![Favicon](https://icon.horse/icon/snazzy.ai) Snazzy ai](https://snazzy.ai) - [![Favicon](https://icon.horse/icon/conduithq.com) Conduit](https://conduithq.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Image improvement + - [![Favicon](https://icon.horse/icon/vanceai.com/image-enlarger) Vanceai image upscaler](https://vanceai.com/image-enlarger) - [![Favicon](https://icon.horse/icon/cloudinary.com) Cloudinary](https://cloudinary.com) - [![Favicon](https://icon.horse/icon/ai.nero.com/image-upscaler) Nero image upscaler](https://ai.nero.com/image-upscaler) - [![Favicon](https://icon.horse/icon/prisma-ai.com/lensa) Lensa](https://prisma-ai.com/lensa) - [![Favicon](https://icon.horse/icon/convert.leiapix.com) Leiapix](https://convert.leiapix.com) - [![Favicon](https://icon.horse/icon/github.com/Sanster/lama-cleaner) Lama cleaner](https://github.com/Sanster/lama-cleaner) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Human resources + - [![Favicon](https://icon.horse/icon/chatbot.com/features) Chatbot](https://chatbot.com/features) - [![Favicon](https://icon.horse/icon/moveworks.com) Moveworks](https://moveworks.com) - [![Favicon](https://icon.horse/icon/findem.ai) Findem](https://findem.ai) - [![Favicon](https://icon.horse/icon/skillroads.com) Skillroads](https://skillroads.com) - [![Favicon](https://icon.horse/icon/qatalog.com) Qatalog](https://qatalog.com) - [![Favicon](https://icon.horse/icon/hellotars.com/ph) Tars](https://hellotars.com/ph) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Website + - [![Favicon](https://icon.horse/icon/getresponse.com/features/website-builder) Getresponse](https://getresponse.com/features/website-builder) - [![Favicon](https://icon.horse/icon/bookmark.com/ai-website-builder) Aida](https://bookmark.com/ai-website-builder) - [![Favicon](https://icon.horse/icon/studio.design) Studio design](https://studio.design) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Branding + - [![Favicon](https://icon.horse/icon/namesnack.com) Namesnack](https://namesnack.com) - [![Favicon](https://icon.horse/icon/namify.tech) Namify](https://namify.tech) - [![Favicon](https://icon.horse/icon/namefruits.com) Namefruits](https://namefruits.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Speech + - [![Favicon](https://icon.horse/icon/speechanalyzer.elsaspeak.com) Elsa speech analyzer](https://speechanalyzer.elsaspeak.com) - [![Favicon](https://icon.horse/icon/resemble.ai/speech-to-speech) Speech-to-speech](https://resemble.ai/speech-to-speech) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Communication -- [![Favicon](https://icon.horse/icon/poised.com) Poised 2.0](https://poised.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/poised.com) Poised 2.0](https://poised.com) +{.icon-list .marker-none} ### Other + - [![Favicon](https://icon.horse/icon/pjreddie.com/darknet/yolo) Yolo](https://pjreddie.com/darknet/yolo) - [![Favicon](https://icon.horse/icon/hownormalami.eu) How normal am i?](https://hownormalami.eu) - [![Favicon](https://icon.horse/icon/toonify.photos) Toonify](https://toonify.photos) - [![Favicon](https://icon.horse/icon/gptcrush.com/resources) Gpt-3 crush](https://gptcrush.com/resources) - [![Favicon](https://icon.horse/icon/handl.ai) Handl](https://handl.ai) - [![Favicon](https://icon.horse/icon/aicheatsheet.comuzi.xyz) Ai cheatsheet](https://aicheatsheet.comuzi.xyz) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Health -- [![Favicon](https://icon.horse/icon/ubiehealth.com) Ubie ai symptom checker](https://ubiehealth.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/ubiehealth.com) Ubie ai symptom checker](https://ubiehealth.com) +{.icon-list .marker-none} ### Aggregator + - [![Favicon](https://icon.horse/icon/gpt3demo.com) Gpt-3 demo](https://gpt3demo.com) - [![Favicon](https://icon.horse/icon/futurepedia.io) Futurepedia](https://futurepedia.io) - [![Favicon](https://icon.horse/icon/library.phygital.plus) Ai library](https://library.phygital.plus) - [![Favicon](https://icon.horse/icon/smokingrobot.ai) Smoking robot ai](https://smokingrobot.ai) - [![Favicon](https://icon.horse/icon/allthingsai.com) All things ai](https://allthingsai.com) - [![Favicon](https://icon.horse/icon/aitogrow.com) Aitogrow](https://aitogrow.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Customer support + - [![Favicon](https://icon.horse/icon/hiverhq.com/harvey-ai-customer-support) Harvey](https://hiverhq.com/harvey-ai-customer-support) - [![Favicon](https://icon.horse/icon/forethought.ai) Forethought](https://forethought.ai) - [![Favicon](https://icon.horse/icon/kore.ai) Kore.ai](https://kore.ai) - [![Favicon](https://icon.horse/icon/regie.ai) Regie](https://regie.ai) - [![Favicon](https://icon.horse/icon/typewise.app) Typewise](https://typewise.app) - [![Favicon](https://icon.horse/icon/quickchat.ai) Quickchat](https://quickchat.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Movies -- [![Favicon](https://icon.horse/icon/taste.io) Taste](https://taste.io) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/taste.io) Taste](https://taste.io) +{.icon-list .marker-none} ### Video + - [![Favicon](https://icon.horse/icon/deepfakesweb.com) Deepfakesweb](https://deepfakesweb.com) - [![Favicon](https://icon.horse/icon/fineshare.com/finecam) Fineshare](https://fineshare.com/finecam) - [![Favicon](https://icon.horse/icon/wisecut.video) Wisecut](https://wisecut.video) - [![Favicon](https://icon.horse/icon/elai.io) Elai](https://elai.io) - [![Favicon](https://icon.horse/icon/move.ai) Move](https://move.ai) - [![Favicon](https://icon.horse/icon/twelvelabs.io) Twelve labs](https://twelvelabs.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Email assistant + - [![Favicon](https://icon.horse/icon/missiveapp.com) Missive](https://missiveapp.com) - [![Favicon](https://icon.horse/icon/magicreach.ai) Magicreach](https://magicreach.ai) - [![Favicon](https://icon.horse/icon/ellieai.com) Ellie](https://ellieai.com) - [![Favicon](https://icon.horse/icon/superreply.co) Superreply](https://superreply.co) - [![Favicon](https://icon.horse/icon/chatgptwriter.ai) Chatgpt writer](https://chatgptwriter.ai) - [![Favicon](https://icon.horse/icon/superhuman.com) Superhuman](https://superhuman.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Messaging + - [![Favicon](https://icon.horse/icon/madgicx.com) Madgicx for facebook ads](https://madgicx.com) - [![Favicon](https://icon.horse/icon/bottr.me) Bottr.me](https://bottr.me) - [![Favicon](https://icon.horse/icon/octaneai.com) Octane ai](https://octaneai.com) - [![Favicon](https://icon.horse/icon/gonerdify.com/nerdybot) Nerdify bot](https://gonerdify.com/nerdybot) - [![Favicon](https://icon.horse/icon/fritz.ai/launch) Fritz](https://fritz.ai/launch) - [![Favicon](https://icon.horse/icon/abe.ai) Abe](https://abe.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Generative video + - [![Favicon](https://icon.horse/icon/lumen5.com) Lumen5](https://lumen5.com) - [![Favicon](https://icon.horse/icon/livereacting.com) Livereacting](https://livereacting.com) - [![Favicon](https://icon.horse/icon/reachout.ai) Reachout.ai](https://reachout.ai) - [![Favicon](https://icon.horse/icon/huggingface.co/spaces/camenduru/one-shot-talking-face) One shot talking face](https://huggingface.co/spaces/camenduru/one-shot-talking-face) - [![Favicon](https://icon.horse/icon/boolvideoinvite.carrd.co) Boolvideo](https://boolvideoinvite.carrd.co) - [![Favicon](https://icon.horse/icon/quickvid.ai) Quickvid](https://quickvid.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Safari extensions -- [![Favicon](https://icon.horse/icon/rezi.ai/ai-resume-builder) Rezi 3.0](https://rezi.ai/ai-resume-builder) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/rezi.ai/ai-resume-builder) Rezi 3.0](https://rezi.ai/ai-resume-builder) +{.icon-list .marker-none} ### Transcriber + - [![Favicon](https://icon.horse/icon/fireflies.ai) Fireflies.ai](https://fireflies.ai) - [![Favicon](https://icon.horse/icon/steno.ai) Steno](https://steno.ai) - [![Favicon](https://icon.horse/icon/peech-ai.com) Peech](https://peech-ai.com) - [![Favicon](https://icon.horse/icon/anypod.ai) Anypod](https://anypod.ai) - [![Favicon](https://icon.horse/icon/supertranslate.ai) Supertranslate](https://supertranslate.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Motion capture + - [![Favicon](https://icon.horse/icon/rokoko.com) Rokoko](https://rokoko.com) - [![Favicon](https://icon.horse/icon/cascadeur.com) Cascadeur](https://cascadeur.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Voice + - [![Favicon](https://icon.horse/icon/fineshare.com/finevoice) Fineshare](https://fineshare.com/finevoice) - [![Favicon](https://icon.horse/icon/voice.ai) Voice ai](https://voice.ai) - [![Favicon](https://icon.horse/icon/vocads.com) Vocads survey](https://vocads.com) - [![Favicon](https://icon.horse/icon/whisperapi.com) Whisperapi](https://whisperapi.com) - [![Favicon](https://icon.horse/icon/createaivoiceovers.com) Createaivoiceovers](https://createaivoiceovers.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Machine learning + - [![Favicon](https://icon.horse/icon/h2o.ai) H2o ai](https://h2o.ai) - [![Favicon](https://icon.horse/icon/nocodebooth.com) Nocodebooth](https://nocodebooth.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Social media assistant + - [![Favicon](https://icon.horse/icon/tweethunter.io) Tweet hunter](https://tweethunter.io) - [![Favicon](https://icon.horse/icon/socialbu.com) Socialbu](https://socialbu.com) - [![Favicon](https://icon.horse/icon/predis.ai) Predis](https://predis.ai) - [![Favicon](https://icon.horse/icon/feedhive.com) Feedhive](https://feedhive.com) - [![Favicon](https://icon.horse/icon/audiolabs.io) Audiolabs](https://audiolabs.io) - [![Favicon](https://icon.horse/icon/zaap.ai) Zaap.ai](https://zaap.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Inspiration + - [![Favicon](https://icon.horse/icon/entreresource.com/chatgpt-cheat-sheet) Gpt cheat sheet](https://entreresource.com/chatgpt-cheat-sheet) - [![Favicon](https://icon.horse/icon/trello.com/b/4BPkSY1w/100-ai-prompts-resources-prompt-lovers) 100+ ai prompts](https://trello.com/b/4BPkSY1w/100-ai-prompts-resources-prompt-lovers) - [![Favicon](https://icon.horse/icon/aealexander.com/midjourney-prompt-database) Midjourney prompt database](https://aealexander.com/midjourney-prompt-database) - [![Favicon](https://icon.horse/icon/prompt.noonshot.com) Midjourney prompt tool](https://prompt.noonshot.com) - [![Favicon](https://icon.horse/icon/saaslibrary.dev) Saas library](https://saaslibrary.dev) - [![Favicon](https://icon.horse/icon/ordinarypeopleprompts.com) Ordinary prompts](https://ordinarypeopleprompts.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Stocks -- [![Favicon](https://icon.horse/icon/torto.ai/welcome) Torto.ai](https://torto.ai/welcome) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/torto.ai/welcome) Torto.ai](https://torto.ai/welcome) +{.icon-list .marker-none} ### Voice modulation + - [![Favicon](https://icon.horse/icon/voice.ai/voice-ai-beta/I2p6L) Voice.ai](https://voice.ai/voice-ai-beta/I2p6L) - [![Favicon](https://icon.horse/icon/studio.themetavoice.xyz) Metavoice studio](https://studio.themetavoice.xyz) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Paraphraser + - [![Favicon](https://icon.horse/icon/paraphrasetool.com) Paraphraser](https://paraphrasetool.com) - [![Favicon](https://icon.horse/icon/rephrasely.com) Rephrasely](https://rephrasely.com) - [![Favicon](https://icon.horse/icon/bearly.ai) Bearly](https://bearly.ai) - [![Favicon](https://icon.horse/icon/wordfixerbot.com) Wordfixerbot](https://wordfixerbot.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Amazon -- [![Favicon](https://icon.horse/icon/TheReviewIndex.com/us) Thereviewindex](https://TheReviewIndex.com/us) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/TheReviewIndex.com/us) Thereviewindex](https://TheReviewIndex.com/us) +{.icon-list .marker-none} ### Personalized videos + - [![Favicon](https://icon.horse/icon/windsor.io) Windsor](https://windsor.io) - [![Favicon](https://icon.horse/icon/rephrase.ai) Rephrase](https://rephrase.ai) - [![Favicon](https://icon.horse/icon/trymaverick.com) Maverick](https://trymaverick.com) - [![Favicon](https://icon.horse/icon/bhuman.ai) Bhuman](https://bhuman.ai) - [![Favicon](https://icon.horse/icon/vidyo.ai) Vidyo](https://vidyo.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Spreadsheets + - [![Favicon](https://icon.horse/icon/excelformulabot.com) Excel formula bot](https://excelformulabot.com) - [![Favicon](https://icon.horse/icon/boloforms.com/sheetgod) Sheetgod](https://boloforms.com/sheetgod) - [![Favicon](https://icon.horse/icon/sheetai.app) Sheet ai](https://sheetai.app) - [![Favicon](https://icon.horse/icon/sheetplus.ai) Sheet+](https://sheetplus.ai) - [![Favicon](https://icon.horse/icon/workspace.google.com/marketplace/app/simple_ml_for_sheets/685936641092) Simple ml](https://workspace.google.com/marketplace/app/simple_ml_for_sheets/685936641092) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Ipad -- [![Favicon](https://icon.horse/icon/brain.fm) Brain.fm](https://brain.fm) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/brain.fm) Brain.fm](https://brain.fm) +{.icon-list .marker-none} ### Task management + - [![Favicon](https://icon.horse/icon/levity.ai) Levity](https://levity.ai) - [![Favicon](https://icon.horse/icon/apac.ai) Athena](https://apac.ai) - [![Favicon](https://icon.horse/icon/teacherbot.io) Teacherbot](https://teacherbot.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Email marketing -- [![Favicon](https://icon.horse/icon/phrasee.co) Phrasee](https://phrasee.co) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/phrasee.co) Phrasee](https://phrasee.co) +{.icon-list .marker-none} ### Fashion + - [![Favicon](https://icon.horse/icon/ca.la) Cala](https://ca.la) - [![Favicon](https://icon.horse/icon/botika.io) Botika](https://botika.io) - [![Favicon](https://icon.horse/icon/fashionadvisorai.com) Fashionadvisorai](https://fashionadvisorai.com) - [![Favicon](https://icon.horse/icon/visualhound.com) Visualhound](https://visualhound.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Generator -- [![Favicon](https://icon.horse/icon/blocksurvey.io/ai-surveys) Blocksurvey](https://blocksurvey.io/ai-surveys) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/blocksurvey.io/ai-surveys) Blocksurvey](https://blocksurvey.io/ai-surveys) +{.icon-list .marker-none} ### 3d + - [![Favicon](https://icon.horse/icon/deepmotion.com) Deepmotion](https://deepmotion.com) - [![Favicon](https://icon.horse/icon/plask.ai) Plask](https://plask.ai) - [![Favicon](https://icon.horse/icon/captures.lumalabs.ai/imagine) Imagine 3d](https://captures.lumalabs.ai/imagine) - [![Favicon](https://icon.horse/icon/lumalabs.ai) Luma ai](https://lumalabs.ai) - [![Favicon](https://icon.horse/icon/kaedim3d.com) Kaedim](https://kaedim3d.com) - [![Favicon](https://icon.horse/icon/masterpiecestudio.com) Masterpiece studio](https://masterpiecestudio.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Home + - [![Favicon](https://icon.horse/icon/shapescale.com) Shapescale](https://shapescale.com) - [![Favicon](https://icon.horse/icon/github.com/Shinao/SmartMirror) Smartmirror](https://github.com/Shinao/SmartMirror) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Api + - [![Favicon](https://icon.horse/icon/deepgram.com) Deepgram](https://deepgram.com) - [![Favicon](https://icon.horse/icon/banana.dev) Banana](https://banana.dev) - [![Favicon](https://icon.horse/icon/perspectiveapi.com) Perspective](https://perspectiveapi.com) - [![Favicon](https://icon.horse/icon/theneo.io) Theneo](https://theneo.io) - [![Favicon](https://icon.horse/icon/base64.ai) Base64.ai](https://base64.ai) - [![Favicon](https://icon.horse/icon/trueface.ai) Trueface.ai](https://trueface.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Software engineering -- [![Favicon](https://icon.horse/icon/prodi.gy) Prodigy](https://prodi.gy) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/prodi.gy) Prodigy](https://prodi.gy) +{.icon-list .marker-none} ### Open source + - [![Favicon](https://icon.horse/icon/blog.floydhub.com) Floyd](https://blog.floydhub.com) - [![Favicon](https://icon.horse/icon/cloud.mindsdb.com) Mindsdb](https://cloud.mindsdb.com) - [![Favicon](https://icon.horse/icon/evidentlyai.com) Evidently ai](https://evidentlyai.com) - [![Favicon](https://icon.horse/icon/warrior.js.org) Warriorjs](https://warrior.js.org) - [![Favicon](https://icon.horse/icon/datature.io) Datature](https://datature.io) - [![Favicon](https://icon.horse/icon/bot.viseo.io) Viseo bot maker](https://bot.viseo.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Chat + - [![Favicon](https://icon.horse/icon/poppylist.com/askpoppy) Ask poppy](https://poppylist.com/askpoppy) - [![Favicon](https://icon.horse/icon/chatbotgpt3.bubbleapps.io/version-test) Gpt chatbot](https://chatbotgpt3.bubbleapps.io/version-test) - [![Favicon](https://icon.horse/icon/voiceflow.com) Voiceflow](https://voiceflow.com) - [![Favicon](https://icon.horse/icon/mobilespoon.net/2023/01/how-to-activate-chatgpt-with-siri-and-save-response.html) Chatgpt for siri](https://mobilespoon.net/2023/01/how-to-activate-chatgpt-with-siri-and-save-response.html) - [![Favicon](https://icon.horse/icon/trudo.ai) Trudo](https://trudo.ai) - [![Favicon](https://icon.horse/icon/unschooler.me) Unschooler](https://unschooler.me) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Playstation -- [![Favicon](https://icon.horse/icon/chatfuel.com) Chatfuel](https://chatfuel.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/chatfuel.com) Chatfuel](https://chatfuel.com) +{.icon-list .marker-none} ### Startup + - [![Favicon](https://icon.horse/icon/rationale.jina.ai) Rationale](https://rationale.jina.ai) - [![Favicon](https://icon.horse/icon/trustfinta.com) Finta](https://trustfinta.com) - [![Favicon](https://icon.horse/icon/ideabuddy.com) Ideabuddy](https://ideabuddy.com) - [![Favicon](https://icon.horse/icon/broadn.io) Broadn](https://broadn.io) - [![Favicon](https://icon.horse/icon/validatorai.com) Validator ai](https://validatorai.com) - [![Favicon](https://icon.horse/icon/namelix.com) Namelix](https://namelix.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Experiments + - [![Favicon](https://icon.horse/icon/alethea.ai) Alethea](https://alethea.ai) - [![Favicon](https://icon.horse/icon/thismodeldoesnotexist.co) This model does not exist](https://thismodeldoesnotexist.co) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Windows -- [![Favicon](https://icon.horse/icon/superannotate.com) Superannotate desktop](https://superannotate.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/superannotate.com) Superannotate desktop](https://superannotate.com) +{.icon-list .marker-none} ### Generative code + - [![Favicon](https://icon.horse/icon/gradio.app) Gradio](https://gradio.app) - [![Favicon](https://icon.horse/icon/obviously.ai) Obviously ai](https://obviously.ai) - [![Favicon](https://icon.horse/icon/sourceai.dev) Sourceai](https://sourceai.dev) - [![Favicon](https://icon.horse/icon/no-code-ai-model-builder.com) No-code ai model builder](https://no-code-ai-model-builder.com) - [![Favicon](https://icon.horse/icon/codesquire.ai) Codesquire](https://codesquire.ai) - [![Favicon](https://icon.horse/icon/aigur.dev) Aigur](https://aigur.dev) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Photography + - [![Favicon](https://icon.horse/icon/portrait.vana.com) Portrait by vana](https://portrait.vana.com) - [![Favicon](https://icon.horse/icon/photorestoration.ai) Photorestoration](https://photorestoration.ai) - [![Favicon](https://icon.horse/icon/ecosnap.vercel.app) Ecosnap](https://ecosnap.vercel.app) - [![Favicon](https://icon.horse/icon/github.com/yemount/pose-animator) Pose animator](https://github.com/yemount/pose-animator) - [![Favicon](https://icon.horse/icon/github.com/ageitgey/show-facebook-computer-vision-tags) Facebook computer vision tags](https://github.com/ageitgey/show-facebook-computer-vision-tags) - [![Favicon](https://icon.horse/icon/dpth.app) Dpth](https://dpth.app) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Healthcare -- [![Favicon](https://icon.horse/icon/whisper.ai) Whisper ai](https://whisper.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/whisper.ai) Whisper ai](https://whisper.ai) +{.icon-list .marker-none} ### Resources + - [![Favicon](https://icon.horse/icon/lablab.ai) Lablab.ai](https://lablab.ai) - [![Favicon](https://icon.horse/icon/aiartapps.com) Ai art apps database](https://aiartapps.com) - [![Favicon](https://icon.horse/icon/experiments.withgoogle.com/collection/ai) Ai experiments](https://experiments.withgoogle.com/collection/ai) - [![Favicon](https://icon.horse/icon/flowgpt.com) Flowgpt](https://flowgpt.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Growth hacking -- [![Favicon](https://icon.horse/icon/depict.ai) Depict.ai](https://depict.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/depict.ai) Depict.ai](https://depict.ai) +{.icon-list .marker-none} ### Kids -- [![Favicon](https://icon.horse/icon/brickit.app) Brickit](https://brickit.app) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/brickit.app) Brickit](https://brickit.app) +{.icon-list .marker-none} ### Search -- [![Favicon](https://icon.horse/icon/open.ai) Open](https://open.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/open.ai) Open](https://open.ai) +{.icon-list .marker-none} ### Speech-to-text + - [![Favicon](https://icon.horse/icon/glasp.co/youtube-summary) Glasp youtube summarizer](https://glasp.co/youtube-summary) - [![Favicon](https://icon.horse/icon/relayed.ai) Relayed](https://relayed.ai) - [![Favicon](https://icon.horse/icon/meeple.ai) Meeple](https://meeple.ai) - [![Favicon](https://icon.horse/icon/app.towords.io) Towords](https://app.towords.io) - [![Favicon](https://icon.horse/icon/usemelville.com) Melville app](https://usemelville.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Articles -- [![Favicon](https://icon.horse/icon/riku.ai/creators) Riku](https://riku.ai/creators) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/riku.ai/creators) Riku](https://riku.ai/creators) +{.icon-list .marker-none} ### Podcast + - [![Favicon](https://icon.horse/icon/snipd.com/ai-podcast-summaries) Snipd podcast summaries](https://snipd.com/ai-podcast-summaries) - [![Favicon](https://icon.horse/icon/sumly.ai) Sumly](https://sumly.ai) - [![Favicon](https://icon.horse/icon/tapesearch.com) Tapesearch](https://tapesearch.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Parenting + - [![Favicon](https://icon.horse/icon/smartivity.in/pages/parentivity_bot) Parentivity](https://smartivity.in/pages/parentivity_bot) - [![Favicon](https://icon.horse/icon/gosesh.com) Sesh](https://gosesh.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Education assistant + - [![Favicon](https://icon.horse/icon/brain-buddy.com) Brain Buddy](https://brain-buddy.com/) - [![Favicon](https://icon.horse/icon/kobra.dev) Kobra](https://kobra.dev) - [![Favicon](https://icon.horse/icon/boldvoice.com) Boldvoice](https://boldvoice.com) @@ -956,375 +957,376 @@ Getting Started - [![Favicon](https://icon.horse/icon/explainlikeimfive.io) Eli5](https://explainlikeimfive.io) - [![Favicon](https://icon.horse/icon/tutorai.me) Tutorai](https://tutorai.me) - [![Favicon](https://icon.horse/icon/yippity.io) Yip](https://yippity.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Tracking -- [![Favicon](https://icon.horse/icon/hexowatch.com) Hexowatch](https://hexowatch.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/hexowatch.com) Hexowatch](https://hexowatch.com) +{.icon-list .marker-none} ### Privacy + - [![Favicon](https://icon.horse/icon/playground.ai) Anonymous camera](https://playground.ai) - [![Favicon](https://icon.horse/icon/useguard.com) Guard](https://useguard.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Vehicle -- [![Favicon](https://icon.horse/icon/polymathrobotics.com) Polymath robotics](https://polymathrobotics.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/polymathrobotics.com) Polymath robotics](https://polymathrobotics.com) +{.icon-list .marker-none} ### Twitter + - [![Favicon](https://icon.horse/icon/tribescaler.com) Tribescaler](https://tribescaler.com) - [![Favicon](https://icon.horse/icon/kanyegenerator.com) Kanye tweet generator](https://kanyegenerator.com) - [![Favicon](https://icon.horse/icon/tweetspear.com) Tweetspear](https://tweetspear.com) - [![Favicon](https://icon.horse/icon/tweept3.com) Tweept3](https://tweept3.com) - [![Favicon](https://icon.horse/icon/tweetai.com) Tweetai](https://tweetai.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Dev + - [![Favicon](https://icon.horse/icon/edenai.co) Eden ai](https://edenai.co) - [![Favicon](https://icon.horse/icon/meetmaya.world) Maya ai](https://meetmaya.world) - [![Favicon](https://icon.horse/icon/testkit.app) Testkit](https://testkit.app) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Saas + - [![Favicon](https://icon.horse/icon/yous.ai) Yous](https://yous.ai) - [![Favicon](https://icon.horse/icon/trydocent.ai) Docent](https://trydocent.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Podcasting -- [![Favicon](https://icon.horse/icon/audo.ai) Audo ai](https://audo.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/audo.ai) Audo ai](https://audo.ai) +{.icon-list .marker-none} ### Bot -- [![Favicon](https://icon.horse/icon/hirex.ai) Hirex.ai](https://hirex.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/hirex.ai) Hirex.ai](https://hirex.ai) +{.icon-list .marker-none} ### Finance + - [![Favicon](https://icon.horse/icon/glean.ai) Glean ai](https://glean.ai) - [![Favicon](https://icon.horse/icon/avanz.ai) Avanzai](https://avanz.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Self-improvement -- [![Favicon](https://icon.horse/icon/huberman.rile.yt) Huberman ai](https://huberman.rile.yt) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/huberman.rile.yt) Huberman ai](https://huberman.rile.yt) +{.icon-list .marker-none} ### Robots + - [![Favicon](https://icon.horse/icon/activechat.ai/intents-and-insights) Activechat bot trainer](https://activechat.ai/intents-and-insights) - [![Favicon](https://icon.horse/icon/motion.ai) Motion ai](https://motion.ai) - [![Favicon](https://icon.horse/icon/apitobot.io) Api to bot](https://apitobot.io) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Slack + - [![Favicon](https://icon.horse/icon/thegist.ai) Thegist](https://thegist.ai) - [![Favicon](https://icon.horse/icon/chatbottle.co) Chatbottle](https://chatbottle.co) - [![Favicon](https://icon.horse/icon/cai.tools.sap) Bot builder by recast.ai](https://cai.tools.sap) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Investing -- [![Favicon](https://icon.horse/icon/koble.ai/founderfit) Founderfit by koble](https://koble.ai/founderfit) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/koble.ai/founderfit) Founderfit by koble](https://koble.ai/founderfit) +{.icon-list .marker-none} ### Questions + - [![Favicon](https://icon.horse/icon/therocketbrew.com/jeeves) Jeeves](https://therocketbrew.com/jeeves) - [![Favicon](https://icon.horse/icon/godinabox.co) God in a box](https://godinabox.co) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Construction -- [![Favicon](https://icon.horse/icon/aim.vision) Aim](https://aim.vision) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/aim.vision) Aim](https://aim.vision) +{.icon-list .marker-none} ### Data + - [![Favicon](https://icon.horse/icon/geniussheets.com) Genius sheets](https://geniussheets.com) - [![Favicon](https://icon.horse/icon/askcommand.com) Ask command](https://askcommand.com) - [![Favicon](https://icon.horse/icon/noluai.com) Nolu](https://noluai.com) - [![Favicon](https://icon.horse/icon/uselookup.com) Lookup](https://uselookup.com) - [![Favicon](https://icon.horse/icon/olli.ai) Olli](https://olli.ai) - [![Favicon](https://icon.horse/icon/autopredict.co.uk) Autopredict](https://autopredict.co.uk) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Plugin -- [![Favicon](https://icon.horse/icon/tldrdev.ai) Jetbrains ide plugin](https://tldrdev.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/tldrdev.ai) Jetbrains ide plugin](https://tldrdev.ai) +{.icon-list .marker-none} ### Pet + - [![Favicon](https://icon.horse/icon/digitaldogs.ai) Digital dogs](https://digitaldogs.ai) - [![Favicon](https://icon.horse/icon/aipetavatar.com) Aipetavatar](https://aipetavatar.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Sports -- [![Favicon](https://icon.horse/icon/sportsprediction.ai) Ai sports prediction](https://sportsprediction.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/sportsprediction.ai) Ai sports prediction](https://sportsprediction.ai) +{.icon-list .marker-none} ### User experience + - [![Favicon](https://icon.horse/icon/arcopypaste.app) Clipdrop](https://arcopypaste.app) - [![Favicon](https://icon.horse/icon/getairim.com) Airim 2.0](https://getairim.com) - [![Favicon](https://icon.horse/icon/akin.nz) Akin](https://akin.nz) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Quiz -- [![Favicon](https://icon.horse/icon/quizgecko.com) Quizgecko](https://quizgecko.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/quizgecko.com) Quizgecko](https://quizgecko.com) +{.icon-list .marker-none} ### Sql + - [![Favicon](https://icon.horse/icon/decile.app) Decile](https://decile.app) - [![Favicon](https://icon.horse/icon/aihelperbot.com) Aihelperbot](https://aihelperbot.com) - [![Favicon](https://icon.horse/icon/aiquery.co) Ai query](https://aiquery.co) - [![Favicon](https://icon.horse/icon/ai2sql.io) Ai2sql](https://ai2sql.io) - [![Favicon](https://icon.horse/icon/usechannel.com) Channel](https://usechannel.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Linkedin -- [![Favicon](https://icon.horse/icon/sid.black/tools/linkedin-post-generator) Linkedin posts generator](https://sid.black/tools/linkedin-post-generator) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/sid.black/tools/linkedin-post-generator) Linkedin posts generator](https://sid.black/tools/linkedin-post-generator) +{.icon-list .marker-none} ### Food + - [![Favicon](https://icon.horse/icon/ai-recipes.softr.app) Ai recipe generator](https://ai-recipes.softr.app) - [![Favicon](https://icon.horse/icon/foodai.app) Foodai](https://foodai.app) - [![Favicon](https://icon.horse/icon/whatcaketobake.com) What cake to bake?](https://whatcaketobake.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Tool + - [![Favicon](https://icon.horse/icon/autoname.org) Autoname](https://autoname.org) - [![Favicon](https://icon.horse/icon/assetsai.art) Assetsai](https://assetsai.art) - [![Favicon](https://icon.horse/icon/aibusinesstool.com) Aibusinesstool](https://aibusinesstool.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Emoji -- [![Favicon](https://icon.horse/icon/phben.ch) Ph bench](https://phben.ch) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/phben.ch) Ph bench](https://phben.ch) +{.icon-list .marker-none} ### Newsletters -- [![Favicon](https://icon.horse/icon/subscribe.machinelearnings.co) Machine learnings](https://subscribe.machinelearnings.co) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/subscribe.machinelearnings.co) Machine learnings](https://subscribe.machinelearnings.co) +{.icon-list .marker-none} ### Streaming services -- [![Favicon](https://icon.horse/icon/their.tube) Theirtube](https://their.tube) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/their.tube) Theirtube](https://their.tube) +{.icon-list .marker-none} ### Excel -- [![Favicon](https://icon.horse/icon/formula.dog) Formula dog](https://formula.dog) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/formula.dog) Formula dog](https://formula.dog) +{.icon-list .marker-none} ### Ai detection + - [![Favicon](https://icon.horse/icon/thomas.io/detect-gpt) Detect gpt](https://thomas.io/detect-gpt) - [![Favicon](https://icon.horse/icon/nsfw.m1guelpf.me) Is this image nsfw?](https://nsfw.m1guelpf.me) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### News + - [![Favicon](https://icon.horse/icon/speechkit.io) Speechkit](https://speechkit.io) - [![Favicon](https://icon.horse/icon/useclarity.com) Clarity](https://useclarity.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Vacation -- [![Favicon](https://icon.horse/icon/letsroam.app) Roamr](https://letsroam.app) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/letsroam.app) Roamr](https://letsroam.app) +{.icon-list .marker-none} ### Logo generator -- [![Favicon](https://icon.horse/icon/makelogoai.com) Make logo ai](https://makelogoai.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/makelogoai.com) Make logo ai](https://makelogoai.com) +{.icon-list .marker-none} ### Real estate + - [![Favicon](https://icon.horse/icon/airoomplanner.com) Ai room planner](https://airoomplanner.com) - [![Favicon](https://icon.horse/icon/coolaiid.com) Coolaiid](https://coolaiid.com) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Assistant -- [![Favicon](https://icon.horse/icon/eddyai.com) Eddyai](https://eddyai.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/eddyai.com) Eddyai](https://eddyai.com) +{.icon-list .marker-none} ### Bots -- [![Favicon](https://icon.horse/icon/ai-chatbots.pulse.is) Ai chatbots in messengers](https://ai-chatbots.pulse.is) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/ai-chatbots.pulse.is) Ai chatbots in messengers](https://ai-chatbots.pulse.is) +{.icon-list .marker-none} ### Advertising -- [![Favicon](https://icon.horse/icon/jotapp.tech) Jot](https://jotapp.tech) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/jotapp.tech) Jot](https://jotapp.tech) +{.icon-list .marker-none} ### Gift ideas + - [![Favicon](https://icon.horse/icon/giftastic.ai) Giftastic.ai](https://giftastic.ai) - [![Favicon](https://icon.horse/icon/coolgiftideas.io) Cool gift ideas](https://coolgiftideas.io) - [![Favicon](https://icon.horse/icon/elfhelp.ai) Elf help](https://elfhelp.ai) - {.icon-list .marker-none} - +{.icon-list .marker-none} ### Text-to-speech -- [![Favicon](https://icon.horse/icon/verbatik.com) Verbatik](https://verbatik.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/verbatik.com) Verbatik](https://verbatik.com) +{.icon-list .marker-none} ### Character -- [![Favicon](https://icon.horse/icon/salewhale.chat) Salewhale](https://salewhale.chat) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/salewhale.chat) Salewhale](https://salewhale.chat) +{.icon-list .marker-none} ### Memory -- [![Favicon](https://icon.horse/icon/heyday.xyz) Heyday](https://heyday.xyz) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/heyday.xyz) Heyday](https://heyday.xyz) +{.icon-list .marker-none} ### Feedback -- [![Favicon](https://icon.horse/icon/myess.ai) Myess](https://myess.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/myess.ai) Myess](https://myess.ai) +{.icon-list .marker-none} ### Background -- [![Favicon](https://icon.horse/icon/zoomscape.ai) Zoomscape](https://zoomscape.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/zoomscape.ai) Zoomscape](https://zoomscape.ai) +{.icon-list .marker-none} ### Support -- [![Favicon](https://icon.horse/icon/resolveai.co) Resolveai](https://resolveai.co) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/resolveai.co) Resolveai](https://resolveai.co) +{.icon-list .marker-none} ### Rank -- [![Favicon](https://icon.horse/icon/reviewz.ai) Reviewz](https://reviewz.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/reviewz.ai) Reviewz](https://reviewz.ai) +{.icon-list .marker-none} ### Letter -- [![Favicon](https://icon.horse/icon/recommendme.to) Recommendme](https://recommendme.to) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/recommendme.to) Recommendme](https://recommendme.to) +{.icon-list .marker-none} ### Gift -- [![Favicon](https://icon.horse/icon/text2present.com) Text2present](https://text2present.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/text2present.com) Text2present](https://text2present.com) +{.icon-list .marker-none} ### Dream -- [![Favicon](https://icon.horse/icon/scarlettpanda.com) Scarlettpanda](https://scarlettpanda.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/scarlettpanda.com) Scarlettpanda](https://scarlettpanda.com) +{.icon-list .marker-none} ### Excuse -- [![Favicon](https://icon.horse/icon/excuses.ai) Excuses ai](https://excuses.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/excuses.ai) Excuses ai](https://excuses.ai) +{.icon-list .marker-none} ### Game -- [![Favicon](https://icon.horse/icon/huggingface.co/spaces/huggingface-projects/stable-diffusion-multiplayer) Stable diffusion multiplayer](https://huggingface.co/spaces/huggingface-projects/stable-diffusion-multiplayer) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/huggingface.co/spaces/huggingface-projects/stable-diffusion-multiplayer) Stable diffusion multiplayer](https://huggingface.co/spaces/huggingface-projects/stable-diffusion-multiplayer) +{.icon-list .marker-none} ### Edit -- [![Favicon](https://icon.horse/icon/bigmp4.com) Bigmp4](https://bigmp4.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/bigmp4.com) Bigmp4](https://bigmp4.com) +{.icon-list .marker-none} ### Translation -- [![Favicon](https://icon.horse/icon/bot.petit.today) Languagepro](https://bot.petit.today) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/bot.petit.today) Languagepro](https://bot.petit.today) +{.icon-list .marker-none} ### Startup tools -- [![Favicon](https://icon.horse/icon/releasenote.ai) Releasenote.ai](https://releasenote.ai) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/releasenote.ai) Releasenote.ai](https://releasenote.ai) +{.icon-list .marker-none} ### E-commerce -- [![Favicon](https://icon.horse/icon/recommendix.com/es-ar) Recommendix](https://recommendix.com/es-ar) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/recommendix.com/es-ar) Recommendix](https://recommendix.com/es-ar) +{.icon-list .marker-none} ### Beauty -- [![Favicon](https://icon.horse/icon/hairbyai.com) Hairbyai](https://hairbyai.com) - {.icon-list .marker-none} +- [![Favicon](https://icon.horse/icon/hairbyai.com) Hairbyai](https://hairbyai.com) +{.icon-list .marker-none} ### Photo + - [![Favicon](https://icon.horse/icon/camira.ai) Camira](https://camira.ai) - {.icon-list .marker-none} + +{.icon-list .marker-none} From 413891a020ee34850ef5e25cf80f851e11a53318 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:48:40 -0700 Subject: [PATCH 11/81] fix: alan-ai format Styles at the bottom removed --- source/_posts/alan-ai.md | 211 +++++++++++++++++++-------------------- 1 file changed, 103 insertions(+), 108 deletions(-) diff --git a/source/_posts/alan-ai.md b/source/_posts/alan-ai.md index b8740a9a..d0ae0f49 100644 --- a/source/_posts/alan-ai.md +++ b/source/_posts/alan-ai.md @@ -3,76 +3,85 @@ title: Alan AI date: 2023-03-03 6:00:00 background: bg-[#4aa181] tags: - - AI - - AlanAI - - Prompts - - Tips + - AI + - AlanAI + - Prompts + - Tips categories: - - Toolkit -intro: This cheat sheet covers all major script concepts, client API methods, handlers and other tools to create a multimodal conversational experience with Alan AI + - Toolkit +intro: + This cheat sheet covers all major script concepts, client API methods, handlers and other tools to create a multimodal + conversational experience with Alan AI --- -### Legend +### Legend -- ``pattern`` — phrase to invoke a voice/text command or a response to be played -- ``value`` — specified value -- ``params`` — passed parameters -- ``action`` — action to be performed -- ``output`` — data outcome -- ``[...]`` — optional data or parameters +- `pattern` — phrase to invoke a voice/text command or a response to be played +- `value` — specified value +- `params` — passed parameters +- `action` — action to be performed +- `output` — data outcome +- `[...]` — optional data or parameters -Dialog script -------------- +## Dialog script ### Intents & patterns Define a voice/text command to play a response -``` {.wrap} +```{.wrap} intent('pattern'[, 'patternN'], reply('pattern')) ``` Define a voice/text command to play a response or perform an action -``` {.wrap} + +```{.wrap} intent('pattern'[, 'patternN'], p => { action }) ``` Define alternatives -``` {.wrap} + +```{.wrap} intent('phrase1|phrase2') ``` Define optional words and phrases -``` {.wrap} + +```{.wrap} intent('pattern (optional phrase|)') ``` - - ### Response functions Play a response (in case of multiple patterns, a response is picked at random) -``` {.wrap} + +```{.wrap} reply('pattern'[, 'patternN']) ``` Play a response -``` {.wrap} + +```{.wrap} p.play('pattern') ``` -Define voice settings for the assistant reply: ``accent (en, fr, de, it, ru, es)``, ``gender (male/female)``, ``voice type``, ``speaking pitch``, ``speaking rate`` -``` {.wrap} +Define voice settings for the assistant reply: `accent (en, fr, de, it, ru, es)`, `gender (male/female)`, `voice type`, +`speaking pitch`, `speaking rate` + +```{.wrap} p.play([voice(code, gender, type, pitch, rate), ]'pattern') ``` -Define play options: ``force:true`` (execute if the button is inactive), ``activate:true`` (activate the button before), ``deactivate:true`` (deactivate the button after) -``` {.wrap} +Define play options: `force:true` (execute if the button is inactive), `activate:true` (activate the button before), +`deactivate:true` (deactivate the button after) + +```{.wrap} p.play('pattern'[, opts(options)]) ``` Send a command to the app -``` {.wrap} + +```{.wrap} p.play({command:data}) ``` @@ -80,31 +89,31 @@ p.play({command:data}) Define a static list of values expected in the input -``` {.wrap} +```{.wrap} $(SLOTNAME value1|value2) => p.SLOTNAME.value ``` Provide labels to classify or identify the slot values -``` {.wrap} +```{.wrap} $(SLOTNAME value1~label1|value2~label2) => p.SLOTNAME.label ``` Enable fuzzy matching to capture similar variants -``` {.wrap} +```{.wrap} $(SLOTNAME~ value1|value2) => p.SLOTNAME.value ``` Make a slot optional -``` {.wrap} +```{.wrap} $(SLOTNAME value1|value2|) ``` Capture several slot values -``` {.wrap} +```{.wrap} intent('$(SLOTNAME value1|value2) and $(SLOTNAME value1|value2 )') => p.SLOTNAME_ (array), p.SLOTNAME_[0].value, p.SLOTNAME_[1].value ``` @@ -112,37 +121,37 @@ intent('$(SLOTNAME value1|value2) and $(SLOTNAME value1|value2 )') => p.SLOTNAME Capture date values -``` {.wrap} +```{.wrap} $(DATE) => p.DATE.value, p.DATE.moment, p.DATE.luxon ``` Capture time values -``` {.wrap} +```{.wrap} $(TIME) => p.TIME.value, p.TIME.moment ``` Capture cardinal numbers -``` {.wrap} +```{.wrap} $(NUMBER) => p.NUMBER.value, p.NUMBER.number ``` Capture ordinal numbers -``` {.wrap} +```{.wrap} $(ORDINAL) => p.ORDINAL.value, p.ORDINAL.number ``` Capture locations -``` {.wrap} +```{.wrap} $(LOC) => p.LOC.value ``` Capture names -``` {.wrap} +```{.wrap} $(NAME) => p.NAME.value ``` @@ -150,21 +159,21 @@ $(NAME) => p.NAME.value Define a dynamic slot at the project level -``` {.wrap} +```{.wrap} project.name = {en: "value1|value2|value3"} $(SLOTNAME p:name) => p.SLOTNAME.value ``` Define a dynamic slot at the dialog session level -``` {.wrap} +```{.wrap} p.userData.name = {en: "value1|value2|value3"} $(SLOTNAME u:name) => p.SLOTNAME.value ``` Get data for a dynamic slot with the visual state -``` {.wrap} +```{.wrap} let name = ["value1|value2|value3"] p.visual.data = {en: name}; $(SLOTNAME v:name) => p.SLOTNAME.value @@ -172,7 +181,7 @@ $(SLOTNAME v:name) => p.SLOTNAME.value Define a dynamic slot in a short form -``` {.wrap} +```{.wrap} project.name = {en: "value1|value2|value3"} $(p:name) => p.SLOTNAME.value ``` @@ -185,19 +194,18 @@ Make a dynamic slot optional: see [User-defined slots](#user-defined-slots). Capture several slot values: see [User-defined slots](#user-defined-slots). - ### RegEx slots Capture digit and/or letter combination -``` {.wrap} +```{.wrap} const reg = "([A-Za-z]{1}\\s?){6}" $(SLOTNAME* ${reg}) => p.SLOTNAME.value ``` Capture any user’s input -``` {.wrap} +```{.wrap} $(SLOTNAME* .+) => p.SLOTNAME.value ``` @@ -205,50 +213,49 @@ $(SLOTNAME* .+) => p.SLOTNAME.value Define a context -``` {.wrap} +```{.wrap} let contextName = context(() => { action }) ``` Activate a context -``` {.wrap} +```{.wrap} intent('pattern', p => {..., p.then(contextName)} ``` Pass data to the context -``` {.wrap} +```{.wrap} p.then(contextName, state: {data:yourData}) => p.state.data ``` Resolve a context -``` {.wrap} +```{.wrap} p.resolve([data:yourData]) ``` - Reset a context -``` {.wrap} +```{.wrap} p.resetContext() ``` Define intents to be matched at any time without switching the current context -``` {.wrap} +```{.wrap} intent(noctx, 'pattern', ...) or noContext(() => {intent(...)}) ``` Play a prompt for an expected input -``` {.wrap} +```{.wrap} fallback('pattern1'[, 'patternN']) ``` Title a context -``` {.wrap} +```{.wrap} title('contextName') ``` @@ -256,37 +263,37 @@ title('contextName') Store static device- and user-specific data passed from the client app -``` {.wrap} +```{.wrap} authData.data => p.authData.data ``` Store state data to be available globally at the project scope -``` {.wrap} +```{.wrap} project.info = {data:yourData} => project.info.data ``` Store the intent match score -``` {.wrap} +```{.wrap} p.score ``` Store data to be passed between contexts -``` {.wrap} +```{.wrap} p.state.data ``` -Store visual context data to be passed from the client app with ``setVisualState()`` +Store visual context data to be passed from the client app with `setVisualState()` -``` {.wrap} +```{.wrap} p.visual.data ``` Store user-specific state data to be accessible during the dialog session -``` {.wrap} +```{.wrap} p.userData.data ``` @@ -294,51 +301,52 @@ p.userData.data Define actions to be performed when the script is saved and dialog model is built -``` {.wrap} +```{.wrap} onCreateProject(() => { action }) ``` Define actions to be performed when the dialog session starts -``` {.wrap} +```{.wrap} onCreateUser((p) => { action }) ``` Define actions to be performed when the dialog session ends -``` {.wrap} +```{.wrap} onCleanupUser((p) => { action }) ``` Define actions to be performed when the visual state is set -``` {.wrap} +```{.wrap} onVisualState((p, s) => { action }) ``` -Define actions to be performed when a user event is triggered in the client app: ``buttonReady``, ``buttonClicked``, ``micPermissionPrompt``, ``micAllowed``, ``firstActivate``, ``showPopup``, ``popupCloseClicked``, ``recognized`` +Define actions to be performed when a user event is triggered in the client app: `buttonReady`, `buttonClicked`, +`micPermissionPrompt`, `micAllowed`, `firstActivate`, `showPopup`, `popupCloseClicked`, `recognized` -``` {.wrap} +```{.wrap} onUserEvent((p, e) => { action }) ``` Define actions to be performed when a context is activated -``` {.wrap} +```{.wrap} onEnter((p) => { action }) ``` - ### Q&A service Define a URL of a resource to be indexed -``` {.wrap} +```{.wrap} corpus({url: url, depth: depthLevel}) ``` Define text corpus to be used by the assistant in the dialog -``` {.wrap} + +```{.wrap} corpus('text') ``` @@ -346,19 +354,19 @@ corpus('text') Make API calls -``` {.wrap} +```{.wrap} axios, request ``` Work with time -``` {.wrap} +```{.wrap} moment-timezone, luxon ``` Work with arrays, numbers, objects, strings and so on -``` {.wrap} +```{.wrap} lodash ``` @@ -366,36 +374,35 @@ lodash Provide a list of hints to help recognize specific terms -``` {.wrap} +```{.wrap} recognitionHints('hint'[, 'hintN']) ``` Write info messages to Alan Studio logs -``` {.wrap} +```{.wrap} console.log(data) ``` Write error messages to Alan Studio logs -``` {.wrap} +```{.wrap} console.error(data) ``` -Client SDK ----------- +## Client SDK ### Client API methods Send information about the visual state from the client app to the dialog script -``` {.wrap} +```{.wrap} setVisualState(visualStateData:object) ``` Send data or perform actions without a voice/text command -``` {.wrap} +```{.wrap} projectAPI.method = function(p, param, callback) { p.userData.data = param.data; callback(); @@ -406,19 +413,19 @@ callProjectApi(method:string, data:object, callback:function) Play a text message in the client app -``` {.wrap} +```{.wrap} playText(text:string) ``` Send a text message to Alan as the user’s input -``` {.wrap} +```{.wrap} sendText(text:string) ``` Execute a command in the client app -``` {.wrap} +```{.wrap} playCommand(command:object) ``` @@ -426,37 +433,37 @@ playCommand(command:object) Activate the Alan button programmatically -``` {.wrap} +```{.wrap} activate() ``` Deactivate the Alan button programmatically -``` {.wrap} +```{.wrap} deactivate() ``` Check the Alan button state -``` {.wrap} +```{.wrap} isActive() ``` Remove the Alan button from the parent element, page (supported on Web, Ionic) -``` {.wrap} +```{.wrap} remove() ``` Check the state of the wake word (supported on iOS, Android) -``` {.wrap} +```{.wrap} getWakewordEnabled() ``` Set the state of the wake word (supported on iOS, Android) -``` {.wrap} +```{.wrap} setWakewordEnabled(enabled:boolean) ``` @@ -466,42 +473,30 @@ setWakewordEnabled(enabled:boolean) Handle commands sent from the dialog script to the client app -``` {.wrap} +```{.wrap} onCommand: function (commandData) { action } ``` Handle Alan button state changes -``` {.wrap} +```{.wrap} onButtonState: function (e) { action } ``` Handle connection status to the virtual assistant project in the Alan Cloud -``` {.wrap} +```{.wrap} onConnectionStatus: function (e) { action } ``` Handle events received from Alan -``` {.wrap} +```{.wrap} onEvent: function (e) { action } ``` - - - -Also see --------- +## Also see - [Alan AI website](https://alan.app) - [About the Alan Platform](https://alan.app/platform) - [Alan AI documentation](https://alan.app/docs) - - - - From be7fee8a839ac53e3d9d669e4ec7c327328bc318 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:54:30 -0700 Subject: [PATCH 12/81] fix: aspect-ratio format Added space before the modifiers --- source/_posts/aspect-ratio.md | 91 +++++++++++++++-------------------- 1 file changed, 38 insertions(+), 53 deletions(-) diff --git a/source/_posts/aspect-ratio.md b/source/_posts/aspect-ratio.md index db8d405e..d6114dfe 100644 --- a/source/_posts/aspect-ratio.md +++ b/source/_posts/aspect-ratio.md @@ -3,28 +3,27 @@ title: Aspect Ratio date: 2022-09-21 10:28:43 background: bg-emerald-600 tags: - - photo - - image - - aspect - - ratio - - resolutions + - photo + - image + - aspect + - ratio + - resolutions categories: - - Other + - Other intro: | - This cheat sheet lists some common aspect ratios and their pixel resolutions. Always confirm your final delivery ratio when shooting. + This cheat sheet lists some common aspect ratios and their pixel resolutions. Always confirm your final delivery ratio when shooting. --- - -Getting Started {.cols-2} ---------------- +## Getting Started {.cols-2} ### Introduction + - The aspect ratio is the ratio between the width and height of the screen or image - It's usually written as two numbers separated by a colon or "x", ex: 16:9 or 16x9 - Which is interpreted as W pixels in width for every H pixel in height. - Resolution is the number of pixels (individual points of color) -{.marker-round} +{.marker-round} ### Multi-format of Aspect Ratio @@ -51,20 +50,15 @@ Getting Started {.cols-2} - [BBCode](https://tableconvert.com/html-to-bbcode?data=https://cheatsheets.zip/aspect-ratio#TableGenerator) - [PDF](https://tableconvert.com/html-to-pdf?data=https://cheatsheets.zip/aspect-ratio#TableGenerator) - [JPEG](https://tableconvert.com/html-to-jpeg?data=https://cheatsheets.zip/aspect-ratio#TableGenerator) -{.cols-4 .marker-none} - - - - -Lists of Aspect Ratios -------------------- +{.cols-4 .marker-none} +## Lists of Aspect Ratios ### 1080p {.row-span-2} | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 864 x 1080 | | 1.25 (5:4) | 1350 x 1080 | | 1.33 (4:3) | 1440 x 1080 | @@ -78,13 +72,13 @@ Lists of Aspect Ratios | 2.39 | 1920 x 803 | | 2.40 | 1920 x 800 | | 2.44 | 1920 x 787 | -{.show-header} +{.show-header} ### 720p {.row-span-2} | Aspect Ratio | Resolution | -|--------------|------------| +| ------------ | ---------- | | 0.80 (4:5) | 576 x 720 | | 1.25 (5:4) | 900 x 720 | | 1.33 (4:3) | 960 x 720 | @@ -98,35 +92,33 @@ Lists of Aspect Ratios | 2.39 | 1280 x 536 | | 2.40 | 1280 x 533 | | 2.44 | 1280 x 525 | -{.show-header} +{.show-header} ### Cinema DCP 4K | Aspect Ratio | Resolution | -|-----------------------|-------------| +| --------------------- | ----------- | | Flat (1.85) | 3996 x 2160 | | Scope (2.39) | 4096 x 1716 | | Full Container (1.90) | 4096 x 2160 | -{.show-header} - +{.show-header} ### Cinema DCP 2K | Aspect Ratio | Resolution | -|-----------------------|-------------| +| --------------------- | ----------- | | Flat (1.85) | 1998 x 1080 | | Scope (2.39) | 2048 x 858 | | Full Container (1.90) | 2048 x 1080 | -{.show-header} - +{.show-header} ### 8K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 3686 x 4608 | | 1.25 (5:4) | 5760 x 4608 | | 1.33 (4:3) | 6144 x 4608 | @@ -140,14 +132,13 @@ Lists of Aspect Ratios | 2.39 | 8192 x 3428 | | 2.40 | 8192 x 3413 | | 2.44 | 8192 x 3357 | -{.show-header} - +{.show-header} ### 6K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 2765 x 3456 | | 1.25 (5:4) | 4320 x 3456 | | 1.33 (4:3) | 4608 x 3456 | @@ -161,13 +152,13 @@ Lists of Aspect Ratios | 2.39 | 6144 x 2571 | | 2.40 | 6144 x 2560 | | 2.44 | 6144 x 2518 | -{.show-header} +{.show-header} ### 4K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 2765 x 3456 | | 1.25 (5:4) | 4320 x 3456 | | 1.33 (4:3) | 4608 x 3456 | @@ -181,13 +172,13 @@ Lists of Aspect Ratios | 2.39 | 6144 x 2571 | | 2.40 | 6144 x 2560 | | 2.44 | 6144 x 2518 | -{.show-header} +{.show-header} ### 3K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 1382 x 1728 | | 1.25 (5:4) | 2160 x 1728 | | 1.33 (4:3) | 2304 x 1728 | @@ -201,13 +192,13 @@ Lists of Aspect Ratios | 2.39 | 3072 x 1285 | | 2.40 | 3072 x 1280 | | 2.44 | 3072 x 1259 | -{.show-header} +{.show-header} ### 2K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 922 x 1152 | | 1.25 (5:4) | 1440 x 1152 | | 1.33 (4:3) | 1536 x 1152 | @@ -221,14 +212,13 @@ Lists of Aspect Ratios | 2.39 | 2048 x 858 | | 2.40 | 2048 x 853 | | 2.44 | 2048 x 838 | -{.show-header} - +{.show-header} ### 8K UHD | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 2765 x 3456 | | 1.25 (5:4) | 5400 x 3456 | | 1.33 (4:3) | 5760 x 3456 | @@ -242,13 +232,13 @@ Lists of Aspect Ratios | 2.39 | 7680 x 3213 | | 2.40 | 7680 x 3200 | | 2.44 | 7680 x 3148 | -{.show-header} +{.show-header} ### 5K | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 2304 x 2880 | | 1.25 (5:4) | 3600 x 2880 | | 1.33 (4:3) | 3840 x 2880 | @@ -262,13 +252,13 @@ Lists of Aspect Ratios | 2.39 | 5120 x 2142 | | 2.40 | 5120 x 2133 | | 2.44 | 5120 x 2098 | -{.show-header} +{.show-header} ### 4K UHD | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 1728 x 2160 | | 1.25 (5:4) | 2700 x 2160 | | 1.33 (4:3) | 2880 x 2160 | @@ -282,13 +272,13 @@ Lists of Aspect Ratios | 2.39 | 3840 x 1607 | | 2.40 | 3840 x 1600 | | 2.44 | 3840 x 1574 | -{.show-header} +{.show-header} ### 3K UHD | Aspect Ratio | Resolution | -|--------------|-------------| +| ------------ | ----------- | | 0.80 (4:5) | 1296 x 1620 | | 1.25 (5:4) | 2025 x 1620 | | 1.33 (4:3) | 2160 x 1620 | @@ -302,10 +292,5 @@ Lists of Aspect Ratios | 2.39 | 2880 x 1205 | | 2.40 | 2880 x 1200 | | 2.44 | 2880 x 1180 | -{.show-header} - - - - - +{.show-header} From 65070645dd430478a7c55919d4f8faf78ff41f11 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 02:59:56 -0700 Subject: [PATCH 13/81] fix: awk format Fixes some modifier spacing --- source/_posts/awk.md | 316 +++++++++++++++++++++++-------------------- 1 file changed, 167 insertions(+), 149 deletions(-) diff --git a/source/_posts/awk.md b/source/_posts/awk.md index 702e72f3..8f8a9c67 100644 --- a/source/_posts/awk.md +++ b/source/_posts/awk.md @@ -3,46 +3,50 @@ title: Awk date: 2020-12-31 15:18:34 background: bg-slate-600 tags: - - bash - - text - - script + - bash + - text + - script categories: - - Linux Command + - Linux Command intro: | - This is a one page quick reference cheat sheet to the [GNU awk](https://www.gnu.org/software/gawk/manual/gawk.html), which covers commonly used awk expressions and commands. + This is a one page quick reference cheat sheet to the [GNU awk](https://www.gnu.org/software/gawk/manual/gawk.html), which covers commonly used awk expressions and commands. plugins: - - copyCode + - copyCode --- -Getting Started ---------------- +## Getting Started ### Have a try + ```shell script {.wrap} $ awk -F: '{print $1, $NF}' /etc/passwd ``` ----- -| - | - | - | -|---|---------------|---------------------------| -| | `-F:` | Colon as a separator | -| | `{...}` | Awk program | -| | `print` | Prints the current record | -| | `$1` | First field | -| | `$NF` | Last field | -| | `/etc/passwd` | Input data file | -{.left-text} +--- + +| - | - | +| ------------- | ------------------------- | +| `-F:` | Colon as a separator | +| `{...}` | Awk program | +| `print` | Prints the current record | +| `$1` | First field | +| `$NF` | Last field | +| `/etc/passwd` | Input data file | + +{.left-text} +### Awk program -### Awk program ``` -BEGIN {} - {} - {} +BEGIN {} + {} + {} ... END {< final actions >} ``` + #### Example + ``` awk ' BEGIN { print "\n>>>Start" } @@ -51,11 +55,11 @@ awk ' ' /etc/passwd ``` - ### Variables {.row-span-2} + ```bash $1 $2/$(NF-1) $3/$NF - ▼ ▼ ▼ + ▼ ▼ ▼ ┌──────┬──────────────────┬───────┐ $0/NR ▶ │ ID │ WEBSITE │ URI │ ├──────┼──────────────────┼───────┤ @@ -64,6 +68,7 @@ $0/NR ▶ │ 1 │ cheatsheets.zip │ awk │ $0/NR ▶ │ 2 │ google.com │ 25 │ └──────┴──────────────────┴───────┘ ``` + --- ``` @@ -76,38 +81,38 @@ awk -F: '{print NR, $0}' /etc/passwd # Second last field awk -F: '{print $(NF-1)}' /etc/passwd -# Custom string +# Custom string awk -F: '{print $1 "=" $6}' /etc/passwd ``` -See: [Variables](#awk-variables) - - +See: [Variables](#awk-variables) ### Awk program examples {.col-span-2 .row-span-2} + ``` awk 'BEGIN {print "hello world"}' # Prints "hello world" awk -F: '{print $1}' /etc/passwd # -F: Specify field separator # /pattern/ Execute actions only for matched pattern -awk -F: '/root/ {print $1}' /etc/passwd +awk -F: '/root/ {print $1}' /etc/passwd # BEGIN block is executed once at the start -awk -F: 'BEGIN { print "uid"} { print $1 }' /etc/passwd +awk -F: 'BEGIN { print "uid"} { print $1 }' /etc/passwd # END block is executed once at the end awk -F: '{print $1} END { print "-done-"}' /etc/passwd ``` - ### Conditions + ``` awk -F: '$3>30 {print $1}' /etc/passwd ``` -See: [Conditions](#awk-conditions) +See: [Conditions](#awk-conditions) ### Generate 1000 spaces + ``` awk 'BEGIN{ while (a++ < 1000) @@ -115,11 +120,11 @@ awk 'BEGIN{ print s }' ``` -See: [Loops](#awk-loops) - +See: [Loops](#awk-loops) ### Arrays + ``` awk 'BEGIN { fruits["mango"] = "yellow"; @@ -129,11 +134,11 @@ awk 'BEGIN { } }' ``` -See: [Arrays](#awk-arrays) - +See: [Arrays](#awk-arrays) ### Functions + ``` # => 5 awk 'BEGIN{print length("hello")}' @@ -142,33 +147,29 @@ awk 'BEGIN{print toupper("hello")}' # => hel awk 'BEGIN{print substr("hello", 1, 3)}' ``` -See: [Functions](#awk-functions) - - - -Awk Variables ---------- +See: [Functions](#awk-functions) +## Awk Variables ### Build-in variables + | - | - | -|----------------|-----------------------------------------------------| +| -------------- | --------------------------------------------------- | | `$0` | Whole line | | `$1, $2...$NF` | First, second… last field | | `NR` | `N`umber of `R`ecords | | `NF` | `N`umber of `F`ields | -| `OFS` | `O`utput `F`ield `S`eparator
    _(default " ")_ | +| `OFS` | `O`utput `F`ield `S`eparator
    _(default " ")_ | | `FS` | input `F`ield `S`eparator
    _(default " ")_ | | `ORS` | `O`utput `R`ecord `S`eparator
    _(default "\n")_ | | `RS` | input `R`ecord `S`eparator
    _(default "\n")_ | | `FILENAME` | Name of the file | - - ### Expressions + | - | - | -|---------------------|------------------------------------| +| ------------------- | ---------------------------------- | | `$1 == "root"` | First field equals root | | `{print $(NF-1)}` | Second last field | | `NR!=1{print $0}` | From 2nd record | @@ -177,7 +178,7 @@ Awk Variables | `END{print NR}` | Total records | | `BEGIN{print OFMT}` | Output format | | `{print NR, $0}` | Line number | -| `{print NR " " $0}` | Line number (tab) | +| `{print NR " " $0}` | Line number (tab) | | `{$1 = NR; print}` | Replace 1st field with line number | | `$NF > 4` | Last field > 4 | | `NR % 2 == 0` | Even records | @@ -185,70 +186,72 @@ Awk Variables | `BEGIN{print ARGC}` | Total arguments | | `ORS=NR%5?",":"\n"` | Concatenate records | - - - ### Examples + Print sum and average + ``` awk -F: '{sum += $3} END { print sum, sum/NR } ' /etc/passwd ``` + Printing parameters + ``` awk 'BEGIN { for (i = 1; i < ARGC; i++) print ARGV[i] }' a b c ``` + Output field separator as a comma + ``` awk 'BEGIN { FS=":";OFS=","} {print $1,$2,$3,$4}' /etc/passwd ``` + Position of match + ``` awk 'BEGIN { if (match("One Two Three", "Tw")) print RSTART }' ``` + Length of match + ``` awk 'BEGIN { if (match("One Two Three", "re")) print RLENGTH }' ``` - - - - ### Environment Variables + | - | - | -|-----------|-----------------------------------------------------------| +| --------- | --------------------------------------------------------- | | `ARGC` | Number or arguments | | `ARGV` | Array of arguments | | `FNR` | `F`ile `N`umber of `R`ecords | -| `OFMT` | Format for numbers
    _(default "%.6g")_ | +| `OFMT` | Format for numbers
    _(default "%.6g")_ | | `RSTART` | Location in the string | | `RLENGTH` | Length of match | | `SUBSEP` | Multi-dimensional array separator
    _(default "\034")_ | | `ARGIND` | Argument Index | - - ### GNU awk only + | - | - | -|---------------|-----------------------| +| ------------- | --------------------- | | `ENVIRON` | Environment variables | | `IGNORECASE` | Ignore case | | `CONVFMT` | Conversion format | | `ERRNO` | System errors | | `FIELDWIDTHS` | Fixed width fields | - - ### Defining variable + ``` awk -v var1="Hello" -v var2="Wold" ' END {print var1, var2} @@ -256,80 +259,94 @@ awk -v var1="Hello" -v var2="Wold" ' ``` #### Use shell variables + ``` awk -v varName="$PWD" ' END {print varName}' ` - `<=` - `>=` -{.cols-3 .marker-none} - +{.cols-3 .marker-none} ### Examples + ``` awk 'BEGIN { if ("foo" ~ "^fo+$") print "Fooey!"; }' ``` + #### Not match + ``` awk 'BEGIN { if ("boo" !~ "^fo+$") print "Boo!"; }' ``` + #### if in array + ``` awk 'BEGIN { assoc["foo"] = "bar"; @@ -339,14 +356,12 @@ awk 'BEGIN { }' ``` +## Awk Functions - - -Awk Functions ----------- ### Common functions {.col-span-2} + | Function | Description | -|-----------------------|---------------------------------------------------------------------------------| +| --------------------- | ------------------------------------------------------------------------------- | | `index(s,t)` | Position in string s where string t occurs, 0 if not found | | `length(s)` | Length of string s (or $0 if no arg) | | `rand` | Random number between 0 and 1 | @@ -362,8 +377,8 @@ Awk Functions | `toupper(s)` | String s to uppercase | | `getline` | Set $0 to next input record from current input file. | - ### User defined function + ``` awk ' # Returns minimum number @@ -382,7 +397,7 @@ awk ' function main(num1, num2){ result = find_min(num1, num2) print "Minimum =", result - + result = find_max(num1, num2) print "Maximum =", result } @@ -393,15 +408,10 @@ awk ' ' ``` - - - -Awk Arrays ---------- - - +## Awk Arrays ### Array with index + ``` awk 'BEGIN { arr[0] = "foo"; @@ -413,6 +423,7 @@ awk 'BEGIN { ``` ### Array with key + ``` awk 'BEGIN { assoc["foo"] = "bar"; @@ -422,8 +433,8 @@ awk 'BEGIN { }' ``` - ### Array with split + ``` awk 'BEGIN { split("foo:bar:baz", arr, ":"); @@ -433,6 +444,7 @@ awk 'BEGIN { ``` ### Array with asort + ``` awk 'BEGIN { arr[0] = 3 @@ -444,9 +456,8 @@ awk 'BEGIN { }' ``` - - ### Multi-dimensional + ``` awk 'BEGIN { multidim[0,0] = "foo"; @@ -457,24 +468,23 @@ awk 'BEGIN { ``` ### Multi-dimensional iteration + ``` awk 'BEGIN { array[1,2]=3; array[2,3]=5; for (comb in array) { split(comb,sep,SUBSEP); - print sep[1], sep[2], + print sep[1], sep[2], array[sep[1],sep[2]] } }' ``` - - -Awk Conditions ----------- +## Awk Conditions ### if-else statement + ``` awk -v count=2 'BEGIN { if (count == 1) @@ -483,15 +493,17 @@ awk -v count=2 'BEGIN { print "Huh?"; }' ``` + #### Ternary operator + ``` awk -v count=2 'BEGIN { print (count==1) ? "Yes" : "Huh?"; }' ``` - ### Exists + ``` awk 'BEGIN { assoc["foo"] = "bar"; @@ -500,7 +512,9 @@ awk 'BEGIN { print "Fooey!"; }' ``` + #### Not exists + ``` awk 'BEGIN { assoc["foo"] = "bar"; @@ -510,8 +524,8 @@ awk 'BEGIN { }' ``` - ### switch + ``` awk -F: '{ switch (NR * 2 + 1) { @@ -519,31 +533,32 @@ awk -F: '{ case "11": print NR - 1 break - + case /2[[:digit:]]+/: print NR - + default: print NR + 1 - + case -1: print NR * -1 } }' /etc/passwd ``` - -Awk Loops ----------- +## Awk Loops ### for...i + ``` awk 'BEGIN { for (i = 0; i < 10; i++) print "i=" i; }' ``` -#### Powers of two between 1 and 100 + +#### Powers of two between 1 and 100 + ``` awk 'BEGIN { for (i = 1; i <= 100; i *= 2) @@ -551,8 +566,8 @@ awk 'BEGIN { }' ``` - ### for...in + ``` awk 'BEGIN { assoc["key1"] = "val1" @@ -561,7 +576,9 @@ awk 'BEGIN { print assoc[key]; }' ``` + #### Arguments + ``` awk 'BEGIN { for (argnum in ARGV) @@ -569,10 +586,10 @@ awk 'BEGIN { }' a b c ``` - - ### Examples {.row-span-3} + #### Reverse records + ``` awk -F: '{ x[NR] = $0 } END { @@ -583,6 +600,7 @@ awk -F: '{ x[NR] = $0 } ``` #### Reverse fields + ``` awk -F: '{ for (i = NF; i > 0; i--) @@ -592,6 +610,7 @@ awk -F: '{ ``` #### Sum by record + ``` awk -F: '{ s=0; @@ -601,8 +620,8 @@ awk -F: '{ }' /etc/passwd ``` - #### Sum whole file + ``` awk -F: ' {for (i = 1; i <= NF; i++) @@ -612,9 +631,8 @@ awk -F: ' ' /etc/passwd ``` - - ### while {.row-span-2} + ``` awk 'BEGIN { while (a < 10) { @@ -623,7 +641,9 @@ awk 'BEGIN { } }' ``` + #### do...while + ``` awk '{ i = 1 @@ -634,9 +654,8 @@ awk '{ }' /etc/passwd ``` - - ### Break + ``` awk 'BEGIN { break_num = 5 @@ -648,9 +667,8 @@ awk 'BEGIN { }' ``` - - ### Continue + ``` awk 'BEGIN { for (x = 0; x <= 10; x++) { @@ -662,28 +680,30 @@ awk 'BEGIN { }' ``` - - -Awk Formatted Printing ---------- +## Awk Formatted Printing ### Usage + #### Right align + ``` awk 'BEGIN{printf "|%10s|\n", "hello"}' | hello| ``` + #### Left align + ``` awk 'BEGIN{printf "|%-10s|\n", "hello"}' |hello | ``` -### Common specifiers +### Common specifiers + | Character | Description | -|---------------|-----------------------| +| ------------- | --------------------- | | `c` | ASCII character | | `d` | Decimal integer | | `e`, `E`, `f` | Floating-point format | @@ -691,25 +711,24 @@ awk 'BEGIN{printf "|%-10s|\n", "hello"}' | `s` | String | | `%` | Literal % | - - - ### Space + ``` awk -F: '{ printf "%-10s %s\n", $1, $(NF-1) }' /etc/passwd | head -n 3 ``` + Outputs + ```shell script root /root bin /bin daemon /sbin ``` - - ### Header + ``` awk -F: 'BEGIN { printf "%-10s %s\n", "User", "Home" @@ -717,7 +736,9 @@ awk -F: 'BEGIN { { printf "%-10s %s\n", $1, $(NF-1) } ' /etc/passwd | head -n 5 ``` + Outputs + ``` User Home ---- ---- @@ -726,12 +747,10 @@ bin /bin daemon /sbin ``` - - -Miscellaneous -------------- +## Miscellaneous ### Regex Metacharacters + - `\` - `^` - `$` @@ -744,11 +763,13 @@ Miscellaneous - `*` - `+` - `?` + {.cols-3 .marker-none} ### Escape Sequences + | - | - | -|------|---------------------| +| ---- | ------------------- | | `\b` | Backspace | | `\f` | Form feed | | `\n` | Newline (line feed) | @@ -756,8 +777,8 @@ Miscellaneous | `\t` | Horizontal tab | | `\v` | Vertical tab | - ### Run script + ```shell script $ cat demo.awk #!/usr/bin/awk -f @@ -768,11 +789,8 @@ $ awk -f demo.awk /etc/passwd 69 ``` +## Also see -Also see --------- - -- [The GNU Awk User's Guide](https://www-zeuthen.desy.de/dv/documentation/unixguide/infohtml/gawk/gawk.html) _(www-zeuthen.desy.de)_ +- [The GNU Awk User's Guide](https://www-zeuthen.desy.de/dv/documentation/unixguide/infohtml/gawk/gawk.html) + _(www-zeuthen.desy.de)_ - [AWK cheatsheet](https://gist.github.com/Rafe/3102414) _(gist.github.com)_ - - From 0c8ef94391da38ece7241e8c76521b87a5b0bfe8 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 03:01:40 -0700 Subject: [PATCH 14/81] fix: bash format Fixes the modifier spacing --- source/_posts/bash.md | 243 +++++++++++++++--------------------------- 1 file changed, 87 insertions(+), 156 deletions(-) diff --git a/source/_posts/bash.md b/source/_posts/bash.md index db11a49d..e200e224 100644 --- a/source/_posts/bash.md +++ b/source/_posts/bash.md @@ -3,21 +3,20 @@ title: Bash date: 2020-11-25 18:28:43 background: bg-[#3e4548] tags: - - shell - - sh - - echo - - script - - linux + - shell + - sh + - echo + - script + - linux categories: - - Programming - - Operating System + - Programming + - Operating System intro: This is a quick reference cheat sheet to getting started with linux bash shell scripting. plugins: - - copyCode + - copyCode --- -Getting Started ---------------- +## Getting Started ### hello.sh @@ -27,12 +26,13 @@ Getting Started VAR="world" echo "Hello $VAR!" # => Hello world! ``` + Execute the script + ```shell script $ bash hello.sh ``` - ### Variables ```bash @@ -47,8 +47,6 @@ echo "${NAME}!" # => John! (Variables) NAME = "John" # => Error (about space) ``` - - ### Comments ```bash @@ -62,15 +60,13 @@ very neat comment in bash ' ``` -Multi-line comments use `:'` to open and `'` to close - - +Multi-line comments use `:'` to open and `'` to close ### Arguments {.row-span-2} | Expression | Description | -|-------------|---------------------------------------| +| ----------- | ------------------------------------- | | `$1` … `$9` | Parameter 1 ... 9 | | `$0` | Name of the script itself | | `$1` | First argument | @@ -84,7 +80,6 @@ Multi-line comments use `:'` to open and `'` to close See: [Special parameters](http://wiki.bash-hackers.org/syntax/shellvars#special_parameters_and_shell_variables) - ### Functions ```bash @@ -114,10 +109,11 @@ See: [Conditionals](#bash-conditionals) ```bash echo {A,B}.js ``` + --- | Expression | Description | -|------------|---------------------| +| ---------- | ------------------- | | `{A,B}` | Same as `A B` | | `{A,B}.js` | Same as `A.js B.js` | | `{1..5}` | Same as `1 2 3 4 5` | @@ -136,17 +132,12 @@ echo "I'm in `pwd`" See: [Command substitution](http://wiki.bash-hackers.org/syntax/expansion/cmdsubst) - - -Bash Parameter expansions --------------------- - - +## Bash Parameter expansions ### Syntax {.row-span-2} | Code | Description | -|-------------------|---------------------| +| ----------------- | ------------------- | | `${FOO%suffix}` | Remove suffix | | `${FOO#prefix}` | Remove prefix | | `${FOO%%suffix}` | Remove long suffix | @@ -155,32 +146,35 @@ Bash Parameter expansions | `${FOO//from/to}` | Replace all | | `${FOO/%from/to}` | Replace suffix | | `${FOO/#from/to}` | Replace prefix | + #### Substrings + | Expression | Description | -|-----------------|--------------------------------| +| --------------- | ------------------------------ | | `${FOO:0:3}` | Substring _(position, length)_ | | `${FOO:(-3):3}` | Substring from the right | + #### Length + | Expression | Description | -|------------|------------------| +| ---------- | ---------------- | | `${#FOO}` | Length of `$FOO` | + #### Default values + | Expression | Description | -|-------------------|------------------------------------------| +| ----------------- | ---------------------------------------- | | `${FOO:-val}` | `$FOO`, or `val` if unset | | `${FOO:=val}` | Set `$FOO` to `val` if unset | | `${FOO:+val}` | `val` if `$FOO` is set | | `${FOO:?message}` | Show message and exit if `$FOO` is unset | - - ### Substitution ```bash echo ${food:-Cake} #=> $food or "Cake" ``` - ```bash STR="/path/to/foo.cpp" echo ${STR%.cpp} # /path/to/foo @@ -196,7 +190,6 @@ echo ${STR##*/} # foo.cpp echo ${STR/foo/bar} # /path/to/bar.cpp ``` - ### Slicing ```bash @@ -212,17 +205,17 @@ echo ${name:(-2):2} # => hn length=2 echo ${name:0:length} # => Jo ``` -See: [Parameter expansion](http://wiki.bash-hackers.org/syntax/pe) - +See: [Parameter expansion](http://wiki.bash-hackers.org/syntax/pe) ### basepath & dirpath + ```bash SRC="/path/to/foo.cpp" ``` ```bash -BASEPATH=${SRC##*/} +BASEPATH=${SRC##*/} echo $BASEPATH # => "foo.cpp" @@ -230,12 +223,7 @@ DIRPATH=${SRC%$BASEPATH} echo $DIRPATH # => "/path/to/" ``` - - - - - -### Transform +### Transform ```bash STR="HELLO WORLD!" @@ -251,11 +239,7 @@ echo "${ARR[@],}" # => hello world echo "${ARR[@]^}" # => Hello World ``` - - - -Bash Arrays ------- +## Bash Arrays ### Defining arrays @@ -277,12 +261,10 @@ declare -a Numbers=(1 2 3) Numbers+=(4 5) # Append => 1 2 3 4 5 ``` - - ### Indexing | - | - | -|--------------------|---------------| +| ------------------ | ------------- | | `${Fruits[0]}` | First element | | `${Fruits[-1]}` | Last element | | `${Fruits[*]}` | All elements | @@ -293,8 +275,6 @@ Numbers+=(4 5) # Append => 1 2 3 4 5 | `${Fruits[@]:3:2}` | Range | | `${!Fruits[@]}` | Keys of all | - - ### Iteration ```bash @@ -304,7 +284,9 @@ for e in "${Fruits[@]}"; do echo $e done ``` + #### With index + ```bash for i in "${!Fruits[@]}"; do printf "%s\t%s\n" "$i" "${Fruits[$i]}" @@ -312,7 +294,6 @@ done ``` - ### Operations {.col-span-2} ```bash @@ -326,6 +307,7 @@ lines=(`cat "logfile"`) # Read from file ``` ### Arrays as arguments + ```bash function extract() { @@ -337,12 +319,7 @@ Fruits=('Apple' 'Banana' 'Orange') extract Fruits 2 # => Orangle ``` - - - - -Bash Dictionaries ------------- +## Bash Dictionaries ### Defining @@ -357,7 +334,6 @@ sounds[bird]="tweet" sounds[wolf]="howl" ``` - ### Working with dictionaries ```bash @@ -375,24 +351,21 @@ for val in "${sounds[@]}"; do echo $val done ``` + --- + ```bash for key in "${!sounds[@]}"; do echo $key done ``` - - - - -Bash Conditionals ------------- +## Bash Conditionals ### Integer conditions | Condition | Description | -|---------------------|---------------------------------------------| +| ------------------- | ------------------------------------------- | | `[[ NUM -eq NUM ]]` | Equal | | `[[ NUM -ne NUM ]]` | Not equal | | `[[ NUM -lt NUM ]]` | Less than | @@ -404,11 +377,10 @@ Bash Conditionals | `(( NUM > NUM ))` | Greater than | | `(( NUM >= NUM ))` | Greater than or equal | - ### String conditions | Condition | Description | -|--------------------|-----------------------------| +| ------------------ | --------------------------- | | `[[ -z STR ]]` | Empty string | | `[[ -n STR ]]` | Not empty string | | `[[ STR == STR ]]` | Equal | @@ -418,14 +390,10 @@ Bash Conditionals | `[[ STR != STR ]]` | Not Equal | | `[[ STR =~ STR ]]` | Regexp | - - - - - ### Example {.row-span-3} #### String + ```bash if [[ -z "$string" ]]; then echo "String is empty" @@ -437,6 +405,7 @@ fi ``` #### Combinations + ```bash if [[ X && Y ]]; then ... @@ -444,6 +413,7 @@ fi ``` #### Equal + ```bash if [[ "$A" == "$B" ]]; then ... @@ -451,6 +421,7 @@ fi ``` #### Regex + ```bash if [[ '1. abc' =~ ([a-z]+) ]]; then echo ${BASH_REMATCH[1]} @@ -458,6 +429,7 @@ fi ``` #### Smaller + ```bash if (( $a < $b )); then echo "$a is smaller than $b" @@ -465,20 +437,17 @@ fi ``` #### Exists + ```bash if [[ -e "file.txt" ]]; then echo "file exists" fi ``` - - - - ### File conditions {.row-span-2} | Condition | Description | -|-------------------|----------------------------------------| +| ----------------- | -------------------------------------- | | `[[ -e FILE ]]` | Exists | | `[[ -d FILE ]]` | Directory | | `[[ -f FILE ]]` | File | @@ -491,18 +460,17 @@ fi | `[[ f1 -ot f2 ]]` | f2 older than f1 | | `[[ f1 -ef f2 ]]` | Same files | - ### More conditions | Condition | Description | -|----------------------|----------------------| +| -------------------- | -------------------- | ----- | --- | | `[[ -o noclobber ]]` | If OPTION is enabled | | `[[ ! EXPR ]]` | Not | | `[[ X && Y ]]` | And | -| `[[ X || Y ]]` | Or | - +| `[[ X | | Y ]]` | Or | ### logical and, or + ```bash if [ "$1" = 'y' -a $2 -gt 0 ]; then echo "yes" @@ -513,10 +481,7 @@ if [ "$1" = 'n' -o $2 -lt 0 ]; then fi ``` - - -Bash Loops ------ +## Bash Loops ### Basic for loop @@ -542,7 +507,6 @@ for i in {1..5}; do done ``` - #### With step size ```bash @@ -551,8 +515,6 @@ for i in {5..50..5}; do done ``` - - ### Auto increment ```bash @@ -573,7 +535,6 @@ while [[ $i -gt 0 ]]; do done ``` - ### Continue ```bash {data=3,5} @@ -585,7 +546,6 @@ for number in $(seq 1 3); do done ``` - ### Break ```bash @@ -600,6 +560,7 @@ done ``` ### Until + ```bash count=0 until [ $count -gt 10 ]; do @@ -608,8 +569,7 @@ until [ $count -gt 10 ]; do done ``` - -### Forever +### Forever ```bash while true; do @@ -618,13 +578,13 @@ done ``` ### Forever (shorthand) + ```bash while :; do # here is some code. done ``` - ### Reading lines ```bash @@ -633,12 +593,7 @@ cat file.txt | while read line; do done ``` - - - - -Bash Functions ---------- +## Bash Functions ### Defining functions @@ -688,10 +643,7 @@ else fi ``` - - -Bash Options {.cols-2} -------- +## Bash Options {.cols-2} ### Options @@ -702,10 +654,10 @@ set -o noclobber # Used to exit upon error # avoiding cascading errors -set -o errexit +set -o errexit # Unveils hidden failures -set -o pipefail +set -o pipefail # Exposes unset variables set -o nounset @@ -714,33 +666,31 @@ set -o nounset ### Glob options ```bash -# Non-matching globs are removed +# Non-matching globs are removed # ('*.foo' => '') -shopt -s nullglob +shopt -s nullglob # Non-matching globs throw errors -shopt -s failglob +shopt -s failglob # Case insensitive globs -shopt -s nocaseglob +shopt -s nocaseglob -# Wildcards match dotfiles +# Wildcards match dotfiles # ("*.sh" => ".foo.sh") -shopt -s dotglob +shopt -s dotglob -# Allow ** for recursive matches +# Allow ** for recursive matches # ('lib/**/*.rb' => 'lib/a/b/c.rb') -shopt -s globstar +shopt -s globstar ``` - -Bash History {.cols-2} -------- +## Bash History {.cols-2} ### Commands | Command | Description | -|-----------------------|-------------------------------------------| +| --------------------- | ----------------------------------------- | | `history` | Show history | | `sudo !!` | Run the previous command with sudo | | `shopt -s histverify` | Don't execute expanded result immediately | @@ -748,7 +698,7 @@ Bash History {.cols-2} ### Expansions | Expression | Description | -|--------------|------------------------------------------------------| +| ------------ | ---------------------------------------------------- | | `!$` | Expand last parameter of most recent command | | `!*` | Expand all parameters of most recent command | | `!-n` | Expand `n`th most recent command | @@ -758,7 +708,7 @@ Bash History {.cols-2} ### Operations | Code | Description | -|----------------------|-----------------------------------------------------------------------| +| -------------------- | --------------------------------------------------------------------- | | `!!` | Execute last command again | | `!!:s///` | Replace first occurrence of `` to `` in most recent command | | `!!:gs///` | Replace all occurrences of `` to `` in most recent command | @@ -770,7 +720,7 @@ Bash History {.cols-2} ### Slices | Code | Description | -|----------|------------------------------------------------------------------------------------------| +| -------- | ---------------------------------------------------------------------------------------- | | `!!:n` | Expand only `n`th token from most recent command (command is `0`; first argument is `1`) | | `!^` | Expand first argument from most recent command | | `!$` | Expand last token from most recent command | @@ -779,9 +729,7 @@ Bash History {.cols-2} `!!` can be replaced with any valid expansion i.e. `!cat`, `!-2`, `!42`, etc. - -Miscellaneous -------------- +## Miscellaneous ### Numeric calculations @@ -800,7 +748,6 @@ $(($RANDOM%200)) # Random number 0..199 pwd # still in first directory ``` - ### Inspecting commands ```bash @@ -808,7 +755,6 @@ command -V cd #=> "cd is a function/alias/whatever" ``` - ### Redirection {.row-span-2 .col-span-2} ```bash @@ -824,7 +770,6 @@ python hello.py &>/dev/null # stdout and stderr to (null) python hello.py < foo.txt # feed foo.txt to stdin for python ``` - ### Source relative ```bash @@ -851,7 +796,6 @@ case "$1" in esac ``` - ### Trap errors {.col-span-2} ```bash @@ -869,7 +813,6 @@ set -o errtrace trap traperr ERR ``` - ### printf ```bash @@ -901,7 +844,7 @@ esac; shift; done if [[ "$1" == '--' ]]; then shift; fi ``` -### Check for command's result {.col-span-2} +### Check for command's result {.col-span-2} ```bash if ping -c 1 google.com; then @@ -909,11 +852,10 @@ if ping -c 1 google.com; then fi ``` - -### Special variables {.row-span-2} +### Special variables {.row-span-2} | Expression | Description | -|------------|------------------------------| +| ---------- | ---------------------------- | | `$?` | Exit status of last task | | `$!` | PID of last background task | | `$$` | PID of shell | @@ -921,8 +863,7 @@ fi See [Special parameters](http://wiki.bash-hackers.org/syntax/shellvars#special_parameters_and_shell_variables). - -### Grep check {.col-span-2} +### Grep check {.col-span-2} ```bash if grep -q 'foo' ~/.bash_history; then @@ -930,10 +871,9 @@ if grep -q 'foo' ~/.bash_history; then fi ``` - ### Backslash escapes {.row-span-2} --   +-   - \! - \" - \# @@ -956,14 +896,11 @@ fi - \$ - \* - \? -{.cols-4 .marker-none} +{.cols-4 .marker-none} Escape these special characters with `\` - - - ### Heredoc ```sh @@ -972,7 +909,6 @@ hello world END ``` - ### Go to previous directory ```bash @@ -983,7 +919,6 @@ cd - pwd # /home/user/foo ``` - ### Reading input ```bash @@ -996,7 +931,6 @@ echo $ans read -n 1 ans # Just one character ``` - ### Conditional execution ```bash @@ -1004,7 +938,6 @@ git commit && git push git commit || echo "Commit failed" ``` - ### Strict mode ```bash @@ -1014,7 +947,6 @@ IFS=$'\n\t' See: [Unofficial bash strict mode](http://redsymbol.net/articles/unofficial-bash-strict-mode/) - ### Optional arguments ```bash @@ -1026,13 +958,12 @@ echo "${args[@]}" Put the arguments into an array and then append - - ## Also see {.cols-1} -* [Devhints](https://devhints.io/bash) _(devhints.io)_ -* [Bash-hackers wiki](http://wiki.bash-hackers.org/) _(bash-hackers.org)_ -* [Shell vars](http://wiki.bash-hackers.org/syntax/shellvars) _(bash-hackers.org)_ -* [Learn bash in y minutes](https://learnxinyminutes.com/docs/bash/) _(learnxinyminutes.com)_ -* [Bash Guide](http://mywiki.wooledge.org/BashGuide) _(mywiki.wooledge.org)_ -* [ShellCheck](https://www.shellcheck.net/) _(shellcheck.net)_ -* [shell - Standard Shell](https://devmanual.gentoo.org/tools-reference/bash/index.html) _(devmanual.gentoo.org)_ + +- [Devhints](https://devhints.io/bash) _(devhints.io)_ +- [Bash-hackers wiki](http://wiki.bash-hackers.org/) _(bash-hackers.org)_ +- [Shell vars](http://wiki.bash-hackers.org/syntax/shellvars) _(bash-hackers.org)_ +- [Learn bash in y minutes](https://learnxinyminutes.com/docs/bash/) _(learnxinyminutes.com)_ +- [Bash Guide](http://mywiki.wooledge.org/BashGuide) _(mywiki.wooledge.org)_ +- [ShellCheck](https://www.shellcheck.net/) _(shellcheck.net)_ +- [shell - Standard Shell](https://devmanual.gentoo.org/tools-reference/bash/index.html) _(devmanual.gentoo.org)_ From 119fad49bb5431cabdeb49d9fe2ed8aa5f76726a Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 03:09:37 -0700 Subject: [PATCH 15/81] fix: c format fixed bitwise OR operators for the tables --- source/_posts/c.md | 442 ++++++++++++++++----------------------------- 1 file changed, 154 insertions(+), 288 deletions(-) diff --git a/source/_posts/c.md b/source/_posts/c.md index 77b9db6b..d6451b94 100644 --- a/source/_posts/c.md +++ b/source/_posts/c.md @@ -6,15 +6,12 @@ tags: categories: - Programming intro: | - C quick reference cheat sheet that provides basic syntax and methods. + C quick reference cheat sheet that provides basic syntax and methods. plugins: - - copyCode + - copyCode --- -Getting Started ----- - - +## Getting Started ### hello.c {.row-span-2} @@ -42,8 +39,6 @@ $ ./hello Output => Hello World! - - ### Variables {.row-span-2} ```c @@ -66,8 +61,6 @@ int sum = x + y; // add variables to sum int x = 5, y = 6, z = 50; ``` - - ### Constants ```c @@ -81,8 +74,6 @@ Best Practices const int BIRTHYEAR = 1980; ``` - - ### Comment ```c @@ -93,8 +84,6 @@ printf("Hello World!"); // Can comment anywhere in file to the screen, it's awesome */ ``` - - ### Print text ```c @@ -126,8 +115,6 @@ printf("a=%hX, b=%X, c=%lX\n", a, b, c); // output => a=56, b=5CB, c=1DAB83 ``` - - ### Control the number of spaces ```c @@ -145,17 +132,17 @@ printf("%-9d %-9d %-9d\n", d1, d2, d3); output result ```bash -20 345 700 -56720 9999 20098 -233 205 1 -34 0 23 +20 345 700 +56720 9999 20098 +233 205 1 +34 0 23 ``` -In `%-9d`, `d` means to output in `10` base, `9` means to occupy at least `9` characters width, and the width is not enough to fill with spaces, `-` means left alignment - - +In `%-9d`, `d` means to output in `10` base, `9` means to occupy at least `9` characters width, and the width is not +enough to fill with spaces, `-` means left alignment ### Strings + ```c char greetings[] = "Hello World!"; printf("%s", greetings); @@ -188,16 +175,17 @@ printf("%s", greetings); ``` Creating String using character pointer (String Literals) + ```c char *greetings = "Hello"; printf("%s", greetings); // print "Hello!" ``` -**NOTE**: String literals might be stored in read-only section of memory. Modifying a string literal invokes undefined behavior. You can't modify it.! - -`C` **does not** have a String type, use `char` type and create an `array` of characters +**NOTE**: String literals might be stored in read-only section of memory. Modifying a string literal invokes undefined +behavior. You can't modify it.! +`C` **does not** have a String type, use `char` type and create an `array` of characters ### Condition {.row-span-2} @@ -220,8 +208,6 @@ if (time < 10) { // Output -> "Good evening!" ``` - - ### Ternary operator {.col-span-2} ```c @@ -229,8 +215,6 @@ int age = 20; (age > 19) ? printf("Adult") : printf("Teenager"); ``` - - ### Switch ```c @@ -245,8 +229,6 @@ switch (day) { // output -> "Thursday" (day 4) ``` - - ### While Loop ```c @@ -258,9 +240,8 @@ while (i < 5) { } ``` -**NOTE**: Don't forget to increment the variable used in the condition, otherwise the loop will never end and become an "infinite loop"! - - +**NOTE**: Don't forget to increment the variable used in the condition, otherwise the loop will never end and become an +"infinite loop"! ### Do/While Loop @@ -273,8 +254,6 @@ do { } while (i < 5); ``` - - ### For Loop ```c @@ -283,8 +262,6 @@ for (int i = 0; i < 5; i++) { } ``` - - ### Break out of the loop Break/Continue {.row-span-2} ```c @@ -309,8 +286,6 @@ for (int i = 0; i < 10; i++) { Example to skip the value of `4` - - ### While Break Example ```c @@ -326,8 +301,6 @@ while (i < 10) { } ``` - - ### While continue example ```c @@ -343,8 +316,6 @@ while (i < 10) { } ``` - - ### Arrays {.row-span-2} ```c @@ -387,8 +358,6 @@ myNumbers[2] = 75; myNumbers[3] = 100; ``` - - ### Enumeration Enum {.col-span-2} ```c @@ -411,8 +380,6 @@ enum week a = Mon, b = Wed, c = Sat; enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a = Mon, b = Wed, c = Sat; ``` - - ### Enumerate sample applications ```c @@ -429,8 +396,6 @@ switch(day) { } ``` - - ### User input ```c @@ -447,8 +412,6 @@ scanf("%d", &myNum); printf("The number you entered: %d", myNum); ``` - - ### User input string ```c @@ -462,8 +425,6 @@ scanf("%s", &firstName); printf("Hello %s.", firstName); ``` - - ### memory address When a variable is created, it is assigned a memory address @@ -477,8 +438,6 @@ printf("%p", &myAge); To access it, use the reference operator (`&`) - - ### create pointer ```c @@ -489,8 +448,6 @@ printf("%d", myAge); // output the value of myAge(43) printf("%p", &myAge); ``` - - ### pointer variable {.col-span-2} ```c @@ -503,8 +460,6 @@ printf("%p\n", &myAge); // output the memory address of myAge (0x7ffe5367e044) printf("%p\n", ptr); // use the pointer (0x7ffe5367e044) to output the memory address of myAge ``` - - ### Dereference ```c @@ -518,10 +473,7 @@ printf("%p\n", ptr); printf("%d\n", *ptr); ``` -Operators ---- - - +## Operators ### Arithmetic Operators @@ -532,37 +484,33 @@ int sum2 = sum1 + 250; // 400 (150 + 250) int sum3 = sum2 + sum2; // 800 (400 + 400) ``` ----- +--- | Operator | Name | Example | -|----------|-----------|---------| +| -------- | --------- | ------- | | `+` | Add | `x + y` | -| `-` | Subtract | `x - y` | -| `*` | Multiply | `x * y` | -| `/` | Divide | `x / y` | +| `-` | Subtract | `x - y` | +| `*` | Multiply | `x * y` | +| `/` | Divide | `x / y` | | `%` | Modulo | `x % y` | -| `++` | Increment | `++x` | +| `++` | Increment | `++x` | | `--` | Decrement | `--x` | - - ### Assignment operator -| example | as | -|-----------|----------------| -| x `=` 5 | x `=` 5 | -| x `+=` 3 | x `=` x `+` 3 | -| x `-=` 3 | x `=` x `-` 3 | -| x `*=` 3 | x `=` x `*` 3 | -| x `/=` 3 | x `=` x `/` 3 | -| x `%=` 3 | x `=` x `%` 3 | -| x `&=` 3 | x `=` x `&` 3 | -| x `|=` 3 | x `=` x `|` 3 | -| x `^=` 3 | x `=` x `^` 3 | -| x `>>=` 3 | x `=` x `>>` 3 | -| x `<<=` 3 | x `=` x `<<` 3 | - - +| example | as | +| -------------------- | ------------------------- | +| x `=` 5 | x `=` 5 | +| x `+=` 3 | x `=` x `+` 3 | +| x `-=` 3 | x `=` x `-` 3 | +| x `*=` 3 | x `=` x `*` 3 | +| x `/=` 3 | x `=` x `/` 3 | +| x `%=` 3 | x `=` x `%` 3 | +| x `&=` 3 | x `=` x `&` 3 | +| x \|= 3 | x `=` x \| 3 | +| x `^=` 3 | x `=` x `^` 3 | +| x `>>=` 3 | x `=` x `>>` 3 | +| x `<<=` 3 | x `=` x `<<` 3 | ### Comparison Operators @@ -574,30 +522,26 @@ printf("%d", x > y); // returns 1 (true) because 5 is greater than 3 ``` ----- +--- -| Symbol | Name | Example | -| --------| -------| -------| -| `==` | equals | x `==` y | -| `!=` | not equal to | x `!=` y | -| `>` | greater than | x `>` y | -| `<` | less than | x `<` y | -| `>=` | greater than or equal to | x `>=` y | -| `<=` | less than or equal to | x `<=` y | +| Symbol | Name | Example | +| ------ | ------------------------ | -------- | +| `==` | equals | x `==` y | +| `!=` | not equal to | x `!=` y | +| `>` | greater than | x `>` y | +| `<` | less than | x `<` y | +| `>=` | greater than or equal to | x `>=` y | +| `<=` | less than or equal to | x `<=` y | Comparison operators are used to compare two values - - ### Logical Operators {.col-span-2} -| Symbol | Name | Description | Example | -| --------| --------| --------| --------| -| `&&` | `and` logical | returns true if both statements are true | `x < 5 && x < 10` | -| `||` | `or` logical | returns true if one of the statements is true | `x < 5 || x < 4` | -| `!` | `not` logical | Invert result, return false if true | `!(x < 5 && x < 10)` | - - +| Symbol | Name | Description | Example | +| ----------------- | ------------- | --------------------------------------------- | ----------------------------- | +| `&&` | `and` logical | returns true if both statements are true | `x < 5 && x < 10` | +| \|\| | `or` logical | returns true if one of the statements is true | x < 5 \|\| x < 4 | +| `!` | `not` logical | Invert result, return false if true | `!(x < 5 && x < 10)` | ### Operator Examples {.row-span-2} @@ -621,45 +565,38 @@ c = a >> 2; /*15 = 0000 1111 */ printf("Line 6 -The value of c is %d\n", c); ``` - - ### Bitwise operators {.col-span-2} -operator | description | instance -:-|:-|:- -`&` | Bitwise AND operation, "AND" operation by binary digits | `(A & B)` will get `12` which is 0000 1100 -`|` | Bitwise OR operator, "or" operation by binary digit | `(A | B)` will get `61` which is 0011 1101 -`^` | XOR operator, perform "XOR" operation by binary digits | `(A ^ B)` will get `49` which is 0011 0001 -`~` | Inversion operator, perform "inversion" operation by binary bit | `(~A)` will get `-61` which is 1100 0011 -`<<` | binary left shift operator | `A << 2` will get `240` which is 1111 0000 -`>>` | binary right shift operator | `A >> 2` will get `15` which is 0000 1111 - -Data Types ---- - +| operator | description | instance | +| :-------------- | :-------------------------------------------------------------- | :---------------------------------------------------- | +| `&` | Bitwise AND operation, "AND" operation by binary digits | `(A & B)` will get `12` which is 0000 1100 | +| \| | Bitwise OR operator, "or" operation by binary digit | (A \| B) will get`61` which is 0011 1101 | +| `^` | XOR operator, perform "XOR" operation by binary digits | `(A ^ B)` will get `49` which is 0011 0001 | +| `~` | Inversion operator, perform "inversion" operation by binary bit | `(~A)` will get `-61` which is 1100 0011 | +| `<<` | binary left shift operator | `A << 2` will get `240` which is 1111 0000 | +| `>>` | binary right shift operator | `A >> 2` will get `15` which is 0000 1111 | +## Data Types ### Basic data types {.col-span-2} -| Data Type | Size Size | Range Range | Description Description | -| -----| -----| -----| -----| -| `char` | 1 byte | `−128` ~ `127` | single character/alphanumeric/ASCII | -| `signed char` | 1 byte | `−128` ~ `127` | -| -| `unsigned char` | 1 byte | `0` ~ `255` | -| -| `int` | `2` to `4` bytes | `−32,768` ~ `32,767` | store integers | -| `signed int` | 2 bytes | `−32,768` ~ `32,767` | | -| `unsigned int` | 2 bytes | `0` ~ `65,535` | | -| `short int` | 2 bytes | `−32,768` ~ `32,767` | | -| `signed short int` | 2 bytes | `−32,768` ~ `32,767` | | -| `unsigned short int` | 2 bytes | `0` ~ `65,535` | | -| `long int` | 4 bytes | `-2,147,483,648` ~ `2,147,483,647` | | -| `signed long int` | 4 bytes | `-2,147,483,648` ~ `2,147,483,647` | | -| `unsigned long int` | 4 bytes | `0` ~ `4,294,967,295` | | -| `float` | 4 bytes | `3.4E-38` ~ `3.4E+38` | | -| `double` | 8 bytes | `1.7E-308` ~ `1.7E+308` | | -| `long double` | 10 bytes | `3.4E-4932` ~ `1.1E+4932` | | - - +| Data Type | Size Size | Range Range | Description Description | +| -------------------- | ---------------- | ---------------------------------- | ----------------------------------- | +| `char` | 1 byte | `−128` ~ `127` | single character/alphanumeric/ASCII | +| `signed char` | 1 byte | `−128` ~ `127` | - | +| `unsigned char` | 1 byte | `0` ~ `255` | - | +| `int` | `2` to `4` bytes | `−32,768` ~ `32,767` | store integers | +| `signed int` | 2 bytes | `−32,768` ~ `32,767` | | +| `unsigned int` | 2 bytes | `0` ~ `65,535` | | +| `short int` | 2 bytes | `−32,768` ~ `32,767` | | +| `signed short int` | 2 bytes | `−32,768` ~ `32,767` | | +| `unsigned short int` | 2 bytes | `0` ~ `65,535` | | +| `long int` | 4 bytes | `-2,147,483,648` ~ `2,147,483,647` | | +| `signed long int` | 4 bytes | `-2,147,483,648` ~ `2,147,483,647` | | +| `unsigned long int` | 4 bytes | `0` ~ `4,294,967,295` | | +| `float` | 4 bytes | `3.4E-38` ~ `3.4E+38` | | +| `double` | 8 bytes | `1.7E-308` ~ `1.7E+308` | | +| `long double` | 10 bytes | `3.4E-4932` ~ `1.1E+4932` | | ### Data types @@ -677,42 +614,36 @@ printf("%c\n", myLetter); printf("%lf\n", myDouble); ``` ----- - -Data Type | Description -:-| :- -`char` | character type -`short` | short integer -`int` | integer type -`long` | long integer -`float` | single-precision floating-point type -`double` | double-precision floating-point type -`void` | no type - +--- +| Data Type | Description | +| :-------- | :----------------------------------- | +| `char` | character type | +| `short` | short integer | +| `int` | integer type | +| `long` | long integer | +| `float` | single-precision floating-point type | +| `double` | double-precision floating-point type | +| `void` | no type | ### Basic format specifiers -| format specifier | data type | -| -----| -----| -| `%d` or `%i` | `int` integer | -| `%f` | `float` single-precision decimal type | -| `%lf` | `double` high precision floating point data or number | -| `%c` | `char` character | -| `%s` | for `strings` strings | - - +| format specifier | data type | +| ---------------- | ----------------------------------------------------- | +| `%d` or `%i` | `int` integer | +| `%f` | `float` single-precision decimal type | +| `%lf` | `double` high precision floating point data or number | +| `%c` | `char` character | +| `%s` | for `strings` strings | ### Basic format specifiers -| | short | int | long | -| ----| ----| ----| ----| -| Octal | `%ho` | `%o` | `%lo` | -| Decimal | `%hd` | `%d` | `%ld` | +| | short | int | long | +| ----------- | ------------ | ---------- | ------------ | +| Octal | `%ho` | `%o` | `%lo` | +| Decimal | `%hd` | `%d` | `%ld` | | Hexadecimal | `%hx` /`%hX` | `%x` /`%X` | `%lx` /`%lX` | - - ### Data format example ```c @@ -725,26 +656,23 @@ printf("%f\n", myFloatNum); printf("%c\n", myLetter); ``` -C Preprocessor ---- - - +## C Preprocessor ### Preprocessor Directives {.row-span-2} -command | description -----| ---- -`#define` | define a macro -`#include` | include a source code file -`#undef` | undefined macro -`#ifdef` | Returns true if the macro is defined -`#ifndef` | Returns true if the macro is not defined -`#if` | Compile the following code if the given condition is true -`#else` | Alternative to `#if` -`#elif` | If the `#if` condition is false, the current condition is `true` -`#endif` | End a `#if...#else` conditional compilation block -`#error` | Print an error message when standard error is encountered -`#pragma` | Issue special commands to the compiler using the standardized method +| command | description | +| ---------- | -------------------------------------------------------------------- | +| `#define` | define a macro | +| `#include` | include a source code file | +| `#undef` | undefined macro | +| `#ifdef` | Returns true if the macro is defined | +| `#ifndef` | Returns true if the macro is not defined | +| `#if` | Compile the following code if the given condition is true | +| `#else` | Alternative to `#if` | +| `#elif` | If the `#if` condition is false, the current condition is `true` | +| `#endif` | End a `#if...#else` conditional compilation block | +| `#error` | Print an error message when standard error is encountered | +| `#pragma` | Issue special commands to the compiler using the standardized method | ```c // replace all MAX_ARRAY_LENGTH with 20 @@ -757,23 +685,20 @@ command | description #define FILE_SIZE 42 // undefine and define to 42 ``` - - ### Predefined macros {.row-span-2} -macro | description -----| ---- -`__DATE__` | The current date, a character constant in the format "MMM DD YYYY" -`__TIME__` | The current time, a character constant in the format "HH:MM:SS" -`__FILE__` | This will contain the current filename, a string constant -`__LINE__` | This will contain the current line number, a decimal constant -`__STDC__` | Defined as `1` when the compiler compiles against the `ANSI` standard +| macro | description | +| ---------- | --------------------------------------------------------------------- | +| `__DATE__` | The current date, a character constant in the format "MMM DD YYYY" | +| `__TIME__` | The current time, a character constant in the format "HH:MM:SS" | +| `__FILE__` | This will contain the current filename, a string constant | +| `__LINE__` | This will contain the current line number, a decimal constant | +| `__STDC__` | Defined as `1` when the compiler compiles against the `ANSI` standard | + `ANSI C` defines a number of macros that you can use, but you cannot directly modify these predefined macros - - #### Predefined macro example ```c @@ -788,8 +713,6 @@ int main() { } ``` - - ### Macro continuation operator (\) A macro is usually written on a single line. @@ -801,8 +724,6 @@ A macro is usually written on a single line. If the macro is too long to fit on a single line, use the macro continuation operator `\` - - ### String Constantization Operator (#) ```c @@ -817,6 +738,7 @@ int main(void) { return 0; } ``` + When the above code is compiled and executed, it produces the following result: ``` @@ -825,8 +747,6 @@ Carole and Debra: We love you! When you need to convert a macro parameter to a string constant, use the string constant operator `#` - - ### tag paste operator (##) ```c @@ -842,8 +762,6 @@ int main(void) { } ``` - - ### defined() operator ```c @@ -860,8 +778,6 @@ int main(void) { } ``` - - ### Parameterized macros ```c @@ -889,10 +805,7 @@ int main(void) { } ``` -C Function ----- - - +## C Function ### Function declaration and definition {.row-span-2} @@ -912,11 +825,12 @@ void myFunction() { // declaration declaration } ``` ----- +--- + - `Declaration` declares the function name, return type and parameters _(if any)_ - `Definition` function body _(code to execute)_ ----- +--- ```c // function declaration @@ -933,8 +847,6 @@ void myFunction() {// Function definition } ``` - - ### Call function ```c @@ -953,8 +865,6 @@ int main() { // Output -> "Good evening!" ``` - - ### Function parameters ```c @@ -972,8 +882,6 @@ int main() { // Hello Jenny ``` - - ### Multiple parameters ```c @@ -990,8 +898,6 @@ int main() { // Hi Jenny you are 14 years old. ``` - - ### Return value {.row-span-2} ```c @@ -1025,8 +931,6 @@ int main() { // result = 8 (5 + 3) ``` - - ### Recursive example ```c @@ -1048,8 +952,6 @@ int sum(int k) { } ``` - - ### Mathematical functions ```c @@ -1063,7 +965,7 @@ void main(void) { } ``` ----- +--- - `abs(x)` absolute value - `acos(x)` arc cosine value @@ -1075,10 +977,7 @@ void main(void) { - `sin(x)` the sine of x - tangent of `tan(x)` angle -C Structures ---- - - +## C Structures ### Create structure @@ -1104,8 +1003,6 @@ int main() { } ``` - - ### Strings in the structure ```c{9} @@ -1127,8 +1024,6 @@ int main() { Assigning values ​​to strings using the `strcpy` function - - ### Accessing structure members {.row-span-2} ```c{11,12,16} @@ -1169,8 +1064,6 @@ s2.myNum = 20; s2.myLetter = 'C'; ``` - - ### Copy structure ```c{6} @@ -1184,8 +1077,6 @@ s2 = s1; In the example, the value of `s1` is copied to `s2` - - ### Modify value ```c{6,7} @@ -1202,49 +1093,42 @@ printf("%d %c %s", s1.myLetter); ``` -file processing ---- - - +## file processing ### File processing function -function | description Description -----| ---- -`fopen()` | `open` a new or existing file -`fprintf()` | write data to `file` -`fscanf()` | `read` data from a file -`fputc()` | write a character to `file` -`fgetc()` | `read` a character from a file -`fclose()` | `close` the file -`fseek()` | set the file pointer to `the given position` -`fputw()` | Write an integer `to` a file -`fgetw()` | `read` an integer from a file -`ftell()` | returns the current `position` -`rewind()` | set the file pointer to the beginning of the file +| function | description Description | +| ----------- | ------------------------------------------------- | +| `fopen()` | `open` a new or existing file | +| `fprintf()` | write data to `file` | +| `fscanf()` | `read` data from a file | +| `fputc()` | write a character to `file` | +| `fgetc()` | `read` a character from a file | +| `fclose()` | `close` the file | +| `fseek()` | set the file pointer to `the given position` | +| `fputw()` | Write an integer `to` a file | +| `fgetw()` | `read` an integer from a file | +| `ftell()` | returns the current `position` | +| `rewind()` | set the file pointer to the beginning of the file | There are many functions in the C library to `open`/`read`/`write`/`search` and `close` files - - ### Open mode parameter -Mode Mode | Description Description -----| ---- -`r` | Open a text file in `read` mode, allowing the file to be read -`w` | Open a text file in `write` mode, allowing writing to the file -`a` | Open a text file in `append` mode
    If the file does not exist, a new one will be created -`r+` | Open a text file in `read-write` mode, allowing reading and writing of the file -`w+` | Open a text file in `read-write` mode, allowing reading and writing of the file -`a+` | Open a text file in `read-write` mode, allowing reading and writing of the file -`rb` | Open a binary file in `read` mode -`wb` | Open binary file in `write` mode -`ab` | Open a binary file in `append` mode -`rb+` | open binary file in `read-write` mode -`wb+` | Open binary file in `read-write` mode -`ab+` | open binary file in `read-write` mode - - +| Mode Mode | Description Description | +| --------- | -------------------------------------------------------------------------------------------- | +| `r` | Open a text file in `read` mode, allowing the file to be read | +| `w` | Open a text file in `write` mode, allowing writing to the file | +| `a` | Open a text file in `append` mode
    If the file does not exist, a new one will be created | +| `r+` | Open a text file in `read-write` mode, allowing reading and writing of the file | +| `w+` | Open a text file in `read-write` mode, allowing reading and writing of the file | +| `a+` | Open a text file in `read-write` mode, allowing reading and writing of the file | +| `rb` | Open a binary file in `read` mode | +| `wb` | Open binary file in `write` mode | +| `ab` | Open a binary file in `append` mode | +| `rb+` | open binary file in `read-write` mode | +| `wb+` | Open binary file in `read-write` mode | +| `ab+` | open binary file in `read-write` mode | ### Open the file: fopen() @@ -1269,8 +1153,6 @@ void main() { After performing all operations on the file, the file must be closed with `fclose()` - - ### Write to file: fprintf() ```c{7} @@ -1286,8 +1168,6 @@ void main() { } ``` - - ### Read the file: fscanf() ```c{6} @@ -1306,8 +1186,6 @@ void main() { } ``` - - ### Write to file: fputc() ```c{6} @@ -1321,8 +1199,6 @@ void main() { } ``` - - ### Read the file: fgetc() ```c{8} @@ -1346,8 +1222,6 @@ void main() { } ``` - - ### Write to file: fputs() ```c {8} @@ -1367,8 +1241,6 @@ void main() { } ``` - - ### Read files: fgets() ```c {10} @@ -1389,8 +1261,6 @@ void main() { } ``` - - ### fseek() ```c{8} @@ -1412,8 +1282,6 @@ void main(void) { set the file pointer to the given position - - ### rewind() ```c{11} @@ -1445,8 +1313,6 @@ void main() { // Hello World! Hello World! ``` - - ### ftell() ```c{11} From 6a2944c48e63d9d9a7a3d20fecfd31214926e8f4 Mon Sep 17 00:00:00 2001 From: FireIsGood Date: Thu, 16 May 2024 03:20:39 -0700 Subject: [PATCH 16/81] fix: chatgpt format Fixed the blank spaces as well as broken dropdowns --- source/_posts/chatgpt.md | 1028 +++++++++++++++++--------------------- 1 file changed, 472 insertions(+), 556 deletions(-) diff --git a/source/_posts/chatgpt.md b/source/_posts/chatgpt.md index 7f176478..94bb253e 100644 --- a/source/_posts/chatgpt.md +++ b/source/_posts/chatgpt.md @@ -3,723 +3,639 @@ title: ChatGPT date: 2023-02-09 10:28:43 background: bg-[#4aa181] tags: - - AI - - OpenAI - - Prompts - - Tips + - AI + - OpenAI + - Prompts + - Tips categories: - - Toolkit + - Toolkit intro: This cheat sheet lists out prompts and tips from all over the world on how to use ChatGPT effectively plugins: - - copyCode + - copyCode --- -Getting Started ---------------- - +## Getting Started ### General + - **Name your business or idea** - ``` {.wrap} - Can you suggest a creative name for my tech startup? - ``` - ``` {.wrap} - Help me come up with a catchy name for my bakery business. - ``` + ```{.wrap} + Can you suggest a creative name for my tech startup? + ``` + ```{.wrap} + Help me come up with a catchy name for my bakery business. + ``` - **Create an outline for a course or training program** - ``` {.wrap} - Please create an outline for a course on web development for beginners. - ``` - ``` {.wrap} - Can you make a training program outline for a customer service workshop? - ``` + ```{.wrap} + Please create an outline for a course on web development for beginners. + ``` + ```{.wrap} + Can you make a training program outline for a customer service workshop? + ``` - **Ask you interview questions for a specific job** - ``` {.wrap} - I'm interviewing for a software engineer position, can you give me some interview questions? - ``` - ``` {.wrap} - Please provide me with some common interview questions for a marketing manager role. - ``` + ```{.wrap} + I'm interviewing for a software engineer position, can you give me some interview questions? + ``` + ```{.wrap} + Please provide me with some common interview questions for a marketing manager role. + ``` - **Give you gift ideas for business partners, customers, or clients** - ``` {.wrap} - I need gift ideas for my clients, can you help? - ``` - ``` {.wrap} - What are some unique gifts I can give to my business partners? - ``` + ```{.wrap} + I need gift ideas for my clients, can you help? + ``` + ```{.wrap} + What are some unique gifts I can give to my business partners? + ``` - **Choose a random contest winner(s) from a long list of names or emails** - ``` {.wrap} - I want to choose a winner from a list of 100 names, can you help? - ``` - ``` {.wrap} - Can you randomly pick 5 email addresses from a list of 1000 for a giveaway contest? - ``` + ```{.wrap} + I want to choose a winner from a list of 100 names, can you help? + ``` + ```{.wrap} + Can you randomly pick 5 email addresses from a list of 1000 for a giveaway contest? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - ### Coding - **Explain why a piece of code isn't working** - ``` {.wrap} - Why this code is not working? - var x = 5; - var y = 0; - console.log(x/y); - ``` + ```{.wrap} + Why this code is not working? + var x = 5; + var y = 0; + console.log(x/y); + ``` - **Explain what a piece of code means** - ``` {.wrap} - What this code does? - function addNumbers(a, b) { - return a + b; - } - ``` + ```{.wrap} + What this code does? + function addNumbers(a, b) { + return a + b; + } + ``` - **Rewrite the code using the specified language** - ``` {.wrap} - Translate this code into Python: - function addNumbers(a, b) { - return a + b; - } - ``` + ```{.wrap} + Translate this code into Python: + function addNumbers(a, b) { + return a + b; + } + ``` - **Code an entire software program** - ``` {.wrap} - Write a program that calculates the factorial of a given number in python? - ``` - ``` {.wrap} - How do I make an HTTP request in JavaScript? - ``` + ```{.wrap} + Write a program that calculates the factorial of a given number in python? + ``` + ```{.wrap} + How do I make an HTTP request in JavaScript? + ``` - **Generate regular expressions (regex)** - ``` {.wrap} - Create a regex that matches all email addresses? - ``` - ``` {.wrap} - Generate 8-digit password regex - ``` - ``` + ```{.wrap} + Create a regex that matches all email addresses? + ``` + ```{.wrap} + Generate 8-digit password regex + ``` - **Add comments to your codebase** - ``` {.wrap} - Add comments to this code: - function addNumbers(a, b) { - return a + b; - } - ``` + ```{.wrap} + Add comments to this code: + function addNumbers(a, b) { + return a + b; + } + ``` - **Change the CSS of a line of code** - ``` {.wrap} - Update the CSS for this line to change the font color to blue? -

    Hello, CheatSheets.zip!

    - ``` + ```{.wrap} + Update the CSS for this line to change the font color to blue? +

    Hello, CheatSheets.zip!

    + ``` - **Change the HTML of a line of code** - ``` {.wrap} - Add a class of "header" to this header tag? -

    Hello, CheatSheets.zip!

    - ``` + ```{.wrap} + Add a class of "header" to this header tag? +

    Hello, CheatSheets.zip!

    + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - - ### Email + - **Creating email campaigns** - ``` {.wrap} - Email inviting Jack to dinner on the weekend - ``` - ``` {.wrap} - Create an email sequence for our new customer onboarding process - ``` - ``` + ```{.wrap} + Email inviting Jack to dinner on the weekend + ``` + ```{.wrap} + Create an email sequence for our new customer onboarding process + ``` - **Format and proofread email** - ``` {.wrap} - Proofread and format this email I just wrote: - Hello, do you have any actual tips or tricks for ChatGPT please? - ``` + ```{.wrap} + Proofread and format this email I just wrote: + Hello, do you have any actual tips or tricks for ChatGPT please? + ``` - **Provides tips for effective email marketing** - ``` {.wrap} - Give me some tips on how to increase open and click-through rates for my email campaigns - ``` - ``` {.wrap} - Suggest ways to make my email content more engaging and relevant to my subscribers. - ``` - ``` + ```{.wrap} + Give me some tips on how to increase open and click-through rates for my email campaigns + ``` + ```{.wrap} + Suggest ways to make my email content more engaging and relevant to my subscribers. + ``` - **Automate email responses** - ``` {.wrap} - Email him, "That's a good suggestion, it's coming soon": - Hello, do you have any actual tips or tricks for ChatGPT please? - ``` + ```{.wrap} + Email him, "That's a good suggestion, it's coming soon": + Hello, do you have any actual tips or tricks for ChatGPT please? + ``` - **Extract email address from text** - ``` {.wrap} - Extract all email addresses for me: - Sed sit amet sodales tom@gmail.com, at jack@cheatsheets.zip enim. 18261@outlook.com ut eros - ``` + ```{.wrap} + Extract all email addresses for me: + Sed sit amet sodales tom@gmail.com, at jack@cheatsheets.zip enim. 18261@outlook.com ut eros + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Spreadsheets + - **Help create a spreadsheet formula** - ``` {.wrap} - Can you help me create a formula to calculate the sum of cells A1 to A10? - ``` + ```{.wrap} + Can you help me create a formula to calculate the sum of cells A1 to A10? + ``` - **Explain a formula to you** - ``` {.wrap} - Can you explain the meaning of the formula =SUM(A1:A10) in simple terms? - ``` + ```{.wrap} + Can you explain the meaning of the formula =SUM(A1:A10) in simple terms? + ``` - **Create dummy data for placeholders** - ``` {.wrap} - Can you generate dummy data for me to use as placeholders in my spreadsheet? - ``` + ```{.wrap} + Can you generate dummy data for me to use as placeholders in my spreadsheet? + ``` - **Help create a complex macro** - ``` {.wrap} - I need to create a macro that calculates the average of cells B1 to B10 and inserts the result in cell C1. Can you help me with that? - ``` + ```{.wrap} + I need to create a macro that calculates the average of cells B1 to B10 and inserts the result in cell C1. Can you help me with that? + ``` - **Provide tips for improving spreadsheet efficiency** - ``` {.wrap} - Can you give me some tips on how to improve the efficiency of my spreadsheet? - ``` + ```{.wrap} + Can you give me some tips on how to improve the efficiency of my spreadsheet? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Social Media + - **Give you ideas for memes on any topic** - ``` {.wrap} - Can you give me some meme ideas for [dogs]? - ``` + ```{.wrap} + Can you give me some meme ideas for [dogs]? + ``` - **Give you an idea for a post that can drive engagement on any topic** - ``` {.wrap} - I want to create a post about climate change that can engage my followers. Can you help me with some ideas? - ``` + ```{.wrap} + I want to create a post about climate change that can engage my followers. Can you help me with some ideas? + ``` - **Generate hashtags and captions** - ``` {.wrap} - I need some hashtags and a caption for a picture of a scenic sunset. Can you generate some for me? - ``` + ```{.wrap} + I need some hashtags and a caption for a picture of a scenic sunset. Can you generate some for me? + ``` - **Offer suggestions reply** - ``` {.wrap} - I just received an message asking about the status of a project. Can you suggest a reply for me? - ``` + ```{.wrap} + I just received an message asking about the status of a project. Can you suggest a reply for me? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Reading + - **Summarize long selections of text** - ``` {.wrap} - Can you please summarize this article for me? [your text] - ``` + ```{.wrap} + Can you please summarize this article for me? [your text] + ``` - **Translate foreign languages** - ``` {.wrap} - Can you translate this sentence into Spanish? [your text] - ``` + ```{.wrap} + Can you translate this sentence into Spanish? [your text] + ``` - **Books that are like another book** - ``` {.wrap} - Can you recommend books similar to 'The Hunger Games'? - ``` + ```{.wrap} + Can you recommend books similar to 'The Hunger Games'? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Design + - **Create an AI design prompt for you** - ``` {.wrap} - Can you help me generate a design prompt for a logo for a new sports brand? - ``` + ```{.wrap} + Can you help me generate a design prompt for a logo for a new sports brand? + ``` - **Suggestions on thumbnails for blogs or videos** - ``` {.wrap} - Can you recommend some eye-catching thumbnail designs for my latest YouTube video on healthy eating? - ``` + ```{.wrap} + Can you recommend some eye-catching thumbnail designs for my latest YouTube video on healthy eating? + ``` - **Font pairings** - ``` {.wrap} - Can you suggest a font pairing for a travel blog header design? - ``` + ```{.wrap} + Can you suggest a font pairing for a travel blog header design? + ``` - **Color pairings** - ``` {.wrap} - Can you recommend a color palette for a wedding photography website? - ``` + ```{.wrap} + Can you recommend a color palette for a wedding photography website? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - ### Analyzing Data + - **Pull out numbers from large chunks of text** - ``` {.wrap} - Please extract all the numbers from this text: [your text] - ``` + ```{.wrap} + Please extract all the numbers from this text: [your text] + ``` - **Create tables from the text or data you provide** - ``` {.wrap} - Can you create a table from this data?: [your data] - ``` + ```{.wrap} + Can you create a table from this data?: [your data] + ``` - **Filter data from large lists** - ``` {.wrap} - Please filter this list based on certain criteria: [your list] - ``` + ```{.wrap} + Please filter this list based on certain criteria: [your list] + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Paid Ads + - **Give you ad creative ideas** - ``` {.wrap} - Give me ad creative ideas for a new product launch. - ``` + ```{.wrap} + Give me ad creative ideas for a new product launch. + ``` - **Review the tracking code for errors (tag manager, etc.)** - ``` {.wrap} - Review my tag manager code for errors - ``` + ```{.wrap} + Review my tag manager code for errors + ``` - **Give you ad copy ideas** - ``` {.wrap} - Suggest ad copy for a [travel] company - ``` + ```{.wrap} + Suggest ad copy for a [travel] company + ``` - **Facebook audience suggestions** - ``` {.wrap} - Recommend a Facebook audience for a clothing line ad campaign - ``` + ```{.wrap} + Recommend a Facebook audience for a clothing line ad campaign + ``` - **Create body text, headlines and/or calls to action for your ads** - ``` {.wrap} - Create headlines, body text, and calls to action for a new fitness program ad. - ``` + ```{.wrap} + Create headlines, body text, and calls to action for a new fitness program ad. + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Amazon FBA + - **Write or rewrite your product descriptions** - ``` {.wrap} - Please help me write a new and compelling product description for my latest item. - ``` + ```{.wrap} + Please help me write a new and compelling product description for my latest item. + ``` - **Write or rewrite appeal letters** - ``` {.wrap} - I need help rewriting my appeal letter to make it more persuasive. - ``` + ```{.wrap} + I need help rewriting my appeal letter to make it more persuasive. + ``` - **Write or rewrite supplier outreach emails** - ``` {.wrap} - Can you please help me write an effective email to reach out to potential suppliers? - ``` + ```{.wrap} + Can you please help me write an effective email to reach out to potential suppliers? + ``` - **Help you find items that could be sold as bundles** - ``` {.wrap} - Please suggest some items that would make a good bundle for our customers. - ``` + ```{.wrap} + Please suggest some items that would make a good bundle for our customers. + ``` - **Organize product and pricing data** - ``` {.wrap} - Can you help me organize my product and pricing information into a neat and manageable spreadsheet? - ``` + ```{.wrap} + Can you help me organize my product and pricing information into a neat and manageable spreadsheet? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - - ### Writing/Blogging + - **Create titles for any of your creative writing projects** - ``` {.wrap} - Titles for my short story collection: [your article] - ``` + ```{.wrap} + Titles for my short story collection: [your article] + ``` - **Create outlines** - ``` {.wrap} - Outline for an essay on exercise - ``` + ```{.wrap} + Outline for an essay on exercise + ``` - **Generate content ideas** - ``` {.wrap} - Ideas for a blog on sustainable fashion? - ``` + ```{.wrap} + Ideas for a blog on sustainable fashion? + ``` - **Summarize any text you give it** - ``` {.wrap} - Summarize this article on renewable energy? [your article] - ``` + ```{.wrap} + Summarize this article on renewable energy? [your article] + ``` - **Create entire blog posts** - ``` {.wrap} - Blog post on [financial planning]? - ``` + ```{.wrap} + Blog post on [financial planning]? + ``` - **Expand on a sentence, paragraph, or long text selection** - ``` {.wrap} - Expand this sentence on jazz music? [your sentence] - ``` + ```{.wrap} + Expand this sentence on jazz music? [your sentence] + ``` - **Change the tone of your writing** - ``` {.wrap} - Change tone of this report to conversational? [your report] - ``` + ```{.wrap} + Change tone of this report to conversational? [your report] + ``` - **Proofread or edit your writing** - ``` {.wrap} - Proofread this article? [your article] - ``` + ```{.wrap} + Proofread this article? [your article] + ``` - **Format text with headings (great for blog posts)** - ``` {.wrap} - Format headings for my blog post? [your post] - ``` + ```{.wrap} + Format headings for my blog post? [your post] + ``` - **Check any text for bias** - ``` {.wrap} - Check this article for bias? [your article] - ``` + ```{.wrap} + Check this article for bias? [your article] + ``` - **Detect plagiarism in any text** - ``` {.wrap} - Detect plagiarism in this paper? [your paper] - ``` + ```{.wrap} + Detect plagiarism in this paper? [your paper] + ``` - **Provide you with domain name ideas** - ``` {.wrap} - Domain name for my [gardening blog]? - ``` + ```{.wrap} + Domain name for my [gardening blog]? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - ### Teachers/Course Creators + - **Turn a list of facts or statistics into multiple-choice quizzes** - ``` {.wrap} - Can you turn this list of facts about world history into a multiple-choice quiz? [your list] - ``` + ```{.wrap} + Can you turn this list of facts about world history into a multiple-choice quiz? [your list] + ``` - **Assignment ideas on a specific topic** - ``` {.wrap} - I need some ideas for a history assignment on the American Revolution. Can you suggest some? - ``` + ```{.wrap} + I need some ideas for a history assignment on the American Revolution. Can you suggest some? + ``` - **Create assigned groups from a list of students** - ``` {.wrap} - I have a list of 30 students in my class. Can you divide them into groups of 6 for group projects? - ``` + ```{.wrap} + I have a list of 30 students in my class. Can you divide them into groups of 6 for group projects? + ``` - **Create a curve based on test scores** - ``` {.wrap} - I need to create a grading curve for my class based on their test scores. Can you help? - ``` + ```{.wrap} + I need to create a grading curve for my class based on their test scores. Can you help? + ``` - **Grade an assignment** - ``` {.wrap} - Can you grade this history essay and provide feedback on any areas for improvement? - ``` + ```{.wrap} + Can you grade this history essay and provide feedback on any areas for improvement? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - - ### YouTube + - **Create timestamps from a transcript** - ``` {.wrap} - Can you create timestamps for this transcript of a podcast episode? [your transcript] - ``` + ```{.wrap} + Can you create timestamps for this transcript of a podcast episode? [your transcript] + ``` - **Convert YouTube videos to blog posts with formatting** - ``` {.wrap} - Can you turn this YouTube video about cooking into a blog post with headings and bullet points? [video link] - ``` + ```{.wrap} + Can you turn this YouTube video about cooking into a blog post with headings and bullet points? [video link] + ``` - **Come up with a video outline or script** - ``` {.wrap} - I need an outline for a video about the benefits of meditation. Can you help? - ``` + ```{.wrap} + I need an outline for a video about the benefits of meditation. Can you help? + ``` - **Create a response to a comment** - ``` {.wrap} - Can you write a thoughtful and polite response to this negative comment on my YouTube video? - ``` + ```{.wrap} + Can you write a thoughtful and polite response to this negative comment on my YouTube video? + ``` - **Give you ideas for your thumbnails** - ``` {.wrap} - I need some ideas for a thumbnail for my video on 'DIY home decor'. Can you suggest some? - ``` + ```{.wrap} + I need some ideas for a thumbnail for my video on 'DIY home decor'. Can you suggest some? + ``` - **Analyze your script or transcript and tell you the tone of it** - ``` {.wrap} - Can you analyze this script for a video about environmental issues and tell me what the tone is? [your script] - ``` + ```{.wrap} + Can you analyze this script for a video about environmental issues and tell me what the tone is? [your script] + ``` - **Video ideas on any topic** - ``` {.wrap} - I want to make a series of videos about fashion. Can you suggest some ideas for individual episodes? - ``` + ```{.wrap} + I want to make a series of videos about fashion. Can you suggest some ideas for individual episodes? + ``` + {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - ### Research -- **Help research anything that happened before 2021** - ``` {.wrap} - Explain quantum computing in simple terms - ``` - ``` {.wrap} - Got any creative ideas for a 10 year old’s birthday? - ``` - - ``` {.wrap} - How do I make an HTTP request in JavaScript? - ``` - - ``` {.wrap} - Can you tell me about the events leading up to the American Civil War? - ``` - - ``` {.wrap} - What can you tell me about the invention of the printing press? - ``` - - ``` {.wrap} - Can you research the history of the Olympic Games? - ``` - - ``` {.wrap} - Can you give me information about the French Revolution? - ``` - - ``` {.wrap} - I'm interested in the history of the Byzantine Empire. Can you help me learn more? - ``` - - ``` {.wrap} - etc... - ``` +- **Help research anything that happened before 2021** + ```{.wrap} + Explain quantum computing in simple terms + ``` + ```{.wrap} + Got any creative ideas for a 10 year old’s birthday? + ``` + ```{.wrap} + How do I make an HTTP request in JavaScript? + ``` + ```{.wrap} + Can you tell me about the events leading up to the American Civil War? + ``` + ```{.wrap} + What can you tell me about the invention of the printing press? + ``` + ```{.wrap} + Can you research the history of the Olympic Games? + ``` + ```{.wrap} + Can you give me information about the French Revolution? + ``` + ```{.wrap} + I'm interested in the history of the Byzantine Empire. Can you help me learn more? + ``` + ```{.wrap} + etc... + ``` - ``` {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - ### SEO -- **Generate or find keywords** - ``` {.wrap} - Generate a list of related keywords for [topic] - ``` - - ``` {.wrap} - Identify long-tail keywords for [topic] content optimization - ``` - - ``` {.wrap} - Find top-performing keywords for [topic] - ``` - - ``` {.wrap} - Generate a list of LSI keywords for [topic] - ``` - - ``` {.wrap} - Find keywords with low competition for [topic] - ``` - - ``` {.wrap} - Create a list of synonyms for [topic] keywords - ``` - - ``` {.wrap} - Find the best keywords for [topic] PPC campaigns - ``` - ``` {.wrap} - Find the best keywords for [topic] voice search optimization - ``` - - ``` {.wrap} - List the best keywords for [topic] featured snippets - ``` - - ``` {.wrap} - Find the best keywords for [topic] video optimization - ``` - - ``` {.wrap} - Find the best keywords for [topic] - ``` - - ``` {.wrap} - Find the best keywords for [topic] AMP optimization - ``` - - ``` {.wrap} - Find the best keywords for [topic] social media optimization - ``` - - ``` +- **Generate or find keywords** + ```{.wrap} + Generate a list of related keywords for [topic] + ``` + ```{.wrap} + Identify long-tail keywords for [topic] content optimization + ``` + ```{.wrap} + Find top-performing keywords for [topic] + ``` + ```{.wrap} + Generate a list of LSI keywords for [topic] + ``` + ```{.wrap} + Find keywords with low competition for [topic] + ``` + ```{.wrap} + Create a list of synonyms for [topic] keywords + ``` + ```{.wrap} + Find the best keywords for [topic] PPC campaigns + ``` + ```{.wrap} + Find the best keywords for [topic] voice search optimization + ``` + ```{.wrap} + List the best keywords for [topic] featured snippets + ``` + ```{.wrap} + Find the best keywords for [topic] video optimization + ``` + ```{.wrap} + Find the best keywords for [topic] + ``` + ```{.wrap} + Find the best keywords for [topic] AMP optimization + ``` + ```{.wrap} + Find the best keywords for [topic] social media optimization + ``` - **More ChatGPT prompts about SEO** {.active} - ``` {.wrap} - Create meta descriptions and title tags for [topic] - ``` - - ``` {.wrap} - Find opportunities for internal linking related to [topic] - ``` - - ``` {.wrap} - Generate ideas for blog posts and article topics on [topic] - ``` - - ``` {.wrap} - Research industry-specific terminology for use in [topic] content - ``` - - ``` {.wrap} - Find authoritative websites to acquire backlinks for [topic] content - ``` - - ``` {.wrap} - Create an XML sitemap example related to [topic] - ``` - - ``` {.wrap} - Research the best meta tags for [topic] - ``` - - ``` {.wrap} - Research the best internal linking structure for [topic] content - ``` - - ``` {.wrap} - Generate a list of questions people ask about [topic] - ``` - - ``` {.wrap} - Create a list of the best alt tags for images related to [topic] - ``` + ```{.wrap} + Create meta descriptions and title tags for [topic] + ``` + ```{.wrap} + Find opportunities for internal linking related to [topic] + ``` + ```{.wrap} + Generate ideas for blog posts and article topics on [topic] + ``` + ```{.wrap} + Research industry-specific terminology for use in [topic] content + ``` + ```{.wrap} + Find authoritative websites to acquire backlinks for [topic] content + ``` + ```{.wrap} + Create an XML sitemap example related to [topic] + ``` + ```{.wrap} + Research the best meta tags for [topic] + ``` + ```{.wrap} + Research the best internal linking structure for [topic] content + ``` + ```{.wrap} + Generate a list of questions people ask about [topic] + ``` + ```{.wrap} + Create a list of the best alt tags for images related to [topic] + ``` + ```{.wrap} + Create a list of related subtopics for [topic] + ``` + ```{.wrap} + Find the best time to publish content related to [topic] + ``` + ```{.wrap} + Research the best external linking strategies for [topic] + ``` + ```{.wrap} + Find the most popular tools used for [topic] SEO + ``` + ```{.wrap} + Create a list of potential influencers for [topic] + ``` + ```{.wrap} + Research the best schema markup for [topic] + ``` + ```{.wrap} + Find the best header tags for [topic] content + ``` + ```{.wrap} + Create a list of potential link-building opportunities for [topic] + ``` + ```{.wrap} + Research the best anchor text for [topic] backlinks + ``` + ```{.wrap} + Create a list of potential guest blogging opportunities for [topic] + ``` + ```{.wrap} + Research the best local SEO strategies for [topic] + ``` + ```{.wrap} + Research the best analytics tools for [topic] website performance + ``` + ```{.wrap} + Create a list of potential partnerships for [topic] + ``` + ```{.wrap} + Research the best tactics for [topic] mobile optimization + ``` + ```{.wrap} + Research the best tactics for [topic] e-commerce optimization. Provide keyword clusters. + ``` + ```{.wrap} + Create a list of potential affiliate marketing opportunities for [topic] + ``` + ```{.wrap} + What are the best affiliate marketing websites for [topic] + ``` + ```{.wrap} + What are the best tactics for [topic] international SEO + ``` + ```{.wrap} + Create a list of potential podcast or podcast guest opportunities for [topic] + ``` + ```{.wrap} + Research the best tactics for [topic] Google My Business optimization + ``` + ```{.wrap} + Find popular content topics related to [topic] + ``` + ```{.wrap} + Research the best SEO tactics for [topic] and provide actionable steps + ``` + ```{.wrap} + Create a list of potential video series or webinar ideas related to [topic] + ``` + ```{.wrap} + Research competitor strategies related to [topic] + ``` + ```{.wrap} + Find canonical tag examples related to [topic] + ``` + ```{.wrap} + Create an example keyword list targeting multiple geographic locations for [topic] + ``` + ```{.wrap} + Generate keyword ideas targeting different stages of the customer purchase funnel for [topic] + ``` + ```{.wrap} + Identify industry hashtags related to [topic]. + ``` - ``` {.wrap} - Create a list of related subtopics for [topic] - ``` - - ``` {.wrap} - Find the best time to publish content related to [topic] - ``` - - ``` {.wrap} - Research the best external linking strategies for [topic] - ``` - - ``` {.wrap} - Find the most popular tools used for [topic] SEO - ``` - - ``` {.wrap} - Create a list of potential influencers for [topic] - ``` - - ``` {.wrap} - Research the best schema markup for [topic] - ``` - - ``` {.wrap} - Find the best header tags for [topic] content - ``` - - ``` {.wrap} - Create a list of potential link-building opportunities for [topic] - ``` - - ``` {.wrap} - Research the best anchor text for [topic] backlinks - ``` - - ``` {.wrap} - Create a list of potential guest blogging opportunities for [topic] - ``` - - ``` {.wrap} - Research the best local SEO strategies for [topic] - ``` - - ``` {.wrap} - Research the best analytics tools for [topic] website performance - ``` - - ``` {.wrap} - Create a list of potential partnerships for [topic] - ``` - - ``` {.wrap} - Research the best tactics for [topic] mobile optimization - ``` - - ``` {.wrap} - Research the best tactics for [topic] e-commerce optimization. Provide keyword clusters. - ``` - - ``` {.wrap} - Create a list of potential affiliate marketing opportunities for [topic] - ``` - - ``` {.wrap} - What are the best affiliate marketing websites for [topic] - ``` - - ``` {.wrap} - What are the best tactics for [topic] international SEO - ``` - - ``` {.wrap} - Create a list of potential podcast or podcast guest opportunities for [topic] - ``` - - ``` {.wrap} - Research the best tactics for [topic] Google My Business optimization - ``` - - ``` {.wrap} - Find popular content topics related to [topic] - ``` - - ``` {.wrap} - Research the best SEO tactics for [topic] and provide actionable steps - ``` - - ``` {.wrap} - Create a list of potential video series or webinar ideas related to [topic] - ``` - - ``` {.wrap} - Research competitor strategies related to [topic] - ``` - - ``` {.wrap} - Find canonical tag examples related to [topic] - ``` - - ``` {.wrap} - Create an example keyword list targeting multiple geographic locations for [topic] - ``` - - ``` {.wrap} - Generate keyword ideas targeting different stages of the customer purchase funnel for [topic] - ``` - - ``` {.wrap} - Identify industry hashtags related to [topic]. - ``` {.collapsible} [💡 I Got an IDEA](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md) - - - -Also see --------- +## Also see - [Awesome ChatGPT Prompts](https://github.com/f/awesome-chatgpt-prompts) _(github.com)_ - - ``` -#### Inline styles +#### Inline styles + ```html {.wrap}

    Centered text

    Blue, 18-point text

    ``` - ### Add class ```html
    ``` -Support multiple classes on one element. - +Support multiple classes on one element. ### !important ```css .post-title { - color: blue !important; + color: blue !important; } ``` Overrides all previous styling rules. - ### Selector ```css -h1 { } -#job-title { } -div.hero { } -div > p { } +h1 { +} +#job-title { +} +div.hero { +} +div > p { +} ``` See: [Selectors](#css-selectors) - - ### Text color ```css @@ -89,9 +89,6 @@ color: hsla(30 100% 50% / 0.6); See: [Colors](#css-colors) - - - ### Background ```css @@ -102,75 +99,64 @@ background-image: url("../image.png"); See: [Backgrounds](#css-backgrounds) - - ### Font ```css .page-title { - font-weight: bold; - font-size: 30px; - font-family: "Courier New"; + font-weight: bold; + font-size: 30px; + font-family: "Courier New"; } ``` -See: [Fonts](#css-fonts) - - +See: [Fonts](#css-fonts) ### Position ```css .box { - position: relative; - top: 20px; - left: 20px; + position: relative; + top: 20px; + left: 20px; } ``` See also: [Position](https://learn-the-web.algonquindesign.ca/topics/css-layout-cheat-sheet/) - - ### Animation -```css +```css animation: 300ms linear 0s infinite; animation: bounce 300ms linear infinite; - ``` -See: [Animation](#css-animation) +See: [Animation](#css-animation) ### Comment -```css +```css /* This is a single line comment */ /* This is a multi-line comment */ ``` - ### Flex layout ```css div { - display: flex; - justify-content: center; + display: flex; + justify-content: center; } div { - display: flex; - justify-content: flex-start; + display: flex; + justify-content: flex-start; } ``` See: [Flexbox](#css-flexbox) | [Flex Tricks](#css-flexbox-tricks) - - - ### Grid layout ```css @@ -188,9 +174,8 @@ See: [Flexbox](#css-flexbox) | [Flex Tricks](#css-flexbox-tricks) See: [Grid Layout](#css-grid-layout) - - ### Variable & Counter + ```css counter-set: subsection; counter-increment: subsection; @@ -206,38 +191,45 @@ element { See: [Dynamic content](#css-dynamic-content) +## CSS Selectors -CSS Selectors ------------ - - -### Examples {.row-span-2} +### Examples {.row-span-2} #### Groups Selector + ```css -h1, h2 { - color: red; +h1, +h2 { + color: red; } ``` -#### Chaining Selector + +#### Chaining Selector + ```css h3.section-heading { - color: blue; + color: blue; } ``` + #### Attribute Selector + ```css div[attribute="SomeValue"] { - background-color: red; + background-color: red; } ``` + #### First Child Selector + ```css p:first-child { - font-weight: bold; + font-weight: bold; } ``` + #### No Children Selector + ```css .box:empty { background: lime; @@ -246,42 +238,45 @@ p:first-child { } ``` - ### Basic | | | -|--------------|-----------------------------| +| ------------ | --------------------------- | | `*` | All elements | | `div` | All div tags | | `.classname` | All elements with class | | `#idname` | Element with ID | | `div,p` | All divs and paragraphs | | `#idname *` | All elements inside #idname | -See also: [Type](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) / [Class](https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors) / [ID](https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors) / [Universal](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors) selectors +See also: [Type](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) / +[Class](https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors) / +[ID](https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors) / +[Universal](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors) selectors ### Combinators | Selector | Description | -|-----------------|---------------------------------------| +| --------------- | ------------------------------------- | | `div.classname` | Div with certain classname | | `div#idname` | Div with certain ID | | `div p` | Paragraphs inside divs | | `div > p` | All p tags
    _one level deep in div_ | | `div + p` | P tags immediately after div | | `div ~ p` | P tags preceded by div | -See also: [Adjacent](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator) / [Sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator) / [Child](https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator) selectors - +See also: [Adjacent](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator) / +[Sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator) / +[Child](https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator) selectors ### Attribute selectors | | | -|----------------------|------------------------------------| +| -------------------- | ---------------------------------- | ---------------------------- | | `a[target]` | With a target attribute | | `a[target="_blank"]` | Open in new tab | | `a[href^="/index"]` | Starts with /index | -| `[class|="chair"]` | Starts with chair | +| `[class | ="chair"]` | Starts with chair | | `[class*="chair"]` | containing chair | | `[title~="chair"]` | Contains the word chair | | `a[href$=".doc"]` | Ends with .doc | @@ -289,22 +284,19 @@ See also: [Adjacent](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_s See also: [Attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors) - - - ### User action pseudo classes + | | | -|--------------|-------------------------| +| ------------ | ----------------------- | | `a:link ` | Link in normal state | | `a:active ` | Link in clicked state | | `a:hover ` | Link with mouse over it | | `a:visited ` | Visited link | - - ### Pseudo classes + | | | -|-------------------|-----------------------------------------------------------------------------------------| +| ----------------- | --------------------------------------------------------------------------------------- | | `p::after` | Add content after p | | `p::before` | Add content before p | | `p::first-letter` | First letter in p | @@ -317,11 +309,10 @@ See also: [Attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS | `p:lang(en)` | P with en language attribute | | `:not(span)` | Element that's not a span | - - ### Input pseudo classes + | | | -|-----------------------|---------------------------------------------------------------------------------------------| +| --------------------- | ------------------------------------------------------------------------------------------- | | `input:checked` | Checked inputs | | `input:disabled` | Disabled inputs | | `input:enabled` | Enabled inputs | @@ -336,11 +327,10 @@ See also: [Attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS | `input:read-write` | No readonly attribute | | `input:indeterminate` | With [indeterminate](https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate) state | - - ### Structural pseudo classes + | | | -|-------------------------|----------------------------| +| ----------------------- | -------------------------- | | `p:first-child` | First child | | `p:last-child` | Last child | | `p:first-of-type` | First of some type | @@ -353,27 +343,22 @@ See also: [Attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS | `p:only-of-type` | Unique of its parent | | `p:only-child` | Only child of its parent | - - -CSS Fonts ------- - +## CSS Fonts ### Properties {.row-span-3} | Property | Description | -|-------------------|-----------------| +| ----------------- | --------------- | | `font-family:` | \ | | `font-size:` | \ | | `letter-spacing:` | \ | | `line-height:` | \ | -| `font-weight:` | \ / bold / normal | -| `font-style:` | italic / normal | -| `text-decoration:` | underline / none | +| `font-weight:` | \ / bold / normal | | `font-style:` | italic / normal | | `text-decoration:` | underline / +none | + +| `text-align:` | left / right
    center / justify | | `text-transform:` | capitalize / uppercase / lowercase | -| `text-align:` | left / right
    center / justify | -| `text-transform:` | capitalize / uppercase / lowercase | {.left-text} See also: [Font](https://developer.mozilla.org/en-US/docs/Web/CSS/font) @@ -381,7 +366,7 @@ See also: [Font](https://developer.mozilla.org/en-US/docs/Web/CSS/font) ### Shorthand {.secondary .col-span-2} | | style | weight | size (required) | | line-height | family | -|---------|----------|--------|-----------------|-----|-------------|-------------------| +| ------- | -------- | ------ | --------------- | --- | ----------- | ----------------- | | `font:` | `italic` | `400` | `14px` | `/` | `1.5` | `sans-serif` | | | style | weight | size (required) | | line-height | family (required) | @@ -393,11 +378,9 @@ font-size: 12pt; letter-spacing: 0.02em; ``` - ### Case {.row-span-2} ```css - /* Hello */ text-transform: capitalize; @@ -408,22 +391,16 @@ text-transform: uppercase; text-transform: lowercase; ``` - ### @font-face ```css @font-face { - font-family: 'Glegoo'; - src: url('../Glegoo.woff'); + font-family: "Glegoo"; + src: url("../Glegoo.woff"); } ``` - - - -CSS Colors ------------- - +## CSS Colors ### Named color @@ -434,7 +411,6 @@ color: tan; color: rebeccapurple; ``` - ### Hexadecimal color ```css @@ -444,8 +420,6 @@ color: #090a; color: #009900aa; ``` - - ### rgb() Colors ```css @@ -453,11 +427,10 @@ color: rgb(34, 12, 64, 0.6); color: rgba(34, 12, 64, 0.6); color: rgb(34 12 64 / 0.6); color: rgba(34 12 64 / 0.3); -color: rgb(34.0 12 64 / 60%); +color: rgb(34 12 64 / 60%); color: rgba(34.6 12 64 / 30%); ``` - ### HSL Colors ```css @@ -465,11 +438,12 @@ color: hsl(30, 100%, 50%, 0.6); color: hsla(30, 100%, 50%, 0.6); color: hsl(30 100% 50% / 0.6); color: hsla(30 100% 50% / 0.6); -color: hsl(30.0 100% 50% / 60%); +color: hsl(30 100% 50% / 60%); color: hsla(30.2 100% 50% / 60%); ``` ### Other + ```css color: inherit; color: initial; @@ -479,34 +453,27 @@ color: transparent; color: currentcolor; /* keyword */ ``` - - - - - - -CSS Backgrounds ----------- +## CSS Backgrounds ### Properties {.row-span-2} -| Property | Description | -|---------------|---------------| -| `background:` | _(Shorthand)_ | - -| `background-color:` | See: [Colors](#css-colors) | -| `background-image:` | url(...) | -| `background-position:` | left/center/right
    top/center/bottom | -| `background-size:` | cover X Y | +| Property | Description | +| ------------------------ | ------------------------------------------ | +| `background:` | _(Shorthand)_ | +| `background-color:` | See: [Colors](#css-colors) | +| `background-image:` | url(...) | +| `background-position:` | left/center/right
    top/center/bottom | +| `background-size:` | cover X Y | | `background-clip:` | border-box
    padding-box
    content-box | | `background-repeat:` | no-repeat
    repeat-x
    repeat-y | -| `background-attachment:` | scroll/fixed/local | +| `background-attachment:` | scroll/fixed/local | + {.left-text} ### Shorthand {.secondary .col-span-2} | | color | image | positionX | positionY | | size | repeat | attachment | -|---------------|--------|--------------|-----------|-----------|-----|----------------|-------------|------------| +| ------------- | ------ | ------------ | --------- | --------- | --- | -------------- | ----------- | ---------- | | `background:` | `#ff0` | `url(a.jpg)` | `left` | `top` | `/` | `100px` `auto` | `no-repeat` | `fixed;` | | `background:` | `#abc` | `url(b.png)` | `center` | `center` | `/` | `cover` | `repeat-x` | `local;` | | | color | image | posX | posY | | size | repeat | attach.. | @@ -516,100 +483,95 @@ CSS Backgrounds ```css {.wrap} background: url(img_man.jpg) no-repeat center; -background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat; +background: + url(img_flwr.gif) right bottom no-repeat, + url(paper.gif) left top repeat; -background: rgb(2,0,36); -background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(13,232,230,1) 35%, rgba(0,212,255,1) 100%); +background: rgb(2, 0, 36); +background: linear-gradient(90deg, rgba(2, 0, 36, 1) 0%, rgba(13, 232, 230, 1) 35%, rgba(0, 212, 255, 1) 100%); ``` - - - -CSS The Box Model ------------- - +## CSS The Box Model ### Maximums/Minimums ```css .column { - max-width: 200px; - width: 500px; + max-width: 200px; + width: 500px; } ``` -See also: [max-width](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width) / [min-width](https://developer.mozilla.org/en-US/docs/Web/CSS/min-width) / [max-height](https://developer.mozilla.org/en-US/docs/Web/CSS/max-height) / [min-height](https://developer.mozilla.org/en-US/docs/Web/CSS/min-height) - +See also: [max-width](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width) / +[min-width](https://developer.mozilla.org/en-US/docs/Web/CSS/min-width) / +[max-height](https://developer.mozilla.org/en-US/docs/Web/CSS/max-height) / +[min-height](https://developer.mozilla.org/en-US/docs/Web/CSS/min-height) ### Margin / Padding ```css .block-one { - margin: 20px; - padding: 10px; + margin: 20px; + padding: 10px; } ``` -See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) / [Padding](https://developer.mozilla.org/en-US/docs/Web/CSS/padding) +See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) / +[Padding](https://developer.mozilla.org/en-US/docs/Web/CSS/padding) ### Box-sizing ```css .container { - box-sizing: border-box; + box-sizing: border-box; } ``` -See also: [Box-sizing](https://developer.mozilla.org/en-US/docs/Web/CSS/Box-sizing) - +See also: [Box-sizing](https://developer.mozilla.org/en-US/docs/Web/CSS/Box-sizing) -### Visibility +### Visibility ```css .invisible-elements { - visibility: hidden; + visibility: hidden; } ``` -See also: [Visibility](https://developer.mozilla.org/en-US/docs/Web/CSS/visibility) +See also: [Visibility](https://developer.mozilla.org/en-US/docs/Web/CSS/visibility) ### Auto keyword ```css div { - margin: auto; + margin: auto; } ``` -See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) +See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) ### Overflow ```css .small-block { - overflow: scroll; + overflow: scroll; } ``` -See also: [Overflow](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow) +See also: [Overflow](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow) - - -CSS Animation {.cols-5} ---------- - +## CSS Animation {.cols-5} ### Shorthand {.col-span-5 .secondary} | | name | duration | timing-function | delay | count | direction | fill-mode | play-state | -|--------------|----------|----------|-----------------|---------|------------|---------------------|-----------|------------| +| ------------ | -------- | -------- | --------------- | ------- | ---------- | ------------------- | --------- | ---------- | | `animation:` | `bounce` | `300ms` | `linear` | `100ms` | `infinite` | `alternate-reverse` | `both` | `reverse` | | | name | duration | timing-function | delay | count | direction | fill-mode | play-state | ### Properties {.row-span-2 .col-span-2} | Property | Value | -|------------------------------|--------------------------------------------------------| +| ---------------------------- | ------------------------------------------------------ | | `animation:` | _(shorthand)_ | | `animation-name:` | \ | | `animation-duration:` | \