correct links
This commit is contained in:
1 parent
34a178a958
commit
39d6b337e6
10 files changed
+59
-25
No files matched your search
+1
-1
@@ -10,7 +10,7 @@ async function gAnalytics(id: string) {
|
||||
s.setAttribute('data-timestamp', new Date().toISOString());
|
||||
(d.head || d.body).appendChild(s);
|
||||
|
||||
(window as any).dataLayer = dataLayer || [];
|
||||
(window as any).dataLayer = (window as any).dataLayer || [];
|
||||
function gtag(...x: any[]){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', id);
|
||||
|
||||
+3
-20
@@ -1,30 +1,13 @@
|
||||
import showdown from "showdown";
|
||||
import h from "hyperscript";
|
||||
import { slideExt, simpleTableExt } from "./showdown-ext";
|
||||
|
||||
export class Markdown {
|
||||
constructor() {
|
||||
this.converter = new showdown.Converter({
|
||||
parseImgDimensions: true
|
||||
parseImgDimensions: true,
|
||||
extensions: [simpleTableExt, slideExt]
|
||||
});
|
||||
this.converter.setFlavor("github");
|
||||
this.converter.addExtension({
|
||||
type: "lang",
|
||||
filter(text) {
|
||||
const rowRegex = /(?:(?:^|\r?\n)(?:\| )?(?:(?:.* \| )+.+)*(?:.* \| )+.+(?: \|)?(?:$|\r?\n))+/m;
|
||||
|
||||
text = text.replace(rowRegex, (p0) => {
|
||||
return h("table.table", p0.trim().split("\n").map((pi) => {
|
||||
pi = pi.trim().replace(/^|/, "").replace(/|$/, "")
|
||||
|
||||
return h("tr", pi.split(" | ").map((x) => x.trim()).map((qi) => {
|
||||
return h("td", qi);
|
||||
}))
|
||||
})).outerHTML;
|
||||
});
|
||||
|
||||
return text;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
md2html(md) {
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
import { createIndentedFilter } from "indented-filter";
|
||||
import h from "hyperscript";
|
||||
|
||||
export const simpleTableExt = {
|
||||
type: "lang",
|
||||
filter(text) {
|
||||
const rowRegex = /(?:(?:^|\r?\n)(?:\| )?(?:(?:.* \| )+.+)*(?:.* \| )+.+(?: \|)?(?:$|\r?\n))+/m;
|
||||
|
||||
text = text.replace(rowRegex, (p0) => {
|
||||
return h("table.table", p0.trim().split("\n").map((pi) => {
|
||||
pi = pi.trim().replace(/^|/, "").replace(/|$/, "")
|
||||
|
||||
return h("tr", pi.split(" | ").map((x) => x.trim()).map((qi) => {
|
||||
return h("td", qi);
|
||||
}))
|
||||
})).outerHTML;
|
||||
});
|
||||
|
||||
return text;
|
||||
}
|
||||
};
|
||||
|
||||
export const slideExt = {
|
||||
type: "lang",
|
||||
filter: createIndentedFilter("^^slide", (s, attrs) => {
|
||||
const a = document.createElement("a");
|
||||
const url = new URL("https://reveal-md.herokuapp.com/");
|
||||
let q = "";
|
||||
if (attrs.github) {
|
||||
q = `https://raw.githubusercontent.com/${attrs.github}/master/${s}`;
|
||||
a.innerText = `github::${attrs.github}::${s}`;
|
||||
} else {
|
||||
q = s;
|
||||
a.innerText = s;
|
||||
}
|
||||
|
||||
url.searchParams.append("q", q);
|
||||
a.href = url.href;
|
||||
a.alt = s;
|
||||
a.target = "_blank";
|
||||
|
||||
return a.outerHTML;
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user