mirror of
https://github.com/fmhy/edit.git
synced 2025-07-31 00:02:17 +10:00
hello world, again
This commit is contained in:
commit
f479740dd1
133 changed files with 32895 additions and 0 deletions
29
docs/.vitepress/markdown/base64.ts
Normal file
29
docs/.vitepress/markdown/base64.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import type { MarkdownRenderer } from 'vitepress'
|
||||
|
||||
// FIXME: tasky: possibly write less horror jank?
|
||||
export function base64DecodePlugin(md: MarkdownRenderer) {
|
||||
const decode = (str: string): string =>
|
||||
Buffer.from(str, 'base64').toString('binary')
|
||||
// Save the original rule for backticks
|
||||
const defaultRender =
|
||||
md.renderer.rules.code_inline ||
|
||||
function (tokens, idx, options, _env, self) {
|
||||
return self.renderToken(tokens, idx, options)
|
||||
}
|
||||
|
||||
md.renderer.rules.code_inline = function (tokens, idx, options, env, self) {
|
||||
// @ts-expect-error shut the fuck up already I HATE THIS
|
||||
if (
|
||||
!env.frontmatter.title ||
|
||||
(env.frontmatter.title && !env.frontmatter.title === 'base64')
|
||||
) {
|
||||
return defaultRender(tokens, idx, options, env, self)
|
||||
}
|
||||
const token = tokens[idx]
|
||||
const content = token.content
|
||||
|
||||
return `<button class='base64' onclick="(function(btn){ const codeEl = btn.querySelector('code'); navigator.clipboard.writeText('${decode(
|
||||
content
|
||||
)}').then(() => { const originalText = codeEl.textContent; codeEl.textContent = 'Copied'; setTimeout(() => codeEl.textContent = originalText, 3000); }).catch(console.error); })(this)"><code>${content}</code></button>`
|
||||
}
|
||||
}
|
42
docs/.vitepress/markdown/emoji.ts
Normal file
42
docs/.vitepress/markdown/emoji.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
import { icons as twemoji } from '@iconify-json/twemoji'
|
||||
import type { MarkdownRenderer } from 'vitepress'
|
||||
|
||||
export const defs = {
|
||||
...Object.fromEntries(
|
||||
Object.entries(twemoji.icons).map(([key]) => {
|
||||
return [key, '']
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
export function emojiRender(md: MarkdownRenderer) {
|
||||
md.renderer.rules.emoji = (tokens, idx) => {
|
||||
if (tokens[idx].markup.startsWith('star')) {
|
||||
return `<span class="i-twemoji-${tokens[idx].markup} starred"></span>`
|
||||
}
|
||||
return `<span class="i-twemoji-${tokens[idx].markup}"></span>`
|
||||
}
|
||||
}
|
||||
|
||||
export function movePlugin(
|
||||
plugins: { name: string }[],
|
||||
pluginAName: string,
|
||||
order: 'before' | 'after',
|
||||
pluginBName: string
|
||||
) {
|
||||
const pluginBIndex = plugins.findIndex((p) => p.name === pluginBName)
|
||||
if (pluginBIndex === -1) return
|
||||
|
||||
const pluginAIndex = plugins.findIndex((p) => p.name === pluginAName)
|
||||
if (pluginAIndex === -1) return
|
||||
|
||||
if (order === 'before' && pluginAIndex > pluginBIndex) {
|
||||
const pluginA = plugins.splice(pluginAIndex, 1)[0]
|
||||
plugins.splice(pluginBIndex, 0, pluginA)
|
||||
}
|
||||
|
||||
if (order === 'after' && pluginAIndex < pluginBIndex) {
|
||||
const pluginA = plugins.splice(pluginAIndex, 1)[0]
|
||||
plugins.splice(pluginBIndex, 0, pluginA)
|
||||
}
|
||||
}
|
17
docs/.vitepress/markdown/toggleStarred.ts
Normal file
17
docs/.vitepress/markdown/toggleStarred.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
import type { MarkdownRenderer } from 'vitepress'
|
||||
|
||||
const excluded = ['Beginners Guide']
|
||||
|
||||
export function toggleStarredPlugin(md: MarkdownRenderer) {
|
||||
md.renderer.rules.list_item_open = (tokens, index, options, env, self) => {
|
||||
const contentToken = tokens[index + 2]
|
||||
if (
|
||||
!excluded.includes(env.frontmatter.title) &&
|
||||
contentToken &&
|
||||
contentToken.content.startsWith(':star:')
|
||||
) {
|
||||
return `<li class="starred">`
|
||||
}
|
||||
return self.renderToken(tokens, index, options)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue