Commit Graph

14 Commits

Author SHA1 Message Date
Collin J. Doering e4032ba6b3
site: Vendor MathJax from guix, removing dependency on CDN
* .gitignore: Ignore lib/MathJax symlink.
* README.org: Variety of changes, most notably using the README.org file as a literate source
file, which generates various development scripts and a Makefile. One such script is the
vendoring script, which is used to setup vendor symlinks.
* bootstrap.sh: Run emacs to tangle the literate README.org file, after which, run setup
vendored dependency links.
* guix.scm: Depend on js-mathjax, and vendor its built files into lib/MathJax before building
the site.
* pages/index.markdown: Remove stale reference to jquery-address.
* src/site.hs: Adjust hakyll rules to include MathJax from its now locally vendored location.
Additionally, do a tiny bit of rule tidying.
* templates/default.html: Remove stale reference to appcache. Remove reference to MathJax via
cdn and reference the now vendored variant.
2023-12-26 18:01:14 -05:00
Collin J. Doering f16712cc38
Update copyright year in a variety of files 2023-04-30 13:24:05 -04:00
Collin J. Doering b1875dfc27
Update copyright year/s 2021-11-26 08:08:34 -05:00
Collin J. Doering 6979e8cbd4 Update copyright in LICENSE file and on home page
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2016-02-08 17:15:32 -05:00
Collin J. Doering a4b3d3d35e Moved pages/home.markdown to pages/index.markdown
This removes a special case when generating the pages. Namely having to
change the route of "pages/home.markdown" to "pages/index.markdown"
before being converted to its final route of "/index.html".

Note: Because "pages/home.markdown" was renamed, its template
"templates/pages/home.html" has also been renamed to
"templates/pages/index.html".

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-08-16 02:15:26 -04:00
Collin J. Doering 723fde5fee Fixed creative commons license link on home page
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-01-19 23:40:03 -05:00
Collin J. Doering d5f2f56ec4 Completed porting haml templates back to html
Removed all haml templates and returned to using the default hakyll
style html templates. The main reason for this was to avoid the
requirement for external tools that cannot be installed with cabal. Also
as much as haml is nicer to read and write (in my opinion) it is in this
case just adding another layer of needless abstraction.

Perhaps in the future haml-like functionality can be added to default
hakyll templates. Until then, follow the KISS mentality.

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-01-14 04:50:29 -05:00
Collin J. Doering 038657caf4 Updated utilized open-source software list on homepage
* removed references to sass and bourbon
* added reference for clay

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-01-14 04:50:29 -05:00
Collin J. Doering a746af2a02 Fixed link to git repository on home page
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-01-14 04:50:28 -05:00
Collin J. Doering 496e0d5396 Bump to Hakyll 4.6 and clean up
Signed-off-by: Collin J. Doering <rekahsoft@gmail.com>
2015-01-14 04:50:28 -05:00
Collin J. Doering dc814507cc Further various fixes and improvements
- 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>
2014-03-12 20:59:58 -04:00
Collin J. Doering 3a7e6b5e4a Variety of changes; see log for more details
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>
2014-03-05 18:20:03 -05:00
Collin J. Doering 512e89f565 Major changes! See full log.
* 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>
2013-12-10 23:31:48 -05:00
Collin J. Doering 610d11903b Hakyll configuration primarily complete.
All changes are detailed below. Both the ajax (default) and nojs version
are being generated properly. Remaining tasks include:
 - theming (css - both versions)
 - additional work on the templates (both versions [where applicable])
 - writing content (used by both versions but only one copy needed)
 - writing addition js where needed (for default version only)

Changes:
  .gitmodules: added/fixed git submodules; uses bootstrap and jquery-address
  css/default.css: various minor modifications to make things look sane
  index.html: home page for default version of site
  js/default.js: minor modifications to enable carousel and loading of content with ajax
  news/*: A bunch of bogus news articles to test the generation of the site
  pages/*: All pages are written here. Giving a 'weight' in the metadata will be used to order
    the navigation.
  site.hs: Many changes..see the source. Mostly complete (perhaps consider doing a screen
    reader version of the site)
  templates/*: Did various work thoughout the templates (including splitting up some between
    the different versions (noted by templateName-versionName)
      templates/archive.html
      templates/default-nojs.html
      templates/default.html
      templates/footer.html
      templates/nav-nojs.html
      templates/nav.html
      templates/news-nojs.html
      templates/news.html
      templates/page.html
      templates/post-list.html
      templates/post.html
      templates/recent-news-nojs.html
      templates/recent-news.html
2013-11-02 21:08:00 -04:00