Queer Jargon File
This is a fork of the Jargon File 4.3.3, with an eye towards removing the misogynistic, white-supremacist elements brought in by esr.
It also has been updated to contain UTF-8 text instead of Latin-1, the makefiles have been fixed such that at least the HTML version builds on modern macOS, and no longer relies on the .
directory being in your PATH.
Contributions
Contributions are welcome! Account registration should be open under an email verification requirement, upon which you will get write access to the Wiki and repo; please behave.
Fossil doesn't behave quite like Git! For one, it doesn't hardcode email addresses in commit artifacts. Also, it maintains a much more linear (less confusing) commit graph due to auto-sync
. (If you're familiar with cvs
, fossil
generally works and feels a lot closer to cvs
than to git
, except as regards branches.)
To get started, let's say you've registered an account alice
, which is not your local account's username. To inform Fossil of your QJF username, pass --admin-user
to clone
, and use fossil user default
inside the checkout. If your local account uses the same name as your QJF username, you can omit --admin-user
and skip the fossil user default
command.
fossil clone --admin-user alice https://alice@fossil.se30.xyz/queer-jargon-file ~/qjf.fossil
mkdir queer-jargon-file
cd queer-jargon-file
fossil open ~/qjf.fossil
fossil user default alice
From there, you can make changes. Fossil is, by default, an online distributed VCS: when you do fossil commit
, it will commit and automatically sync to whichever branch is active. Branches are not protected, contributors can commit directly to trunk. If you wish to use branches, you can start a branch from a commit by fossil commit --branch
, or use fossil branch
and fossil up
to manipulate them manually.
If you cloned anonymously at first and registered an account later, you can log in from an open checkout by doing fossil sync https://$USER@fossil.se30.xyz/queer-jargon-file
. This will prompt for, and by default remember, your password.
Coming from Git
Whereas in Git you usually make one clone and switch between branches in that clone, Fossil tends to work with multiple open checkouts. In this way you can think of fossil open
somewhat like Git's relatively new worktree
feature.
Fossil's autosync makes it work a lot like the Git workflow of doing a git pull --rebase
before pushing, but a little more safely, in that it will keep you from introducing conflicting merges to the upstream, and from getting irrevocably lost in the reflog. When a merge conflict does happen, Fossil writes out the most humane commit markers we've ever seen. Please see the Fossil git user docs for more info and common pitfalls.
If you have Fossil questions, or others related to this repo, feel free to contact us via email (queer-jargon-file@se30.xyz), on Twitter (@atax1a), or on Discord (atax1a#3599)
Adding a word
The emacs
mode in jargon.el
automates the process of adding and deleting words, and is recommended (that, or use it as inspiration for a plugin for your favored editor). Note that version.tex
is generated by Makefile
.
If you wish to do it manually, take a look at cea3caa137cb7216 for a commit adding a single word.
- Update
jargon-new.tex
with an entry for the new word, making sure to cite the current version number from the Makefile - Find the right file to insert the headword out of
lexicon[1-4].tex
— again, the elisp helps a bit - Insert the entry into the alphabetically sorted list at the start of the file
- Take a deep breath and remember that the
@node
command takes its arguments in this order:headword
,next
,previous
,up
- Find the previous headword alphabetically and change the second argument to its
@node
command to the new word. - Insert your headword in the right place, making sure to include both
@node
and@hd
commands - Change the third argument,
previous
, in the next headword's@node
command - Run
make
to build the document and regenerateversion.tex
. A successfulmake
output looks like this:echo "@set VERSION 4.3.3-queer" >variables.tex set `date`; echo "@set DATE $3 "`echo $2 | tr '[a-z]' '[A-Z]'`" $6" >>variables.tex make jargon.txt makeinfo --no-split jargon.tex --output=/tmp/jargon$.info ./ascii.bash </tmp/jargon$.info >/tmp/jargon$.txt sh patch.size /tmp/jargon$.txt Entries: 2370 Lines: 28427 Words: 230342 Chars: 1514838 makeinfo --no-split jargon.tex --output=/tmp/jargon$.info ./ascii.bash </tmp/jargon$.info | ./fixjargon.pl >jargon.txt rm -f /tmp/jargon$.info /tmp/jargon$.txt mv jargon.txt jarg433-queer gzip -f jarg433-queer makeinfo --no-split --html jargon.tex ./splitnode.pl --title="The Queer Jargon File" --framenode="The Jargon Lexicon" --version=4.3.3-queer --graphdir="graphics" jargon.html make: *** No rule to make target `jarghist.html', needed by `jargon-4.3.3-queer.tar.gz'. Stop.
(yes, the error that stops the make
is expected currently)
makeinfo
errors to watch out for:
- Cross reference to nonexistent node `balblabal' (perhaps incorrect sectioning?).
This one means you broke a@es{}
internal link.