diff --git a/Blogdown.cabal b/Blogdown.cabal
--- a/Blogdown.cabal
+++ b/Blogdown.cabal
@@ -1,5 +1,5 @@
 name:                Blogdown
-version:             0.2.1
+version:             0.2.2
 synopsis:            A markdown-like markup language designed for blog posts
 description:         A library and executable that implement a modified, extended version of Markdown designed for writing blog posts.
 license:             AGPL-3
@@ -16,7 +16,7 @@
 
 library
   exposed-modules:     Parsing.Parse, Parsing.ParseOptions, Rendering.Render, Rendering.RenderOptions
-  other-modules:       AST, Options, Parsing.ParseBlock, Parsing.ParseInline, Parsing.Text, Parsing.Utils, Parsing.ParseFootnotes, Parsing.ParseHtml, Parsing.State, Parsing.TextUtils
+  other-modules:       AST, Options, Parsing.ParseBlock, Parsing.ParseInline, Parsing.Text, Parsing.Utils, Parsing.ParseFootnotes, Parsing.ParseHtml, Parsing.State, Parsing.TextUtils, Footnotes_css, Footnotes_js
   other-extensions:    DeriveGeneric
   build-depends:       base >=4.9 && <4.10, parsec >=3.1 && <3.2, containers >=0.5 && <0.6, MissingH >=1.4 && <1.5, network-uri >=2.6 && <2.7
   hs-source-dirs:      src, assets
diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for Blogdown
 
+### 0.2.2 -- 2017-05-21
+
+* Add missing other-modules.
+
 ### 0.2.1 -- 2017-05-21
 
 * Fix cabal build.
diff --git a/assets/Footnotes_css.hs b/assets/Footnotes_css.hs
new file mode 100644
--- /dev/null
+++ b/assets/Footnotes_css.hs
@@ -0,0 +1,2 @@
+module Footnotes_css where
+content = ".footnotes > li {\n    margin: 15px 0;\n}\n\n/* Keeps the back-link on the same line as the first block. */\n.footnotes > li > *:nth-child(2) {\n    display: inline;\n}\n\n.inline-footnote {\n    margin: .5em;\n    padding: .5em;\n    border-left: 2px solid #555;\n}\n\n.inline-footnote > p {\n    margin: 0;\n}\n"
diff --git a/assets/Footnotes_js.hs b/assets/Footnotes_js.hs
new file mode 100644
--- /dev/null
+++ b/assets/Footnotes_js.hs
@@ -0,0 +1,2 @@
+module Footnotes_js where
+content = "function inlineFootnote(footnote) {\n    var ref = document.getElementById(\"a-\" + footnote.id);\n    var inline = document.createElement(\"div\");\n    for (var i=0; i<footnote.children.length;) {\n        var child = footnote.children[i];\n        if (child.tagName == \"A\" && child.getAttribute(\"href\") == \"#\" + ref.id) {\n            i++;\n            continue;\n        }\n        inline.appendChild(child);\n    }\n    inline.className = \"inline-footnote\";\n    inline.style.display = \"none\";\n    ref.parentNode.parentNode.insertBefore(inline, ref.parentNode.nextSibling);\n    ref.origIndex = ref.textContent;\n    ref.expanded = false;\n    ref.addEventListener(\"click\", function (e) {\n        e.preventDefault();\n        if (ref.expanded) {\n            inline.style.display = \"none\";\n            ref.textContent = ref.origIndex;\n        } else {\n            inline.style.display = \"block\";\n            ref.textContent = \"X\";\n        }\n        ref.expanded = !ref.expanded;\n    });\n}\n\nfunction inlineFootnotes() {\n    var footnoteLists = document.getElementsByClassName(\"footnotes\");\n    while (footnoteLists.length > 0) {\n        var footnotes = footnoteLists[0].children;\n        for (var j=0; j<footnotes.length; j++) {\n            inlineFootnote(footnotes[j]);\n        }\n        footnoteLists[0].remove();\n    }\n}\n\ninlineFootnotes()\n"
