From 876b763a8d26a0eace08b70cfd50d44183a2bdde Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Sat, 1 Jun 2013 23:23:09 -0400 Subject: [PATCH] Added intial pages --- .gitignore | 2 +- Makefile | 7 ++- README | 6 ++- docs/10-about.pg | 37 ++++++++++++++++ docs/20-projects.pg | 41 ++++++++++++++++++ docs/30-papers.pg | 7 +++ docs/about/gnu-inside-ex | 6 +++ docs/about/inside.pg | 33 ++++++++++++++ images/{gnulinuxinside.png => gnu-inside.png} | Bin images/gnu-inside.xcf | Bin 0 -> 6842 bytes images/heckert-gnu.png | Bin 0 -> 9303 bytes tools/doclist | 39 +++++++++++++++++ tools/extfmt | 16 +++++-- tpl/.config | 5 +-- tpl/content | 5 +++ 15 files changed, 193 insertions(+), 11 deletions(-) create mode 100644 docs/about/gnu-inside-ex create mode 100644 docs/about/inside.pg rename images/{gnulinuxinside.png => gnu-inside.png} (100%) create mode 100644 images/gnu-inside.xcf create mode 100644 images/heckert-gnu.png create mode 100755 tools/doclist create mode 100755 tpl/content diff --git a/.gitignore b/.gitignore index c516d5d..cde36a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ *.html -# build dir www-root +docs/papers/.list diff --git a/Makefile b/Makefile index 0313117..6cba16e 100644 --- a/Makefile +++ b/Makefile @@ -58,8 +58,11 @@ thoughts: $< ./tools/mgify "$@" -%.html: %.pg - $(repo2html) -icontent -ftools/extfmt < $< > $@ +%.html: %.pg docs/papers/.list + $(repo2html) -icontent -ftools/extfmt <$< >$@ + +docs/papers/.list: $(articles) + echo "$(articles)" | tr ' ' '\n' | tools/doclist >$@ pages: $(pages) articles: $(articles) diff --git a/README b/README index 4293bb9..e8d6356 100644 --- a/README +++ b/README @@ -1,3 +1,5 @@ -Just a bunch of random thoughts at random times. +The miscellaneous thoughts and ramblings of a free software hacker. -http://mikegerwitz.com/thoughts/ +This website is processed with repo2html. + +http://mikegerwitz.com/ diff --git a/docs/10-about.pg b/docs/10-about.pg index e69de29..1544eb5 100644 --- a/docs/10-about.pg +++ b/docs/10-about.pg @@ -0,0 +1,37 @@ +About + +Mike Gerwitz is a [free (as in freedom) software][0] [hacker][1] and activist +with an insatiable lust for the command line of a [GNU][2] operating system. +While much of his earlier experience focused on web development, much of his +free time is now spent researching machine architectures, compilers, mathematics +and various other fields. He also closely follows the work of the [Free Software +Foundation][0], [Electronic Frontier Foundation][3] and other entities devoted +to free information and free society. + +Outside of his field, Mike enjoys time with his family---including his fiancé +and son---whom keep him busy and probably contribute to the retention of his +sanity. Mike also has a fascination with a wide range of sciences that he +wishes he had the time to devote to researching. + +A great deal of information regarding Mike's opinions on various topics can be +found throughout this website. Much of the site is devoted to his thoughts and +ramblings on various matters and so may contain material that is subject to +extreme bias; the reader is encouraged to construct his or her own opinions. +Papers are styled such that they focus on the topic at hand and void themselves +of most of the political and author-specific content found on this website. +Formal papers contain no such influence without rationale and references. + +Mike may be contacted by sending any e-mail to this domain, though he +conventionally prefers the user `mike'; he does not make use of ``social media'' +websites, though he may (or may not) respond to queries on websites that he is a +member of. + +(Note: This website itself is free---the source code is available via the commit +hash links in the footer of various pages and the content is licensed for free +distribution and, in some cases, modification.) + + +[0] http://www.gnu.org/philosophy/ +[1] http://www.gnu.org/philosophy/words-to-avoid.html#Hacker +[2] http://gnu.org/ +[3] http://eff.org/ diff --git a/docs/20-projects.pg b/docs/20-projects.pg index e69de29..9933c1b 100644 --- a/docs/20-projects.pg +++ b/docs/20-projects.pg @@ -0,0 +1,41 @@ +Free Software Projects + +Listed below are my notable public projects. I have various other scripts and +personal playthings that may be found on both [Gitorious][0] and [GitHub][1] +that are not worth listing here, but may be of interest to certain +readers/hackers. + +While writings are certainly projects in their own right, they are listed +separately in the ``Papers'' section of this website. + +[ease.js][2] is a classical object-oriented framework for JavaScript intended to +eliminate boilerplate code and ``ease'' the transition into JavaScript from +other object-oriented languages. + +[repo2html][3] is a repository-agnostic HTML-generation tool used to generate +content from commit messages; it is the tool used to generate much of the +content on this website and was developed precisely for that reason. As such, +the project currently only supports Git. + +[git-supp][4] contains a number of supplemental scripts for Git that I have +found to be useful. Examples include short aliasing for common commands (e.g. +typing `c` instead of `git commit`), a colorful PS1 and a state hook for +displaying and automatically augmenting commit messages with branch-specific +state strings. + +[thoughts][5] is this website; readers and hackers are welcome to use the +repository for offline browsing, learning, distributing, mirroring, compiling in +alternate formats or whatever else the content licenses permit. Code is released +under a free software license and creative works (such as thoughts, articles and +papers) are released under licenses that permit free distribution and, in +certain cases, modification. Direct links to various commits may be found via +the commit hashes within the footer of most pages. + + +[0] http://gitorious.org/~mikegerwitz +[1] http://github.com/mikegerwitz +[2] http://easejs.org/ +[3] https://gitorious.org/repo2html or https://github.com/mikegerwitz/repo2html +[4] https://gitorious.org/git-supp or https://github.com/mikegerwitz/git-supp +[5] https://gitorious.org/mtg-personal/thoughts or +https://github.com/mikegerwitz/thoughts diff --git a/docs/30-papers.pg b/docs/30-papers.pg index e69de29..09ee1eb 100644 --- a/docs/30-papers.pg +++ b/docs/30-papers.pg @@ -0,0 +1,7 @@ +Papers / Articles + +More information on each work is provided via its respective link. If a thought +post (that is---one of the posts that is listed on the index page) is of +adequate length with sufficient references and content, it may too be included. + +[cat:docs/papers/.list] diff --git a/docs/about/gnu-inside-ex b/docs/about/gnu-inside-ex new file mode 100644 index 0000000..057cf4b --- /dev/null +++ b/docs/about/gnu-inside-ex @@ -0,0 +1,6 @@ +
+ + GNU/Linux Inside! + +
diff --git a/docs/about/inside.pg b/docs/about/inside.pg new file mode 100644 index 0000000..9c6ae0f --- /dev/null +++ b/docs/about/inside.pg @@ -0,0 +1,33 @@ +GNU/Linux Inside + +[img:heckert-gnu.png:GNU] + +This website and the server on which it is hosted is run entirely by [free +software][0]. + +Do you use GNU/Linux or other free software on your website? Flaunt it! Feel +free to place the image below on your own website, blog, or anywhere else you +see fit to let others know that you support GNU and free software. + +This image also helps to bring awareness to the [GNU operating system][1] as +well as GNU's philosophy.[0] The majority of users today consider the operating +system to be called ``Linux'', which is false---this is the name of the kernel; +GNU is the operating system.[2] + +*The page fold is transparent*; it will therefore work well with any background +color. Please note that this is a PNG with alphatransparency---older browsers +that users shouldn't be using anymore (such as IE 6) will not render it properly +unless you take the necessary precautions. + +[img:gnu-inside.png:GNU/Linux Inside!] + +Feel free to [download the source file (GIMP)][3]. Below is the code with which +you may embed this on your own website. + +[src:docs/about/gnu-inside-ex:html] + + +[0] http://www.gnu.org/philosophy/ +[1] http://www.gnu.org/ +[2] http://www.gnu.org/gnu/linux-and-gnu.html +[3] http://mikegerwitz.com/images/gnu-inside.xcf diff --git a/images/gnulinuxinside.png b/images/gnu-inside.png similarity index 100% rename from images/gnulinuxinside.png rename to images/gnu-inside.png diff --git a/images/gnu-inside.xcf b/images/gnu-inside.xcf new file mode 100644 index 0000000000000000000000000000000000000000..7c6ad32aac270782e143aede260db20049226fa5 GIT binary patch literal 6842 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 literal 0 HcmV?d00001 diff --git a/images/heckert-gnu.png b/images/heckert-gnu.png new file mode 100644 index 0000000000000000000000000000000000000000..a815dbaa714187146cfef871d30836792f291135 GIT binary patch literal 9303 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 FV1kEFmlps4 literal 0 HcmV?d00001 diff --git a/tools/doclist b/tools/doclist new file mode 100755 index 0000000..8583f31 --- /dev/null +++ b/tools/doclist @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Generates HTML fragment for document list +# +# Copyright (C) 2013 Mike Gerwitz +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +## + +# ensure extglob is on for !() syntax +shopt -s extglob || exit $? + +echo '
    ' + +# paths are expected to be on their own line +while read f; do + [ -f "$f" ] || continue + + # the docs/papers prefix will be stripped from the link and the link title + # will be taken from the first line of the source file; the source file is + # guessed by simply stripping the html suffix off of the filename and + # globbing for any non-html suffix + printf '
  1. %s
  2. \n' \ + "${f#docs/papers/}" \ + "$( head -n1 "${f%.html}".!(html) )" +done + +echo '
' diff --git a/tools/extfmt b/tools/extfmt index a7fa233..be0ae20 100755 --- a/tools/extfmt +++ b/tools/extfmt @@ -23,22 +23,32 @@ # messages...if you try to inline an image in a commit message using this # format, then you should probably pretend the brackets are staples and lodge # them into your skull) +# +# XXX: These do little to prevent against malicious code execution since, well, +# they are used for my own personal content...you've been warned (they are also +# strongly bias toward allowing only Unix-like paths) "$msgfmt_default" "$@" \ | awk -vpath_root="$path_root" ' - match($0, /\[img:([^:]+?)(:(.*?))?\]/, g) { + match($0, /\[img:([a-z/.-]+?)(:(.*?))?\]/, g) { print "
" print " \""" print "
" - next } - match($0, /\[src:(.*?):(.*?)\]/, g) { + match($0, /\[src:([a-z/.-]+?):(.*?)\]/, g) { c = "source-highlight -s" g[2] " -i" path_root "/" g[1] print "
" while ( c | getline ) print print "
" + next + } + + match($0, /\[cat:([a-z/.-]+?)\]/, g) { + c = "cat -- " path_root "/" g[1] + while ( c | getline ) print + next } { print } diff --git a/tpl/.config b/tpl/.config index df33014..1406ecc 100644 --- a/tpl/.config +++ b/tpl/.config @@ -58,8 +58,8 @@ EOH # additional content in the footer before the copyright (the awkward newline # positions are to prevent spaces in the output) html_footer=$(cat < - GNU/Linux Inside! + + GNU/Linux Inside!
@@ -116,6 +116,5 @@ html_index_footer=$(cat <
- EOM ) diff --git a/tpl/content b/tpl/content new file mode 100755 index 0000000..301c5eb --- /dev/null +++ b/tpl/content @@ -0,0 +1,5 @@ +#!/bin/bash + +# for the time being, content pages are simply styled with the index page +export html_body_class='index content' +resume-default index