Cleans up error reporting when an ajax call fails, and thus
the #page-content div can't be filled. This is accomplished by using
a #status which has a p.message element that can be populated for text
displaying status messages. By adding either .error or .success
to #status causes it to be highlighted as either a error or success message
respectively.
When its the first load of the page, and #page-content hasn't yet been
populated with content, an error message is shown in the #page-content
div.
Removed the /posts/ and /tags/ fallbacks in the generated
manifest.appcache because even when online, ajax calls for invalid URLs
under those paths return the respective fallback page instead of an
error message, and populate the #page-content div with the fallback. So
from this point forward the fact that the website is offline will be
handled from JavaScript.
When a page is not accessible in the application cache and the user is
offline, an error message is displayed using the mechanism mentioned
above.
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
- fixed path of gitsubmodules
- added folder 'files' for files that are not to be App Cached
and included my public gpg key
- did a little work on the business card (displayed on the home page and
contact page
- changed app cache fallback pages to be in haml instead of html
js/default.js:
- added support for mailto and download-able (not app cached) links
- added support for mathjax (called on each call of 'loadPageContent')
site.hs:
- added support for using arbitrary pandoc reader/writer extensions
- added support for rendering of maths (using mathjax)
- added generation of tag pages to the application cache (a fallback
is still used for the rss feeds as they are not necessary while
offline)
TODO:
- pagination (n posts per page)
- save n most recent posts to localstorage and support option to
add/remove posts
- add general fallback page to handle main rss feed and other files
- content and styling
Signed-off-by: Collin J. Doering <rekahsoft@gmail.com>
Almost ready for prime time. What remains to be completed is as follows:
* pagination
* fix the escape parsing bug in the section parser
* add support to locally cache posts (opt-in)
* clean-up the code
* finish contact page and home page
The following was completed since last commit:
* added gpl.txt to project
* deleted otf free fonts to save space
* various structural changes
* added a new post 'first-post'
* various ascetic changes to templates and sass code
* used function to remove js from global namespace (js/default.js)
* added support for application cache and generating a cache manifest
file (site.hs) as well as created appropriate fallback .html
files '{post,tags}-fallback.html'
Signed-off-by: Collin J. Doering <rekahsoft@gmail.com>
* Changes
** Hakyll "site.hs"
*** Added the ability to have per-page templates (for all "pages/*")
*** "pages/*" can now be sectioned off into blocks
A section is a logical division of a page. It removes the requirement
for pages that have multiple sections to have some html in the
markdown for the page or to move some of the markdown content to the
template. Both of which are un-maintainable.
There are two types of sections, both with slightly different syntax's.
A _global section_ is a section who's content will be included in all
sections (regardless of ordering). This is handy for including links
and footnotes that might be needed in more then one section or
non-section . It is not accessible from the Context obtained from
genSectionContext. To indicate where a global section begins and ends
use "$section$" and "$endsection$" respectively (without
quotes). Formally:
$section$ <body> $endsection$
A _named section_ is a section of a document that can be accessed by a
given name from the context obtained from the function
genSectionContext. To specify a named section use the following syntax:
$section("<name>")$ <body> $endsection$
where <name> is the name of the section (any character except \")
and <body> is the section body
Anything that is not a section is referred to as a non-section. These
are still important as they will include all
content of the global sections of the document as well as the
non-section itself. To be a little more formal a non-section is
everything between "$end-section$" and ("$section$ or
$section("<name>")$").
**** Example: mypage.markdown
page title
==========
$section("column-one")$
This is text that can be formatted in the individual page template
located at "templates/pages/mypage.haml". Here is a link from a
global section. See [Home][].
$endsection$
This is some text in between two sections or a section and the top or
bottom of the page. It can be accessed by $body<n>$ where <n> its
position from the top of all non-sections starting from 0. Here i can
also use
$section$
[Home]: http://blog.rekahsoft.ca
$endsection$
***** To see more visit
- "pages/<name>" where the sectioned page markdown is written
- "templates/pages/<name>.haml" where the individual page
template is stored/loaded from
- "templates/page.haml" the generic page wrapper
** Miscellaneous
*** Reorganized the file structure
- created folder "image-src" for image-sources
- created folder "lib" for libraries that will be needed on the server
- moved jQuery and Skeleton to lib and made appropriate
- created folder "fonts" for FreeMono and FreeSans font files which are
now used via css @font-face
- create folder "css" and setup "site.hs" to minimize all css files
and publish them to idRoute
- created folder "sass" which contains a variety of s[ac]ss files along
with a file named "default.s[ax]ss" which will be processed by sass
to include any other s[ac]ss files that are needed and output
"default.css" to the site root
*** cleaned up .gitmodules
** Javascript
- fixed processing of urls
- temporarily disabled nojs version of site as its under heavy development
Note: still need to merge changes made to default version into the
nojs one; specifically having "templates/pages/*.haml" be applied to
there respective page before "templates/page.haml" is applied to the
result
** Styling
- switched to using sass (with a side bourbon) instead of css
leaving css folder and processing for convenience
- slimmed the site of the nav-loading image
- updated favicon (rounded corders, preparing to support more sizes)
- updated the logo-banner
- added new images for tab page
** Templates
- converted all "templates/**" to haml and made the apropriate
adjustments in site.hs
- added "templates/pages/*" which contains individual templates per
page in "pages/*"
** Known Issues
**** Sections cannot contain $section$ or $section("<name>")$ or $sectionend$ in them (this is an issue with escaping in the parser)
**** pagination has been attempted but no solution yet
**** haven't been able to generate two sets of tag-pages (one for the default version and the other for the nojs version
**** opening a internal link in a new tab in any browser will load the snippet that would normally loaded by by ajax
Signed-off-by: Collin J. Doering <rekahsoft@gmail.com>