41 lines
		
	
	
	
		
			979 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			979 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| tazblog CLI
 | |
| ===========
 | |
| 
 | |
| My blog stores its content in DNS, spread out over three types of `TXT` entries:
 | |
| 
 | |
| * `TXT _posts.blog.tazj.in.`: A sorted list of posts, serialised as a JSON list of
 | |
|   strings (e.g. `["1486830338", "1476807384"]`)
 | |
| 
 | |
| * `TXT _chunks.$postID.blog.tazj.in`: JSON chunks containing the blog post text
 | |
| 
 | |
| * `TXT _meta.$postID.blog.tazj.in`: JSON blob with blog post metadata
 | |
| 
 | |
| All JSON blobs are base64-encoded.
 | |
| 
 | |
| This CLI tool helps to update those records.
 | |
| 
 | |
| Each blog post data is a series of JSON-encoded structures which follow one of
 | |
| these formats:
 | |
| 
 | |
| ```
 | |
| struct metadata {
 | |
|     chunks: int
 | |
|     title: string
 | |
|     date: date
 | |
| }
 | |
| ```
 | |
| 
 | |
| Where `chunks` describes the number of chunks following this format:
 | |
| 
 | |
| ```
 | |
| struct chunk {
 | |
|     c: int
 | |
|     t: string
 | |
| }
 | |
| ```
 | |
| 
 | |
| Writing a blog post to DNS means taking its text and metadata, chunking it up
 | |
| and writing the chunks.
 | |
| 
 | |
| Reading a blog post means retrieving all data, reading the metadata and then
 | |
| assembling the chunks in order.
 |