86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| format should change permalink
 | |
| date
 | |
| show file path
 | |
| show prod url
 | |
| show dev url
 | |
| 
 | |
| 
 | |
| POST tests
 | |
| create a title and delete it (no error)
 | |
| change the format. does the permalink change? (yes)
 | |
| change the permalink. change the title. does the permalink stay? (yes)
 | |
| 
 | |
| change the format. does the permalink change? (yes)
 | |
| change the format in the frontmatter permalink. does the format change? (yes)
 | |
| 
 | |
| create a description and delete it (no error)
 | |
| create a description. does the frontmatter change? (yes)
 | |
| 
 | |
| 
 | |
| protection
 | |
| Don't allow changing the uuid, original_url, or original_date
 | |
| 
 | |
| TODO
 | |
| ---
 | |
| 
 | |
| check that no other post uses the same permalink
 | |
| 
 | |
| 
 | |
| 
 | |
| default data-model 'ruhoh@2.2'
 | |
| other data-model 'desirae@1.0'
 | |
| 
 | |
| Widgets
 | |
| =======
 | |
| 
 | |
| All widgets should export an object with a `create(widgetConf, desiState)` function that returns a promise.
 | |
| 
 | |
| ```yaml
 | |
| widgets:
 | |
|   foogizmo:
 | |
|     # only stuff that is intensely specific to foogizmo goes here
 | |
|     # stuff like google ad and disqus ids should go in config.yml or data.yml
 | |
|     config:
 | |
|       foobeep: boop
 | |
|       
 | |
|     handle:
 | |
|       - html
 | |
|       - markdown
 | |
|     handlers:
 | |
|       post: fooposter
 | |
|       page: foopager
 | |
| ```
 | |
| 
 | |
| ```javascript
 | |
| 'use strict';
 | |
| 
 | |
| module.exports.Foogizmo.create = function (foogizmoConf, desiState) {
 | |
|   return new Promise(function (resolve) {
 | |
| 
 | |
|     function pager(desiPageState) {
 | |
|       // Do processing
 | |
| 
 | |
|       return Promise.resolve();
 | |
|     }
 | |
| 
 | |
|     function poster(desiPostState) {
 | |
|       // Do processing
 | |
| 
 | |
|       desiPostState.fooembedinator = function (fooval) {
 | |
|         // figure out what type of link fooval is and return iframe html
 | |
|         return '<iframe src="http://embedinator.com/"' + foovalProcessed + '></iframe>'
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     resolve({ foopager: pager, fooposter: poster });
 | |
|   });
 | |
| }
 | |
| ```
 | |
| 
 | |
| Overlays
 | |
| --------
 | |
| 
 | |
| For any config a widget uses, it should also check on post.fooconfig and theme.fooconfig to make sure that they don't override the foogizmo.config.fooconfig
 | |
| 
 | |
| 
 |