hh-web /

Filename Size Date modified Message
auth
couch
l10n
logs
meta
taglibraries
templates
1.0 KB
Initial commit for publication
2.5 KB
Removed reference to dependencies in README (not valid)
12.6 KB
Finished implementing support for templates that render differently for specific user agents. Did it by using a double-cache approach: 1st level of cache still by URL, but once a cache item is found, check a secondary cache in the item based on user agent.
4.0 KB
Ugh. left some break-on-signals in checked in code
2.9 KB
Changing package dependencies from strings to symbols
615 B
Added support in images for pulling fonts from a package; using that to properly render the HH favicon
2.4 KB
Initial commit for publication
1.4 KB
Moved auth library into hh-web
4.5 KB
Initial commit for publication
18.4 KB
Initial commit for publication
12.8 KB
Added support for {} around attributes in tags: (p { :id foo } +nbsp+)
20.2 KB
Added support for {} around attributes in tags: (p { :id foo } +nbsp+)
17.6 KB
Added support for {} around attributes in tags: (p { :id foo } +nbsp+)
15.1 KB
Interim work for packageurls
4.4 KB
Finished implementing support for templates that render differently for specific user agents. Did it by using a double-cache approach: 1st level of cache still by URL, but once a cache item is found, check a secondary cache in the item based on user agent.
5.7 KB
Moved auth library into hh-web
About HH-Web

HH-Web is the beginnings of a web application framework written in Lisp designed to streamline development of modern web applications.

See the LICENSE file for the license covering all code within the HH-Web directory and any subdirectories.  
Basically, it's the MIT license, so you are free to do what you want, provided you reproduce the original copyright.

For more details, please refer to http://haphazardhouse.net/projects/hh-web.

* Features *

In its present form (as of August 2010), there are 4 principle features in hh-web:

  * Custom tags: HH-Web let's the developer write a web page using convention Lisp s-expression syntax, completely 
  with properly generated CSS & Javascript.  More importantly, commonly used fragments of HTML/CSS/Javascript
  can be bundled as a tag (just like HTML tags such as p, div, h1, etc.), and the corresponding HTML/CSS/Javascript
  for the expected fragment will be generated instead.  Using custom tags means that most of the development of a new
  site involves the common elements that make up the pages, creating custom tags (with parameters or "attributes", when 
  necessary), and then authoring the pages as templates using both HTML tags and the site-specific custom tags.

  * Regex-based URL dispatching: Inspired by Django's use of regex dispatching, HH-Web implements a similar technique, 
  but in Lisp.  Most importantly, if the regex contains "variables" (e.g., named registers, in regex parlance), then
  symbols will be interned for those variables and exposed as parameters to the URL's handler.  Thus, components
  of an URL's path will automatically be extracted and made available as arguments to the handling code.

  * Dynamic code reloading: While not implemented for every aspect of hh-web (e.g., URLs), for tags and templates, changes
  in the underlying code is by default automatically reflected the next time the page is refreshed in the browser.  The intent
  is to provide the equivalent usability of other web authoring environments such as PHP or ASP: change the code for a page,
  and reflect that immediately in the browser.

  * Integrated caching: HH-Web's support for caching is evolving, but in its current form it permits marking caching guidelines
  for specific URLs.  Specifically, caching causes HH-Web to preseve any generated content (from templates and tags, typically) in
  an in-memory cache for later use.  If a request for a page in its map appear again, then HH-Web will serve the content from the cache,
  rather than invoking code to regenerate the content fresh.  
  
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.