Bourne Shell powered zero-conf static site generator, gopher log phriendly, & ultra portable - originally created to create simple www web logs turns out to work pretty darn well for phlogs. use. fork. enjoy! (now the Official Repo!) :E
Go to file
pifty edef77d5a7 Adding sample .veerc for gopher-only mode. 2020-07-12 05:44:41 +00:00
bin initial commit 2020-07-11 02:48:49 +00:00
custom-formatters initial commit 2020-07-11 02:48:49 +00:00
patches initial commit 2020-07-11 02:48:49 +00:00
sample-hooks initial commit 2020-07-11 02:48:49 +00:00
FORKING initial commit 2020-07-11 02:48:49 +00:00
INSTALL initial commit 2020-07-11 02:48:49 +00:00
LICENSE initial commit 2020-07-11 02:48:49 +00:00
README initial commit 2020-07-11 02:48:49 +00:00
dot.veerc initial commit 2020-07-11 02:48:49 +00:00
gopher-only.veerc Adding sample .veerc for gopher-only mode. 2020-07-12 05:44:41 +00:00

README

vee is a highly portable, zero configuration (but configurable), cli 
microblogging tool that I created because I hated having to set up 
web-based blogging software every so often. It became popular for some 
reason, and now it's used in some for by many people - mostly in silence. 
It does everything I want it to do, hence the lack of feature creep; 
however I am always interested in improving it in some basic way.

It's available in a variety of package repositories, like pkgsrc and
FreeBSD Ports.

vee is one of hundreds of "static site generators", many of which are
listed at https://staticsitegenerators.net.

Version: 

2.0-rc1
License:

vee is released under the WTFPL. See the LICENSE file for more information.

Portability Goals:

0. no external dependencies other than Bourne Shell and traditional 
   Unix userland tools (no need to install non-optional utils)
1. any *nix platform that supports Bourne Shell (sh)
2. it "just works" out of the box
3. new versions won't require "upgrading"

Incompatibilities:

The goal of vee is that it should work on minimal systems using only
original Bourne shell (sh) and without having to install anything. I
originally began this work on FreeBSD, but it seems that a couple of
utilities seem to not be the most portable in their usage. In particular,
`date` and `sort` have caused some headaches, but alas they have been
tamed.

Project Status:

This is one of those "forever" projects that met my needs very early
on, and I have revisited the code for only incremental improvements.
A flurry of current activity has been spurred by the 'rona "stay at
home" orders and a feature request to support Gopher "phlogs". Current
work onthat is moving us towards version 2.0.

Bug reports and Feature Requests:

 https://git.sdf.org/pifty/vee/issues
 
 Note: HTML support will only prioritize bug reports. Feature requests
 related to Gopher support will receive the most interest.

Via `vee -h`:

           .----------------.  .----------------.  .----------------.         
          | .--------------. || .--------------. || .--------------. |        
          | | ____   ____  | || |  _________   | || |  _________   | |        
          | ||_  _| |_  _| | || | |_   ___  |  | || | |_   ___  |  | |        
          | |  \ \   / /   | || |   | |_  \_|  | || |   | |_  \_|  | |        
          | |   \ \ / /    | || |   |  _|  _   | || |   |  _|  _   | |        
          | |    \ ' /     | || |  _| |___/ |  | || |  _| |___/ |  | |        
          | |     \_/      | || | |_________|  | || | |_________|  | |        
          | |              | || |              | || |              | |        
          | '--------------' || '--------------' || '--------------' |        
           '----------------'  '----------------'  '----------------'         
                   the Zero-conf, commandline blog tool thingy                
                 .... now with GopherMode! (gopherlog support)              
                                 (see -g|-G)                                  
                                                                              
Version: 2.0-rc1                                                             
                                                                              
Options:                                                                      
  -b                Batch mode; used when piping in msg via stdin             
  -B  file          Define bottom template; default is ./vee-bottom.tpl       
  -c  [1-9\d*]      Specify the number of characters 'fold' allows per line   
                    this only applies when 'fold' (-f) is used                
  -d  'publis_dir'  Specify the directory .vee is in - defaults to PWD        
  -D                Debug mode with, set -x                                   
  -f  'format'      Option for setting formatinstead of the default, groff;   
                    'groff', 'fmt', 'fold', and 'none' are all supported      
  -g                Update the gophermap file with the INDEX                  
  -G                Exclusively update the gophermap file rather than INDEX   
                    Note: for -g|-G, the gophermap is merely appended to, there
                    is no maintaining of the order from newest first to last; 
                    -g|-G will create the gophermap if it isn't found.        
  -h                Prints this blurb                                         
  -i  'custom.html' Specify a custom index file over the default              
  -I                force index file to be "index.html"                     
  -l                edit latest post's *.raw; used with '-r' publishes changes;
                    calls reformat automatically;                             
  -L  [1-9\d*]      edit the Nth latest, relative to last post; lp starts at 1
  -m  'message ...' Epecify entry message at commandline and avoid vi         
  -n                Lists all entries, newest first, then quits               
  -o                Lists all entries, oldest first, then quits               
  -p                See what *raw files don't have an entry in the INDEX      
  -P                Forever deletes all *raw and formatted files associated with
                    posts that are listed with -p;                            
  -r  [1-9\d*]      Reformats the Nth latest post                             
  -R                reformats _all_ .vee/*.raw files; -c applies as well      
  -s  'summary'     Placed below title in INDEX                               
  -t  'title'       Specify title at commandline and avoid annoying default prompt
  -T  file          Define top template; default is ./vee-top.tpl             
  -u  <octal>       Temporarily set umask to <octal>                          
  -U                Temporarily set umask to 0022                             
  -v                Version and exit                                          
  -x  hook          Defines hook if not using default ./vee-pre; hook       
                    must be executable, i.e., chmod 755 vee-pre               
                                                                              
Examples:                                                                     
                                                                              
%vee                                                                          
                                                                              
 user will be prompted for title and presented with vi                        
                                                                              
 if no default dir/files are found, they will be created                      
                                                                              
%vee -t "this is the title"                                                 
                                                                              
 user will just be presented with a vi session;                               
                                                                              
%cat text.txt | vee -b -t "my title" -m "text to go before stdin"         
                                                                              
 This publishes contents of text.txt with provided title; -m's msg will be    
 shown above the cat'd text. This means of publishing content is well suited  
 for use with cronjobs or batch processes. It also works when GopherMode! is  
 invoked (-g|-G).                                                             
                                                                              
%vee -l       # edit and reformat the latest post                             
%vee -L 5     # allows one to edit and reformats the fifth latest post        
%vee -r 8     # reformats the 8th latest post                                 
%vee -n       # see which post is the 8th latest post                         
%vee -R       # reformats ALL posts that have *.raw files                     
                                                                              
To delete a post forever:                                                     
                                                                              
1) delete the entry in the INDEX                                              
                                                                              
2) purge the entry:                                                           
  %vee -p    # make sure it is the one you want to purge                      
  %vee -P    # purge it!                                                      
                                                                              
 brings up the latest entry as a vi sessions; when changes are save,          
 all messages are reformatted                                                 
                                                                              
              :E We Need to Talk About Gopher Support :E                      
                                                                              
vee supports the creation of content in the gophersphere by formatting text-only
posts using the provided formatters (meant for text-only anyway). vee also goes
a step further and generates the gophermap (index listing) for you.           
                                                                              
All of the vee commands immediately above *should* work when GopherMode! is on
which is as simple as adding the -g xor -G flags. -g invokes the Gopher bits  
*and* the default www support. -G only invokes the Gopher bits. Not using -g  
 or -G only involes the traditional www support.                              
                                                                              
Usage examples from above, with GopherMode! enabled:                          
                                                                              
%vee -l -G      # edit and reformat the latest post                           
%vee -L 5 -g    # allows one to edit and reformats the fifth latest post      
%vee -r 8 -G    # reformats the 8th latest post                               
%vee -n         # see which post is the 8th latest post                       
%vee -R -g      # reformats ALL posts that have *.raw files                   
                                                                              
Notes:                                                                        
                                                                              
0. Reminder - vee requires zero configurations to start, but *can* be coed    
   by creating a .veerc file. This is also the case when in GopherGeb!Mode    
                                                                              
1. Batch mode looks for piped input via STDIN; if none after a short time,    
   message creation fails UNLESS something was passed in via '-m' as well.    
   If nothing was passed in via '-t' for the title, some default is used;     
   This is set at the top of the script as 'DEFAULT_TITLE'.                   
                                                                              
2. Interactive mode (default) prompts for a title if no '-t' is provided.     
   Such is the case even if '-m' is used.  If '-m' is not used in this        
                                                                              
3. Gopher support (-g|-G) is limited and users may discover weird issues with 
   updating posts or the batch reformatting options. It's a best effort. Also 
   the gophermap is fully regenerated whenever a new post is added; for a large
   number of posts this may take a few seconds.                               
                                                                              
4. Patches are welcome; the goal is not more feature bloat, but a nicer       
   way of dealing with STDIN, etc and reports/fixes for any weird gopher phlog
   bugs or UX would be greatly welcomed. vee development laid dormant for years,
   being used as a niche static site generator. But the rediscovery of Gopher 
   by the masses has made adding Gopher support a high priority.              
                                                                              
Copyright (c) 2007-infinity /me
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.