Commit Graph

53 Commits

Author SHA1 Message Date
Travis J Parker 2ead35d8a4 Remove the bulk of the project.
Leave a README with a pointer to sliderule, and the LICENSE file.

Git history is still accessible here.
2023-05-01 11:42:16 -06:00
tjpcc aa6bdb0649 include a CSS class in htmlconv output 2023-04-29 13:45:38 -06:00
tjpcc 46ad450327 Switch Handler to an interface.
continuous-integration/drone/push Build is passing Details
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-02-15 16:44:29 -07:00
tjpcc bc96af40db no need to combine sub-router params any more
continuous-integration/drone/push Build is passing Details
2023-02-14 20:18:08 -07:00
tjpcc fcf545c27c Router improvements.
continuous-integration/drone/push Build is passing Details
- test coverage for Router, not just PathTree
- Router.Mount() now flattens routes into the parent router
- Router.Use() implemented to set middleware on a router itself
2023-02-14 20:13:25 -07:00
tjpcc 18d69173b4 Mount() adds a subrouter under a prefix pattern.
continuous-integration/drone/push Build is passing Details
...though I'm already eyeing a better approach.
2023-02-02 17:11:27 -07:00
tjpcc ac024567e8 Initial Router work.
continuous-integration/drone/push Build is passing Details
- Router type, supports: adding handlers, serving, fetching the matching
  handler for a route.
- Private PathTree type handles the modified radix trie.
2023-02-02 16:15:53 -07:00
tjpcc b7cb13b4e6 include gemini scheme in a URL
continuous-integration/drone/push Build is passing Details
2023-01-30 15:10:54 -07:00
tjpcc a4ef387eeb mention release signing and the key used
continuous-integration/drone/push Build is passing Details
2023-01-30 15:09:58 -07:00
tjpcc 4f6f3dcd4b finger protocol
continuous-integration/drone/push Build is passing Details
2023-01-30 11:36:48 -07:00
tjpcc 9cbc5cdd46 fix tests for #15 change
continuous-integration/drone/push Build is passing Details
2023-01-28 16:47:23 -07:00
tjpcc 04977e56b1 middleware to turn away non-gemini requests. fixes #3.
continuous-integration/drone/push Build is failing Details
2023-01-28 15:36:45 -07:00
tjpcc 23fd67c25a permanently redirect from /dir to /dir/ on gemini. fixes #15
continuous-integration/drone/push Build is failing Details
2023-01-28 15:30:09 -07:00
tjpcc 84d8e515be README updates
continuous-integration/drone/push Build is passing Details
2023-01-28 15:29:44 -07:00
tjpcc 66a1b1f39a gopher support.
continuous-integration/drone/push Build is passing Details
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-28 15:01:41 -07:00
tjpcc a27b879acc test coverage and resulting bugfixes
continuous-integration/drone/push Build is passing Details
2023-01-26 16:22:58 -07:00
tjpcc 32e45e3557 test coverage for the cgi contrib
continuous-integration/drone/push Build is passing Details
2023-01-25 08:35:56 -07:00
tjpcc 997514292a testing and linting and linter fixes
continuous-integration/drone/push Build is passing Details
2023-01-24 19:59:47 -07:00
tjpcc 23d705b93a Add support for titan:// to the gemini server
continuous-integration/drone/push Build is passing Details
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-24 07:36:28 -07:00
tjpcc 0480e066a3 logging library up to top level
continuous-integration/drone/push Build is passing Details
2023-01-23 22:15:16 -07:00
tjpcc df57a12539 update READMEs for contrib/tlsauth
continuous-integration/drone/push Build is passing Details
2023-01-20 11:26:23 -07:00
tjpcc 8229f31f70 "tlsauth" contrib package
continuous-integration/drone/push Build is passing Details
This package adds authentication middlewares via TLS client
certificates.
2023-01-20 10:58:35 -07:00
tjpcc a1c186878d minor marketing update
continuous-integration/drone/push Build is passing Details
2023-01-19 16:08:17 -07:00
tjpcc e1aa19f1e8 New sharedhost contrib package.
continuous-integration/drone/push Build is passing Details
ReplaceTilde simply replaces a leading ~ in the URL.

Fixes #9.
2023-01-19 16:03:52 -07:00
tjpcc 7d8fd81278 package documentation: gemini, gemtext, contrib
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-01-19 10:12:30 -07:00
tjpcc f569df6ead bugfix and some docs cleanup
continuous-integration/drone/push Build is passing Details
2023-01-18 22:10:29 -07:00
tjpcc 6586db782e Updates
continuous-integration/drone/push Build is passing Details
* update README
* move "gemtext" to within "gemini"
2023-01-17 16:41:04 -07:00
tjpcc 2ef530daa4 pull request, response, handlers out of the gemini package 2023-01-17 15:59:29 -07:00
tjpcc 30e21f8513 fix gmi->md templates and regenerate the README
continuous-integration/drone/push Build is passing Details
2023-01-15 22:36:02 -07:00
tjpcc 9579f021ff updated gmi2md template
continuous-integration/drone/push Build is passing Details
2023-01-15 20:20:28 -07:00
tjpcc 4c2630752f Completed markdown and HTML conversion.
continuous-integration/drone/push Build is passing Details
2023-01-15 19:59:58 -07:00
tjpcc cec3718bdd markdown converter
continuous-integration/drone/push Build is passing Details
2023-01-14 19:59:12 -07:00
tjpcc 88b98dcf18 update README with latest from the gemini site
continuous-integration/drone/push Build is passing Details
2023-01-14 11:38:40 -07:00
tjpcc 0d904f9f10 Completed gemtext package.
continuous-integration/drone/push Build is passing Details
resolves #2

- fuzz testing
- split out line parsing into a separate file
- changed line type-specific public []byte fields to string accessor methods
- added document parsing test for a stress test doc
- added dependency on stretchr/testify
2023-01-14 09:58:32 -07:00
tjpcc aa23984bc2 Initial gemtext package.
continuous-integration/drone/push Build is passing Details
Contains:
- gemtext AST (Document and line types)
- Parse from an io.Reader
- ParseLine a []byte
- doc comments on everything
- ParseLine tests for every line type

Still needs tests for Parse & Document.
2023-01-13 10:50:30 -07:00
tjpcc 13f553c965 TODOs have been converted to gitea issues
continuous-integration/drone/push Build is passing Details
2023-01-12 10:06:35 -07:00
tjpcc 370bd08946 aspirational!
continuous-integration/drone/push Build is passing Details
2023-01-12 09:20:52 -07:00
tjpcc 064b1b304a test file rename 2023-01-12 09:20:43 -07:00
tjpcc 6be546d46b Improve host/port handling
...however unlikely gemini over IPv6 may be (hah!)
2023-01-12 09:19:43 -07:00
tjpcc 518d1a88cf more ambitions
continuous-integration/drone/push Build is passing Details
2023-01-11 17:30:16 -07:00
tjpcc b93e6dfee9 convert the gemtext home page to markdown as the new README
continuous-integration/drone/push Build is passing Details
2023-01-11 15:58:50 -07:00
tjpcc 9cbdbe8c8f there's a router in our future
continuous-integration/drone/push Build is passing Details
2023-01-11 14:20:42 -07:00
tjpcc 029cd5b52d much more extensive gus/gemini testing
continuous-integration/drone/push Build is passing Details
2023-01-11 13:19:42 -07:00
tjpcc 4969e33e28 WIP improve test coverage
continuous-integration/drone/push Build is failing Details
There is a test of Response.Read that is failing and I haven't yet
figured out why.
2023-01-11 11:41:07 -07:00
tjpcc e183f9cd23 lots more documentation comments
continuous-integration/drone/push Build is passing Details
2023-01-11 10:36:56 -07:00
tjpcc 197d8e4cb0 Improvements to Server lifecycle.
- 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-11 10:33:44 -07:00
tjpcc cc0c7e6eb5 Simple client functionality and an example.
continuous-integration/drone/push Build is passing Details
2023-01-11 10:12:32 -07:00
tjpcc e46658d475 branding change
continuous-integration/drone/push Build is passing Details
2023-01-10 23:06:54 -07:00
tjpcc 918246ed72 remove some debugging prints, gofmt
continuous-integration/drone/push Build is passing Details
2023-01-10 17:50:44 -07:00
tjpcc 474a28663f CGI improvements
continuous-integration/drone/push Build is passing Details
2023-01-10 17:22:13 -07:00