@@ -32,7 +32,7 @@ The graph represents a chat channel and contains all chat messages in order. A c
3232
3333
3434Here's the definition of the schema in the chat validator mark:
35−File: `mar/graph/validator/chat.hoon`
35+File: [`mar/graph/validator/chat.hoon`](https://github.com/urbit/urbit/blob/fbd85abf4e41d580654606a6defb764f6a97256d/pkg/arvo/mar/graph/validator/chat.hoon#L33-L40)
3636```
3737++ grab
3838 |%
@@ -76,7 +76,7 @@ For example, it wouldn't make sense to give readers `%self`, because they do not
7676
7777Let's see how this permissioning system is implemented in the validator code.
7878
79−Here is the `grow` arm of `mar/validator/chat.hoon`
79+Here is the `grow` arm of [`mar/validator/chat.hoon`](https://github.com/urbit/urbit/blob/fbd85abf4e41d580654606a6defb764f6a97256d/pkg/arvo/mar/graph/validator/chat.hoon#L7-L20)
8080```
8181|_ i=indexed-post :: A
8282++ grow
@@ -131,7 +131,7 @@ The root graph represents the whole Links collection. Every Links entry is a chi
131131The comments section holds all individual comment nodes, but comments are not simple leaf nodes. An individual comment is actually a structural node that acts as a revision container, storing the comment's full edit history by storing each edit as a child node. The front-end is responsible for properly displaying the latest revision of the comment.
132132
133133
134−Here's the validator, located at `mar/graph/validator/link.hoon`:
134+Here's the validator, located at [`mar/graph/validator/link.hoon`](https://github.com/urbit/urbit/blob/fbd85abf4e41d580654606a6defb764f6a97256d/pkg/arvo/mar/graph/validator/link.hoon#L49-L73):
135135```
136136++ grab
137137 |%
@@ -198,7 +198,7 @@ Let's analyze the permissions structure.
198198
199199**TODO** *stubbed out awaiting potential changes in source*
200200
201−Here's how it is implemented:
201+Here's how it is implemented [(source)](https://github.com/urbit/urbit/blob/master/pkg/arvo/mar/graph/validator/link.hoon#L2-L27):
202202
203203```
204204|_ i=indexed-post
@@ -286,7 +286,7 @@ Here's how it is implemented:
286286
287287Here, a notebook, which is a collection of blog posts (called notes), is represented by the root graph. All data associated with the blog post is represented by the top level node, which is the note itself along with the associated comments. One level deeper, we see two container structures. The first one is the post revision container; it holds the edit history of your blog post. Every child node of this corresponds to the actual title and text of your blog post. The second one is the comments container. This represents the comment section of your blog post. Every child node of this is not a comment, but a comment revision container, which, as before, contains the edit history of your comment.
288288
289−Here's its validator
289+Here's its validator, located at [`mar/graph/validator.hoon`](https://github.com/urbit/urbit/blob/master/pkg/arvo/mar/graph/validator/publish.hoon#L56-L97)
290290```
291291 ++ noun
292292 |= p=* :: 1
@@ -374,10 +374,12 @@ Notably, the revision container for the blog post itself allows the post to be e
374374 <img src="images/image14.png"/>
375375</p>
376376
377−Let's take a look at the permissioning structure for Publish.
377+Let's take a look at the permissioning structure for Publish.
378378
379379**TODO** *stubbed out awaiting potential changes in source*
380380
381+[(source)](https://github.com/urbit/urbit/blob/fbd85abf4e41d580654606a6defb764f6a97256d/pkg/arvo/mar/graph/validator/publish.hoon#L6-L24)
382+
381383```
382384|_ i=indexed-post
383385++ grow