summaryrefslogtreecommitdiff
path: root/gemini
AgeCommit message (Collapse)Author
2023-11-01allow titan uploads in the meta-clienttjpcc
fixes #18
2023-10-30support spartan in auto-atom conversion middlewaretjpcc
2023-10-30multitls support for virtualhosting with SNItjpcc
fixes #15
2023-10-30always InsecureSkipVerify in gemini clientstjpcc
2023-10-30move gemini titan request handling from server to request parsertjpcc
2023-10-09logging.Base()tjpcc
Allow users to get access to the base logger *before* it is wrapped with the various levels. This provides a single override point to filter or redirect all logging.
2023-09-01simplify internal gemini template-handling functionstjpcc
2023-08-31move gemtext->atom conversion into package atomconv like the other converterstjpcc
2023-08-26AutoAtom: early exit on any non-gemini requeststjpcc
2023-08-26AutoAtom: middleware that supports adding .atom to any gemtext pathv1.2.0tjpcc
2023-08-26GmisubToAtom: output result to any io.Writer rather than return a stringtjpcc
2023-08-26GmisubToAtom: update docs and names, add teststjpcc
2023-08-26gemtext -> atom convertertjpcc
* add GemsubToAtom converter function * add Server.Handler method and implementations fixes #1
2023-08-12multi-protocol clienttjpcc
Fixes #4
2023-08-12move common types to an internal packagetjpcc
This helps avoid import cycles.
2023-08-12document maxredirects on clientstjpcc
2023-08-12avoid copying a tls.Configtjpcc
Fixes #5
2023-08-12add Fetch method to clients which follows redirectstjpcc
There are currently only gopher, gemini, and spartan clients. The finger client will have to implement this when it is written. The Fetch method takes the url as a string for convenience, and parses it into a URL for RoundTrip. Fixes #3
2023-05-09InsecureSkipVerify and other improvements for the gemini fetch example codetjpcc
2023-05-03linter fixestjpcc
2023-05-03add JoinDefaultPort for servers' configurationtjpcc
2023-05-01name change gus -> slideruletjpcc
2023-04-29spartan =: prompt line support in gemtexttjpcc
2023-04-29include a CSS class in htmlconv outputtjpcc
2023-02-15Switch Handler to an interface.tjpcc
HandlerFunc is much better as a function returning a Handler, rather than a newtype for the function type itself. This way there is no confusion creating a type-inferenced variable with HandlerFunc(func(... and then using a HandlerFunc where a Handler is expected. Much better to only have one public type.
2023-01-28middleware to turn away non-gemini requests. fixes #3.tjpcc
2023-01-28gopher support.tjpcc
Some of the contrib packages were originally built gemini-specific and had to be refactored into generic core functionality and thin protocol-specific wrappers for each of gemini and gopher.
2023-01-26test coverage and resulting bugfixestjpcc
2023-01-24testing and linting and linter fixestjpcc
2023-01-24Add support for titan:// to the gemini servertjpcc
Titan is a gemini add-on protocol so it really didn't make sense to build it out in a separate package. The most significant difference in titan for the purposes of implementation here is that requests can have bodies following the URL line. Since gus.Request is a struct, the only way to smuggle in the new field (a reader for the body) was to stash it in the context.
2023-01-23logging library up to top leveltjpcc
2023-01-20"tlsauth" contrib packagetjpcc
This package adds authentication middlewares via TLS client certificates.
2023-01-19package documentation: gemini, gemtext, contribtjpcc
2023-01-18bugfix and some docs cleanuptjpcc
2023-01-17Updatestjpcc
* update README * move "gemtext" to within "gemini"
2023-01-17pull request, response, handlers out of the gemini packagetjpcc
2023-01-12test file renametjpcc
2023-01-12Improve host/port handlingtjpcc
...however unlikely gemini over IPv6 may be (hah!)
2023-01-11much more extensive gus/gemini testingtjpcc
2023-01-11WIP improve test coveragetjpcc
There is a test of Response.Read that is failing and I haven't yet figured out why.
2023-01-11lots more documentation commentstjpcc
2023-01-11Improvements to Server lifecycle.tjpcc
- NewServer doesn't allocate any resources besides the server object itself. So eg context.WithCancel is delayed until s.Serve(). - Add a demonstration of graceful shutdown on signals to the cgi example.
2023-01-11Simple client functionality and an example.tjpcc
2023-01-10Add a CGI contribtjpcc
2023-01-09Initial commit.tjpcc
some basics: - minimal README - some TODOs - server and request handler framework - contribs: file serving, request logging - server examples - CI setup