summaryrefslogtreecommitdiff
path: root/NOTES_70
blob: 8202bbc5776de28cde3d85eca4c7958eb5071484 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
## 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.