I take a lot of notes at work and email them to myself and then like ... don't read them or do anything with them. They usually just sit in my 'Work notes' folder in my email. But now... You can see them too!!!!
At some point I might even automate this, but for now I'm doing it manually. Enjoy!
03SEP2020
02SEP2020
01SEP2020
31AUG2020
EMACS
- rainbow-mode
- dimmer.el
- expand-region
- crux -- at least look at these
- nerdcommenter
- aggressive indent
- format-all-mode
- autosave to actual files
- folding a la vim (?)
- dumb jumper (not so dumb)
- company quickhelp
(M-x package-install RET try RET first!!)
21AUG2020
18AUG2020
17AUG2020
14AUG2020
HUMMUS
from kumquat on #meta @ tilde.chat
1. remove the skins from the chickpeas 2. use white vinegar and not lemon juice 3. use the aquafaba to thin out the hummus, rather than water
a lot of times I don't want to drop $$$ on marcona almonds, so I use just sliced almonds or another nut I have hanging out in the freezer. I've even used hazelnut meal when I didn't seem to have enough almonds ~~ kumquat
12AUG2020
Still mostly emacs ...
But other stuff too ...
And old computer searching ...
10AUG2020
06AUG2020
- cool guy with cool emacs config
- podcast about emacs
- mac-centric config of emacs (based on rakhim's)
- rakhim's dotfiles
05AUG2020
possibly far too incisive, really. kind of stings a bit. "I for one welcome our Robot overlords"
04AUG2020
-- email kensanata re: toki.transjovian.org
01AUG2020
- https://github.com/amno1/dotfiles/blob/master/.emacs.d/lisp/init.org
- https://www.emacswiki.org/emacs/ElDoc
- https://github.com/debanjum/company-ledger
- https://github.com/bbatsov/crux
literate configs https://www.wisdomandwonder.com/wp-content/uploads/2014/03/C3F.html https://pages.sachachua.com/.emacs.d/Sacha.html
29JUL2020
They're full of beans
~ crossword clue and hilarious phrase
EMACS
- https://so.nwalsh.com/2020/02/29/dot-emacs
- starter kit
- esp. look at appearance and custom file
- some performance advantages of lexical scope
28JUL2020
Bicycles and UNIX are the two best inventions I've interacted with. Well, they and Emacs.
Great example of the Web Gone Too Far: Maison Neue
BIKES - ELECTRIC STYLE
- RadRunner 1
- Super73 Z1
- Ride1Up 500 Series -- best in commuter ?
- Swagtron EB12 700C -- *too* hipster?
- Propella V3.4
EMACS
EVIL https://github.com/emacs-evil/evil-collection https://github.com/emacs-evil/evil
27JUL2020
Apropos of nothing, my Enter key on this keyboard is sticky... (as in it stays down, not that it's covered in anything)
24JUL2020
-- the book is available from the library: Safari
23JUL2020
22JUL2020
21JUL2020
16JUL2020
BREADPUNK
- host CMU Typewriter on breadpunk
- it apparently 502's with some things (no good)
- get this coded up at some point -- so they don't have to email
- sloum's gemini thing -- for easy gemini authoring
- bread-recipe easiness
- maybe put a poll on the motd? for people to input what they'd like to see?
- be more present in IRC
- post more recipes for BREAD
- B R E A D
ETC
- find "Tsuchi" (Earth) online -- film by Tomu Uchida
15JUL2020
14JUL2020
seinen or josei - anime targeted toward an older (and hopefully less horny) audience or something here
READ:
On Basilisk Station - David Weber Chomsky PDF: "Strategies of Manipulation" pizza recipe, found by easter egg in a personal website (well, watch actually, whatever)
REPLY:
- bookmarking, a possible flow for that
- INBOX ? etc?
- in general great stuff about the Small/Smol Internet (smolnet?)
- also referenced in solderpunk's gemlog
APPLY
SUBMIT
10JUL2020
-> write up a spec proposal for :^) the sarcasm line in text/gemini
09JUL2020
- Really good song heard on NPR
- check them out
- The decommoditization of protocols
- freelance @ 368 ??
- refer for other business people
- baigan bhurta recipe
06JUL2020
openssl s_client -showcerts -servername your.host.com -connect host:port | openssl x509 –noout
openssl req -new -subj "/C=CA/CN=*.makeworld.gq" -addext "subjectAltName = DNS:makeworld.gq, DNS:*.makeworld.gq" -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 1825 -nodes -out cert.pem -keyout key.pem
- https://michaelheap.com/self-signed-ssl-client-certificates/
- https://portal.mozz.us/gemini/tilde.black/users/fox/journal/20200706-gemini-on-tor.gmi
- https://community.torproject.org/onion-services/overview/
- gopher://gopher.black/1/phlog/20180427-gopher-black-on-tor-part-1
- gopher://gopher.black/1/phlog/20180428-gopher-black-on-tor-part-2
03JUL2020
- https://summit.tildex.com/
- https://alexschroeder.ch/wiki/2020-07-02_An_overview_over_my_Gemini_projects
JOBS https://scribe.breezy.hr/p/740a946753cf-scribe-ghostwriter
01JUL2020
- https://alexschroeder.ch/wiki/2020-06-04_Gemini_Upload
- https://alexschroeder.ch/wiki/Baschdels_spin_on_Gemini_uploading
- https://alexschroeder.ch/wiki/2020-06-04_Gemini_Upload
WFH
- https://intern.textbroker.com/us/author-signup.php
- https://www.oatmealstudios.com/html/pages/write-guide.php
- https://ttec.taleo.net/careersection/10020/jobdetail.ftl?job=02OJ5&lang=en
- https://www.scribendi.com/jobs.en.html#freelance
- https://www.sps.com/greeting-card-guidelines-submissions
- https://www.gramlee.com/jobs.html
- https://www.kirkusreviews.com/about/careers/
- https://boards.greenhouse.io/bevy/jobs/4755656002
OTHER https://www.vanityfair.com/hollywood/2020/06/ziwe-fumudoh-baited-interview-alison-roman JOIN THIS
29JUN2020
- make list of already-posted-about businesses - think of more emails to send - bbb of baton rouge? - john smith? - Kelly? - why not big names, like Caine's, etc? - bicycle shops - facebook post ? - polish up question list
26JUN2020
mmmm depends. one's i've played: Dark & Shattered Lands, Forgotten Kingdoms, Shadowgate, Genesis, BatMUD, Lost Souls, Discworld MUD
out of those, Forgotten Kingdoms is the most well-made, but also probably the least-populated
Discworld is fun, Genesis has a fantastic newbie area, DSL and Shadowgate have a lot of people but tend to be hack-and-slash MUDs
BatMUD has a *ton* of people but is very hack-and-slash
24JUNE2020
- https://news.ycombinator.com/item?id=17787816
- http://rickcarlino.com/2018/07/11/fabulous-text-only-websites-2018-edition-html.html
- https://news.ycombinator.com/item?id=13337948
- https://sheep.horse/
- https://brokensandals.net/
- <- GUIDE="" FOR="" HTML/CSS->
- https://idle.nprescott.com/2020/why-bother-with-markdown.html
- https://every.sdf.org/
- https://copypastelist.com/
- https://engineeringblogs.xyz/
- <- GOPHER->
ALSO: WRITE A GETTING STARTED ON GEMINI GUIDE
SSS N: [redacted]
attached: the beginnings of a pager in bash (no scroll up??) cf. https://github.com/dylanaraps/fff/blob/master/fff https://github.com/dylanaraps/pure-bash-bible https://github.com/dylanaraps/writing-a-tui-in-bash#line-wrapping
23JUN2020
[2020-06-23T21:59:21.348Z]
22JUN2020
attached: art thing and another art thing attached: bollux with cert validation (no TOFU, no config) attached: gmi/txt art (with png sources) attached: gemlog post
GEMINI TEST CASES gemini://egsam.pitr.ca/
18JUN2020
- - ASCII-ify these suckas
- - m4
- - github `main' branch
- - another gemini browser
- - UTF-8 test
- - gempaper.strangled.net has a v1 cert, needs v3 (?)
CSS FOR .GALLERY - ACDW.NET
.gallery {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.gallery > figure {
border: 1px dotted; /* or whatever */
margin: 0;
padding: 1ch;
text-align: center;
}
17JUN2020
15JUN2020
- attached: five answers to five questions at
12JUN2020
makeworld: saves hash of raw cert and expiry date for TOFU
xq: store pubkey?
--> PUBKEY // PRIVKEY -> CERT == EXPIRATION DATE SIGNED WITH PUBKEY it's like "i'm guaranteeing you for 3 months that i am in control of this server"
openssl x509 -pubkey -dates -wahtver
17:33
17:37
11JUN2020
bollux: - => blastoff "${BOLLUX_URL%/*}"
10JUN2020
USE URL-2.SH OMG
url.sh - split and join url. using 'eval'. is it secure? I'm not sure. it's attached.
another thing is attached too -- but whatever. why am I doing this again???? What I NEED to do is just parse the URL every time into a new array. I can't really pass arrays around in bash - it's not going to be super efficient but if I cared about that I wouldn't be programming it in BASH.
DECLARE -N OMG OMG OMG (bash 4.3)[[[[[[[[[[[[[[[[[[ URL-2.SH ]]]]]]]]]]]]]]]]]]]]
A variable can be assigned the nameref attribute using the -n option to the declare or local builtin commands (see Bash Builtins) to create a nameref, or a reference to another variable. This allows variables to be manipulated indirectly. Whenever the nameref variable is referenced, assigned to, unset, or has its attributes modified (other than using or changing the nameref attribute itself), the operation is actually performed on the variable specified by the nameref variable's value. A nameref is commonly used within shell functions to refer to a variable whose name is passed as an argument to the function. For instance, if a variable name is passed to a shell function as its first argument, running declare -n ref=$1
inside the function creates a nameref variable ref whose value is the variable name passed as the first argument. References and assignments to ref, and changes to its attributes, are treated as references, assignments, and attribute modifications to the variable whose name was passed as $1.
If the control variable in a for loop has the nameref attribute, the list of words can be a list of shell variables, and a name reference will be established for each word in the list, in turn, when the loop is executed. Array variables cannot be given the nameref attribute. However, nameref variables can reference array variables and subscripted array variables. Namerefs can be unset using the -n option to the unset builtin (see Bourne Shell Builtins). Otherwise, if unset is executed with the name of a nameref variable as an argument, the variable referenced by the nameref variable will be unset.
09JUN2020
something like this
openssl s_client ... |
openssl x509 -noout -SHA256 -subject -dates -fingerprint |
while IFS='=' read var val; do
printf "%s='%s'\n" "$var" "$val"
done
-- but what to do with the output? Save the whole thing, then...what? Source it? Hm....
icon adapted from https://commons.wikimedia.org/wiki/File:H%C3%A9raldique_meuble_Cygne_passant.svg install icon into $(PREFIX)/share/icons/hicolor/scalable/apps/ -- possibly convert to 48x48 png to $(PREFIX)/share/icons/hicolor/48x48/apps/
BOLLUX.DESKTOP -- install to $(PREFIX)/share/applications/
[Desktop Entry]
Name=bollux
GenericName=bollux
Comment=Terminal gemini client
Categories=Network;
Icon=bollux
Exec=bollux %u
Terminal=true
Type=Application
MimeType=x-scheme-handler/gemini;x-scheme-handler/gopher;
after installed: -- update-desktop-database $(PREFIX)/share/applications
TOFU -- SET UMASK TO 077 -- LOOK AT https://tildegit.org/solderpunk/AV-98/src/branch/master/av98.py#L290
see earlier email for actual code. this is going to be process
1. get domain's SSL fingerprint
2. do we already have the domain's fingerprint? -->
- text files in $XDG_DATA_HOME/bollux/certs/
KEYBINDS
'-' run blastoff "${BOLLUX_URL%%/*}" # error handling - if path is '/' do nothing
OTHER NOTES STUFF
- to read header: `read -n 1027` (only read code + ' ' + 1024 bytes) - how to see if header is too long??? - redirects: keep previous in an array and don't keep redirecting if we've been there before - ask before cross-domain or cross-protocol redirect - REALLY SHOULD JUST PASS AROUND URL AS ARRAY
GEMINI ====== COPROC
#!/usr/bin/env bash
url="$1"
serv="${url#*//}"
serv="${serv%%/*}"
echo "URL='$url' SERV='$serv'"
coproc openssl s_client -servername "$serv" -connect "$serv:1965" -ign_eof -crlf
openssl x509 -fingerprint -noout <&"${COPROC[0]}" >fingerprint
printf "FINGERPRINT: %s\n" "$(cut -d'=' -f2 <ingerprint)"
printf "SENDING REQUEST: $url\n"
echo "$url" >&"${COPROC[1]}"
printf "RESPONSE: \n"
document=false
while read -r; do
hre='^[1-6][0-9] .+$'
if [[ "$REPLY" =~ $hre ]]; then
document=true
fi
! $document && continue
printf '%s\n' "$REPLY"
done <&"${COPROC[0]}"
Attaching other options
04JUN2020
improvements to bollux : ATTACHED. DROP THIS INTO THE REPO !!!! -- should probably redo download() -- handle about://history, about://bookmarks
- in blastoff, how to test URL != *://* better?
- for proto:no-slash/urls
- probably should just parse the url
-- ^^ in parse_url:
- add a field `name[url]` or something
- can use logic and replace logic from ll. 226-233
- OR have a 'build_url' function that does that stuff...
- because if items are changed, `name[url]` won't be. -- percent-encoding -- in parse_url:
arr="$1"
printf -v "$arr[scheme]" "$scheme" # apparently works
--
isdefined() => isset / setq
isempty() => isnull / nullq / nulq?
--
??
--
TOFU
28MAY2020
TEXT FOLDING
- https://github.com/dylanaraps/pure-bash-bible
- https://gist.github.com/venator85/d8552019a20aa947f59fabc735093a91
attached: stylus styles, deploy.sh for circumlunar, transform_url.sh and normalize_url.sh, Phase 1 PDF (mangled filename) hypermodern python where have all the gophers gone
EMAIL: ckaiser@floodgap.com re forking OverbiteWX for geminispace
27MAY2020
- search!
- https://special.fish/
- - remove top x results
- https://hotlinewebring.club/
- https://webring.xxiivv.com/
- https://weirdwidewebring.net/
- https://omglord.com/books
BOLLUX
SEE TRANSFORM_URI.SH MUFUCKA
26MAY2020
BOLLUX
fix the thing and then post about it on
- gemini mailing list (just make a new thread),
- mastodon,
- https://proxy.vulpes.one/gemini/geddit.pitr.ca/s/17 geddit
change install to 0755, not 0775
VENV ALIASES
I do something similar, although I use venv to create a new virtual environment and update pip and setuptools:
alias venv='python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools -q'
And then ae and de to activate/deactivate a venv:
alias ae='source venv/bin/activate'
alias de='deactivate'
22MAY2020
JOBs
- - maybe ? look @ reqs
- - actually pays slightly less than current job, at least at the low end -- growth?
- - qualifications?
- -- ACTUALLY ****
also check (attached) bollux.
21MAY2020
EL -- attache's
20MAY2020
GEMINI
GAWK
- manual
- good to see for stuff
- for reference
- https://news.ycombinator.com/item?id=23240800
- https://www.gnu.org/software/gawk/manual/gawkinet/
EPIGRAPH LINK: https://www.nytimes.com/interactive/2020/05/19/magazine/covid-quarantine-recovery.html
BECAUSE WE ARE ALSO EATING BROWNIES
09MAR2020
attache'd (also ttrss opml)
06MAR2020
ALSO: attached notes on hell
04MAR2020
Attached: expati, a function to parse @( || ) strings inline. Syntax will look like this:
Here is a line that has a @(strong||strong) thing.
Here is one with a @(reference|ref) to something else.
Note the difference: '||' is expanded to '| el' (actually with quotes), and '|' is not -- because usually you don't want to add 'el' to the beginning of the command.
Another thought: change the '@@
@@ref: el a href=example.com
- https://www.manmadediy.com/4223-15-essential-bike-tools-every-cyclist-should-own
- http://www.davesbicyclerepair.com/
- https://bicyclingbr.blogspot.com/
03MAR2020
function mkcd() {
mkdir -p -- "$1" && cd -P -- "$1"
}
========================================== expat. - default tags: (in /^#/{})
lvl = RLENGTH - 1
-sub(/^#+/, "<<" end (lvl?lvl:"") " el ")
+sub(/^#+/, "")
+if (!match($0, /^[[:alnum:]]+/))
+ $0 = default_tag $0
+$0 = "<<" end (lvl?lvl:"") " el " $0
- how to define default tag?
@#p - only to next blank @@#p - until next default is defined
/^@/ {
if (!match($0, /[[:blank:]]*[:=#][[:blank:]]*/)) {
echo(); # TODO: write begin() function (and end())
next;
}
name = ..
tokn = ..
bind = ..
if (!name) {
if (tokn ~ /#/) {
default_block = bind
if (ats==2)
keep_default = 1
}
}
02MAR2020
el() {
e="$1"; shift;
case "$e" in
*.) e="${e%.}"; while read -r line; do text "$line"; done ;;
*) : ;;
esac
for word; do
case "$word" in
*.) word="${word%.}"; while read -r line; do text "$line"; done ;;
......
}
this allows for, e.g., # OR NOT WHY WOULD I CARE ABOUT THAT
el h1 Text that will be a header
<< END el p -
This text will go til the end
which is marked by END:
END
<< END el p -
I can also do $(el a href="example.com" a link) like this.
Or I can even do it $(text a link|el a href="example.com" -) like this.
END
<< END el p -
The biggest things I want to do is make it easy to write this format.
Because this is $(el em pretty) verbose.
It's not as verbose as it $(strong $(el em could)) be, but it still is pretty verbose.
Note: you could write the above as $(el em could | el strong -), too.
END
<<. el="" p="" -="" You="" could="" also="" just="" have="" the="" end="" marker="" be="" a="" period.="" I'm="" thinking="" I="" should="" change="" "el"="" to="" grab="" stdin,="" if="" there's="" no="" text.="" Unless="" it's="" maybe="" one="" of="" empty="" tags.="" .="" <<.="" ul="" $(el="" li="" Here="" is="" an="" example="" list.)="" haven't="" done="" these="" yet.)="" can="" short="" list="" items="" that="" take="" up="" line.)="" $(<<.1="" Or="" will="" multiple="" lines.="" This="" might="" get="" little="" tricky="" implement,="" maybe?="" .1="" )="" Either="" way,="" it="" fine,="" think.)="" course,="" something="" yet="" talk="" about="" how="" much="" power="" render="" anything.="" As="" see,="" list,="" especially="" nested="" takes="" lot="" shells.="" not="" sure="" that's="" going="" very="" ...="" efficient.="" Whatever.="" I'll="" do="" anyway.="" need="" figure="" out="" ol="" convert="" '<<[end]="" ')="" way="" first="" blank="" line="" '[end]')="" '$(<<[end-nest]="" when="" block="" end,="" and="" with="" '$([end-nest]\n)')="" easy="" nest="" elements)="" '$(el="" '="" '$(text="" '|el="" .
27FEB2020
attached @-tached @-@chd @_@
Case Duckworth Library Technician II Career Center / Reference East Baton Rouge Parish Library
also: a function to do inline @() (I hope)
24FEB2020
# emulate a do-while loop in sh
while
body DONE
condition
do true; done
# OR
while true; do
body
[[ condition ]] || break
done
difference between inlines and blocks
- different stacks, possibly MADE, NOT IMPLEMENTED - blocks contain inlines -- if a block ends, all its inlines should end as well. - pop() and push() should be more general, then -- and take a filename as $1. IMPLEMENTED -- you can only push and pop one at a time though (better) - inlines should be able to be piped to - so I can write, e.g., %(here is link text| a href=example.com%) which will expand to $(echo "here is link text" | inline a href=example.com) - of course, the line delimiters are up for grabs. - could just be '$(' '$)', since that's basically sh-style. - not sure if I want it to be *too* similar, since it's not actually going to expand straight to shell syntax -- there's going to be some "magic" (i.e., auto echo and quoting).
SYNTAX OF SOURCE FILES I like kind of a heredoc-style interpolation, or like pp(1):
Here is regular text.
#h1 a directive here. this is a h1.
Now more regular text.
There's some things to think on:
- sometimes I'll want a tag 'line-wise', i.e., to end at a newline.
- sometimes I'll want it to work 'block-wise', i.e., apply to the entire block.
- additionally, sometimes I'll want tags to end at the next tag,
and sometimes to enclose the rest of the tags to the end of the par.
- sometimes I'll want 'inline' tags, as well.
- These can actually solved with current logic:
- I have `block
TO FIND OUT - in a here-doc: if I set a variable in a $() block, will it stay set in subsequent blocks? or are they like, subshells or whatever? - is a here-doc really the best way to insert text? or should I just have incremental 'printf' statements? and a prefixed line would just do the command or whatever? --- I'M THINKING THIS MIGHT BE THE BEST IDEA THE MORE I THINK OF IT
21FEB2020
xorg/
.Xresources
.xprofile
.xinitrc
.fehbg
nvim/
.config/nvim/*
nvimpager/
.config/nvimpager/*
git/
.config/git/*
neomutt/
.config/neomutt/*
khal/
.config/khal/*
khard/
.config/khard/*
vdirsyncer/
isync/
msmtp/
netrc/
20FEB2020
check out some stuff like https://github.com/Aloxaf/fzf-tab to redo `fmenu` -- it'd be better to just have one program, right? slash: https://github.com/sgtpep/pmenu
problem with fzf: no mouse but is that really an issue? I think it might be better to have a mouse-menu program (with limited number of options) and text-menu program (that enables filtering/etc).
--bottom, --vertfull, --horzfull, --center*, --lines, --font, --*fg, --*bg, --width, --height, -x, -y: handled by st options
--opacity*,--dim*, --linehight, : stupid/unneeded
etc: all fzf I think. SO LET'S DO IT
also, again. maybe useful?
17FEB2020
bitmap fonts (I think I need to make my own italic tamzen-ish)
TOOLS
- https://github.com/kreativekorp/bitsnpicas
- https://github.com/tajmone/pixel-art-supplies
- https://github.com/robhagemans/monobit
FONTS
- <-- HAS="" ITALICS="" --="" based="" on="" uw.="" If="" I="" want="" UW="" in="" TTF="" might="" have="" to="" build="" using="" the="" tools="" here.-->
- <-- HAS="" ITALICS,="" bdf-->
- <--has cursive="" fonts--has>
- <- just="" for="" nethack="" x11->
- https://github.com/nereusx/xsg-fonts
- https://github.com/robhagemans/hoard-of-bitfonts
- <-- not="" bitmap-->
WMS
^ -- fork of echinus <- dwm.="" see="" arch="" forums="" for="" screenshots?="" <- echinus="" (UNMAINTAINED) <- interestig="" floating="" wm->->->
OTHER
- <- wrote="" mcwm,="" other="" cool="" projects="" too->
- https://github.com/sunaku/vim-highlightedyank
- <- maybe->
12FEB2020
sanic
11FEB2020
---
title: "Lucky charms"
subtitle: "(373)"
series: moon photos
tags: cereal, house, window
---
| I never liked them, if I'm being honest.
| The marshmallows are too sweet
| And the cereal wooden. I couldn't eat
| Them quickly enough to make it through a bowl.
| I remember my aunt's house overlooking
| The lake. I ate them in the kitchen. The light
| Broke through the window like a thief.
| I dropped the bowl. It shattered. Not so lucky
| Anymore, she said. The open window gaped.
10FEB2020
also see the attached html & css. for a look
AND AND https://robey.lag.net/
& https://undeadly.org/cgi?action=article;sid=20080607131856
&&& https://www.daveeddy.com/2019/02/11/kvm-virtualization-with-virtmanager-on-void-linux/
06FEB2020
?title=Hoff, an experiment in web authoring
?author=Case Duckworth
?date () date +%F
;h1:class=title: Hoff
;p:class=subtitle: an experiment in web authoring
I've been thinking about a few things lately:
;ul::li
: Markdown, specifically how complicated it can be,
: Literate programming,
: Using AWK, Make, and sh in programming, and
: What I've discovered is basically Groff: macro-style text setting.
To that end, I want to try a new thing,
which I'm calling [[Hoff::strong]], which stands for
HTML groff, and makes me think of this guy:
;img
:src=https://i0.wp.com/metalinjection.net/wp-content/uploads/2019/04/davidhasselhoff.jpg
:alt=David Hasselhoff, of course
So, [[Don't hassle the hoff!::em]]
;h2 Basics
There are some properties of Hoff that should be immediately apparent:
;ul::li
: HTML tags at the beginning of a line are prefixed with a semicolon and
are separated from their content by a space
: Optional attributes to tags are preceded and followed by colons
: Inline tags are set off with double-semicolons, with the content
coming first, followed by two colons, followed by the tag's name
and attributes, in the above format
: For some reason the metadata at the top of the file is preceded
by question marks
: And lists are also marked strangely
notes:
;::
;;
sets new default
::??>???>
sets new
!title= Toward a new markdown
!author = Case Duckworth
!date $ date +%F
Here are some notes for a language I want to make that's almost, but not entirely,
unlike markdown. I've used *sirius* as a name in the past, and I'd like to keep it
that way. So let's call this:
!h1 Sirius!
Notice the first difference:
instead of using `#` to delineate headers, I'm using `!h1`.
The easiest way to mark different HTML elements is by
starting a line with `!` followed by the name of the element,
followed by a space and the content for that element. For example,
!em this will be emphasized
!strong and this will be strong text.
Some tags, of course, need more than just their name.
!!a href=example.com!! If a line starts with two exclamation points,
the `!!`s on either side will be converted, simply, to `<` and `>`,
making the tag complete.
Note, however: the tag's text still only goes to the end of the line.
Sometimes you want more than that.
!!!p id=three-exc
For a lot of content, you'll want to use three exclamation points
on a line with the tag name by itself.
The tag will continue until there's another three bangs.
!!!
Hm... I still think there's work to be done.
For example, inline tags should be easier,
possibly expanded with, I don't know, macros?,
and there should be a way to nest block elements that works better
than using a lot of `!!!`s all over the damn place.
BASIC.KAK , a basic colorscheme
# code
face value rgb:000000,default
face type rgb:212121,default
face identifier rgb:212121,default
face string rgb:000080,default+N
face error default,rgb:000000
face keyword rgb:212121,default+b
face operator rgb:212121,default
face attribute rgb:000000,default
face comment rgb:808080,default+i
face meta rgb:787878,default
# text
face title rgb:000000,default+b
face header rgb:000000,default
face bold rgb:000000,default+b
face italic rgb:121212,default+i
face mono rgb:333333,rgb:dedede
face block rgb:333333,rgb:dedede
face link rgb:000000,default
face bullet rgb:000000,default
face list rgb:212121,default
# kakoune UI
face Default rgb:333333,rgb:ffffff
face PrimarySelection rgb:ffffff,rgb:333333
face SecondarySelection rgb:ededed,rgb:545454
face PrimaryCursor rgb:ffffff,rgb:000000+b
face SecondaryCursor rgb:ededed,rgb:212121+b
face MatchingChar default,rgb:cccccc
face Search default,rgb:cccccc
face Whitespace default,rgb:cccccc
face BufferPadding rgb:cccccc,default
face LineNumbers rgb:cccccc,default
face LineNumberCursor rgb:999999,default
face MenuForeground rgb:ededed,rgb:212121
face MenuBackground default,rgb:dedede
face MenuInfo default,rgb:ababab
face Information default,rgb:bababa
face Error rgb:ededed,rgb:212121
face StatusLine rgb:333333,rgb:dedede
face StatusLineMode rgb:ededed,rgb:212121
face StatusLineInfo rgb:000000,rgb:cccccc
face StatusLineValue rgb:000000,rgb:bababa
face StatusCursor default,rgb:878787
face Prompt rgb:ededed,rgb:212121
04FEB2020
- https://thewirecutter.com/reviews/best-bike-rack-basket-panniers/
- https://thewirecutter.com/reviews/best-rear-bike-rack/
from yesterday. also this for inlines: https://bitbucket.org/yiyus/md2html.awk/raw/fa51423d52928d8eaac248cb6a2ea78afd99324e/md2html.awk
oh and (commented)
function eschtml(t) {
gsub("&", "\\&", t);
gsub("<", "\\<", t);
return t;
}
function process_inlines(t) {
ilcode = 0; # inline code?
ilcode2 = 0; # ??
ns = 0; # ??
return nextil(t); # next inline
}
function nextil(t) {
# look for ` (code), < (autolinks), & (?), [ (link),
# * (em/strong/list?), _ (em/strong), \ (escape), - (list?),
# ![ (image)
if (!match(t, /[`<&\[*_\\-]|(\!\[)/))
# return if not found
return t;
# in the example `here is **strong emphasis**!`:
# t1 = `here is ` BEGINNING OF STRING
t1 = substr(t, 1, RSTART - 1);
# tag = `*` UNDER INVESTIGATION
tag = substr(t, RSTART, RLENGTH);
# t2 = `*strong emphasis**!` REST OF STRING
t2 = substr(t, RSTART + RLENGTH);
# if ilcode is nonzero and the tag isn't `
# (I'm assuming that means we're IN the code tag!)
# just escape the html and process the next bit of string
if (ilcode && tag != "`")
return eschtml(t1 tag) nextil(t2);
# Backslash escaping
if (tag == "\\") {
# if t2 begins with one of these:
# \ ` * _ { } [ ] ( ) # + - . !
# move to the next character and continue
if (match(t2, /^[\\`*_{}\[\]()#+\-\.!]/)) {
tag = substr(t2, 1, 1);
t2 = substr(t2, 2);
}
return t1 tag nextil(t2);
}
# Dashes
if (tag == "-") {
# if there are two dashes in a row,
# replace with em-dash
if (sub(/^-/, "", t2)) tag = "—"
return t1 tag nextil(t2);
}
# Inline code
if (tag == "`") {
# if the rest of the string begins with `, consume it, then
if (sub/^`/, "", t2)) {
# look for another ``. If it's not found:
if (!match(t2, /``/))
# it's a LaTeX-style right double quote
return t1 "”" nextil(t2);
# otherwise, we're looking at a double `` code block
ilcode2 = !ilcode2;
}
else if (ilcode2)
return t1 tag nextil(t2);
tag = "";
if (ilcode) {
t1 = eschtml(t1);
tag = "
";
}
ilcode = !ilcode;
return t1 tag nextil(t2);
}
}
03FEB2020
- post.md ------
!title: Title
A post.
----------------
=> mawkdown => wrapper
---------------- ----------------
A post.
title="Title"
---------------- content(){ ./mawkdown "$filename";} # or something
CAT_TAIL="$RANDOM"
| cat << $CAT_TAIL
| |
| |
| $title |<- template="" |="" |
`---------->$(content) |
->