Skip to content

Commit 7a1bc54

Browse files
committed
Merge pull request #1 from pnathan/master
Merge from master
2 parents 55d7b08 + faf54b8 commit 7a1bc54

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+1307
-10711
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
*~
1+
*~
2+
_site/*
3+
site/*
4+
*/_site/*

.travis.yml

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
sudo: false
2-
addons:
3-
apt:
4-
packages:
5-
- pandoc
6-
before_script:
7-
- curl -O -L http://prdownloads.sourceforge.net/sbcl/sbcl-1.2.6-x86-64-linux-binary.tar.bz2
8-
- tar xjf sbcl-1.2.6-x86-64-linux-binary.tar.bz2
9-
# - pushd sbcl-1.2.6-x86-64-linux/ && sudo bash install.sh && popd
10-
- curl -O -L http://beta.quicklisp.org/quicklisp.lisp
11-
- sbcl-1.2.6-x86-64-linux/run-sbcl.sh --load quicklisp.lisp --eval '(quicklisp-quickstart:install)' --eval '(quit)'
2+
language: ruby
3+
rvm:
4+
- 2.1
5+
6+
#before_script:
7+
# - chmod +x ./script/cibuild # or do this locally and commit
8+
9+
# Assume bundler is being used, therefore
10+
# the `install` step will run `bundle install` by default.
11+
# script: ./script/cibuild
1212
script:
13-
- sbcl-1.2.6-x86-64-linux/run-sbcl.sh --script run-ci.sh
13+
- bundle exec jekyll build
14+
15+
env:
16+
global:
17+
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer

AUTHORS.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Authors, ordered alphabetically by first name.
2+
3+
Their sacrifice of time is remembered.
4+
5+
Christopher Carpenter <mordocai@mordocai.net>
6+
Daniel Vedder <d.vedder@web.de>
7+
Jeremiah LaRocco <jeremiah.larocco@gmail.com>
8+
Jose Santos <jsmpereira@gmail.com>
9+
Martin Karlsson <tankrim@gmail.com>
10+
Paul Nathan <pnathan@alumni.uidaho.edu>
11+
Ralph Moritz <ralmoritz@gmail.com>

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from nginx
2+
copy _site/ /usr/share/nginx/html

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "https://rubygems.org"
2+
3+
gem "jekyll"

HACKING.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
hacking on articulate-common-lisp
2+
---
3+
4+
contributions welcome.
5+
6+
* ./livetest.sh will spawn a localhost:4000 webserver which watches the filesystem
7+
* ./build.sh will generate a Docker image ready for pushing
8+
* ./test.sh will run the build.sh generated Docker image. Note that
9+
this boots a nginx server.
10+
* ACL is delivered as a Docker image

README.org

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ docs/specs for a tutorial/introduction site for a Common Lisp environment
88

99
One of the key problems in onboarding developers to use modern Common Lisp is the vertical wall of difficulty. Things that are routinely problematic:
1010

11-
- emacs use. Most people don't use emacs.
11+
- emacs use. Most people don't use emacs.
1212

1313
- Library creation. Putting together ASDF libraries and using them is a fairly horrid experience the first time.
1414

@@ -19,7 +19,7 @@ One of the key problems in onboarding developers to use modern Common Lisp is th
1919

2020
This repository is the source code to build a Common Lisp site dedicated to handling these problems. My goal is to put together an introduction/tutorial for practicing professionals and hobbyists from other languages. People who want to get started with Lisp beyond just typing into a REPL. Right now, it feels like this information is less disseminated and much less centralized than it otherwise might be. It's not intended to be a HOWTO for Common Lisp. That's been covered *quite* well. But it is intended to be a HOWTO on how to put together a Lisp *environment*.
2121

22-
Anyway, I'd like to collaborate with other people to build a remarkably fine Lisp help site. Contributions are both *accepted* and *welcome*. It's a wholly static site at this point in time - I don't see a need for articulate-lisp.com to have a dynamic backend. Perhaps/probably one of the code examples will be a webapp.
22+
Anyway, I'd like to collaborate with other people to build a remarkably fine Lisp help site. Contributions are both *accepted* and *welcome*. It's a wholly static site at this point in time - I don't see a need for articulate-lisp.com to have a dynamic backend. Perhaps/probably one of the code examples will be a webapp.
2323

2424
Happy Hacking,
2525

@@ -30,48 +30,40 @@ P.S.: feel free to contact me for anything you like.
3030

3131
** Notes regarding build process.
3232

33-
Various site building tools are out there; I wanted one that was, above all, simple. Initially Jekyll was chosen,
34-
but Ruby proved contentious, and frankly, I wanted to ship the site. Pandoc was really easy to use and install on my
35-
OSX boxes. With a bit of hackery on the templates, I could generate a very nice page. With a bit more hackery,
36-
`make.lisp` got created, which included snippets automatically, as well as have a simplistic 1-level hierarchical
37-
menu for sections of the site based on filename. I use SBCL as the Lisp system for make.lisp.
33+
This is a Jekyll site; the existing build scripts use Dockerized
34+
Jekyll for sandboxing.
3835

39-
You can see this in action in the makefile for the system.
40-
41-
On the build side, the `master` branch is polled routinely by a Jenkins instance at home, which builds the site into
42-
the "site" folder and then uploads it to the http://articulate-lisp.com host.
36+
Unfortunately, I don't have autobuild yet set up to Docker build &&
37+
docker push, as that requires credentials and capabilities Travis
38+
doesn't have yet.4
4339

4440
** Contributions.
4541

46-
Please pull off the top of the `devel` branch for your contributions and use github Pull Requests for contributing.
42+
Please send in pull requests!
4743

48-
My home Jenkins instance deploys that branch out to articulate-lisp.com/devel. This allows me to merge your PR and
49-
see the result quickly without being at a development machine: e.g., I can use my mobile phone to merge your work and
50-
keep the awesome flowing as fast as possible.
5144

5245
** License information & legalities.
5346

5447
My opinion on articulate-lisp.com's licensing is this: it should be easy to grab bits and pieces and easy to fork if
5548
the author disappears. After some careful reading, I selected...
5649

57-
- GPL3 for the documentation itself.
50+
- GPL3 for the documentation itself.
5851

5952
- Snippets and other samples embedded in the documentation should be considered public domain a.k.a CC0.
6053

61-
- The full-size examples in src/ are more substantial and, are licensed as AGPL3. This is denoted in their comment header.
54+
- The full-size examples in examples/src/ are more substantial and, are licensed as AGPL3. This is denoted in their comment header.
6255

6356
I do not believe that these terms are onerous and I have sought to structure them to permit both free use of small things
64-
and continuity of information.
57+
and continuity of information.
6558

66-
AGPL3 is a very strict copyleft license and I feel obligated to justify its choice.
59+
AGPL3 is a very strict copyleft license and I feel obligated to justify its choice.
6760

6861
Simply put, I believe that software developers have a moral obligation to allow their users to repair the software that
6962
they provide. This facility is usual for physical items: we can fix our bikes, chairs, cars, etc. I believe that we
7063
ought to let our users fix the software they use, or hire other people to make that fix. I also have profound issues with
71-
the software patent industry. AGPL3 is the best license I know of to ensure that what I create gives users these
72-
capabilities and will not be patented. As these are ridiculously small examples, I am fairly positive that any
64+
the software patent industry. AGPL3 is the best license I know of to ensure that what I create gives users these
65+
capabilities and will not be patented. As these are ridiculously small examples, I am fairly positive that any
7366
serious work will not use them. So it should not be onerous on you.
7467

75-
If your corporate lawyers refuse to let example AGPL3 code exist in your development environment, please write in and -
76-
for my part - I will make a good faith effort to negotiate with you for you a less strict license for your company. And I
77-
will doubtlessly say rude things about lawyers.
68+
If your corporate lawyers refuse to let example AGPL3 code exist in your development environment, please write in and -
69+
for my part - I will make a good faith effort to negotiate with you for you a less strict license for your company.

_config.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Jekyll configuration
2+
3+
name: articulate-lisp.com
4+
description: A jekyll theme
5+
6+
# url is currently only used only for the RSS feed in feed.xml
7+
url: http://articulate-lisp.com
8+
9+
# baseurl will often be '', but for a project page on gh-pages, it needs to
10+
# be the project name.
11+
# *** IMPORTANT: If your local "jekyll serve" throws errors change this to '' or
12+
# run it like so: jekyll serve --baseurl=''
13+
baseurl: ''
14+
15+
# This can be '' to hide the Github nav button
16+
github: 'pnathan/articulate-common-lisp'
17+
18+
# Set this to your UA-# value, or '' to disable the block completely
19+
gaaccount: 'UA-44161726-1'
20+
21+
# Set this to your disqus shortname to enable comments. Note that the 'comments'
22+
# setting below must also be true. Individual posts can override 'comments' to
23+
# disable on a post-by-post basis
24+
disqus: ''
25+
comments: true
26+
27+
permalink: /:year/:month/:title
28+
paginate: 3
29+
30+
highlighter: pygments
31+
markdown: redcarpet
32+
redcarpet:
33+
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
34+
35+
exclude: ['README.md', 'LICENSE']

_data/nav.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
- title: "Home"
2+
href: "/"
3+
4+
- title: "Quicklinks"
5+
href: "/quicklinks.html"
6+
7+
- title: "Starting a Project"
8+
href: "/project"
9+
subcategories:
10+
- subtitle: "New Project"
11+
subhref: "/new-project.html"
12+
13+
- subtitle: "Basic Project"
14+
subhref: "/basic-project.html"
15+
16+
- subtitle: "ABCs"
17+
subhref: "/abcs.html"
18+
19+
- title: "Implementations"
20+
href: "/implementations"
21+
subcategories:
22+
- subtitle: "Summary"
23+
subhref: "/summary.html"
24+
- subtitle: "Clozure CL"
25+
subhref: "/ccl-setup.html"
26+
- subtitle: "CLISP"
27+
subhref: "/clisp-setup.html"
28+
- subtitle: "SBCL"
29+
subhref: "/sbcl-setup.html"
30+
- subtitle: "LispWorks CL"
31+
subhref: "/lispworks-setup.html"
32+
33+
- title: "IDEs"
34+
href: "/ides"
35+
subcategories:
36+
- subtitle: "Summary"
37+
subhref: "/summary.html"
38+
- subtitle: "Emacs"
39+
subhref: "/emacs-setup.html"
40+
- subtitle: "SLIME"
41+
subhref: "/slime-setup.html"
42+
- subtitle: "CUSP"
43+
subhref: "/cusp-setup.html"
44+
- subtitle: "LispWorks CL"
45+
subhref: "/lispworks-setup.html"
46+
47+
- title: "Examples"
48+
href: "/examples"
49+
subcategories:
50+
- subtitle: "Snippets"
51+
subhref: "/snippets.html"
52+
- subtitle: "Trotter"
53+
subhref: "/trotter.html"
54+
55+
- title: "Libraries"
56+
href: "/quicklisp.html"
57+
58+
- title: "Who?"
59+
href: "/about/"

_includes/analytics.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{% if site.gaaccount != '' %}
2+
<script>
3+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
4+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
5+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
6+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
7+
8+
ga('create', '{{ site.gaaccount }}', 'auto');
9+
ga('send', 'pageview');
10+
</script>
11+
{% endif %}

0 commit comments

Comments
 (0)