mirror of
https://github.com/avinal/avinal.github.io.git
synced 2026-07-04 07:40:09 +05:30
+1
-5
@@ -131,11 +131,7 @@
|
|||||||
"href": "https://avinal.space"
|
"href": "https://avinal.space"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"script": [
|
"script": []
|
||||||
{
|
|
||||||
"defer src": "https://cdn.jsdelivr.net/npm/marked/marked.min.js"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"router": {
|
"router": {
|
||||||
"useHashRouting": false
|
"useHashRouting": false
|
||||||
|
|||||||
Generated
+704
-443
File diff suppressed because it is too large
Load Diff
+4
-1
@@ -5,6 +5,9 @@
|
|||||||
"tailwindcss": "^3.2.4"
|
"tailwindcss": "^3.2.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"npm": "^9.3.1"
|
"marked": "^9.0.3",
|
||||||
|
"marked-highlight": "^2.0.6",
|
||||||
|
"npm": "^9.3.1",
|
||||||
|
"prismjs": "^1.29.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,74 +1,40 @@
|
|||||||
import "./prism.js";
|
import { marked } from "marked";
|
||||||
|
import { markedHighlight } from "marked-highlight";
|
||||||
|
import Prism from "prismjs";
|
||||||
|
|
||||||
|
import "./Prism";
|
||||||
|
|
||||||
customElements.define(
|
customElements.define(
|
||||||
"rendered-md",
|
"rendered-md",
|
||||||
class extends HTMLElement {
|
class extends HTMLElement {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
this.lead = 0; // Moved lead here
|
||||||
}
|
}
|
||||||
|
|
||||||
connectedCallback() {
|
connectedCallback() {
|
||||||
this.runMarked();
|
this.runMarked();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateMeta(title, description) {
|
updateMeta(title, description) {
|
||||||
document
|
const metaInfo = {
|
||||||
.querySelector('meta[name="title"]')
|
'meta[name="title"]': `${title} | Avinal Kumar | Personal Website`,
|
||||||
.setAttribute("content", title + " | Avinal Kumar | Personal Website");
|
'meta[name="description"]': description,
|
||||||
document
|
'meta[property="og:title"]': `${title} | Avinal Kumar | Personal Website`,
|
||||||
.querySelector('meta[name="description"]')
|
'meta[property="og:description"]': description,
|
||||||
.setAttribute("content", description);
|
'meta[property="og:url"]': window.location,
|
||||||
document
|
'meta[property="twitter:title"]': `${title} | Avinal Kumar | Personal Website`,
|
||||||
.querySelector('meta[property="og:title"]')
|
'meta[property="twitter:description"]': description,
|
||||||
.setAttribute("content", title + " | Avinal Kumar | Personal Website");
|
'meta[property="twitter:url"]': window.location,
|
||||||
document
|
|
||||||
.querySelector('meta[property="og:description"]')
|
|
||||||
.setAttribute("content", description);
|
|
||||||
document
|
|
||||||
.querySelector('meta[property="og:url"]')
|
|
||||||
.setAttribute("content", window.location);
|
|
||||||
document
|
|
||||||
.querySelector('meta[property="twitter:title"]')
|
|
||||||
.setAttribute("content", title + " | Avinal Kumar | Personal Website");
|
|
||||||
document
|
|
||||||
.querySelector('meta[property="twitter:description"]')
|
|
||||||
.setAttribute("content", description);
|
|
||||||
document
|
|
||||||
.querySelector('meta[property="twitter:url"]')
|
|
||||||
.setAttribute("content", window.location);
|
|
||||||
}
|
|
||||||
|
|
||||||
addLineNumber() {
|
|
||||||
var env = {
|
|
||||||
container: document,
|
|
||||||
selector:
|
|
||||||
'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
env.elements = Array.prototype.slice.apply(
|
for (const [selector, content] of Object.entries(metaInfo)) {
|
||||||
env.container.querySelectorAll(env.selector)
|
const element = document.querySelector(selector);
|
||||||
);
|
if (element) {
|
||||||
|
element.setAttribute("content", content);
|
||||||
for (var i = 0, element; (element = env.elements[i++]); ) {
|
} else {
|
||||||
highlightElement(element);
|
console.warn(`Element ${selector} not found`);
|
||||||
}
|
|
||||||
function highlightElement(element) {
|
|
||||||
var language = Prism.util.getLanguage(element);
|
|
||||||
if (language == "bash") {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
var grammar = Prism.languages[language];
|
|
||||||
|
|
||||||
var parent = element.parentElement;
|
|
||||||
if (parent && parent.nodeName.toLowerCase() === "pre") {
|
|
||||||
Prism.util.setLanguage(parent, language);
|
|
||||||
}
|
|
||||||
var code = element.textContent;
|
|
||||||
var env = {
|
|
||||||
element: element,
|
|
||||||
language: language,
|
|
||||||
grammar: grammar,
|
|
||||||
code: code,
|
|
||||||
};
|
|
||||||
Prism.hooks.run("complete", env);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,14 +63,16 @@ customElements.define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
runMarked() {
|
runMarked() {
|
||||||
const renderer = new marked.Renderer();
|
const {
|
||||||
const data = this.getAttribute("markdowndata");
|
markdowndata: data,
|
||||||
const fragment = this.getAttribute("fragment");
|
fragment,
|
||||||
const title = this.getAttribute("title");
|
title,
|
||||||
const description = this.getAttribute("description");
|
description,
|
||||||
this.updateMeta(title, description);
|
} = this.attributes;
|
||||||
|
this.updateMeta(title.value, description.value);
|
||||||
|
|
||||||
|
const renderer = new marked.Renderer();
|
||||||
|
|
||||||
var lead = 0;
|
|
||||||
renderer.heading = (text, level) => {
|
renderer.heading = (text, level) => {
|
||||||
const escapedText = text
|
const escapedText = text
|
||||||
.trim()
|
.trim()
|
||||||
@@ -120,11 +88,10 @@ customElements.define(
|
|||||||
};
|
};
|
||||||
|
|
||||||
renderer.paragraph = (text) => {
|
renderer.paragraph = (text) => {
|
||||||
lead++;
|
this.lead++;
|
||||||
if (lead === 1) {
|
return this.lead === 1
|
||||||
return `<p class="lead">${text}</p>`;
|
? `<p class="lead">${text}</p>`
|
||||||
}
|
: `<p>${text}</p>`;
|
||||||
return `<p>${text}</p>`;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
renderer.image = (href, title, text) => {
|
renderer.image = (href, title, text) => {
|
||||||
@@ -147,26 +114,26 @@ customElements.define(
|
|||||||
|
|
||||||
marked.setOptions({
|
marked.setOptions({
|
||||||
renderer: renderer,
|
renderer: renderer,
|
||||||
highlight: function (code, lang) {
|
|
||||||
const grammer = Prism.languages[lang];
|
|
||||||
if (!grammer) {
|
|
||||||
console.warn(`Unable to find prism highlight for '${lang}'`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return Prism.highlight(code, grammer, lang);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.innerHTML = marked.parse(data);
|
marked.use(
|
||||||
console.log("Markdown rendering complete!");
|
markedHighlight({
|
||||||
this.addLineNumber();
|
highlight(code, lang) {
|
||||||
|
const grammer = Prism.languages[lang];
|
||||||
|
if (!grammer) {
|
||||||
|
console.warn(`Unable to find prism highlight for '${lang}'`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return Prism.highlight(code, grammer, lang);
|
||||||
|
},
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
this.innerHTML = marked(data.value);
|
||||||
this.addComments();
|
this.addComments();
|
||||||
|
|
||||||
if (fragment) {
|
if (fragment && fragment.value) {
|
||||||
console.log(
|
window.location = `#${fragment.value}`;
|
||||||
`Fragment found, scrolling to: ${window.location}#${fragment}`
|
|
||||||
);
|
|
||||||
window.location = "#" + fragment;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
// Load Plugins
|
||||||
|
|
||||||
|
// import 'prismjs/plugins/toolbar/prism-toolbar';
|
||||||
|
// import "prismjs/plugins/line-numbers/prism-line-numbers";
|
||||||
|
// import "prismjs/plugins/line-numbers/prism-line-numbers.css";
|
||||||
|
// import "prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard";
|
||||||
|
|
||||||
|
// load languages
|
||||||
|
import "prismjs/components/prism-bash";
|
||||||
|
import "prismjs/components/prism-markup";
|
||||||
|
import "prismjs/components/prism-css";
|
||||||
|
import "prismjs/components/prism-clike";
|
||||||
|
import "prismjs/components/prism-javascript";
|
||||||
|
import "prismjs/components/prism-bash";
|
||||||
|
import "prismjs/components/prism-basic";
|
||||||
|
import "prismjs/components/prism-brainfuck";
|
||||||
|
import "prismjs/components/prism-c";
|
||||||
|
import "prismjs/components/prism-cpp";
|
||||||
|
import "prismjs/components/prism-cmake";
|
||||||
|
import "prismjs/components/prism-diff";
|
||||||
|
import "prismjs/components/prism-docker";
|
||||||
|
import "prismjs/components/prism-elm";
|
||||||
|
import "prismjs/components/prism-git";
|
||||||
|
import "prismjs/components/prism-go";
|
||||||
|
import "prismjs/components/prism-go-module";
|
||||||
|
import "prismjs/components/prism-graphql";
|
||||||
|
import "prismjs/components/prism-haskell";
|
||||||
|
import "prismjs/components/prism-http";
|
||||||
|
import "prismjs/components/prism-java";
|
||||||
|
import "prismjs/components/prism-json";
|
||||||
|
import "prismjs/components/prism-json5";
|
||||||
|
import "prismjs/components/prism-jsonp";
|
||||||
|
import "prismjs/components/prism-makefile";
|
||||||
|
import "prismjs/components/prism-markdown";
|
||||||
|
import "prismjs/components/prism-matlab";
|
||||||
|
import "prismjs/components/prism-mermaid";
|
||||||
|
import "prismjs/components/prism-powershell";
|
||||||
|
import "prismjs/components/prism-protobuf";
|
||||||
|
import "prismjs/components/prism-python";
|
||||||
|
import "prismjs/components/prism-rest";
|
||||||
|
import "prismjs/components/prism-rust";
|
||||||
|
import "prismjs/components/prism-shell-session";
|
||||||
|
import "prismjs/components/prism-sql";
|
||||||
|
import "prismjs/components/prism-toml";
|
||||||
|
import "prismjs/components/prism-typescript";
|
||||||
|
import "prismjs/components/prism-vim";
|
||||||
|
import "prismjs/components/prism-wasm";
|
||||||
|
import "prismjs/components/prism-yaml";
|
||||||
File diff suppressed because one or more lines are too long
@@ -87,7 +87,7 @@ sudo logid -d
|
|||||||
|
|
||||||
You can get output like this:
|
You can get output like this:
|
||||||
|
|
||||||
```log
|
```bash
|
||||||
[INFO] Device found: MX Master 3S on /dev/hidraw4:255
|
[INFO] Device found: MX Master 3S on /dev/hidraw4:255
|
||||||
[DEBUG] /dev/hidraw4:255 remappable buttons:
|
[DEBUG] /dev/hidraw4:255 remappable buttons:
|
||||||
[DEBUG] CID | reprog? | fn key? | mouse key? | gesture support?
|
[DEBUG] CID | reprog? | fn key? | mouse key? | gesture support?
|
||||||
|
|||||||
Reference in New Issue
Block a user