04e64762ceefbe881457eb5da4b1a6f53182734a — Trevor Slocum 2 months ago 7313ce5 master v0.1.3
Improve documentation
9 files changed, 165 insertions(+), 96 deletions(-)

M CHANGELOG
A CONFIGURATION.md
A OPTIONS.md
M README.md
D branch.go
D cli.go
M config_test.go
M go.mod
M go.sum
M CHANGELOG => CHANGELOG +3 -0
@@ 1,3 1,6 @@
+0.1.3:
+- Allow notebooks to be served publicly
+
 0.1.2:
 - Add note options interface
 - Add option to show dismissed list items

A CONFIGURATION.md => CONFIGURATION.md +91 -0
@@ 0,0 1,91 @@
+# Notebook initialization
+
+stick notebooks are [git repositories](https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F) containing [Markdown](https://www.markdownguide.org/) formatted text files.
+
+Note that while stick uses git, it is not required to have git installed.
+
+Initialize one or more notebooks, specifying where the repository should be created.
+
+If you would like to use an existing git repository, you may skip this step.
+
+```
+stick init /home/stick/notes/johnsnotes
+```
+
+# Configuring stick.yml
+
+stick is configured via ~/.config/stick/stick.yml (or elsewhere when specified with the --config flag)
+
+## salt
+
+Used when hashing data (set to a random string)
+
+## serve
+
+Serve notebooks on this address (host:port)
+
+## authors
+
+List of authors, specified by email and name
+
+## notebooks
+
+List of notebooks, specified by label.  Options include:
+
+### repo
+
+Path to git repository
+
+### serve
+
+List of authors (specified by email) and their access level, which is one of the following:
+
+- read
+- write
+
+Including an author named "public" will share the notebook publicly.
+
+# Example stick.yml
+
+```yaml
+# Used when hashing data (set to a random string)
+salt: xXxsh3cr3txXx
+
+# Serve notes on localhost only
+# Set to :9991 to serve on all interfaces (not recommended, use a reverse proxy instead)
+serve: localhost:9991
+
+# Authors are defined by email and name (used when committing)
+authors:
+  john@hotmail.com: John Doe
+  jane@aol.com: Jane Doe
+
+# Notebooks can be shared between authors with varying access levels
+# When an access level isn't specified, read-only is assumed
+# John's notebook allows read/write access to himself and read-only access to Jane
+notebooks:
+  John's notes:
+    repo: /home/stick/notes/johnsnotes
+    serve:
+      - john@hotmail.com: write
+      - jane@aol.com
+
+  Jane's notes:
+    repo: /home/stick/notes/janesnotes
+    serve:
+      - jane@aol.com: write
+      - john@hotmail.com
+
+  Shared notes:
+    repo: /home/stick/notes/shared
+    serve:
+      - john@hotmail.com: write
+      - jane@aol.com: write
+
+  Public notes:
+    repo: /home/stick/notes/public
+    serve:
+      - john@hotmail.com: write
+      - jane@aol.com: write
+      - public
+```

A OPTIONS.md => OPTIONS.md +42 -0
@@ 0,0 1,42 @@
+stick allows note display and behavior to be customized.
+
+# Options directive
+
+Note options are specified with the **options directive**:
+
+```
+[//]: # (list,sort)
+
+* [ ] Eggs
+* [ ] Flour
+* [X] Milk
+```
+
+This directive must be the first line of the note. When using the web interface
+to change note options, this directive will be added and updated automatically.
+ (You do not need to memorize it.)
+
+**Note:** When viewing this documentation in a rendered format, the directive will
+not be visible.  It is shown below with an added space before the colon.
+
+```
+[//] : # (list,sort)
+```
+
+# Available options
+
+#### Pin
+
+Pinned notes will appear in another notebook labeled "Pinned"
+
+#### List
+
+Emphasize and remove duplicate list items
+
+#### Sort
+
+Sort list items alphabetically
+
+#### Dismissed
+
+Show dismissed list items

M README.md => README.md +12 -75
@@ 5,6 5,12 @@
 
 Shareable Git-backed Markdown-formatted notes
 
+## Features
+
+- Notebooks are standard git repositories containing .md files
+- Notebooks may be used privately, shared with one or more users privately, or shared publicly
+- Notes may be customized (e.g., to-do style lists with automatic sorting and de-duplication)
+
 ## Demo
 
 [**Try stick**](https://stick.rocketnine.space/#login/c89f5381659ad34bd84967fdbbb5e76834495063dc93ed3902bf4e186f4def90)


@@ 17,7 23,9 @@ Choose one of the following methods:
 
 ### Download
 
-[**Download stick**](https://stick.rocketnine.space/download/) (Windows and Linux binaries are available)
+[**Download stick**](https://stick.rocketnine.space/download/)
+
+Windows and Linux binaries are available.
 
 ### Compile
 


@@ 27,49 35,7 @@ GO111MODULE=on go get -u git.sr.ht/~tslocum/stick
 
 ## Configure
 
-Initialize a notebook by creating an empty git repository:
-
-```
-stick init /home/stick/notes/johnsnotes
-```
-
-Configure stick via ~/.config/stick/stick.yml (or elsewhere by using --config later)
-
-```yaml
-# Used when hashing data (set to a random string)
-salt: xXxsh3cr3txXx
-
-# Serve notes on localhost only
-# Set to :9991 to serve on all interfaces (not recommended, use a reverse proxy instead)
-serve: localhost:9991
-
-# Authors are defined by email and name (used when committing)
-authors:
-  john@hotmail.com: John Doe
-  jane@aol.com: Jane Doe
-
-# Notebooks can be shared between authors with varying access levels
-# When an access level isn't specified, read/write is assumed
-# John's notebook allows read/write access to himself and read-only access to Jane
-notebooks:
-  John's notes:
-    repo: /home/stick/notes/johnsnotes
-    serve:
-      - john@hotmail.com
-      - jane@aol.com: read
-
-  Jane's notes:
-    repo: /home/stick/notes/janesnotes
-    serve:
-      - jane@aol.com
-      - john@hotmail.com: read
-
-  Shared notes:
-    repo: /home/stick/notes/shared
-    serve:
-      - john@hotmail.com
-      - jane@aol.com
-```
+See [CONFIGURATION.md](https://man.sr.ht/~tslocum/stick/CONFIGURATION.md)
 
 ## Run
 


@@ 77,38 43,9 @@ notebooks:
 stick serve
 ```
 
-### Options
-
-Note display and behavior can be customized via the **options directive**:
-
-```
-[//]: # (list,sort)
-
-* [ ] Eggs
-* [ ] Flour
-* [X] Milk
-```
-
-This directive must be the first line of the note. When using the web interface
-to change note options, this directive will be added and updated automatically.
-
-The following options are available:
-
-#### Pin
-
-Pinned notes will appear in another notebook labeled "Pinned"
-
-#### List
-
-Emphasize and remove duplicate list items
-
-#### Sort
-
-Sort list items alphabetically
-
-#### Dismissed
+## Customize
 
-Show dismissed list items
+See [OPTIONS.md](https://man.sr.ht/~tslocum/stick/OPTIONS.md)
 
 ## Support
 

D branch.go => branch.go +0 -9
@@ 1,9 0,0 @@
-package main
-
-import "net"
-
-func connectToBranch() {
-	c, err := net.Dial("unix", "/tmp/branch.sock")
-	CheckError(err)
-	defer c.Close()
-}

D cli.go => cli.go +0 -1
@@ 1,1 0,0 @@
-package main

M config_test.go => config_test.go +2 -2
@@ 27,7 27,7 @@ notebooks:
     repo: /home/stick/repo/b
     serve:
       - check@stick.rocketnine.space: check
-      - write@stick.rocketnine.space
+      - read@stick.rocketnine.space
 `)
 
 	c, err := ReadConfigData(configData)


@@ 44,6 44,6 @@ notebooks:
 		c.Authors)
 	assert.ElementsMatch(t, []*NotebookConfig{
 		{Label: "Test Notebook A", Repo: "/home/stick/repo/a", Serve: map[string]int{"read@stick.rocketnine.space": AuthorAccessRead, "write@stick.rocketnine.space": AuthorAccessWrite}},
-		{Label: "Test Notebook B", Repo: "/home/stick/repo/b", Serve: map[string]int{"check@stick.rocketnine.space": AuthorAccessCheck, "write@stick.rocketnine.space": AuthorAccessWrite}}},
+		{Label: "Test Notebook B", Repo: "/home/stick/repo/b", Serve: map[string]int{"check@stick.rocketnine.space": AuthorAccessCheck, "read@stick.rocketnine.space": AuthorAccessRead}}},
 		c.Notebooks)
 }

M go.mod => go.mod +5 -3
@@ 7,12 7,14 @@ require (
 	github.com/daaku/go.zipexe v1.0.1 // indirect
 	github.com/google/go-cmp v0.3.1 // indirect
 	github.com/gorilla/mux v1.7.3
-	github.com/gorilla/websocket v1.4.0
+	github.com/gorilla/websocket v1.4.1
 	github.com/pkg/errors v0.8.1
 	github.com/stretchr/testify v1.4.0
 	github.com/urfave/cli v1.21.0
-	golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect
-	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect
+	golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 // indirect
+	golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
+	golang.org/x/sys v0.0.0-20190904154756-749cb33beabd // indirect
+	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
 	gopkg.in/src-d/go-git.v4 v4.13.1
 	gopkg.in/yaml.v2 v2.2.2
 )

M go.sum => go.sum +10 -6
@@ 28,8 28,8 @@ github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
 github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
-github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
+github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
 github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=


@@ 70,18 70,20 @@ golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnf
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
 golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 h1:Gv7RPwsi3eZ2Fgewe3CBsuOebPwO27PoXzRpJPsvSSM=
+golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 h1:fHDIZ2oxGnUZRN6WgWFCbYBjH9uqVPRCUVUDhs0wnbA=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
+golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ=
-golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd h1:DBH9mDw0zluJT/R+nGuV3jWFWLFaHyYZWD4tOT+cjn0=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=


@@ 90,6 92,8 @@ golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDq
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg=
 gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98=
 gopkg.in/src-d/go-git-fixtures.v3 v3.5.0 h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg=