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.texwith 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
@nodecommand takes its arguments in this order:headword,next,previous,up - Find the previous headword alphabetically and change the second argument to its
@nodecommand to the new word. - Insert your headword in the right place, making sure to include both
@nodeand@hdcommands - Change the third argument,
previous, in the next headword's@nodecommand - Run
maketo build the document and regenerateversion.tex. A successfulmakeoutput 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.