You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.6 KiB
41 lines
1.6 KiB
## cgit-gopher
|
|
|
|
The plan is to equip cgit with a Gopher (RFC 1436) front-end. This would
|
|
be possible by replacing the functions in ui-*.c with appropriate
|
|
functions to generate Gopher contents. In practice, all the html-related
|
|
stuff should be replaced by simple text, and the output simplified (we
|
|
can't have more than one link per line in Gopher).
|
|
|
|
It seems that ui-tree.c is a good place to start for a proof-of-concept.
|
|
|
|
(20180724-16:19)
|
|
|
|
The PoC works. Now we should produce proper selectors for the stuff in
|
|
the tree page. In particular:
|
|
|
|
- Distinguish between files and directories/links
|
|
- construct an appropriate selector path (see cgit_tree_link in
|
|
ui-shared.c)
|
|
|
|
N.B.: We don't need to support all the stuff in cgit. In particular,
|
|
the 'virtual-root' variable might be a bit cumbersome to implement,
|
|
since we need an explicit way to signal the Gopher server that we
|
|
need the script (i.e., the presence of a '?' after the name of the CGI
|
|
script).
|
|
|
|
(20180725 - 9:30)
|
|
|
|
The easiest way to inject a Gopher interface seems to be through
|
|
cmd.c, since the functions to be called for each action are defined in
|
|
there. It should be sufficient to provide a gopher-cmd.c and to
|
|
replace all the ui-*.c files with the corresponding ui70-*.c
|
|
counterparts which implement the Gopher interface.
|
|
|
|
Again, we should start from ui-repolist.c and ui-tree.c, which are the
|
|
two necessary bits for a viable proof-of-concept.
|
|
|
|
(20180729 - 6:20)
|
|
|
|
The PoC is complete. The cgit-70 cgi script implements all the basic
|
|
functionalities of cgit. I am sure more is to be done, but the result
|
|
is not bad at all.
|
|
|