mirror of
https://github.com/keanuplayz/dotfiles.git
synced 2024-08-15 02:33:12 +00:00
Compare commits
No commits in common. "fbe6b174bda849a40eab5e7f4cbee60ad8498cb6" and "73140035eee833956cdcb0ab1578f7ae739eb30e" have entirely different histories.
fbe6b174bd
...
73140035ee
5 changed files with 1 additions and 328 deletions
|
@ -59,9 +59,8 @@
|
||||||
go
|
go
|
||||||
jdk
|
jdk
|
||||||
nil
|
nil
|
||||||
nodejs_20
|
nodejs-19_x
|
||||||
ruby_3_1
|
ruby_3_1
|
||||||
sbcl
|
|
||||||
shards
|
shards
|
||||||
zig
|
zig
|
||||||
|
|
||||||
|
@ -105,7 +104,6 @@
|
||||||
|
|
||||||
casks = [
|
casks = [
|
||||||
"1password"
|
"1password"
|
||||||
"1password-cli"
|
|
||||||
"alt-tab"
|
"alt-tab"
|
||||||
"amethyst"
|
"amethyst"
|
||||||
"android-studio"
|
"android-studio"
|
||||||
|
@ -115,7 +113,6 @@
|
||||||
"discord"
|
"discord"
|
||||||
"discord-ptb"
|
"discord-ptb"
|
||||||
"docker"
|
"docker"
|
||||||
"emacs"
|
|
||||||
"fig"
|
"fig"
|
||||||
"firefox"
|
"firefox"
|
||||||
"google-chrome"
|
"google-chrome"
|
||||||
|
|
|
@ -39,7 +39,6 @@ let s:plug = funcref('dotfiles#plugman#register')
|
||||||
call s:plug('luke-gru/vim-riml')
|
call s:plug('luke-gru/vim-riml')
|
||||||
call s:plug('guns/vim-sexp')
|
call s:plug('guns/vim-sexp')
|
||||||
call s:plug('vim-scripts/newlisp')
|
call s:plug('vim-scripts/newlisp')
|
||||||
call s:plug('m-pilia/vim-mediawiki')
|
|
||||||
call s:plug('noahfrederick/vim-laravel') " dependencies {{{
|
call s:plug('noahfrederick/vim-laravel') " dependencies {{{
|
||||||
call s:plug('noahfrederick/vim-composer')
|
call s:plug('noahfrederick/vim-composer')
|
||||||
call s:plug('tpope/vim-projectionist')
|
call s:plug('tpope/vim-projectionist')
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
let g:vim_mediawiki_site = 'wiki.c2dl.info'
|
|
||||||
if has('macunix')
|
|
||||||
let g:vim_mediawiki_browser_command = 'open \r'
|
|
||||||
else
|
|
||||||
let g:vim_mediawiki_browser_command = 'xdg-open \r'
|
|
||||||
endif
|
|
||||||
let g:vim_mediawiki_completion_prefix_length = 5
|
|
||||||
let g:vim_mediawiki_completion_limit = 5
|
|
||||||
let g:vim_mediawiki_completion_namespaces = {
|
|
||||||
\ 'default': {
|
|
||||||
\ '[[': 0,
|
|
||||||
\ '{{': 10,
|
|
||||||
\ '[[File:': 6,
|
|
||||||
\ '[[Category:': 14,
|
|
||||||
\ },
|
|
||||||
\ 'wiki.c2dl.info': {
|
|
||||||
\ '[[': 0,
|
|
||||||
\ '{{': 10,
|
|
||||||
\ '[[File:': 6,
|
|
||||||
\ '[[Category:': 14,
|
|
||||||
\ },
|
|
||||||
\ }
|
|
|
@ -1,300 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
# This script was vendored from <https://github.com/dmitmel/dotfiles/blob/d5b147564de69bb334995ce03374b9b8417cd12f/scripts/mediawiki-preview>
|
|
||||||
# A couple fixes were applied to the original.
|
|
||||||
|
|
||||||
# This script is based on <https://github.com/m-pilia/vim-mediawiki/blob/266d7ab9c7d4d7924e16f527c109c65851da0164/scripts/preview.py>
|
|
||||||
|
|
||||||
# Useful resources:
|
|
||||||
# <https://www.mediawiki.org/wiki/API:Parsing_wikitext#parse>
|
|
||||||
# <https://www.mediawiki.org/wiki/API:Styling_content>
|
|
||||||
# <https://www.mediawiki.org/wiki/ResourceLoader/Developing_with_ResourceLoader>
|
|
||||||
# <https://github.com/wikimedia/mediawiki>
|
|
||||||
# <https://github.com/wikimedia/Vector>
|
|
||||||
# and, most importantly: `view-source:` for any MediaWiki page
|
|
||||||
|
|
||||||
# Skin-specific notes:
|
|
||||||
|
|
||||||
# citizen
|
|
||||||
#
|
|
||||||
# - Fonts are not loaded due to CSP. One possible mitigation is running a
|
|
||||||
# local proxy and setting `Access-Control-Allow-Origin` to `*`. An example
|
|
||||||
# nginx configuration:
|
|
||||||
#
|
|
||||||
# server {
|
|
||||||
# listen 127.155.44.48:80;
|
|
||||||
# server_name 127.155.44.48; # This address was chosen randomly
|
|
||||||
# location / {
|
|
||||||
# proxy_pass https://wiki.c2dl.info; # Replace with your wiki
|
|
||||||
# add_header Access-Control-Allow-Origin *;
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# By modifying `/etc/hosts` this can be made into its own "domain":
|
|
||||||
#
|
|
||||||
# 127.155.44.48 local.wiki.c2dl.info
|
|
||||||
#
|
|
||||||
# - The module `skins.citizen.scripts.toc` is broken because to find and
|
|
||||||
# highlight the current section header in the table of contents it uses a
|
|
||||||
# CSS selector incompatible with the URL rewriting applied to anchor links.
|
|
||||||
#
|
|
||||||
# - The module `skins.citizen.scripts` references search inputs which aren't
|
|
||||||
# created by this script.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import html
|
|
||||||
import json
|
|
||||||
import re
|
|
||||||
from typing import Dict, List, cast
|
|
||||||
from urllib.parse import urlencode
|
|
||||||
|
|
||||||
import mwclient
|
|
||||||
|
|
||||||
LANG = "en"
|
|
||||||
LANG_TEXT_DIRECTION = "ltr"
|
|
||||||
|
|
||||||
MODULES_POST_LOAD = {
|
|
||||||
"vector": [
|
|
||||||
"site",
|
|
||||||
# "mediawiki.page.startup", removed as per https://gerrit.wikimedia.org/g/mediawiki/core/+/274c4232b9877d20801b3b7ff4225aa60cd4754e
|
|
||||||
"mediawiki.page.ready",
|
|
||||||
"mediawiki.toc",
|
|
||||||
# "mediawiki.searchSuggest",
|
|
||||||
# "mediawiki.page.watch.ajax",
|
|
||||||
"skins.vector.es6",
|
|
||||||
"skins.vector.js",
|
|
||||||
"skins.vector.icons.js"
|
|
||||||
],
|
|
||||||
"citizen": [
|
|
||||||
# "site",
|
|
||||||
# "mediawiki.page.startup",
|
|
||||||
# "mediawiki.page.ready",
|
|
||||||
# "mediawiki.toc",
|
|
||||||
# "skins.citizen.scripts.toc",
|
|
||||||
# "skins.citizen.scripts.search",
|
|
||||||
# "skins.citizen.styles.search",
|
|
||||||
# "skins.citizen.icons.search",
|
|
||||||
# "skins.citizen.scripts",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
MODULES_POST_LOAD_BLOCKED = {
|
|
||||||
"citizen": [
|
|
||||||
"skins.citizen.scripts.toc",
|
|
||||||
"skins.citizen.scripts.search",
|
|
||||||
"skins.citizen.styles.search",
|
|
||||||
"skins.citizen.icons.search",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
MODULES_PRELOAD_STYLES = {
|
|
||||||
"vector": [
|
|
||||||
"mediawiki.ui.button",
|
|
||||||
"mediawiki.ui.icon",
|
|
||||||
"mediawiki.legacy.commonPrint",
|
|
||||||
"mediawiki.legacy.shared",
|
|
||||||
"mediawiki.skinning.interface",
|
|
||||||
"mediawiki.toc.styles",
|
|
||||||
"skins.vector.styles",
|
|
||||||
"skins.vector.icons",
|
|
||||||
"site.styles",
|
|
||||||
],
|
|
||||||
"citizen": [
|
|
||||||
# "mediawiki.legacy.commonPrint",
|
|
||||||
# "mediawiki.legacy.shared",
|
|
||||||
"mediawiki.skinning.content.externallinks",
|
|
||||||
# "mediawiki.toc.styles",
|
|
||||||
"skins.citizen.icons",
|
|
||||||
"skins.citizen.styles",
|
|
||||||
"skins.citizen.icons.ca",
|
|
||||||
"skins.citizen.icons.es",
|
|
||||||
"skins.citizen.icons.footer",
|
|
||||||
"skins.citizen.icons.n",
|
|
||||||
"skins.citizen.icons.pt",
|
|
||||||
"skins.citizen.icons.t",
|
|
||||||
"skins.citizen.styles.fonts",
|
|
||||||
"skins.citizen.styles.toc",
|
|
||||||
"site.styles",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
MODULES_PRELOAD_SCRIPTS = {
|
|
||||||
"vector": ["startup"],
|
|
||||||
"citizen": ["startup"],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# ported from <https://github.com/wikimedia/mediawiki/blob/c15ded31a6ca79fa65c00d151a7220632ad90b6d/includes/parser/Sanitizer.php#L1205-L1222>
|
|
||||||
def escape_css_class(class_str: str) -> str:
|
|
||||||
class_str = re.sub(
|
|
||||||
r"""(^[0-9\-])|[\x00-\x20!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~]|\xA0""",
|
|
||||||
"_",
|
|
||||||
class_str,
|
|
||||||
)
|
|
||||||
class_str = re.sub(r"_+", "_", class_str)
|
|
||||||
class_str = class_str.rstrip("_")
|
|
||||||
return class_str
|
|
||||||
|
|
||||||
|
|
||||||
def json_dumps_compact(data: object) -> str:
|
|
||||||
return json.dumps(data, indent=None, separators=(",", ":"), ensure_ascii=False)
|
|
||||||
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("--site", type=str, required=True)
|
|
||||||
parser.add_argument("--scheme", type=str, default="https")
|
|
||||||
parser.add_argument("--skin", type=str, default="vector")
|
|
||||||
parser.add_argument(
|
|
||||||
"--input",
|
|
||||||
type=str,
|
|
||||||
required=True,
|
|
||||||
)
|
|
||||||
parser.add_argument("--title", type=str)
|
|
||||||
parser.add_argument("--output", type=str, required=True)
|
|
||||||
cli_args = parser.parse_args()
|
|
||||||
|
|
||||||
site = mwclient.Site(cli_args.site, scheme=cli_args.scheme)
|
|
||||||
|
|
||||||
|
|
||||||
def get_load_script_url(**args: object) -> str:
|
|
||||||
return "{path}load{ext}?{args}".format(
|
|
||||||
path=site.path,
|
|
||||||
ext=site.ext,
|
|
||||||
args=urlencode({
|
|
||||||
"lang": LANG,
|
|
||||||
"skin": cli_args.skin,
|
|
||||||
**args
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
with open(cli_args.input, "r") as f:
|
|
||||||
wikitext_str = f.read()
|
|
||||||
|
|
||||||
result = site.post(
|
|
||||||
"parse",
|
|
||||||
title=cli_args.title,
|
|
||||||
text=wikitext_str,
|
|
||||||
contentmodel="wikitext",
|
|
||||||
prop="text|indicators|displaytitle|modules|jsconfigvars|categorieshtml",
|
|
||||||
preview=True,
|
|
||||||
pst=True, # pre-save transforms
|
|
||||||
sectionpreview=False,
|
|
||||||
disableeditsection=True, # disables "[edit]" links next to headers
|
|
||||||
useskin=cli_args.skin,
|
|
||||||
uselang=LANG,
|
|
||||||
)["parse"]
|
|
||||||
|
|
||||||
|
|
||||||
def get_modules(
|
|
||||||
page_modules: List[str],
|
|
||||||
added_modules_dict: Dict[str, List[str]],
|
|
||||||
blocked_modules_dict: Dict[str, List[str]] = {}
|
|
||||||
) -> List[str]:
|
|
||||||
modules = page_modules + added_modules_dict[cli_args.skin]
|
|
||||||
for blocked_module in blocked_modules_dict.get(cli_args.skin, []):
|
|
||||||
try:
|
|
||||||
modules.remove(blocked_module)
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
return modules
|
|
||||||
|
|
||||||
|
|
||||||
rendered_html = """\
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html class="client-nojs" lang="{lang}" dir="{text_dir}">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
<base href="{base_url}"/>
|
|
||||||
<script>document.documentElement.className="client-js";RLSTATE={page_modules_state_json};RLCONF={page_config_json};RLPAGEMODULES={page_modules_json};</script>
|
|
||||||
<script>(RLQ=window.RLQ||[]).push(function(){{mw.loader.implement("user.tokens",function(){{mw.user.tokens.set({{"editToken":"+\\\\","patrolToken":"+\\\\","watchToken":"+\\\\","csrfToken":"+\\\\"}});}});}});</script>
|
|
||||||
<link rel="stylesheet" href="{style_url}"/>
|
|
||||||
<script async="" src="{script_url}"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="mediawiki {text_dir} sitedir-{text_dir} mw-hide-empty-elt page-{page_class} skin-{skin} action-view">
|
|
||||||
<div id="mw-page-base" class="noprint"></div>
|
|
||||||
<div id="mw-head-base" class="noprint"></div>
|
|
||||||
|
|
||||||
<div id="content" class="mw-body" role="main">
|
|
||||||
<a id="top"></a>
|
|
||||||
|
|
||||||
<div class="mw-indicators mw-body-content">
|
|
||||||
{indicators_html}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h1 id="firstHeading" class="firstHeading" lang="{lang}">{title}</h1>
|
|
||||||
|
|
||||||
<div id="bodyContent" class="mw-body-content {skin}-body">
|
|
||||||
<div id="contentSub"></div>
|
|
||||||
<div id="jump-to-nav"></div>
|
|
||||||
|
|
||||||
<div id="mw-content-text" lang="{lang}" dir="{text_dir}" class="mw-content-{text_dir}">
|
|
||||||
{content_html}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{categories_html}
|
|
||||||
<div class="visualClear"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="footer" role="contentinfo"></div>
|
|
||||||
|
|
||||||
<script>(function(){{
|
|
||||||
var anchorHrefPrefix = window.location.href.replace(/#.+$/, "")
|
|
||||||
|
|
||||||
var links = document.getElementsByTagName("a")
|
|
||||||
for (var i = 0, len = links.length; i < len; i++) {{
|
|
||||||
var link = links[i]
|
|
||||||
var href = link.getAttribute("href")
|
|
||||||
if (typeof href === "string" && href[0] === "#") {{
|
|
||||||
link.setAttribute("href", anchorHrefPrefix + href)
|
|
||||||
}}
|
|
||||||
}}
|
|
||||||
}}())</script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
""".format(
|
|
||||||
lang=html.escape(LANG),
|
|
||||||
text_dir=html.escape(LANG_TEXT_DIRECTION),
|
|
||||||
base_url=html.escape("{}://{}".format(site.scheme, site.host)),
|
|
||||||
page_modules_state_json=json_dumps_compact({
|
|
||||||
"noscript": "ready",
|
|
||||||
"user.options": "ready",
|
|
||||||
"user.tokens": "loading",
|
|
||||||
**{name: "ready" for name in MODULES_PRELOAD_STYLES[cli_args.skin]},
|
|
||||||
}),
|
|
||||||
page_config_json=json_dumps_compact(result["jsconfigvars"]),
|
|
||||||
page_modules_json=json_dumps_compact(
|
|
||||||
get_modules(result["modules"], MODULES_POST_LOAD, MODULES_POST_LOAD_BLOCKED)
|
|
||||||
),
|
|
||||||
style_url=html.escape(
|
|
||||||
get_load_script_url(
|
|
||||||
only="styles",
|
|
||||||
modules="|".join(get_modules(result["modulestyles"], MODULES_PRELOAD_STYLES)),
|
|
||||||
)
|
|
||||||
),
|
|
||||||
script_url=html.escape(
|
|
||||||
get_load_script_url(
|
|
||||||
only="scripts",
|
|
||||||
modules="|".join(get_modules(result["modulescripts"], MODULES_PRELOAD_SCRIPTS)),
|
|
||||||
raw="1",
|
|
||||||
)
|
|
||||||
),
|
|
||||||
skin=html.escape(cli_args.skin),
|
|
||||||
page_class=html.escape(escape_css_class(result["displaytitle"])),
|
|
||||||
title=html.escape(cast(str, result["displaytitle"])),
|
|
||||||
indicators_html="\n".join([
|
|
||||||
'<div id="mw-indicator-{}" class="mw-indicator">{}</div>'.format(
|
|
||||||
indicator["name"], indicator["*"]
|
|
||||||
) for indicator in result["indicators"]
|
|
||||||
]),
|
|
||||||
content_html=result["text"]["*"],
|
|
||||||
categories_html=result["categorieshtml"]["*"],
|
|
||||||
)
|
|
||||||
|
|
||||||
with open(cli_args.output, "w") as f:
|
|
||||||
f.write(rendered_html)
|
|
|
@ -1,6 +1,5 @@
|
||||||
alias welcome="welcome --extra-logos-dir $K_ZSH_DOTFILES/../script-resources/welcome/logos"
|
alias welcome="welcome --extra-logos-dir $K_ZSH_DOTFILES/../script-resources/welcome/logos"
|
||||||
alias markdown2htmldoc="$K_ZSH_DOTFILES/../scripts/markdown2htmldoc"
|
alias markdown2htmldoc="$K_ZSH_DOTFILES/../scripts/markdown2htmldoc"
|
||||||
alias mediawiki-preview="$K_ZSH_DOTFILES/../scripts/mediawiki-preview"
|
|
||||||
|
|
||||||
if (( _is_macos )); then
|
if (( _is_macos )); then
|
||||||
if command_exists exa; then
|
if command_exists exa; then
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue