doc: add Texinfo manual scaffolding
* doc/card-games.texi: new manual skeleton -- header, CC-BY-4.0 copying, dir entry, title page, Top menu, stub chapters for every section, and the index. Builds cleanly with makeinfo. * Makefile (info, html, pdf, docclean): build the manual; add the source to the package tarball. * .gitignore: ignore the generated manual outputs.
This commit is contained in:
parent
b2a8d6ad93
commit
010b45f314
3 changed files with 226 additions and 3 deletions
15
.gitignore
vendored
15
.gitignore
vendored
|
|
@ -4,3 +4,18 @@
|
||||||
/card-games-*-src.tar.gz
|
/card-games-*-src.tar.gz
|
||||||
*.sketch
|
*.sketch
|
||||||
*~
|
*~
|
||||||
|
# Generated documentation (built from doc/card-games.texi with makeinfo)
|
||||||
|
/doc/card-games.info
|
||||||
|
/doc/card-games.html
|
||||||
|
/doc/card-games.pdf
|
||||||
|
/doc/card-games.aux
|
||||||
|
/doc/card-games.log
|
||||||
|
/doc/card-games.toc
|
||||||
|
/doc/card-games.cp
|
||||||
|
/doc/card-games.cps
|
||||||
|
/doc/card-games.fn
|
||||||
|
/doc/card-games.fns
|
||||||
|
/doc/card-games.ky
|
||||||
|
/doc/card-games.pg
|
||||||
|
/doc/card-games.tp
|
||||||
|
/doc/card-games.vr
|
||||||
|
|
|
||||||
33
Makefile
33
Makefile
|
|
@ -11,9 +11,14 @@ TAR = $(TARDIR).tar
|
||||||
SRCTAR = $(PKG)-$(VERSION)-src.tar.gz
|
SRCTAR = $(PKG)-$(VERSION)-src.tar.gz
|
||||||
DIST = dist
|
DIST = dist
|
||||||
BATCH = $(EMACS) -Q --batch -L .
|
BATCH = $(EMACS) -Q --batch -L .
|
||||||
EXTRA = README.org $(PKGDESC)
|
MANUAL = doc/card-games.texi
|
||||||
|
INFO = doc/card-games.info
|
||||||
|
MAKEINFO ?= makeinfo
|
||||||
|
TEXI2PDF ?= texi2pdf
|
||||||
|
EXTRA = README.org $(PKGDESC) $(MANUAL)
|
||||||
|
|
||||||
.PHONY: all compile test clean distclean checkdoc lint package tarball elpa release help
|
.PHONY: all compile test clean distclean checkdoc lint package tarball elpa release help \
|
||||||
|
info html pdf docclean
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "card-games $(VERSION) -- make targets:"
|
@echo "card-games $(VERSION) -- make targets:"
|
||||||
|
|
@ -21,6 +26,9 @@ help:
|
||||||
@echo " test run the ERT test suite"
|
@echo " test run the ERT test suite"
|
||||||
@echo " checkdoc run checkdoc on all sources"
|
@echo " checkdoc run checkdoc on all sources"
|
||||||
@echo " lint run package-lint (if installed)"
|
@echo " lint run package-lint (if installed)"
|
||||||
|
@echo " info build the Info manual ($(INFO))"
|
||||||
|
@echo " html build the one-file HTML manual"
|
||||||
|
@echo " pdf build the PDF manual (needs a TeX installation)"
|
||||||
@echo " package build the installable package tarball ($(TAR))"
|
@echo " package build the installable package tarball ($(TAR))"
|
||||||
@echo " elpa build a one-package ELPA archive in $(DIST)/"
|
@echo " elpa build a one-package ELPA archive in $(DIST)/"
|
||||||
@echo " release clean + test + package + source tarball"
|
@echo " release clean + test + package + source tarball"
|
||||||
|
|
@ -75,8 +83,27 @@ release: distclean test tarball
|
||||||
-czf $(SRCTAR) $(SRCFILES)
|
-czf $(SRCTAR) $(SRCFILES)
|
||||||
@echo "Built $(SRCTAR) and $(TAR) for release $(VERSION)"
|
@echo "Built $(SRCTAR) and $(TAR) for release $(VERSION)"
|
||||||
|
|
||||||
|
# Documentation. The Texinfo source lives in doc/; the Info manual is
|
||||||
|
# built from it with makeinfo.
|
||||||
|
info: $(INFO)
|
||||||
|
$(INFO): $(MANUAL)
|
||||||
|
$(MAKEINFO) -o $@ $(MANUAL)
|
||||||
|
|
||||||
|
html: $(MANUAL)
|
||||||
|
$(MAKEINFO) --html --no-split -o doc/card-games.html $(MANUAL)
|
||||||
|
|
||||||
|
pdf: $(MANUAL)
|
||||||
|
cd doc && $(TEXI2PDF) -q card-games.texi
|
||||||
|
|
||||||
|
docclean:
|
||||||
|
rm -f $(INFO) doc/card-games.html doc/card-games.pdf \
|
||||||
|
doc/card-games.aux doc/card-games.cp doc/card-games.cps \
|
||||||
|
doc/card-games.fn doc/card-games.ky doc/card-games.log \
|
||||||
|
doc/card-games.pg doc/card-games.toc doc/card-games.tp \
|
||||||
|
doc/card-games.vr doc/card-games.fns
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(ELC)
|
rm -f $(ELC)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean docclean
|
||||||
rm -rf $(DIST) $(TARDIR) $(TAR) $(SRCTAR)
|
rm -rf $(DIST) $(TARDIR) $(TAR) $(SRCTAR)
|
||||||
|
|
|
||||||
181
doc/card-games.texi
Normal file
181
doc/card-games.texi
Normal file
|
|
@ -0,0 +1,181 @@
|
||||||
|
\input texinfo @c -*- texinfo -*-
|
||||||
|
@c %**start of header
|
||||||
|
@setfilename card-games.info
|
||||||
|
@settitle Card Games for Emacs
|
||||||
|
@documentencoding UTF-8
|
||||||
|
@documentlanguage en
|
||||||
|
@syncodeindex vr cp
|
||||||
|
@syncodeindex fn cp
|
||||||
|
@c %**end of header
|
||||||
|
|
||||||
|
@set VERSION 1.0.90
|
||||||
|
@set YEAR 2026
|
||||||
|
|
||||||
|
@copying
|
||||||
|
This manual is for Card Games for Emacs (version @value{VERSION}), an
|
||||||
|
Emacs package that plays card games as UNICODE text in a terminal and as
|
||||||
|
SVG cards on a graphical display.
|
||||||
|
|
||||||
|
Copyright @copyright{} @value{YEAR} Corwin Brust.
|
||||||
|
|
||||||
|
@quotation
|
||||||
|
This manual is licensed under the Creative Commons Attribution 4.0
|
||||||
|
International License. To view a copy of this license, visit
|
||||||
|
@url{https://creativecommons.org/licenses/by/4.0/}.
|
||||||
|
|
||||||
|
The Card Games for Emacs @emph{program} is free software, licensed under
|
||||||
|
the GNU General Public License, version 3 or later.
|
||||||
|
@end quotation
|
||||||
|
@end copying
|
||||||
|
|
||||||
|
@dircategory Emacs
|
||||||
|
@direntry
|
||||||
|
* Card Games: (card-games). Play card games in Emacs (text and SVG).
|
||||||
|
@end direntry
|
||||||
|
|
||||||
|
@titlepage
|
||||||
|
@title Card Games for Emacs
|
||||||
|
@subtitle A collection of solitaire, two-player, and partnership games
|
||||||
|
@subtitle for GNU Emacs, version @value{VERSION}
|
||||||
|
@author Corwin Brust
|
||||||
|
@page
|
||||||
|
@vskip 0pt plus 1filll
|
||||||
|
@insertcopying
|
||||||
|
@end titlepage
|
||||||
|
|
||||||
|
@contents
|
||||||
|
|
||||||
|
@ifnottex
|
||||||
|
@node Top
|
||||||
|
@top Card Games for Emacs
|
||||||
|
|
||||||
|
@insertcopying
|
||||||
|
@end ifnottex
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Introduction:: What this package is.
|
||||||
|
* Installation:: Getting it, and starting to play.
|
||||||
|
* The Game Menu:: The chooser, and its controls.
|
||||||
|
* Playing:: Controls shared by every game.
|
||||||
|
* Customization:: Colours, cards, keys, and opponents.
|
||||||
|
* Solitaire Games:: One-player patiences.
|
||||||
|
* Trick-Taking Games:: Hearts, Spades, Bridge, and friends.
|
||||||
|
* Rummy Games:: Melds, knocks, and books.
|
||||||
|
* Matching Games:: Go Fish and Old Maid.
|
||||||
|
* Capturing Games:: Scopa and Casino.
|
||||||
|
* Climbing Games:: President and Spite & Malice.
|
||||||
|
* Russian Bank:: The two-player duel.
|
||||||
|
* Networked Play:: Live 500 over the network.
|
||||||
|
* Credits:: Sources and thanks.
|
||||||
|
* License:: Terms for this manual.
|
||||||
|
* Index:: Commands, variables, and concepts.
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node Introduction
|
||||||
|
@chapter Introduction
|
||||||
|
|
||||||
|
@cindex introduction
|
||||||
|
Card Games for Emacs is a collection of more than thirty card games ---
|
||||||
|
solitaires, two-player games, and four-handed partnership games ---
|
||||||
|
played entirely inside GNU Emacs. Each game draws itself as plain
|
||||||
|
UNICODE text in a terminal and as SVG cards on a graphical display, and
|
||||||
|
every game accepts both the keyboard and the mouse.
|
||||||
|
|
||||||
|
@c TODO(pass 2): expand -- the engine, the philosophy (console first),
|
||||||
|
@c the range of games, screenshots.
|
||||||
|
|
||||||
|
@node Installation
|
||||||
|
@chapter Installation
|
||||||
|
|
||||||
|
@cindex installation
|
||||||
|
@c TODO(pass 2): package.el / ELPA install, requirements (Emacs 26.1),
|
||||||
|
@c building from source, running the tests.
|
||||||
|
|
||||||
|
@node The Game Menu
|
||||||
|
@chapter The Game Menu
|
||||||
|
|
||||||
|
@findex card-game
|
||||||
|
@cindex chooser
|
||||||
|
Type @kbd{M-x card-game} to open the chooser, a buffer listing every
|
||||||
|
game. Move between games with @key{TAB} (or @kbd{n} and @kbd{p}) and
|
||||||
|
press @key{RET}, or click, to start one. The chooser also carries two
|
||||||
|
controls, @dfn{AI opponents} and @dfn{Cards}, described later.
|
||||||
|
|
||||||
|
@c TODO(pass 2): the AI-level control, the treatment control, quitting.
|
||||||
|
|
||||||
|
@node Playing
|
||||||
|
@chapter Playing
|
||||||
|
|
||||||
|
@cindex controls
|
||||||
|
@c TODO(pass 2): the shared controls -- arrows, RET, q to the menu, the
|
||||||
|
@c footer legend, zoom (+/-/0), redraw (g), help (?).
|
||||||
|
|
||||||
|
@node Customization
|
||||||
|
@chapter Customization
|
||||||
|
|
||||||
|
@cindex customization
|
||||||
|
@c TODO(pass 2): card backs, the Emacs logo, themes, four-colour decks,
|
||||||
|
@c suit glyphs, key schemes, the AI level, the display treatment.
|
||||||
|
|
||||||
|
@node Solitaire Games
|
||||||
|
@chapter Solitaire Games
|
||||||
|
|
||||||
|
@c TODO(pass 3): Klondike, FreeCell, Spider, Yukon, Canfield, Forty
|
||||||
|
@c Thieves, Scorpion, Golf, TriPeaks, Pyramid, Gaps/Montana, Hell's
|
||||||
|
@c Half-Acre, Russian Bank (patience) -- object, rules, strategy, keys.
|
||||||
|
|
||||||
|
@node Trick-Taking Games
|
||||||
|
@chapter Trick-Taking Games
|
||||||
|
|
||||||
|
@c TODO(pass 4): 500, Hearts, Spades, Whist, Oh Hell, Euchre, Pitch,
|
||||||
|
@c Briscola, Bridge.
|
||||||
|
|
||||||
|
@node Rummy Games
|
||||||
|
@chapter Rummy Games
|
||||||
|
|
||||||
|
@c TODO(pass 5): Gin Rummy, Rummy, Rummy 500, Hand & Foot.
|
||||||
|
|
||||||
|
@node Matching Games
|
||||||
|
@chapter Matching Games
|
||||||
|
|
||||||
|
@c TODO(pass 5): Go Fish, Old Maid.
|
||||||
|
|
||||||
|
@node Capturing Games
|
||||||
|
@chapter Capturing Games
|
||||||
|
|
||||||
|
@c TODO(pass 5): Scopa, Casino.
|
||||||
|
|
||||||
|
@node Climbing Games
|
||||||
|
@chapter Climbing Games
|
||||||
|
|
||||||
|
@c TODO(pass 5): President, Spite & Malice, Cribbage.
|
||||||
|
|
||||||
|
@node Russian Bank
|
||||||
|
@chapter Russian Bank
|
||||||
|
|
||||||
|
@c TODO(pass 6): Crapette -- the two-player duel, foundations, houses,
|
||||||
|
@c loading, the stop rule, sequenced moves, the difficulty dial.
|
||||||
|
|
||||||
|
@node Networked Play
|
||||||
|
@chapter Networked Play
|
||||||
|
|
||||||
|
@c TODO(pass 6): live 500 over TCP -- cg-bid-host, cg-bid-join, lobbies.
|
||||||
|
|
||||||
|
@node Credits
|
||||||
|
@chapter Credits
|
||||||
|
|
||||||
|
@c TODO(pass 6): rules sources (Wikipedia, Pagat), thanks to testers.
|
||||||
|
|
||||||
|
@node License
|
||||||
|
@appendix License
|
||||||
|
|
||||||
|
This manual is licensed under the Creative Commons Attribution 4.0
|
||||||
|
International License. To view a copy of this license, visit
|
||||||
|
@url{https://creativecommons.org/licenses/by/4.0/}.
|
||||||
|
|
||||||
|
@node Index
|
||||||
|
@unnumbered Index
|
||||||
|
|
||||||
|
@printindex cp
|
||||||
|
|
||||||
|
@bye
|
||||||
Loading…
Add table
Add a link
Reference in a new issue