Skip to content

Instantly share code, notes, and snippets.

View xziyue's full-sized avatar

Z. "Alan" Xiang xziyue

View GitHub Profile
@xziyue
xziyue / html2latex_gui.py
Last active October 10, 2019 00:39
Converting colored terminal output (in HTML format) to LaTeX
from html.parser import HTMLParser
from colour import Color
from pylatex.utils import escape_latex, NoEscape
import re
import wx
def get_default_entity():
return {
'tag': None,
@xziyue
xziyue / latex_to_md.py
Created October 10, 2019 00:42
LaTeX to Jekyll markdown
from TexSoup.data import TexNode, TexEnv, TexCmd
from TexSoup import TexSoup
latexMathEnvs1 = ['align', 'equation', 'gather']
latexMathEnvs2 = [x + '*' for x in latexMathEnvs1]
latexMathEnvs = ['\\begin{%s}' % x for x in (latexMathEnvs1 + latexMathEnvs2)]
latexMathEnvs_set = set(latexMathEnvs)
def get_node_text(node):
return ''.join(list(node.text))
@xziyue
xziyue / rolling_circle.py
Last active November 3, 2019 19:25
Simulating a small circle rolling on another big circle
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.animation import FuncAnimation
tessellatePieces = 300
assert tessellatePieces % 2 == 0
bigCircleAngles = np.linspace(0.0, 2.0 * np.pi, tessellatePieces, endpoint=False)
smallCircleAngles = np.linspace(0.0, 2.0 * np.pi, tessellatePieces // 2, endpoint=False)
@xziyue
xziyue / jekyll-index-term.rb
Last active December 11, 2019 00:16
A simple Ruby program to support indexing in Jekyll
require 'digest/sha1'
module Jekyll
module JekyllIndexTermFilter
# html display name, index name
def getnames(matchedString)
stripped = matchedString.strip()
matchResult = stripped.match(/(?<!\\)@/)
@xziyue
xziyue / latex2html_gui.py
Created December 11, 2019 17:28
Converting colored LaTeX listing to HTML
from TexSoup.data import TexNode, TexEnv, TexCmd, RArg
from TexSoup import TexSoup
import re
import copy
import html as htmlib
class Tex2HTML:
def __init__(self):
@xziyue
xziyue / jekyll-index-term-new.rb
Last active July 5, 2020 15:08
A Simple Ruby Program For Jekyll Indexing
require 'digest/sha1'
module Jekyll
module JekyllIndexTermFilter
@@show_warning = true
@@tag_re = /(%+)({)(.*?)(}%)/
@@tag_alias_re = /(?<!\\)@/
@@TagInfo = Struct.new(:type, :raw, :segments)
\section{Math}
\makeatletter
\begin{longtable}{|l|l|l|l|l|l|l|}
\hline
Deadline & No. & Lorem Ipsum & Dolor Sit & Amet Consectetuer & Adipiscing Elit & Aenean Commodo \\ \hline
\def\@linkcolor{blue}\hyperref[subsec-2020-07-15]{2020-07-15} & \def\@linkcolor{green}\hyperref[subsubsec-2020-07-15-basic]{1} & \def\@linkcolor{red}\hyperref[figure-2020-07-15-basic-lorem-ipsum]{4.43} & \def\@linkcolor{red}\hyperref[figure-2020-07-15-basic-dolor-sit
@xziyue
xziyue / lua_latex_parser.lua
Created August 11, 2020 00:02
Simple LaTeX parser in Lua
inspect = require "inspect.lua"
function raise_error(...)
local arg = {...}
local description = "a luaprogtable package exception occured:\n" .. table.concat(arg, ", ")
tex.error(description)
error(description)
end
local _spacer = lpeg.S(" \t\f\v\n\r")
@xziyue
xziyue / emoji_write.py
Last active September 28, 2020 00:46
"typing" with emojis in discord
import os
import sys
import numpy as np
from PIL import Image, ImageFont, ImageDraw, ImageEnhance
import matplotlib.pyplot as plt
# parameters
font_size = 12
threshold = 0.9
emoji = ':a_:'
@xziyue
xziyue / latex3-maze-game.tex
Created October 18, 2020 14:01
LaTeX3 maze PDF game
\documentclass{article}
\usepackage[paperwidth=8cm, paperheight=8cm, margin=2mm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage{expl3}
\usepackage{enumitem}
\usepackage{hyperref}
\pagestyle{empty}