~callum/gmsfn

8b181ee9fb9dfa4cbb8345f44cf3b2ebb2bd54ed — Callum Brown 1 year, 1 month ago d19fdd5
Add markdown version of README
1 files changed, 57 insertions(+), 0 deletions(-)

A README.md
A README.md => README.md +57 -0
@@ 0,0 1,57 @@
NOTE: This markdown version of the README has been adapted from the Gemtext version so that sr.ht has something to display.

# gmsfn

gmsfn is a program used to update a file with new links found in Gemtext pages served over the Gemini protocol. I wrote it partly because I wanted something a bit different to CAPCOM and spacewalk, and partly to learn C through a real project. The name comes from the Manned Space Flight Network (MSFN), which was a set of tracking stations used to support the Gemini space program (as well as Mercury, Apollo and Skylab).

- [Project Gemini (gemini)](gemini://gemini.circumlunar.space/)
- [Project Gemini (https)](https://gemini.circumlunar.space/)
- [Gemtext (gemini)](gemini://gemini.circumlunar.space/docs/gemtext.gmi)
- [CAPCOM (https)](https://tildegit.org/solderpunk/CAPCOM)
- [spacewalk (https)](https://tildegit.org/sloum/spacewalk)
- [Manned Space Flight Network (https)](https://en.wikipedia.org/wiki/Manned_Space_Flight_Network)

Differences from CAPCOM and spacewalk:
* Doesn't rely on authors to provide an Atom feed
* Links directly to posts
* Feeds are configured in a file, not by a CLI
* Feeds will probably include links you don't want to see, like links back to a home page or to an Atom/RSS feed.
* Doesn't detect if textual content of a page changes

All the hard work to do with Gemini and parsing Gemtext is done using Drew Devault's gmni, which is currently vendored in with gmsfn (it's not yet been made into a library). Thank you Drew!

- [gmni (gemini)](gemini://drewdevault.com/gmni.gmi)
- [gmni (https)](https://sr.ht/~sircmpwn/gmni/)


## Example

A live feed (updated daily) and the configuration for it can be found at:
 - [gemini://calcuode.com/feed.gmi](gemini://calcuode.com/feed.gmi)
 - [gemini://calcuode.com/gmsfn.gmi](gemini://calcuode.com/gmsfn.gmi)


## Installation

Dependencies:

- A POSIX-like system and a C11 compiler
- OpenSSL
- scdoc

```
$ git clone https://git.sr.ht/~callum/gmsfn
$ cd gmsfn
$ make
# make install
```


## Usage

For more information about how gmsfn works see the man pages:

 - [gmsfn(1) (gemini)](gemini://calcuode.com/gmsfn.1.scd.txt)
 - [gmsfn(1) (https)](https://git.sr.ht/~callum/gmsfn/blob/main/doc/gmsfn.1.scd)
 - [gmsfn(5) (gemini)](gemini://calcuode.com/gmsfn.5.scd.txt)
 - [gmsfn(5) (https)](https://git.sr.ht/~callum/gmsfn/blob/main/doc/gmsfn.5.scd)