From bd2f82680ae1aa428cdbecadb720f5650f888603 Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Fri, 8 Sep 2017 22:36:32 +0100 Subject: [PATCH 01/98] Intial commit. Importing theme. --- .gitignore | 42 ++ 404.html | 10 + LICENSE.md | 9 + README.md | 134 ++++++ _config.yml | 20 + _includes/head.html | 29 ++ _includes/sidebar.html | 38 ++ _layouts/default.html | 47 ++ _layouts/page.html | 8 + _layouts/post.html | 25 ++ _posts/2013-12-31-whats-jekyll.md | 12 + _posts/2014-01-01-example-content.md | 122 +++++ _posts/2014-01-02-introducing-lanyon.md | 38 ++ about.md | 30 ++ atom.xml | 28 ++ index.html | 38 ++ public/apple-touch-icon-precomposed.png | Bin 0 -> 831 bytes public/css/lanyon.css | 563 ++++++++++++++++++++++++ public/css/poole.css | 430 ++++++++++++++++++ public/css/syntax.css | 65 +++ public/favicon.ico | Bin 0 -> 340 bytes 21 files changed, 1688 insertions(+) create mode 100644 .gitignore create mode 100644 404.html create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 _config.yml create mode 100644 _includes/head.html create mode 100644 _includes/sidebar.html create mode 100644 _layouts/default.html create mode 100644 _layouts/page.html create mode 100644 _layouts/post.html create mode 100644 _posts/2013-12-31-whats-jekyll.md create mode 100644 _posts/2014-01-01-example-content.md create mode 100644 _posts/2014-01-02-introducing-lanyon.md create mode 100644 about.md create mode 100644 atom.xml create mode 100644 index.html create mode 100644 public/apple-touch-icon-precomposed.png create mode 100644 public/css/lanyon.css create mode 100644 public/css/poole.css create mode 100644 public/css/syntax.css create mode 100644 public/favicon.ico diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..465cdb46 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# Ignore docs files +_gh_pages +_site +.ruby-version + +# Numerous always-ignore extensions +*.diff +*.err +*.orig +*.log +*.rej +*.swo +*.swp +*.zip +*.vi +*~ + +# OS or Editor folders +.DS_Store +._* +Thumbs.db +.cache +.project +.settings +.tmproj +*.esproj +nbproject +*.sublime-project +*.sublime-workspace +.idea + +# Komodo +*.komodoproject +.komodotools + +# grunt-html-validation +validation-status.json +validation-report.json + +# Folders to ignore +node_modules +bower_components diff --git a/404.html b/404.html new file mode 100644 index 00000000..4bf3f7d8 --- /dev/null +++ b/404.html @@ -0,0 +1,10 @@ +--- +layout: default +title: "404: Page not found" +permalink: 404.html +--- + +
+

404: Page not found

+

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. Head back home to try finding it again.

+
diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..af1b0ec7 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +# Released under MIT License + +Copyright (c) 2014 Mark Otto. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..b6c7d402 --- /dev/null +++ b/README.md @@ -0,0 +1,134 @@ +# Lanyon + +Lanyon is an unassuming [Jekyll](http://jekyllrb.com) theme that places content first by tucking away navigation in a hidden drawer. It's based on [Poole](http://getpoole.com), the Jekyll butler. + +![Lanyon](https://f.cloud.github.com/assets/98681/1825266/be03f014-71b0-11e3-9539-876e61530e24.png) +![Lanyon with open sidebar](https://f.cloud.github.com/assets/98681/1825267/be04a914-71b0-11e3-966f-8afe9894c729.png) + + +## Contents + +- [Usage](#usage) +- [Options](#options) + - [Sidebar menu](#sidebar-menu) + - [Themes](#themes) + - [Reverse layout](#reverse-layout) +- [Development](#development) +- [Author](#author) +- [License](#license) + + +## Usage + +Lanyon is a theme built on top of [Poole](https://github.com/poole/poole), which provides a fully furnished Jekyll setup—just download and start the Jekyll server. See [the Poole usage guidelines](https://github.com/poole/poole#usage) for how to install and use Jekyll. + + +## Options + +Lanyon includes some customizable options, typically applied via classes on the `` element. + + +### Sidebar menu + +Create a list of nav links in the sidebar by assigning each Jekyll page the correct layout in the page's [front-matter](http://jekyllrb.com/docs/frontmatter/). + +``` +--- +layout: page +title: About +--- +``` + +**Why require a specific layout?** Jekyll will return *all* pages, including the `atom.xml`, and with an alphabetical sort order. To ensure the first link is *Home*, we exclude the `index.html` page from this list by specifying the `page` layout. + + +### Themes + +Lanyon ships with eight optional themes based on the [base16 color scheme](https://github.com/chriskempson/base16). Apply a theme to change the color scheme (mostly applies to sidebar and links). + +![Lanyon with red theme](https://f.cloud.github.com/assets/98681/1825270/be065110-71b0-11e3-9ed8-9b8de753a4af.png) +![Lanyon with red theme and open sidebar](https://f.cloud.github.com/assets/98681/1825269/be05ec20-71b0-11e3-91ea-a9138ef07186.png) + +There are eight themes available at this time. + +![Available theme classes](https://f.cloud.github.com/assets/98681/1817044/e5b0ec06-6f68-11e3-83d7-acd1942797a1.png) + +To use a theme, add any one of the available theme classes to the `` element in the `default.html` layout, like so: + +```html + + ... + +``` + +To create your own theme, look to the Themes section of [included CSS file](https://github.com/poole/lanyon/blob/master/public/css/lanyon.css). Copy any existing theme (they're only a few lines of CSS), rename it, and change the provided colors. + + +### Reverse layout + +![Lanyon with reverse layout](https://f.cloud.github.com/assets/98681/1825265/be03f2e4-71b0-11e3-89f1-360705524495.png) +![Lanyon with reverse layout and open sidebar](https://f.cloud.github.com/assets/98681/1825268/be056174-71b0-11e3-88c8-5055bca4307f.png) + +Reverse the page orientation with a single class. + +```html + + ... + +``` + + +### Sidebar overlay instead of push + +Make the sidebar overlap the viewport content with a single class: + +```html + + ... + +``` + +This will keep the content stationary and slide in the sidebar over the side content. It also adds a `box-shadow` based outline to the toggle for contrast against backgrounds, as well as a `box-shadow` on the sidebar for depth. + +It's also available for a reversed layout when you add both classes: + +```html + + ... + +``` + +### Sidebar open on page load + +Show an open sidebar on page load by modifying the `` tag within the `sidebar.html` layout to add the `checked` boolean attribute: + +```html + +``` + +Using Liquid you can also conditionally show the sidebar open on a per-page basis. For example, here's how you could have it open on the homepage only: + +```html + +``` + +## Development + +Lanyon has two branches, but only one is used for active development. + +- `master` for development. **All pull requests should be to submitted against `master`.** +- `gh-pages` for our hosted site, which includes our analytics tracking code. **Please avoid using this branch.** + + +## Author + +**Mark Otto** +- +- + + +## License + +Open sourced under the [MIT license](LICENSE.md). + +<3 diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..26efddf7 --- /dev/null +++ b/_config.yml @@ -0,0 +1,20 @@ +# Permalinks +# +# Use of `relative_permalinks` ensures post links from the index work properly. +permalink: pretty + +# Setup +title: Lanyon +tagline: 'A Jekyll theme' +description: 'A reserved Jekyll theme that places the utmost gravity on content with a hidden drawer. Made by @mdo.' +url: http://lanyon.getpoole.com +baseurl: '' + +# About/contact +author: + name: Mark Otto + url: https://twitter.com/mdo + email: markdotto@gmail.com + +# Custom vars +version: 1.0.0 diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 00000000..1948f301 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,29 @@ + + + + + + + + + + {% if page.title == "Home" %} + {{ site.title }} · {{ site.tagline }} + {% else %} + {{ page.title }} · {{ site.title }} + {% endif %} + + + + + + + + + + + + + + + diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 00000000..520eebaf --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,38 @@ + + + + + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 00000000..e1ad606e --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,47 @@ + + + + {% include head.html %} + + + + {% include sidebar.html %} + + +
+
+
+

+ {{ site.title }} + {{ site.tagline }} +

+
+
+ +
+ {{ content }} +
+
+ + + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 00000000..4e0d4ebf --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,8 @@ +--- +layout: default +--- + +
+

{{ page.title }}

+ {{ content }} +
diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 00000000..c0274776 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,25 @@ +--- +layout: default +--- + +
+

{{ page.title }}

+ + {{ content }} +
+ + diff --git a/_posts/2013-12-31-whats-jekyll.md b/_posts/2013-12-31-whats-jekyll.md new file mode 100644 index 00000000..6bf2b50d --- /dev/null +++ b/_posts/2013-12-31-whats-jekyll.md @@ -0,0 +1,12 @@ +--- +layout: post +title: What's Jekyll? +--- + +[Jekyll](http://jekyllrb.com) is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From [the project's readme](https://github.com/mojombo/jekyll/blob/master/README.markdown): + + > Jekyll is a simple, blog aware, static site generator. It takes a template directory [...] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub. + +It's an immensely useful tool and one we encourage you to use here with Lanyon. + +Find out more by [visiting the project on GitHub](https://github.com/mojombo/jekyll). diff --git a/_posts/2014-01-01-example-content.md b/_posts/2014-01-01-example-content.md new file mode 100644 index 00000000..81e47487 --- /dev/null +++ b/_posts/2014-01-01-example-content.md @@ -0,0 +1,122 @@ +--- +layout: post +title: Example content +--- + + +
+ Howdy! This is an example blog post that shows several types of HTML content supported in this theme. +
+ +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. *Aenean eu leo quam.* Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum. + +> Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit. + +Etiam porta **sem malesuada magna** mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur. + +## Inline HTML elements + +HTML defines a long list of available inline tags, a complete list of which can be found on the [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element). + +- **To bold text**, use ``. +- *To italicize text*, use ``. +- Abbreviations, like HTML should use ``, with an optional `title` attribute for the full phrase. +- Citations, like — Mark otto, should use ``. +- Deleted text should use `` and inserted text should use ``. +- Superscript text uses `` and subscript text uses ``. + +Most of these elements are styled by browsers with few modifications on our part. + +## Heading + +Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. + +### Code + +Cum sociis natoque penatibus et magnis dis `code element` montes, nascetur ridiculus mus. + +{% highlight js %} +// Example can be run directly in your JavaScript console + +// Create a function that takes two arguments and returns the sum of those arguments +var adder = new Function("a", "b", "return a + b"); + +// Call the function +adder(2, 6); +// > 8 +{% endhighlight %} + +Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa. + +### Lists + +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. + +* Praesent commodo cursus magna, vel scelerisque nisl consectetur et. +* Donec id elit non mi porta gravida at eget metus. +* Nulla vitae elit libero, a pharetra augue. + +Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. + +1. Vestibulum id ligula porta felis euismod semper. +2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. +3. Maecenas sed diam eget risus varius blandit sit amet non magna. + +Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. + +
+
HyperText Markup Language (HTML)
+
The language used to describe and define the content of a Web page
+ +
Cascading Style Sheets (CSS)
+
Used to describe the appearance of Web content
+ +
JavaScript (JS)
+
The programming language used to build advanced Web sites and applications
+
+ +Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam quis risus eget urna mollis ornare vel eu leo. + +### Tables + +Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUpvotesDownvotes
Totals2123
Alice1011
Bob43
Charlie79
+ +Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo. + +----- + +Want to see something else added? Open an issue. diff --git a/_posts/2014-01-02-introducing-lanyon.md b/_posts/2014-01-02-introducing-lanyon.md new file mode 100644 index 00000000..13e7ce48 --- /dev/null +++ b/_posts/2014-01-02-introducing-lanyon.md @@ -0,0 +1,38 @@ +--- +layout: post +title: Introducing Lanyon +--- + +Lanyon is an unassuming [Jekyll](http://jekyllrb.com) theme that places content first by tucking away navigation in a hidden drawer. It's based on [Poole](http://getpoole.com), the Jekyll butler. + +### Built on Poole + +Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by [@mdo](https://twitter.com/mdo). Poole, and every theme built on it (like Lanyon here) includes the following: + +* Complete Jekyll setup included (layouts, config, [404](/404), [RSS feed](/atom.xml), posts, and [example page](/about)) +* Mobile friendly design and development +* Easily scalable text and component sizing with `rem` units in the CSS +* Support for a wide gamut of HTML elements +* Related posts (time-based, because Jekyll) below each post +* Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter) + +### Lanyon features + +In addition to the features of Poole, Lanyon adds the following: + +* Toggleable sliding sidebar (built with only CSS) via **☰** link in top corner +* Sidebar includes support for textual modules and a dynamically generated navigation with active link support +* Two orientations for content and sidebar, default (left sidebar) and [reverse](https://github.com/poole/lanyon#reverse-layout) (right sidebar), available via `` classes +* [Eight optional color schemes](https://github.com/poole/lanyon#themes), available via `` classes + +[Head to the readme](https://github.com/poole/lanyon#readme) to learn more. + +### Browser support + +Lanyon is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above. + +### Download + +Lanyon is developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests. + +Thanks! diff --git a/about.md b/about.md new file mode 100644 index 00000000..9b2605bb --- /dev/null +++ b/about.md @@ -0,0 +1,30 @@ +--- +layout: page +title: About +--- + +

+ Hey there! This page is included as an example. Feel free to customize it for your own use upon downloading. Carry on! +

+ +In the novel, *The Strange Case of Dr. Jeykll and Mr. Hyde*, Mr. Poole is Dr. Jekyll's virtuous and loyal butler. Similarly, Poole is an upstanding and effective butler that helps you build Jekyll themes. It's made by [@mdo](https://twitter.com/mdo). + +There are currently two themes built on Poole: + +* [Hyde](http://hyde.getpoole.com) +* [Lanyon](http://lanyon.getpoole.com) + +Learn more and contribute on [GitHub](https://github.com/poole). + +## Setup + +Some fun facts about the setup of this project include: + +* Built for [Jekyll](http://jekyllrb.com) +* Developed on GitHub and hosted for free on [GitHub Pages](https://pages.github.com) +* Coded with [Sublime Text 2](http://sublimetext.com), an amazing code editor +* Designed and developed while listening to music like [Blood Bros Trilogy](https://soundcloud.com/maddecent/sets/blood-bros-series) + +Have questions or suggestions? Feel free to [open an issue on GitHub](https://github.com/poole/issues/new) or [ask me on Twitter](https://twitter.com/mdo). + +Thanks for reading! diff --git a/atom.xml b/atom.xml new file mode 100644 index 00000000..15eed6ca --- /dev/null +++ b/atom.xml @@ -0,0 +1,28 @@ +--- +layout: null +--- + + + + + {{ site.title }} + + + {{ site.time | date_to_xmlschema }} + {{ site.url }} + + {{ site.author.name }} + {{ site.author.email }} + + + {% for post in site.posts %} + + {{ post.title }} + + {{ post.date | date_to_xmlschema }} + {{ site.url }}{{ site.baseurl }}{{ post.id }} + {{ post.content | xml_escape }} + + {% endfor %} + + diff --git a/index.html b/index.html new file mode 100644 index 00000000..e4c52988 --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ +--- +layout: default +title: Home +--- + +
+ {% for post in paginator.posts %} +
+

+ + {{ post.title }} + +

+ + + + {{ post.content }} +
+ {% endfor %} +
+ + + diff --git a/public/apple-touch-icon-precomposed.png b/public/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb41a8e552c6150fe56b3e7dec516fb20093793 GIT binary patch literal 831 zcmeAS@N?(olHy`uVBq!ia0vp^GeDSw2}n*~u)PdONtU=qlmzFem6RtIr7}3C&;z9@5zNS2R@25`Asfh;AKnX+Na7u<97pKfq@h3WR^mA`88 z?UHTy&$mDSZ(}bLt#tR^R^N;HyMq~m6j*~49J!V_aH)7Sih$4rCd~;tYEVtKwv^Ph03*mqU=WF?`)+l_csf7$lbVq?eg8ZCriHZf0dPmchuUsuf3nV1IIRN=fxMh6GLk=k zZMu23Znx5OYaSz`-ky294+9(jy#Dy{%!v)95ooLJGzi`&*fMKaA}@awOyN0x{Ma$D%Ixgb7d1FHF+EN3U!RoRfdo7Gf15=v@yE0Bi`VYm+j?lDea(>@8y@Wa|LNPOtgI}ipL>obxb$mz>>h)i?~)gFJvr>RGNdW-kATMnuF%es z>gk&wbfKpkRv}<|f(1S}JwXE>EPm?sYzAfquV*D64qq{42j&O{Pgg&ebxsLQ0K4yS AE&u=k literal 0 HcmV?d00001 diff --git a/public/css/lanyon.css b/public/css/lanyon.css new file mode 100644 index 00000000..1d57108e --- /dev/null +++ b/public/css/lanyon.css @@ -0,0 +1,563 @@ +/* + * ___ + * /\_ \ + * \//\ \ __ ___ __ __ ___ ___ + * \ \ \ /'__`\ /' _ `\/\ \/\ \ / __`\ /' _ `\ + * \_\ \_/\ \_\.\_/\ \/\ \ \ \_\ \/\ \_\ \/\ \/\ \ + * /\____\ \__/.\_\ \_\ \_\/`____ \ \____/\ \_\ \_\ + * \/____/\/__/\/_/\/_/\/_/`/___/> \/___/ \/_/\/_/ + * /\___/ + * \/__/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/lanyon. + */ + + +/* + * Contents + * + * Global resets + * Masthead + * Sidebar + * Slide effect + * Posts and pages + * Pagination + * Reverse layout + * Themes + */ + + +/* + * Global resets + * + * Update the foundational and global aspects of the page. + */ + +/* Prevent scroll on narrow devices */ +html, +body { + overflow-x: hidden; +} + +html { + font-family: "PT Serif", Georgia, "Times New Roman", serif; +} + +h1, h2, h3, h4, h5, h6 { + font-family: "PT Sans", Helvetica, Arial, sans-serif; + font-weight: 400; + color: #313131; + letter-spacing: -.025rem; +} + + +/* + * Wrapper + * + * The wrapper is used to position site content when the sidebar is toggled. We + * use an outter wrap to position the sidebar without interferring with the + * regular page content. + */ + +.wrap { + position: relative; + width: 100%; +} + + +/* + * Container + * + * Center the page content. + */ + +.container { + max-width: 28rem; +} +@media (min-width: 38em) { + .container { + max-width: 32rem; + } +} +@media (min-width: 56em) { + .container { + max-width: 38rem; + } +} + + +/* + * Masthead + * + * Super small header above the content for site name and short description. + */ + +.masthead { + padding-top: 1rem; + padding-bottom: 1rem; + margin-bottom: 3rem; + border-bottom: 1px solid #eee; +} +.masthead-title { + margin-top: 0; + margin-bottom: 0; + color: #505050; +} +.masthead-title a { + color: #505050; +} +.masthead-title small { + font-size: 75%; + font-weight: 400; + color: #c0c0c0; + letter-spacing: 0; +} + +@media (max-width: 48em) { + .masthead-title { + text-align: center; + } + .masthead-title small { + display: none; + } +} + + +/* + * Sidebar + * + * The sidebar is the drawer, the item we are toggling with our handy hamburger + * button in the corner of the page. + * + * This particular sidebar implementation was inspired by Chris Coyier's + * "Offcanvas Menu with CSS Target" article, and the checkbox variation from the + * comments by a reader. It modifies both implementations to continue using the + * checkbox (no change in URL means no polluted browser history), but this uses + * `position` for the menu to avoid some potential content reflow issues. + * + * Source: http://css-tricks.com/off-canvas-menu-with-css-target/#comment-207504 + */ + +/* Style and "hide" the sidebar */ +.sidebar { + position: fixed; + top: 0; + bottom: 0; + left: -14rem; + width: 14rem; + visibility: hidden; + overflow-y: auto; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + font-size: .875rem; /* 15px */ + color: rgba(255,255,255,.6); + background-color: #202020; + -webkit-transition: all .3s ease-in-out; + transition: all .3s ease-in-out; +} +@media (min-width: 30em) { + .sidebar { + font-size: .75rem; /* 14px */ + } +} + +/* Sidebar content */ +.sidebar a { + font-weight: normal; + color: #fff; +} +.sidebar-item { + padding: 1rem; +} +.sidebar-item p:last-child { + margin-bottom: 0; +} + +/* Sidebar nav */ +.sidebar-nav { + border-bottom: 1px solid rgba(255,255,255,.1); +} +.sidebar-nav-item { + display: block; + padding: .5rem 1rem; + border-top: 1px solid rgba(255,255,255,.1); +} +.sidebar-nav-item.active, +a.sidebar-nav-item:hover, +a.sidebar-nav-item:focus { + text-decoration: none; + background-color: rgba(255,255,255,.1); + border-color: transparent; +} + +@media (min-width: 48em) { + .sidebar-item { + padding: 1.5rem; + } + .sidebar-nav-item { + padding-left: 1.5rem; + padding-right: 1.5rem; + } +} + +/* Hide the sidebar checkbox that we toggle with `.sidebar-toggle` */ +.sidebar-checkbox { + position: absolute; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +/* Style the `label` that we use to target the `.sidebar-checkbox` */ +.sidebar-toggle { + position: absolute; + top: .8rem; + left: 1rem; + display: block; + padding: .25rem .75rem; + color: #505050; + background-color: #fff; + border-radius: .25rem; + cursor: pointer; +} + +.sidebar-toggle:before { + display: inline-block; + width: 1rem; + height: .75rem; + content: ""; + background-image: -webkit-linear-gradient(to bottom, #555, #555 20%, #fff 20%, #fff 40%, #555 40%, #555 60%, #fff 60%, #fff 80%, #555 80%, #555 100%); + background-image: -moz-linear-gradient(to bottom, #555, #555 20%, #fff 20%, #fff 40%, #555 40%, #555 60%, #fff 60%, #fff 80%, #555 80%, #555 100%); + background-image: -ms-linear-gradient(to bottom, #555, #555 20%, #fff 20%, #fff 40%, #555 40%, #555 60%, #fff 60%, #fff 80%, #555 80%, #555 100%); + background-image: linear-gradient(to bottom, #555, #555 20%, #fff 20%, #fff 40%, #555 40%, #555 60%, #fff 60%, #fff 80%, #555 80%, #555 100%); +} + +.sidebar-toggle:active, +#sidebar-checkbox:focus ~ .sidebar-toggle, +#sidebar-checkbox:checked ~ .sidebar-toggle { + color: #fff; + background-color: #555; +} + +.sidebar-toggle:active:before, +#sidebar-checkbox:focus ~ .sidebar-toggle:before, +#sidebar-checkbox:checked ~ .sidebar-toggle:before { + background-image: -webkit-linear-gradient(to bottom, #fff, #fff 20%, #555 20%, #555 40%, #fff 40%, #fff 60%, #555 60%, #555 80%, #fff 80%, #fff 100%); + background-image: -moz-linear-gradient(to bottom, #fff, #fff 20%, #555 20%, #555 40%, #fff 40%, #fff 60%, #555 60%, #555 80%, #fff 80%, #fff 100%); + background-image: -ms-linear-gradient(to bottom, #fff, #fff 20%, #555 20%, #555 40%, #fff 40%, #fff 60%, #555 60%, #555 80%, #fff 80%, #fff 100%); + background-image: linear-gradient(to bottom, #fff, #fff 20%, #555 20%, #555 40%, #fff 40%, #fff 60%, #555 60%, #555 80%, #fff 80%, #fff 100%); +} + +@media (min-width: 30.1em) { + .sidebar-toggle { + position: fixed; + } +} + +@media print { + .sidebar-toggle { + display: none; + } +} + +/* Slide effect + * + * Handle the sliding effects of the sidebar and content in one spot, seperate + * from the default styles. + * + * As an a heads up, we don't use `transform: translate3d()` here because when + * mixed with `position: fixed;` for the sidebar toggle, it creates a new + * containing block. Put simply, the fixed sidebar toggle behaves like + * `position: absolute;` when transformed. + * + * Read more about it at http://meyerweb.com/eric/thoughts/2011/09/12/. + */ + +.wrap, +.sidebar, +.sidebar-toggle { + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; +} +.wrap, +.sidebar-toggle { + -webkit-transition: -webkit-transform .3s ease-in-out; + transition: transform .3s ease-in-out; +} + +#sidebar-checkbox:checked + .sidebar { + z-index: 10; + visibility: visible; +} +#sidebar-checkbox:checked ~ .sidebar, +#sidebar-checkbox:checked ~ .wrap, +#sidebar-checkbox:checked ~ .sidebar-toggle { + -webkit-transform: translateX(14rem); + -ms-transform: translateX(14rem); + transform: translateX(14rem); +} + + +/* + * Posts and pages + * + * Each post is wrapped in `.post` and is used on default and post layouts. Each + * page is wrapped in `.page` and is only used on the page layout. + */ + +.page, +.post { + margin-bottom: 4em; +} + +/* Blog post or page title */ +.page-title, +.post-title, +.post-title a { + color: #303030; +} +.page-title, +.post-title { + margin-top: 0; +} + +/* Meta data line below post title */ +.post-date { + display: block; + margin-top: -.5rem; + margin-bottom: 1rem; + color: #9a9a9a; +} + +/* Related posts */ +.related { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: 1px solid #eee; +} +.related-posts { + padding-left: 0; + list-style: none; +} +.related-posts h3 { + margin-top: 0; +} +.related-posts li small { + font-size: 75%; + color: #999; +} +.related-posts li a:hover { + color: #268bd2; + text-decoration: none; +} +.related-posts li a:hover small { + color: inherit; +} + + +/* + * Pagination + * + * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when + * there are no more previous or next posts to show. + */ + +.pagination { + overflow: hidden; /* clearfix */ + margin-left: -1rem; + margin-right: -1rem; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + color: #ccc; + text-align: center; +} + +/* Pagination items can be `span`s or `a`s */ +.pagination-item { + display: block; + padding: 1rem; + border: 1px solid #eee; +} +.pagination-item:first-child { + margin-bottom: -1px; +} + +/* Only provide a hover state for linked pagination items */ +a.pagination-item:hover { + background-color: #f5f5f5; +} + +@media (min-width: 30em) { + .pagination { + margin: 3rem 0; + } + .pagination-item { + float: left; + width: 50%; + } + .pagination-item:first-child { + margin-bottom: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination-item:last-child { + margin-left: -1px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} + + +/* + * Reverse layout + * + * Flip the orientation of the page by placing the `.sidebar` and sidebar toggle + * on the right side. + */ + +.layout-reverse .sidebar { + left: auto; + right: -14rem; +} +.layout-reverse .sidebar-toggle { + left: auto; + right: 1rem; +} + +.layout-reverse #sidebar-checkbox:checked ~ .sidebar, +.layout-reverse #sidebar-checkbox:checked ~ .wrap, +.layout-reverse #sidebar-checkbox:checked ~ .sidebar-toggle { + -webkit-transform: translateX(-14rem); + -ms-transform: translateX(-14rem); + transform: translateX(-14rem); +} + + +/* + * Themes + * + * Apply custom color schemes by adding the appropriate class to the `body`. + * Based on colors from Base16: http://chriskempson.github.io/base16/#default. + */ + +/* Red */ +.theme-base-08 .sidebar, +.theme-base-08 .sidebar-toggle:active, +.theme-base-08 #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #ac4142; +} +.theme-base-08 .container a, +.theme-base-08 .sidebar-toggle, +.theme-base-08 .related-posts li a:hover { + color: #ac4142; +} + +/* Orange */ +.theme-base-09 .sidebar, +.theme-base-09 .sidebar-toggle:active, +.theme-base-09 #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #d28445; +} +.theme-base-09 .container a, +.theme-base-09 .sidebar-toggle, +.theme-base-09 .related-posts li a:hover { + color: #d28445; +} + +/* Yellow */ +.theme-base-0a .sidebar, +.theme-base-0a .sidebar-toggle:active, +.theme-base-0a #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #f4bf75; +} +.theme-base-0a .container a, +.theme-base-0a .sidebar-toggle, +.theme-base-0a .related-posts li a:hover { + color: #f4bf75; +} + +/* Green */ +.theme-base-0b .sidebar, +.theme-base-0b .sidebar-toggle:active, +.theme-base-0b #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #90a959; +} +.theme-base-0b .container a, +.theme-base-0b .sidebar-toggle, +.theme-base-0b .related-posts li a:hover { + color: #90a959; +} + +/* Cyan */ +.theme-base-0c .sidebar, +.theme-base-0c .sidebar-toggle:active, +.theme-base-0c #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #75b5aa; +} +.theme-base-0c .container a, +.theme-base-0c .sidebar-toggle, +.theme-base-0c .related-posts li a:hover { + color: #75b5aa; +} + +/* Blue */ +.theme-base-0d .sidebar, +.theme-base-0d .sidebar-toggle:active, +.theme-base-0d #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #6a9fb5; +} +.theme-base-0d .container a, +.theme-base-0d .sidebar-toggle, +.theme-base-0d .related-posts li a:hover { + color: #6a9fb5; +} + +/* Magenta */ +.theme-base-0e .sidebar, +.theme-base-0e .sidebar-toggle:active, +.theme-base-0e #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #aa759f; +} +.theme-base-0e .container a, +.theme-base-0e .sidebar-toggle, +.theme-base-0e .related-posts li a:hover { + color: #aa759f; +} + +/* Brown */ +.theme-base-0f .sidebar, +.theme-base-0f .sidebar-toggle:active, +.theme-base-0f #sidebar-checkbox:checked ~ .sidebar-toggle { + background-color: #8f5536; +} +.theme-base-0f .container a, +.theme-base-0f .sidebar-toggle, +.theme-base-0f .related-posts li a:hover { + color: #8f5536; +} + + +/* + * Overlay sidebar + * + * Make the sidebar content overlay the viewport content instead of pushing it + * aside when toggled. + */ + +.sidebar-overlay #sidebar-checkbox:checked ~ .wrap { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); +} +.sidebar-overlay #sidebar-checkbox:checked ~ .sidebar-toggle { + box-shadow: 0 0 0 .25rem #fff; +} +.sidebar-overlay #sidebar-checkbox:checked ~ .sidebar { + box-shadow: .25rem 0 .5rem rgba(0,0,0,.1); +} + +/* Only one tweak for a reverse layout */ +.layout-reverse.sidebar-overlay #sidebar-checkbox:checked ~ .sidebar { + box-shadow: -.25rem 0 .5rem rgba(0,0,0,.1); +} diff --git a/public/css/poole.css b/public/css/poole.css new file mode 100644 index 00000000..8ec27e7a --- /dev/null +++ b/public/css/poole.css @@ -0,0 +1,430 @@ +/* + * ___ + * /\_ \ + * _____ ___ ___\//\ \ __ + * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ + * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ + * \ \ ,__/\ \____/\ \____//\____\ \____\ + * \ \ \/ \/___/ \/___/ \/____/\/____/ + * \ \_\ + * \/_/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/poole. + */ + + +/* + * Contents + * + * Body resets + * Custom type + * Messages + * Container + * Masthead + * Posts and pages + * Pagination + * Reverse layout + * Themes + */ + + +/* + * Body resets + * + * Update the foundational and global aspects of the page. + */ + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; +} + +html { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; +} +@media (min-width: 38em) { + html { + font-size: 20px; + } +} + +body { + color: #515151; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* No `:visited` state is required by default (browsers will use `a`) */ +a { + color: #268bd2; + text-decoration: none; +} +a strong { + color: inherit; +} +/* `:focus` is linked to `:hover` for basic accessibility */ +a:hover, +a:focus { + text-decoration: underline; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + margin-bottom: .5rem; + font-weight: bold; + line-height: 1.25; + color: #313131; + text-rendering: optimizeLegibility; +} +h1 { + font-size: 2rem; +} +h2 { + margin-top: 1rem; + font-size: 1.5rem; +} +h3 { + margin-top: 1.5rem; + font-size: 1.25rem; +} +h4, h5, h6 { + margin-top: 1rem; + font-size: 1rem; +} + +/* Body text */ +p { + margin-top: 0; + margin-bottom: 1rem; +} + +strong { + color: #303030; +} + + +/* Lists */ +ul, ol, dl { + margin-top: 0; + margin-bottom: 1rem; +} + +dt { + font-weight: bold; +} +dd { + margin-bottom: .5rem; +} + +/* Misc */ +hr { + position: relative; + margin: 1.5rem 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 1px solid #fff; +} + +abbr { + font-size: 85%; + font-weight: bold; + color: #555; + text-transform: uppercase; +} +abbr[title] { + cursor: help; + border-bottom: 1px dotted #e5e5e5; +} + +/* Code */ +code, +pre { + font-family: Menlo, Monaco, "Courier New", monospace; +} +code { + padding: .25em .5em; + font-size: 85%; + color: #bf616a; + background-color: #f9f9f9; + border-radius: 3px; +} +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + padding: 1rem; + font-size: .8rem; + line-height: 1.4; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; + background-color: #f9f9f9; +} +pre code { + padding: 0; + font-size: 100%; + color: inherit; + background-color: transparent; +} + +/* Pygments via Jekyll */ +.highlight { + margin-bottom: 1rem; + border-radius: 4px; +} +.highlight pre { + margin-bottom: 0; +} + +/* Gist via GitHub Pages */ +.gist .gist-file { + font-family: Menlo, Monaco, "Courier New", monospace !important; +} +.gist .markdown-body { + padding: 15px; +} +.gist pre { + padding: 0; + background-color: transparent; +} +.gist .gist-file .gist-data { + font-size: .8rem !important; + line-height: 1.4; +} +.gist code { + padding: 0; + color: inherit; + background-color: transparent; + border-radius: 0; +} + +/* Quotes */ +blockquote { + padding: .5rem 1rem; + margin: .8rem 0; + color: #7a7a7a; + border-left: .25rem solid #e5e5e5; +} +blockquote p:last-child { + margin-bottom: 0; +} +@media (min-width: 30em) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} + +img { + display: block; + max-width: 100%; + margin: 0 0 1rem; + border-radius: 5px; +} + +/* Tables */ +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} +td, +th { + padding: .25rem .5rem; + border: 1px solid #e5e5e5; +} +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + + +/* + * Custom type + * + * Extend paragraphs with `.lead` for larger introductory text. + */ + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + + +/* + * Messages + * + * Show alert messages to users. You may add it to single elements like a `

`, + * or to a parent if there are multiple elements to show. + */ + +.message { + margin-bottom: 1rem; + padding: 1rem; + color: #717171; + background-color: #f9f9f9; +} + + +/* + * Container + * + * Center the page content. + */ + +.container { + max-width: 38rem; + padding-left: 1rem; + padding-right: 1rem; + margin-left: auto; + margin-right: auto; +} + + +/* + * Masthead + * + * Super small header above the content for site name and short description. + */ + +.masthead { + padding-top: 1rem; + padding-bottom: 1rem; + margin-bottom: 3rem; +} +.masthead-title { + margin-top: 0; + margin-bottom: 0; + color: #505050; +} +.masthead-title a { + color: #505050; +} +.masthead-title small { + font-size: 75%; + font-weight: 400; + color: #c0c0c0; + letter-spacing: 0; +} + + +/* + * Posts and pages + * + * Each post is wrapped in `.post` and is used on default and post layouts. Each + * page is wrapped in `.page` and is only used on the page layout. + */ + +.page, +.post { + margin-bottom: 4em; +} + +/* Blog post or page title */ +.page-title, +.post-title, +.post-title a { + color: #303030; +} +.page-title, +.post-title { + margin-top: 0; +} + +/* Meta data line below post title */ +.post-date { + display: block; + margin-top: -.5rem; + margin-bottom: 1rem; + color: #9a9a9a; +} + +/* Related posts */ +.related { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: 1px solid #eee; +} +.related-posts { + padding-left: 0; + list-style: none; +} +.related-posts h3 { + margin-top: 0; +} +.related-posts li small { + font-size: 75%; + color: #999; +} +.related-posts li a:hover { + color: #268bd2; + text-decoration: none; +} +.related-posts li a:hover small { + color: inherit; +} + + +/* + * Pagination + * + * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when + * there are no more previous or next posts to show. + */ + +.pagination { + overflow: hidden; /* clearfix */ + margin-left: -1rem; + margin-right: -1rem; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + color: #ccc; + text-align: center; +} + +/* Pagination items can be `span`s or `a`s */ +.pagination-item { + display: block; + padding: 1rem; + border: 1px solid #eee; +} +.pagination-item:first-child { + margin-bottom: -1px; +} + +/* Only provide a hover state for linked pagination items */ +a.pagination-item:hover { + background-color: #f5f5f5; +} + +@media (min-width: 30em) { + .pagination { + margin: 3rem 0; + } + .pagination-item { + float: left; + width: 50%; + } + .pagination-item:first-child { + margin-bottom: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination-item:last-child { + margin-left: -1px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} diff --git a/public/css/syntax.css b/public/css/syntax.css new file mode 100644 index 00000000..15ad7977 --- /dev/null +++ b/public/css/syntax.css @@ -0,0 +1,65 @@ +.highlight .hll { background-color: #ffc; } +.highlight .c { color: #999; } /* Comment */ +.highlight .err { color: #a00; background-color: #faa } /* Error */ +.highlight .k { color: #069; } /* Keyword */ +.highlight .o { color: #555 } /* Operator */ +.highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #099 } /* Comment.Preproc */ +.highlight .c1 { color: #999; } /* Comment.Single */ +.highlight .cs { color: #999; } /* Comment.Special */ +.highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #f00 } /* Generic.Error */ +.highlight .gh { color: #030; } /* Generic.Heading */ +.highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */ +.highlight .go { color: #aaa } /* Generic.Output */ +.highlight .gp { color: #009; } /* Generic.Prompt */ +.highlight .gs { } /* Generic.Strong */ +.highlight .gu { color: #030; } /* Generic.Subheading */ +.highlight .gt { color: #9c6 } /* Generic.Traceback */ +.highlight .kc { color: #069; } /* Keyword.Constant */ +.highlight .kd { color: #069; } /* Keyword.Declaration */ +.highlight .kn { color: #069; } /* Keyword.Namespace */ +.highlight .kp { color: #069 } /* Keyword.Pseudo */ +.highlight .kr { color: #069; } /* Keyword.Reserved */ +.highlight .kt { color: #078; } /* Keyword.Type */ +.highlight .m { color: #f60 } /* Literal.Number */ +.highlight .s { color: #d44950 } /* Literal.String */ +.highlight .na { color: #4f9fcf } /* Name.Attribute */ +.highlight .nb { color: #366 } /* Name.Builtin */ +.highlight .nc { color: #0a8; } /* Name.Class */ +.highlight .no { color: #360 } /* Name.Constant */ +.highlight .nd { color: #99f } /* Name.Decorator */ +.highlight .ni { color: #999; } /* Name.Entity */ +.highlight .ne { color: #c00; } /* Name.Exception */ +.highlight .nf { color: #c0f } /* Name.Function */ +.highlight .nl { color: #99f } /* Name.Label */ +.highlight .nn { color: #0cf; } /* Name.Namespace */ +.highlight .nt { color: #2f6f9f; } /* Name.Tag */ +.highlight .nv { color: #033 } /* Name.Variable */ +.highlight .ow { color: #000; } /* Operator.Word */ +.highlight .w { color: #bbb } /* Text.Whitespace */ +.highlight .mf { color: #f60 } /* Literal.Number.Float */ +.highlight .mh { color: #f60 } /* Literal.Number.Hex */ +.highlight .mi { color: #f60 } /* Literal.Number.Integer */ +.highlight .mo { color: #f60 } /* Literal.Number.Oct */ +.highlight .sb { color: #c30 } /* Literal.String.Backtick */ +.highlight .sc { color: #c30 } /* Literal.String.Char */ +.highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #c30 } /* Literal.String.Double */ +.highlight .se { color: #c30; } /* Literal.String.Escape */ +.highlight .sh { color: #c30 } /* Literal.String.Heredoc */ +.highlight .si { color: #a00 } /* Literal.String.Interpol */ +.highlight .sx { color: #c30 } /* Literal.String.Other */ +.highlight .sr { color: #3aa } /* Literal.String.Regex */ +.highlight .s1 { color: #c30 } /* Literal.String.Single */ +.highlight .ss { color: #fc3 } /* Literal.String.Symbol */ +.highlight .bp { color: #366 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #033 } /* Name.Variable.Class */ +.highlight .vg { color: #033 } /* Name.Variable.Global */ +.highlight .vi { color: #033 } /* Name.Variable.Instance */ +.highlight .il { color: #f60 } /* Literal.Number.Integer.Long */ + +.css .o, +.css .o + .nt, +.css .nt + .nt { color: #999; } diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2cd56085afa9abeff1bef566ed1fd9fcdeb4b03f GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?i-EKU7`vU!wgU;46*#5? zX$3HD|21bWka5`4#WBR=cyh?)3#kiK6Bey}xmb*ci#wvg^T&?e-~3)2)e4OX*pvD^ zPf0gHOib{&*2gC=H{UkT+puwymX_ur*5_yE?N0f4sg|Ap|G&@e9^4WipELW0KINT# z?eNZ5v#OS`UA)l$B#_%pSAtROgs1nf9lI}GVAAL3k4aS$)p_vffrgIek@am#+-G`t z6?uF^Q)fjyc=pUKfcG3%dw28UllQJ2zb+lQVeLk_nbI<1KKoexzHOVa(Y>cLqoHui zL({B-54Hn?;k<@f;Hq6NK<_A3g+!DD=ckpFCl;kLFjU+s_BrYA75d?fua7^km#@!C a76$z}tXJ0Ytn>w{X7F_Nb6Mw<&;$TXFM{*{ literal 0 HcmV?d00001 From 6172f51300c1a7c8139bd40f50250cf6a29cc0a5 Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Fri, 8 Sep 2017 22:59:30 +0100 Subject: [PATCH 02/98] Modify structure. Add sample files to start structuring site. --- _config.yml | 20 ++- _includes/sidebar.html | 15 ++- _layouts/publication.html | 15 +++ _posts/2013-12-31-whats-jekyll.md | 12 -- _posts/2014-01-01-example-content.md | 122 ------------------ _posts/2014-01-02-introducing-lanyon.md | 38 ------ _publications/allamanis2013mining.markdown | 13 ++ _publications/allamanis2014learning.markdown | 33 +++++ _publications/allamanis2014mining.markdown | 13 ++ _publications/allamanis2015bimodal.markdown | 23 ++++ .../allamanis2015suggesting.markdown | 14 ++ .../allamanis2016convolutional.markdown | 27 ++++ _publications/allamanis2017mining.markdown | 13 ++ .../allamanis2017smartpaste.markdown | 25 ++++ 14 files changed, 192 insertions(+), 191 deletions(-) create mode 100644 _layouts/publication.html delete mode 100644 _posts/2013-12-31-whats-jekyll.md delete mode 100644 _posts/2014-01-01-example-content.md delete mode 100644 _posts/2014-01-02-introducing-lanyon.md create mode 100644 _publications/allamanis2013mining.markdown create mode 100644 _publications/allamanis2014learning.markdown create mode 100644 _publications/allamanis2014mining.markdown create mode 100644 _publications/allamanis2015bimodal.markdown create mode 100644 _publications/allamanis2015suggesting.markdown create mode 100644 _publications/allamanis2016convolutional.markdown create mode 100644 _publications/allamanis2017mining.markdown create mode 100644 _publications/allamanis2017smartpaste.markdown diff --git a/_config.yml b/_config.yml index 26efddf7..6eb9ab1f 100644 --- a/_config.yml +++ b/_config.yml @@ -4,17 +4,13 @@ permalink: pretty # Setup -title: Lanyon -tagline: 'A Jekyll theme' -description: 'A reserved Jekyll theme that places the utmost gravity on content with a hidden drawer. Made by @mdo.' -url: http://lanyon.getpoole.com +title: Machine Learning for Code +tagline: 'a literature review' +description: 'A survey of academic research on machine learning models for source code.' +url: http://todo.com baseurl: '' -# About/contact -author: - name: Mark Otto - url: https://twitter.com/mdo - email: markdotto@gmail.com - -# Custom vars -version: 1.0.0 +collections: + publications: + output: true + permalink: /:collection/:path/ diff --git a/_includes/sidebar.html b/_includes/sidebar.html index 520eebaf..c2136e9f 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -1,6 +1,6 @@ - +

diff --git a/_layouts/publication.html b/_layouts/publication.html new file mode 100644 index 00000000..b840111f --- /dev/null +++ b/_layouts/publication.html @@ -0,0 +1,15 @@ +--- +layout: default +--- + +
+

{{ page.title }}

+
{{ page.authors }}. {{ page.conference }} {{ page.year }}
+

[pdf] + {% for additional_link in page.additional_links %} + [{{ additional_link.name }}] + {% endfor %} +

+ +

{{ content }}

+
diff --git a/_posts/2013-12-31-whats-jekyll.md b/_posts/2013-12-31-whats-jekyll.md deleted file mode 100644 index 6bf2b50d..00000000 --- a/_posts/2013-12-31-whats-jekyll.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: post -title: What's Jekyll? ---- - -[Jekyll](http://jekyllrb.com) is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From [the project's readme](https://github.com/mojombo/jekyll/blob/master/README.markdown): - - > Jekyll is a simple, blog aware, static site generator. It takes a template directory [...] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub. - -It's an immensely useful tool and one we encourage you to use here with Lanyon. - -Find out more by [visiting the project on GitHub](https://github.com/mojombo/jekyll). diff --git a/_posts/2014-01-01-example-content.md b/_posts/2014-01-01-example-content.md deleted file mode 100644 index 81e47487..00000000 --- a/_posts/2014-01-01-example-content.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -layout: post -title: Example content ---- - - -
- Howdy! This is an example blog post that shows several types of HTML content supported in this theme. -
- -Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. *Aenean eu leo quam.* Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum. - -> Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit. - -Etiam porta **sem malesuada magna** mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur. - -## Inline HTML elements - -HTML defines a long list of available inline tags, a complete list of which can be found on the [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML/Element). - -- **To bold text**, use ``. -- *To italicize text*, use ``. -- Abbreviations, like HTML should use ``, with an optional `title` attribute for the full phrase. -- Citations, like — Mark otto, should use ``. -- Deleted text should use `` and inserted text should use ``. -- Superscript text uses `` and subscript text uses ``. - -Most of these elements are styled by browsers with few modifications on our part. - -## Heading - -Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. - -### Code - -Cum sociis natoque penatibus et magnis dis `code element` montes, nascetur ridiculus mus. - -{% highlight js %} -// Example can be run directly in your JavaScript console - -// Create a function that takes two arguments and returns the sum of those arguments -var adder = new Function("a", "b", "return a + b"); - -// Call the function -adder(2, 6); -// > 8 -{% endhighlight %} - -Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa. - -### Lists - -Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. - -* Praesent commodo cursus magna, vel scelerisque nisl consectetur et. -* Donec id elit non mi porta gravida at eget metus. -* Nulla vitae elit libero, a pharetra augue. - -Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. - -1. Vestibulum id ligula porta felis euismod semper. -2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. -3. Maecenas sed diam eget risus varius blandit sit amet non magna. - -Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. - -
-
HyperText Markup Language (HTML)
-
The language used to describe and define the content of a Web page
- -
Cascading Style Sheets (CSS)
-
Used to describe the appearance of Web content
- -
JavaScript (JS)
-
The programming language used to build advanced Web sites and applications
-
- -Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam quis risus eget urna mollis ornare vel eu leo. - -### Tables - -Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUpvotesDownvotes
Totals2123
Alice1011
Bob43
Charlie79
- -Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo. - ------ - -Want to see something else added? Open an issue. diff --git a/_posts/2014-01-02-introducing-lanyon.md b/_posts/2014-01-02-introducing-lanyon.md deleted file mode 100644 index 13e7ce48..00000000 --- a/_posts/2014-01-02-introducing-lanyon.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: post -title: Introducing Lanyon ---- - -Lanyon is an unassuming [Jekyll](http://jekyllrb.com) theme that places content first by tucking away navigation in a hidden drawer. It's based on [Poole](http://getpoole.com), the Jekyll butler. - -### Built on Poole - -Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by [@mdo](https://twitter.com/mdo). Poole, and every theme built on it (like Lanyon here) includes the following: - -* Complete Jekyll setup included (layouts, config, [404](/404), [RSS feed](/atom.xml), posts, and [example page](/about)) -* Mobile friendly design and development -* Easily scalable text and component sizing with `rem` units in the CSS -* Support for a wide gamut of HTML elements -* Related posts (time-based, because Jekyll) below each post -* Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter) - -### Lanyon features - -In addition to the features of Poole, Lanyon adds the following: - -* Toggleable sliding sidebar (built with only CSS) via **☰** link in top corner -* Sidebar includes support for textual modules and a dynamically generated navigation with active link support -* Two orientations for content and sidebar, default (left sidebar) and [reverse](https://github.com/poole/lanyon#reverse-layout) (right sidebar), available via `` classes -* [Eight optional color schemes](https://github.com/poole/lanyon#themes), available via `` classes - -[Head to the readme](https://github.com/poole/lanyon#readme) to learn more. - -### Browser support - -Lanyon is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above. - -### Download - -Lanyon is developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests. - -Thanks! diff --git a/_publications/allamanis2013mining.markdown b/_publications/allamanis2013mining.markdown new file mode 100644 index 00000000..79051ded --- /dev/null +++ b/_publications/allamanis2013mining.markdown @@ -0,0 +1,13 @@ +--- +layout: publication +title: "Mining Source Code Repositories at Massive Scale Using Language Modeling " +authors: M. Allamanis, C. Sutton +conference: MSR +year: 2013 +featured: false +bibkey: allamanis2013mining +additional_links: + - {name: "data", url: "http://groups.inf.ed.ac.uk/cup/javaGithub/"} + - {name: "data@ Edinburgh DataShare", url: "http://datashare.is.ed.ac.uk/handle/10283/2334"} +--- +The tens of thousands of high-quality open source software projects on the Internet raise the exciting possibility of studying software development by finding patterns across truly large source code repositories. This could enable new tools for developing code, encouraging reuse, and navigating large projects. In this paper, we build the first giga-token probabilistic language model of source code, based on 352 million lines of Java. This is 100 times the scale of the pioneering work by Hindle et al. The giga-token model is significantly better at the code suggestion task than previous models. More broadly, our approach provides a new “lens” for analyzing software projects, enabling new complexity metrics based on statistical analysis of large corpora. We call these metrics data-driven complexity metrics. We propose new metrics that measure the complexity of a code module and the topical centrality of a module to a software project. In particular, it is possible to distinguish reusable utility classes from classes that are part of a program’s core logic based solely on general information theoretic criteria. diff --git a/_publications/allamanis2014learning.markdown b/_publications/allamanis2014learning.markdown new file mode 100644 index 00000000..08aa6a01 --- /dev/null +++ b/_publications/allamanis2014learning.markdown @@ -0,0 +1,33 @@ +--- +layout: publication +title: Learning Natural Coding Conventions +authors: M. Allamanis, E. T. Barr, C. Bird, C. Sutton +conference: FSE +year: 2014 +featured: false +bibkey: allamanis2014learning +additional_links: + - {name: "ArXiV", url: "http://arxiv.org/abs/1402.4182"} + - {name: "website", url: "http://groups.inf.ed.ac.uk/naturalize/"} + - {name: "code", url: "https://github.com/mast-group/naturalize"} +--- +Every programmer has a characteristic style, ranging from preferences +about identifier naming to preferences about object relationships and +design patterns. Coding conventions define a consistent syntactic style, +fostering readability and hence maintainability. When collaborating, +programmers strive to obey a project’s coding conventions. However, +one third of reviews of changes contain feedback about coding conventions, +indicating that programmers do not always follow them and that project +members care deeply about adherence. Unfortunately, programmers are +often unaware of coding conventions because inferring them requires a +global view, one that aggregates the many local decisions programmers +make and identifies emergent consensus on style. We present Naturalize, +a framework that learns the style of a codebase, and suggests revisions +to improve stylistic consistency. Naturalize builds on recent work in +applying statistical natural language processing to source code. We +apply Naturalize to suggest natural identifier names and formatting +conventions. We present four tools focused on ensuring natural code +during development and release management, including code review. +Naturalize achieves 94% accuracy in its top suggestions for identifier +names. We used Naturalize to generate 18 patches for 5 open source +projects: 14 were accepted. diff --git a/_publications/allamanis2014mining.markdown b/_publications/allamanis2014mining.markdown new file mode 100644 index 00000000..ae8db47a --- /dev/null +++ b/_publications/allamanis2014mining.markdown @@ -0,0 +1,13 @@ +--- +layout: publication +title: "Mining Idioms from Source Code" +authors: M. Allamanis, C. Sutton +conference: FSE +year: 2014 +featured: false +bibkey: allamanis2014mining +additional_links: + - {name: "ArXiV", url: "http://arxiv.org/abs/1404.0417"} + - {name: "data", url: "http://groups.inf.ed.ac.uk/cup/idioms/haggisClassUsersDataset.zip"} +--- +We present the first method for automatically mining code idioms from a corpus of previously written, idiomatic software projects. We take the view that a code idiom is a syntactic fragment that recurs across projects and has a single semantic purpose. Idioms may have metavariables, such as the body of a for loop. Modern IDEs commonly provide facilities for manually defining idioms and inserting them on demand, but this does not help programmers to write idiomatic code in languages or using libraries with which they are unfamiliar. We present Haggis, a system for mining code idioms that builds on recent advanced techniques from statistical natural language processing, namely, nonparametric Bayesian probabilistic tree substitution grammars. We apply Haggis to several of the most popular open source projects from GitHub. We present a wide range of evidence that the resulting idioms are semantically meaningful, demonstrating that they do indeed recur across software projects and that they occur more frequently in illustrative code examples collected from a Q&A site. Manual examination of the most common idioms indicate that they describe important program concepts, including object creation, exception handling, and resource management. diff --git a/_publications/allamanis2015bimodal.markdown b/_publications/allamanis2015bimodal.markdown new file mode 100644 index 00000000..3c7c1928 --- /dev/null +++ b/_publications/allamanis2015bimodal.markdown @@ -0,0 +1,23 @@ +--- +layout: publication +title: A Bimodal Modelling of Source Code and Natural Language +authors: M. Allamanis, D. Tarlow, A. D. Gordon, Y. Wei +conference: ICML +year: 2015 +featured: false +bibkey: allamanis2015bimodal +additional_links: + - {name: "Supplementary Material", url: "/publicationfiles/allamanis2015bimodal/supplementary.pdf"} + - {name: "Presentation Video", url: "http://videolectures.net/icml2015_allamanis_natural_language/"} +--- +We consider the problem of building probabilistic models that jointly +model short natural language utterances and source code snippets. The +aim is to bring together recent work on statistical modelling of source +code and work on bimodal models of images and natural language. The +resulting models are useful for a variety of tasks that involve natural +language and source code. We demonstrate their performance on two +retrieval tasks: retrieving source code snippets given a natural language +query, and retrieving natural language descriptions given a source code +query (i.e., source code captioning). Experiments show there to be +promise in this direction, and that modelling the structure of source +code improves performance. diff --git a/_publications/allamanis2015suggesting.markdown b/_publications/allamanis2015suggesting.markdown new file mode 100644 index 00000000..568b355a --- /dev/null +++ b/_publications/allamanis2015suggesting.markdown @@ -0,0 +1,14 @@ +--- +layout: publication +title: Suggesting Accurate Method and Class Names +authors: M. Allamanis, E. T. Barr, C. Bird, C. Sutton +conference: FSE +year: 2015 +featured: false +bibkey: allamanis2015suggesting +additional_links: + - {name: "website", url: "http://groups.inf.ed.ac.uk/cup/naturalize"} +--- +Descriptive names are a vital part of readable, and hence maintainable, code. Recent progress on automatically suggesting names for local variables tantalizes with the prospect of replicating that success with method and class names. However, suggesting names for methods and classes is much more difficult. This is because good method and class names need to be functionally descriptive, but suggesting such names requires that the model goes beyond local context. We introduce a neural probabilistic language model for source code that is specifically designed for the method naming problem. Our model learns which names are semantically similar by assigning them to locations, called embeddings, in a high-dimensional continuous space, in such a way that names with similar embeddings tend to be used in similar contexts. These embeddings seem to contain semantic information about tokens, even though they are learned only from statistical co-occurrences of tokens. Furthermore, we introduce a variant of our model +that is, to our knowledge, the first that can propose neologisms, names that have not appeared in the training corpus. We obtain state of the art results on the method, class, and even the simpler variable naming tasks. More broadly, the continuous embeddings that are learned by our model have the potential for wide application within software engineering. + diff --git a/_publications/allamanis2016convolutional.markdown b/_publications/allamanis2016convolutional.markdown new file mode 100644 index 00000000..0425b8cf --- /dev/null +++ b/_publications/allamanis2016convolutional.markdown @@ -0,0 +1,27 @@ +--- +layout: publication +title: A Convolutional Attention Network for Extreme Summarization of Source Code +authors: M. Allamanis, H. Peng, C. Sutton +conference: ICML +year: 2016 +featured: true +bibkey: allamanis2016convolutional +additional_links: + - {name: "website", url: "http://groups.inf.ed.ac.uk/cup/codeattention/"} + - {name: "code", url: "https://github.com/mast-group/convolutional-attention"} + - {name: "proceedings", url: "http://jmlr.org/proceedings/papers/v48/allamanis16.pdf"} + - {name: "presentation video", url: "http://techtalks.tv/talks/a-convolutional-attention-network-for-extreme-summarization-of-source-code/62461/"} + - {name: "GitXiV", url: "http://gitxiv.com/posts/A6HFFyK7CmNLaSjG7/a-convolutional-attention-network-for-extreme-summarization"} +--- +Attention mechanisms in neural networks have proved useful for problems in which +the input and output do not have fixed dimension. Often there exist features that +are locally translation invariant and would be valuable for directing the model’s attention, +but previous attentional architectures are not constructed to learn such features specifically. +We introduce an attentional neural network that employs convolution on the input tokens to detect +local time-invariant and long-range topical attention features in a context-dependent way. We +apply this architecture to the problem of extreme summarization of source code snippets into short, +descriptive function name-like summaries. Using those features, the model sequentially generates a +summary by marginalizing over two attention mechanisms: one that predicts the next summary token based +n the attention weights of the input tokens and another that is able to copy a code token as-is directly +into the summary. We demonstrate our convolutional attention neural network’s performance on 10 popular Java +projects showing that it achieves better performance compared to previous attentional mechanisms. diff --git a/_publications/allamanis2017mining.markdown b/_publications/allamanis2017mining.markdown new file mode 100644 index 00000000..ac52e2a6 --- /dev/null +++ b/_publications/allamanis2017mining.markdown @@ -0,0 +1,13 @@ +--- +layout: publication +title: Mining Semantic Loop Idioms from Big Code +authors: M. Allamanis, E. T. Barr, C. Bird, M. Marron, C. Sutton +conference: "" +year: 2017 +featured: false +bibkey: allamanis2017mining +additional_links: + - {name: "MSR Technical Report", url: "https://www.microsoft.com/en-us/research/publication/mining-semantic-loop-idioms-big-code/"} + - {name: "website", url: "http://groups.inf.ed.ac.uk/cup/semantic-idioms/"} +--- +During maintenance, developers spend a lot of time transforming existing code: refactoring, optimizing, and adding checks to make it more robust. Much of this work is the drudgery of identifying and replacing specific patterns, yet it resists automation, because of meaningful patterns are hard to automatically find. We present a technique for mining loop idioms, surprisingly probable semantic patterns that occur in loops, from big code to find meaningful patterns. First, we show that automatically identifiable patterns exist, in great numbers, with a large scale empirical study of loop over 25 MLOC. We find that loops in this corpus are simple and predictable: 90% of them have fewer than 15LOC and 90% have no nesting and very simple control structure. Encouraged by this result, we coil loops to abstract away syntactic diversity to define information rich loop idioms. We show that only 50 loop idioms cover 50% of the concrete loops. We show how loop idioms can help a tool developers identify and prioritize refactorings. We also show how our framework opens the door to data-driven tool and language design discovering opportunities to introduce new API calls and language constructs: loop idioms show that LINQ would benefit from an Enumerate operator, a result confirmed by the fact that precisely this feature is one of the most requested features on StackOverflow with 197 votes and 95k views. diff --git a/_publications/allamanis2017smartpaste.markdown b/_publications/allamanis2017smartpaste.markdown new file mode 100644 index 00000000..e6e871b9 --- /dev/null +++ b/_publications/allamanis2017smartpaste.markdown @@ -0,0 +1,25 @@ +--- +layout: publication +title: "SmartPaste: Learning to Adapt Source Code" +authors: M. Allamanis, M. Brockscmidt +conference: "" +year: 2017 +featured: true +bibkey: allamanis2017smartpaste +additional_links: + - {name: "ArXiV", url: "https://arxiv.org/abs/1705.07867"} +--- +Deep Neural Networks have been shown to succeed at a range of natural +language tasks such as machine translation and text summarization. +While tasks on source code (ie, formal languages) have been considered +recently, most work in this area does not attempt to capitalize on the +unique opportunities offered by its known syntax and structure. In this +work, we introduce SmartPaste, a first task that requires to use such +information. The task is a variant of the program repair problem that +requires to adapt a given (pasted) snippet of code to surrounding, +existing source code. As first solutions, we design a set of deep +neural models that learn to represent the context of each variable +location and variable usage in a data flow-sensitive way. Our +evaluation suggests that our models can learn to solve the SmartPaste +task in many cases, achieving 58.6% accuracy, while learning meaningful +representation of variable usages. From 6bd43733eeb698b46704142c174c83d1813e823e Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Sat, 9 Sep 2017 00:09:46 +0100 Subject: [PATCH 03/98] Basic structure. --- _config.yml | 5 ---- _includes/sidebar.html | 10 +++---- _publications/allamanis2013mining.markdown | 1 - _publications/allamanis2014learning.markdown | 1 - _publications/allamanis2014mining.markdown | 1 - _publications/allamanis2015bimodal.markdown | 1 - .../allamanis2015suggesting.markdown | 1 - .../allamanis2016convolutional.markdown | 1 - _publications/allamanis2017mining.markdown | 1 - .../allamanis2017smartpaste.markdown | 1 - about.md | 30 ------------------- contributing.markdown | 30 +++++++++++++++++++ index.md | 19 ++++++++++++ index.html => papers.html | 0 14 files changed, 53 insertions(+), 49 deletions(-) delete mode 100644 about.md create mode 100644 contributing.markdown create mode 100644 index.md rename index.html => papers.html (100%) diff --git a/_config.yml b/_config.yml index 6eb9ab1f..a79b978e 100644 --- a/_config.yml +++ b/_config.yml @@ -1,8 +1,3 @@ -# Permalinks -# -# Use of `relative_permalinks` ensures post links from the index work properly. -permalink: pretty - # Setup title: Machine Learning for Code tagline: 'a literature review' diff --git a/_includes/sidebar.html b/_includes/sidebar.html index c2136e9f..6e22812d 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -9,13 +9,12 @@ diff --git a/index.md b/index.md index b2b7d76d..311db9c5 100644 --- a/index.md +++ b/index.md @@ -26,10 +26,15 @@ you explore the navigate the literautre in this area, by following a [taxonomy](\taxnomomy) based on the underlying design principles of each model. -The full survey is available [as a research paper](). +The full survey is available [as a research paper](https://arxiv.org/abs/1709.06182). Please cite as
-TODO
+@article{allamanis2017survey,
+  title={A Survey of Machine Learning for Big Code and Naturalness},
+  author={Allamanis, Miltiadis and Brockschmidt, Marc},
+  journal={arXiv preprint arXiv:1709.06182},
+  year={2017}
+}
 
### Contributing @@ -40,3 +45,7 @@ Anyone can add a paper to this web site, essentially by creating one Markdown fi To contribute, open a pull request in GitHub, by following [these instructions for contributing](contributing.html). +### Datasets and Other Resources +Some resources about Big Code and Naturalness can be found at [learnbigcode.github.io](http://learnbigcode.github.io). +A list of datasets used in this area can be found at the appendix of the +[survey](https://arxiv.org/abs/1709.06182) and at [learnbigcode.github.io](http://learnbigcode.github.io/datasets/). From 5c7c3ec1ad946a258f18cac166c4d80aa07e7a72 Mon Sep 17 00:00:00 2001 From: Vincent Hellendoorn Date: Fri, 22 Sep 2017 10:26:25 -0700 Subject: [PATCH 30/98] Update hellendoorn2017deep.markdown --- _publications/hellendoorn2017deep.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_publications/hellendoorn2017deep.markdown b/_publications/hellendoorn2017deep.markdown index 42346ea9..c77ce968 100644 --- a/_publications/hellendoorn2017deep.markdown +++ b/_publications/hellendoorn2017deep.markdown @@ -5,6 +5,10 @@ authors: V. J. Hellendoorn, P. Devanbu conference: FSE year: 2017 bibkey: hellendoorn2017deep +additional_links: + - {name: "Paper", url: "http://vhellendoorn.github.io/PDF/fse2017.pdf"} + - {name: "Slides", url: "http://vhellendoorn.github.io/PPT/FSE17Presentation.pptx"} + - {name: "Code", url: "https://github.com/SLP-Team/SLP-Core"} --- Current statistical language modeling techniques, including deep-learning based models, have proven to be quite effective for source code. We argue here that the special properties of source code can From b84c2dd0a42aeea54eade9972d015d38be970d26 Mon Sep 17 00:00:00 2001 From: Vincent Hellendoorn Date: Fri, 22 Sep 2017 10:28:23 -0700 Subject: [PATCH 31/98] Update hellendoorn2015will.markdown --- _publications/hellendoorn2015will.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_publications/hellendoorn2015will.markdown b/_publications/hellendoorn2015will.markdown index f2a2c6e6..f38a0e8b 100644 --- a/_publications/hellendoorn2015will.markdown +++ b/_publications/hellendoorn2015will.markdown @@ -5,6 +5,8 @@ authors: V.J. Hellendoorn, P. Devanbu, A. Bacchelli conference: MSR year: 2015 bibkey: hellendoorn2015will +additional_links: + - {name: "Paper", url: "http://vhellendoorn.github.io/PDF/msr2015.pdf"} --- Popular open-source software projects receive and review contributions from a diverse array of developers, many From 58fda9b8271f3b5644623da72c8a1d449b768e29 Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Sat, 23 Sep 2017 10:47:44 +0100 Subject: [PATCH 32/98] Added some Jekyll plugins. --- _config.yml | 4 ++++ _includes/head.html | 10 +++------- base-taxonomy/index.md | 1 + contributing.markdown | 1 + papers.html | 1 + 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/_config.yml b/_config.yml index e9f7ad1c..beadfd41 100644 --- a/_config.yml +++ b/_config.yml @@ -9,3 +9,7 @@ collections: publications: output: true permalink: /:collection/:path/ + +plugins: + - jekyll-sitemap + - jekyll-seo-tag diff --git a/_includes/head.html b/_includes/head.html index d3b9c9de..97b4647c 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -7,13 +7,8 @@ - - {% if page.title == "Home" %} - {{ site.title }} · {{ site.tagline }} - {% else %} - {{ page.title }} · {{ site.title }} - {% endif %} - + {% seo %} + @@ -24,6 +19,7 @@ + + + From fc876803d34ca5de16722e4c95043c62393b4b3e Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Tue, 3 Oct 2017 22:37:07 +0100 Subject: [PATCH 37/98] typo --- index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.md b/index.md index ff32ac53..cea36687 100644 --- a/index.md +++ b/index.md @@ -22,7 +22,7 @@ natural language processing communities with software engineering and programming language communities. This site is an experiment: a living literature review that allows -you explore the navigate the literautre in this area, by +you explore the navigate the literature in this area, by following a [taxonomy](\taxnomomy) based on the underlying design principles of each model. From 6b8ad80f45d0cae2afd7f4cd882abc27583c60e2 Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 4 Oct 2017 11:30:36 +0200 Subject: [PATCH 38/98] Create markovtsev2017topic.markdown Adding https://arxiv.org/abs/1704.00135 --- _publications/markovtsev2017topic.markdown | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 _publications/markovtsev2017topic.markdown diff --git a/_publications/markovtsev2017topic.markdown b/_publications/markovtsev2017topic.markdown new file mode 100644 index 00000000..2fb2be3a --- /dev/null +++ b/_publications/markovtsev2017topic.markdown @@ -0,0 +1,20 @@ +--- +layout: publication +title: "Topic modeling of public repositories at scale using names in source code" +authors: V. Markovtsev, E. Kant +conference: ArXiV 1704.00135 +year: 2017 +bibkey: markovtsev2017topic +--- + Programming languages themselves have a limited number of reserved keywords and character based tokens that +define the language specification. However, programmers have a rich use of natural language within their code +through comments, text literals and naming entities. The programmer defined names that can be found in source +code are a rich source of information to build a high level understanding of the project. The goal of this paper +is to apply topic modeling to names used in over 13.6 million repositories and perceive the inferred topics. +One of the problems in such a study is the occurrence of duplicate repositories not officially marked as forks (obscure forks). +We show how to address it using the same identifiers which are extracted for topic modeling. + +We open with a discussion on naming in source code, we then elaborate on our approach to remove exact duplicate +and fuzzy duplicate repositories using Locality Sensitive Hashing on the bag-of-words model and then discuss our work +on topic modeling; and finally present the results from our data analysis together with open-access to the source code, +tools and datasets. From fc727d1d8cb45e9b72ec314e0fc8ca28e122c4e2 Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 4 Oct 2017 12:25:07 +0200 Subject: [PATCH 39/98] Update markovtsev2017topic.markdown Add links --- _publications/markovtsev2017topic.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_publications/markovtsev2017topic.markdown b/_publications/markovtsev2017topic.markdown index 2fb2be3a..3ec6723b 100644 --- a/_publications/markovtsev2017topic.markdown +++ b/_publications/markovtsev2017topic.markdown @@ -5,6 +5,10 @@ authors: V. Markovtsev, E. Kant conference: ArXiV 1704.00135 year: 2017 bibkey: markovtsev2017topic +additional_links: + - {name: "ArXiV", url: "https://arxiv.org/abs/1704.00135"} + - {name: "website", url: "https://blog.sourced.tech/post/github_topic_modeling"} + - {name: "code", url: "https://github.com/src-d/ast2vec/blob/master/topic_modeling.md"} --- Programming languages themselves have a limited number of reserved keywords and character based tokens that define the language specification. However, programmers have a rich use of natural language within their code From 940d37c9dd40eeff6dd8a45809b3273cf2c69930 Mon Sep 17 00:00:00 2001 From: Miltos Date: Sun, 8 Oct 2017 17:18:57 +0100 Subject: [PATCH 40/98] Update papers.html --- papers.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/papers.html b/papers.html index 8ec97b2f..4c4bef94 100644 --- a/papers.html +++ b/papers.html @@ -2,6 +2,8 @@ layout: default title: List of Publications description: A list of research papers for machine learning models for source code. +Please consider contributing to this list by adding +additional information to existing papers or adding new work. --- Below there is a list of related papers within this area, sorted by year. {% assign publicationsByYear = site.publications | sort: "year" | group_by: "year" %} From 80a1be52cca579f9a384e245cc85fcd7380d2114 Mon Sep 17 00:00:00 2001 From: Miltos Date: Sun, 8 Oct 2017 17:21:10 +0100 Subject: [PATCH 41/98] Update papers.html --- papers.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/papers.html b/papers.html index 4c4bef94..a6a5b4cc 100644 --- a/papers.html +++ b/papers.html @@ -2,10 +2,11 @@ layout: default title: List of Publications description: A list of research papers for machine learning models for source code. +--- +Below there is a list of related papers within this area, sorted by year. Please consider contributing to this list by adding additional information to existing papers or adding new work. ---- -Below there is a list of related papers within this area, sorted by year. + {% assign publicationsByYear = site.publications | sort: "year" | group_by: "year" %} {% for year in publicationsByYear reversed %}

{{ year.name }}

From fc5e5a24b3620383be07093413a5633c2e854094 Mon Sep 17 00:00:00 2001 From: Shashank Srikant Date: Tue, 17 Oct 2017 09:13:41 -0400 Subject: [PATCH 42/98] KDD 2014 work by srikant, aggarwal (#6) * KDD 2014 work by srikant, aggarwal A system to grade computer programming skills, KDD 2014. * added lab's URL --- _publications/srikant2014system.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 _publications/srikant2014system.markdown diff --git a/_publications/srikant2014system.markdown b/_publications/srikant2014system.markdown new file mode 100644 index 00000000..3f8c8011 --- /dev/null +++ b/_publications/srikant2014system.markdown @@ -0,0 +1,12 @@ +--- +layout: publication +title: "A system to grade computer programming skills using machine learning" +authors: S. Srikant, V. Aggarwal +conference: KDD +year: 2014 +bibkey: srikant2014system +additional_links: + - {name: "PDF", url: "https://dl.acm.org/citation.cfm?id=2623377"} + - {name: "website", url: "http://research.aspiringminds.com/"} +--- +The automatic evaluation of computer programs is a nascent area of research with a potential for large-scale impact. Extant program assessment systems score mostly based on the number of test-cases passed, providing no insight into the competency of the programmer. In this paper, we present a system to grade computer programs automatically. In addition to grading a program on its programming practices and complexity, the key kernel of the system is a machine-learning based algorithm which determines closeness of the logic of the given program to a correct program. This algorithm uses a set of highly-informative features, derived from the abstract representations of a given program, that capture the program's functionality. These features are then used to learn a model to grade the programs, which are built against evaluations done by experts. We show that the regression models provide much better grading than the ubiquitous test-case-pass based grading and rivals the grading accuracy of other open-response problems such as essay grading . We also show that our novel features add significant value over and above basic keyword/expression count features. In addition to this, we propose a novel way of posing computer-program grading as a one-class modeling problem and report encouraging preliminary results. We show the value of the system through a case study in a real-world industrial deployment. To the best of the authors' knowledge, this is the first time a system using machine learning has been developed and used for grading programs. The work is timely with regard to the recent boom in Massively Online Open Courseware (MOOCs), which promises to produce a significant amount of hand-graded digitized data. From c75295e14968ef13d4e60b1a7cb8a01bbf768863 Mon Sep 17 00:00:00 2001 From: Shashank Srikant Date: Tue, 17 Oct 2017 09:17:04 -0400 Subject: [PATCH 43/98] KDD 2016 work by singh, srikant, aggarwal (#7) * KDD 2016 work by singh, srikant, aggarwal Question Independent Grading using Machine Learning: The Case of Computer Program Grading, by G Singh, S Srikant, V Aggarwal; KDD 2016 * added lab URL * renamed file had missed out .markdown in it * Remove underscores --- _publications/singh2016question.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 _publications/singh2016question.markdown diff --git a/_publications/singh2016question.markdown b/_publications/singh2016question.markdown new file mode 100644 index 00000000..7fad74fa --- /dev/null +++ b/_publications/singh2016question.markdown @@ -0,0 +1,12 @@ +--- +layout: publication +title: "Question Independent Grading using Machine Learning: The Case of Computer Program Grading" +authors: G. Singh, S. Srikant, V. Aggarwal +conference: KDD +year: 2016 +bibkey: singh2016question +additional_links: + - {name: "PDF", url: "https://dl.acm.org/citation.cfm?id=2939696"} + - {name: "website", url: "http://research.aspiringminds.com/"} +--- +Learning supervised models to grade open-ended responses is an expensive process. A model has to be trained for every prompt/question separately, which in turn requires graded samples. In automatic programming evaluation specifically, the focus of this work, this issue is amplified. The models have to be trained not only for every question but also for every language the question is offered in. Moreover, the availability and time taken by experts to create a labeled set of programs for each question is a major bottleneck in scaling such a system. We address this issue by presenting a method to grade computer programs which requires no manually assigned labeled samples for grading responses to a new, unseen question. We extend our previous work (by Srikant, Aggarwal; KDD 2014) wherein we introduced a grammar of features to learn question specific models. In this work, we propose a method to transform those features into a set of features that maintain their structural relation with the labels across questions. Using these features we learn one supervised model, across questions for a given language, which can then be applied to an ungraded response to an unseen question. We show that our method rivals the performance of both, question specific models and the consensus among human experts while substantially outperforming extant ways of evaluating codes. We demonstrate the system single s value by deploying it to grade programs in a high stakes assessment. The learning from this work is transferable to other grading tasks such as math question grading and also provides a new variation to the supervised learning approach. From e66cce4e72aa38f2abdc32311e2be68467bddbc7 Mon Sep 17 00:00:00 2001 From: Eddie Antonio Santos Date: Mon, 30 Oct 2017 12:16:17 -0600 Subject: [PATCH 44/98] Fix homepage link to Taxonomy page. --- index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.md b/index.md index cea36687..73c364a8 100644 --- a/index.md +++ b/index.md @@ -23,7 +23,7 @@ and programming language communities. This site is an experiment: a living literature review that allows you explore the navigate the literature in this area, by -following a [taxonomy](\taxnomomy) +following a [taxonomy]({% link base-taxonomy/index.md %}) based on the underlying design principles of each model. The full survey is available [as a research paper](https://arxiv.org/abs/1709.06182). From f08be169d085cc5f573cad51bb53037a2919ef70 Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Sat, 16 Dec 2017 21:38:25 +0000 Subject: [PATCH 45/98] A set of changes to make the website a bit more useful. * All search fields now can also search into the abstracts. * "Other Resources" now have their own page. * A few stylistic changes. --- _config.yml | 2 +- _includes/head.html | 10 ++----- _includes/sidebar.html | 3 +- base-taxonomy/generative.html | 17 +++++++++--- base-taxonomy/pattern.html | 15 ++++++++-- base-taxonomy/representational.html | 15 ++++++++-- contributors.md | 6 ++-- index.md | 19 +++++-------- papers.html | 43 +++++++++++++++++++++-------- public/css/hyde.css | 11 +++++++- public/css/poole.css | 8 +++--- resources.md | 13 +++++++++ 12 files changed, 111 insertions(+), 51 deletions(-) create mode 100644 resources.md diff --git a/_config.yml b/_config.yml index beadfd41..8dab8c1f 100644 --- a/_config.yml +++ b/_config.yml @@ -1,7 +1,7 @@ # Setup title: Machine Learning for Big Code and Naturalness tagline: 'a survey' -description: 'A survey of academic research on machine learning models for source code.' +description: 'A survey of research on machine learning for source code.' url: https://ml4code.github.io baseurl: '' diff --git a/_includes/head.html b/_includes/head.html index c78570de..603d6efd 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -5,7 +5,6 @@ window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments)}; gtag('js', new Date()); - gtag('config', 'UA-107339008-1'); @@ -19,7 +18,6 @@ {% seo %} - @@ -28,13 +26,11 @@ - - - - + + diff --git a/_includes/sidebar.html b/_includes/sidebar.html index e289258e..a6c430e5 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -10,7 +10,7 @@

diff --git a/base-taxonomy/generative.html b/base-taxonomy/generative.html index eab9b496..69364ad9 100644 --- a/base-taxonomy/generative.html +++ b/base-taxonomy/generative.html @@ -10,7 +10,7 @@

Code-Generating Models

{% assign publicationsList = site.data.allamanistaxonomy | sort: "bibkey" %} - + {% for publication in publicationsList %}{% if publication.categories contains "generative" %} {% assign pubDetails = site.publications | where:"bibkey", publication.bibkey %} @@ -20,12 +20,21 @@

Code-Generating Models

+ {% endif %}{% endfor %}
NameTypeRepresentationModelApplication
NameTypeRepresentationModelApplicationAbstract
{{publication.representation}} {{publication.model}} {{publication.application}}{{pubDetails[0].content}}
\ No newline at end of file + $('#genModelTable').DataTable({ + paging: false, + columnDefs: [ + { + targets: [5], + visible: false, + searchable: true + }] + }); +}); + diff --git a/base-taxonomy/pattern.html b/base-taxonomy/pattern.html index 95186833..371804fd 100644 --- a/base-taxonomy/pattern.html +++ b/base-taxonomy/pattern.html @@ -10,7 +10,7 @@

Pattern Mining Models

{% assign publicationsList = site.data.allamanistaxonomy | sort: "bibkey" %} - + {% for publication in publicationsList %}{% if publication.categories contains "pattern" %} {% assign pubDetails = site.publications | where:"bibkey", publication.bibkey %} @@ -20,12 +20,21 @@

Pattern Mining Models

+ {% endif %}{% endfor %}
NameTypeRepresentationApplication
NameTypeRepresentationApplicationAbstract
{{publication.pattern_type}} {{publication.representation}} {{publication.application}}{{pubDetails[0].content}}
\ No newline at end of file + diff --git a/base-taxonomy/representational.html b/base-taxonomy/representational.html index f0deb0e2..14b2dcd8 100644 --- a/base-taxonomy/representational.html +++ b/base-taxonomy/representational.html @@ -11,7 +11,7 @@

Representational Models

{% assign publicationsList = site.data.allamanistaxonomy | sort: "bibkey" %} - + {% for publication in publicationsList %}{% if publication.categories contains "representational" %} {% assign pubDetails = site.publications | where:"bibkey", publication.bibkey %} @@ -21,12 +21,21 @@

Representational Models

+ {% endif %}{% endfor %}
NameInput Code RepresentationTargetIntermediate RepresentationApplication
NameInput Code RepresentationTargetIntermediate RepresentationApplicationAbstract
{{publication.modeled_target}} {{publication.intermediate_rep}} {{publication.application}}{{pubDetails[0].content}}
\ No newline at end of file + diff --git a/contributors.md b/contributors.md index 8101812e..5d1704f4 100644 --- a/contributors.md +++ b/contributors.md @@ -9,10 +9,10 @@ The core survey and the original taxonomy was created by * [Prem Devanbu](http://web.cs.ucdavis.edu/~devanbu/) University of California, Davis, USA * [Charles Sutton](http://homepages.inf.ed.ac.uk/csutton/) University of Edinburgh and The Alan Turing Institute, UK -#### External Contributors +#### Contributors to the website This website accepts external [contributions](/contributing.html). Please, feel free to add your name below, once you contribute to this -website. +website. A comprehensive list can be found [here](https://github.com/ml4code/ml4code.github.io/graphs/contributors). * Contributor 1 -* Contributor 2 \ No newline at end of file +* Contributor 2 diff --git a/index.md b/index.md index 73c364a8..2066aec2 100644 --- a/index.md +++ b/index.md @@ -3,17 +3,18 @@ layout: default title: A Survey of Machine Learning for Big Code and Naturalness --- -The billions of lines of source code that have been written contain +### Machine Learning on Source Code + +The billions of lines of source code that have been written contain implicit knowledge about how to write good code, code that is easy to read and to debug. A recent line of research aims to find statistical patterns in large -corpora of code to drive new software development tools and program -analyses. +corpora of code to drive *new software development tools and program +analyses*. -This website and the accompanying article surveys the work in this emerging area. +This website and the accompanying [article](https://arxiv.org/abs/1709.06182) surveys the work in this emerging area. Like writing and speaking, software development is an act of human communication. - At its core, the naturalness of software employs statistical modeling over big code to reason about rich variety of programs developers write. This new line of @@ -22,10 +23,9 @@ natural language processing communities with software engineering and programming language communities. This site is an experiment: a living literature review that allows -you explore the navigate the literature in this area, by +you explore and navigate the literature in this area, by following a [taxonomy]({% link base-taxonomy/index.md %}) based on the underlying design principles of each model. - The full survey is available [as a research paper](https://arxiv.org/abs/1709.06182). Please cite as
@@ -44,8 +44,3 @@ But a website can! We hope to make this site a living document.
 Anyone can add a paper to this web site, essentially by creating one Markdown file.
  To contribute, open a pull request in GitHub, by following [these instructions 
 for contributing](contributing.html).
-
-### Datasets and Other Resources
-Some resources about Big Code and Naturalness can be found at [learnbigcode.github.io](http://learnbigcode.github.io).
-A list of datasets used in this area can be found at the appendix of the
-[survey](https://arxiv.org/abs/1709.06182) and at [learnbigcode.github.io](http://learnbigcode.github.io/datasets/).
diff --git a/papers.html b/papers.html
index a6a5b4cc..09c5cf5e 100644
--- a/papers.html
+++ b/papers.html
@@ -1,21 +1,40 @@
 ---
 layout: default
-title: List of Publications
+title: Search all Publications on Machine Learning for Source Code
 description: A list of research papers for machine learning models for source code.
 ---
-Below there is a list of related papers within this area, sorted by year. 
-Please consider contributing to this list by adding
-additional information to existing papers or adding new work.
+Search across all paper titles, abstracts, authors by using the search field.
+Please consider contributing by updating
+the information of existing papers or adding new work.
 
+
+
 {% assign publicationsByYear = site.publications | sort: "year" | group_by: "year" %}
 {% for year in publicationsByYear reversed %}
-  

{{ year.name }}

-
    - {% for publication in year.items %} -
  • - {{publication.title}}. {{ publication.authors }}. {{publication.conference}}. -
  • - {% endfor %} -
+{% for publication in year.items %} + + + + + + + {% endfor %} +{% endfor %} +
YearTitleAuthorsVenueAbstract
{{ publication.year }} {{publication.date}} {{publication.title}}{{ publication.authors }}{{ publication.conference }}{{ publication.content }}
+ + diff --git a/public/css/hyde.css b/public/css/hyde.css index 4fa6faec..b79d8780 100644 --- a/public/css/hyde.css +++ b/public/css/hyde.css @@ -80,7 +80,7 @@ html { color: #fff; margin-top: 0; font-family: "Abril Fatface", serif; - font-size: 2.25rem; + font-size: 2rem; } /* Sidebar nav */ @@ -257,3 +257,12 @@ td { .theme-base-0f .related-posts li a:hover { color: #8f5536; } + +#pubslist { + font-size: 0.8rem; +} + +#pubslist ul { + padding-left: 0; + list-style-type: square; +} diff --git a/public/css/poole.css b/public/css/poole.css index 8ec27e7a..62759025 100644 --- a/public/css/poole.css +++ b/public/css/poole.css @@ -164,8 +164,8 @@ pre { margin-top: 0; margin-bottom: 1rem; padding: 1rem; - font-size: .8rem; - line-height: 1.4; + font-size: .6rem; + line-height: 1.2; white-space: pre; white-space: pre-wrap; word-break: break-all; @@ -190,7 +190,7 @@ pre code { /* Gist via GitHub Pages */ .gist .gist-file { - font-family: Menlo, Monaco, "Courier New", monospace !important; + font-family: Consolas, Menlo, Monaco, "Courier New", monospace !important; } .gist .markdown-body { padding: 15px; @@ -259,7 +259,7 @@ tbody tr:nth-child(odd) th { */ .lead { - font-size: 1.25rem; + font-size: 1.1rem; font-weight: 300; } diff --git a/resources.md b/resources.md new file mode 100644 index 00000000..c257af1a --- /dev/null +++ b/resources.md @@ -0,0 +1,13 @@ +--- +layout: default +title: Resources on Machine Learning for Big Code and Naturalness +--- + +### Datasets +Some resources about Big Code and Naturalness can be found at [learnbigcode.github.io](http://learnbigcode.github.io). +A list of datasets used in this area can be found at the appendix of the +[survey](https://arxiv.org/abs/1709.06182) and at [learnbigcode.github.io](http://learnbigcode.github.io/datasets/). + +### Other Collections of Related Work +[Source{d}](https://sourced.tech/) has collected a set of links and +papers in the area. You can access the list [here](https://github.com/src-d/awesome-machine-learning-on-source-code). From d5b8ec8d55e8d0752bb044310754337b1c30c23f Mon Sep 17 00:00:00 2001 From: Miltos Allamanis Date: Sat, 16 Dec 2017 22:25:29 +0000 Subject: [PATCH 46/98] chore: fix links. --- _includes/sidebar.html | 18 +++++++++--------- base-taxonomy/index.md | 6 +++--- index.md | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/_includes/sidebar.html b/_includes/sidebar.html index a6c430e5..7ffea686 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -10,17 +10,17 @@