-
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
latex-like completions (Julia) (#13)
* add julia (latex-like) completions * support for multiple indices and exponents * add julia.html
- Loading branch information
Showing
5 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset=utf-8><title>Julia</title> | ||
<style>kbd{border: 1px solid buttonshadow;border-radius:.5ex;padding:0 .25ex;margin:0 .2ex;background:buttonface;}</style> | ||
</head> | ||
<body> | ||
<article> | ||
<h1><a href="https://julialang.org/">Julia</a> language bar and character compositions <a href="."><button>More…</button></a></h1> | ||
<p>This provides two ways to easily enter Julia characters into pretty much any input field on any webpage:</p> | ||
<ol> | ||
<li>Enter a combo sequence and hit Tab, e.g. <kbd>\</kbd><kbd>p</kbd><kbd>i</kbd><kbd>Tab</kbd> gives <code>π</code>. See the <a href="https://docs.julialang.org/en/v1/manual/unicode-input/">complete list of completions</a>.</li> | ||
<li>Click on symbols in the language bar.</li> | ||
</ol> | ||
<p>Try it here: <input autofocus/></p> | ||
<p>Hover over a symbol in the language bar for combo sequences.</p> | ||
<h2>Installation</h2> | ||
<h3>Desktop browser</h3> | ||
<ol> | ||
<li>Drag this link to your bookmarks bar: <a href='javascript:(d=>{let e=d.createElement("script");e.src="https://abrudz.github.io/lb/julia.js";d.body.appendChild(e)})(document)'>Julia</a></li> | ||
</ol> | ||
<h3>Mobile browser</h3> | ||
<ol> | ||
<li>Add a bookmark for this page.</li> | ||
<li>Edit the bookmark's target URL address to <code>javascript:(d=>{let%20e=d.createElement("script");e.src="https://abrudz.github.io/lb/julia.js";d.body.appendChild(e)})(document)</code></li> | ||
</ol> | ||
<h3>Webpage</h3> | ||
<ol> | ||
<li>Include this HTML in your page: <code><script src="https://abrudz.github.io/lb/julia.js"></script></code></li> | ||
</ol> | ||
<h2>Activation</h2> | ||
<ol> | ||
<li>Navigate to the web page where you want to enter Julia characters.</li> | ||
<li>Click on the <em>Julia</em> bookmark. The language bar should appear at the web page's top.</li> | ||
</ol> | ||
</article> | ||
<script src="https://abrudz.github.io/lb/julia.js"></script> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
using REPL | ||
|
||
lbs = String[] | ||
tc = Tuple{String,String}[] | ||
for (a,b) in REPL.REPLCompletions.latex_symbols | ||
push!(tc, (a[2:end],b)) | ||
bs=Symbol(b) | ||
if isdefined(Main,bs) | ||
be=string(eval(bs)) | ||
push!(lbs, b^2*"\n$be"^(be≠b)) | ||
end | ||
end | ||
|
||
lbs = sort(unique(lbs)) | ||
tc = sort(tc, by=x->(length(x[1]),x)) | ||
tcf = first.(tc) | ||
tcc = join(tcf) |> unique |> sort |> join |> x->replace(x, ["\$()*+-./?[\\]^{|}"...]=>x->'\\'*x) |> x-> "/\\\\([$x]+)\$/" | ||
tcu = filter(i->!isnothing(match(r"^\^.$",i)), tcf) .|> last |> sort |> join |> x->replace(x, ["\$()*+-./?[\\]^{|}"...]=>x->'\\'*x) |> x-> "/\\\\\\^([$x]+)\$/" | ||
tcl = filter(i->!isnothing(match(r"^_.$",i)), tcf) .|> last |> sort |> join |> x->replace(x, ["\$()*+-./?[\\]^{|}"...]=>x->'\\'*x) |> x-> "/\\\\_([$x]+)\$/" | ||
|
||
slbs = '['*join(repr.(lbs),',')*']' | ||
stc = '{'*join(tc.|>x->join(repr.(x),':'),',')*'}' | ||
|
||
out = """ | ||
, lbs = $slbs | ||
, tc = $stc | ||
, tcc = $tcc | ||
, tcl = $tcl | ||
, tcu = $tcu | ||
""" | ||
try | ||
clipboard(out) | ||
catch | ||
print(out) | ||
end |