diff --git a/Rakefile b/Rakefile index c77c595e..34c9e076 100644 --- a/Rakefile +++ b/Rakefile @@ -126,10 +126,8 @@ namespace :site do if File.exist?("History.markdown") history_file = File.read("History.markdown") front_matter = { - "layout" => "docs", - "title" => "History", - "permalink" => "/docs/history/", - "prev_section" => "contributing", + "title" => "Project History", + "doc_order" => 6, } Dir.chdir("docs/_docs/") do File.open("history.md", "w") do |file| diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 00000000..ed561392 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,31 @@ +--- +layout: base +permalink: /404.html +--- + + + +
+
+

404

+

Page not found :(

+

The requested page could not be found.

+
+
diff --git a/docs/README b/docs/README deleted file mode 100644 index 60b411cb..00000000 --- a/docs/README +++ /dev/null @@ -1 +0,0 @@ -Jekyll's awesome website. diff --git a/docs/_config.yml b/docs/_config.yml index 8dfea987..00ca42de 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,18 +1,14 @@ title: "jekyll-import • Import your old & busted site to Jekyll" url: https://import.jekyllrb.com -highlighter: rouge -relative_permalinks: false -permalink: /news/:year/:month/:day/:title/ -excerpt_separator: "" repository: https://github.com/jekyll/jekyll-import -latest_release: 0.14.0 +permalink: pretty collections: docs: output: true + sort_by: doc_order importers: output: true - permalink: /docs/:path/ defaults: - scope: @@ -23,6 +19,4 @@ defaults: type: importers values: layout: importer - -sass: - style: compressed + title_suffix: " Importer" diff --git a/docs/_docs/contributing.md b/docs/_docs/contributing.md index 822083c3..1c5c9cdf 100644 --- a/docs/_docs/contributing.md +++ b/docs/_docs/contributing.md @@ -1,9 +1,5 @@ --- -layout: docs -title: Contributing -prev_section: third-party -next_section: history -permalink: /docs/contributing/ +doc_order: 4 --- jekyll-import is entirely open-source, which means we need your help to make it better! @@ -28,7 +24,7 @@ So you have a new system you want to be able to import from? Great! It's pretty First thing's first: create the file where the importer will go. In this case, that will be `lib/jekyll-import/importers/columbus.rb`. Inside this file, we'll add this template: -{% highlight ruby %} +```ruby module JekyllImport module Importers class Columbus < Importer @@ -59,7 +55,7 @@ module JekyllImport end end end -{% endhighlight %} +``` Let's go through this quickly. @@ -79,16 +75,17 @@ Where the magic happens! This method should read from your *Columbus* source, th This function is entirely optional, but allows for some validation of the options. This method allows you to validate the options in any way you wish. For example: -{% highlight ruby %} +```ruby def self.validate(opts) abort "Specify a username!" if opts["username"].nil? abort "Your username must be a number." unless opts["username"].match(%r!\A\d+\z!) end -{% endhighlight %} +``` Once you have your importer working (test with `script/console`), then you're ready to add **documentation**. Add your new file: `./docs/_importers/columbus.md`. Take a look at one of the other importers as an example. You just add basic usage and you're golden. All set? Add everything to a branch on your fork of `jekyll-import` and [submit a pull request](https://github.com/jekyll/jekyll-import/compare/). + Thank you! diff --git a/docs/_docs/history.md b/docs/_docs/history.md index 62fdec8d..8332b9fe 100644 --- a/docs/_docs/history.md +++ b/docs/_docs/history.md @@ -1,8 +1,6 @@ --- -layout: docs -title: History -permalink: "/docs/history/" -prev_section: contributing +title: Project History +doc_order: 6 --- ## 0.21.0 / 2021-10-31 diff --git a/docs/_docs/index.md b/docs/_docs/index.md index 6068210a..6c291e02 100644 --- a/docs/_docs/index.md +++ b/docs/_docs/index.md @@ -1,17 +1,18 @@ --- -layout: docs -title: Getting started -next_section: installation -permalink: /docs/home/ +title: Getting Started +permalink: /docs/ +doc_order: 1 --- -If you’re switching to Jekyll from another blogging system, Jekyll’s importers -can help you with the move. Most methods listed on this page require read access -to the database from your old system to generate posts for Jekyll. Each method -generates `.markdown` posts in the `_posts` directory based on the entries in -the foreign system. +If you're switching to Jekyll from another blogging system, Jekyll's importers +can help you with the move. Most importers listed on this site require read-access +to the database from your old system to generate posts for Jekyll. Importers +typically generates Markdown posts in the `_posts` directory based on the entries +in the foreign system. ## Other Systems -If you have a system for which there is currently no migrator, consider writing -one and sending us [a pull request](https://github.com/jekyll/jekyll-import). +If you are from a system for which there is currently no builtin importer, +[consider writing one][creating_importer] and sending us a pull request. + +[creating_importer]: {{ '/docs/contributing#creating-a-new-importer' | relative_url }} diff --git a/docs/_docs/installation.md b/docs/_docs/installation.md index 87e2b3f3..3a829264 100644 --- a/docs/_docs/installation.md +++ b/docs/_docs/installation.md @@ -1,27 +1,21 @@ --- -layout: docs -title: Installation -prev_section: home -next_section: usage -permalink: /docs/installation/ +doc_order: 2 --- Because the importers have many of their own dependencies, they are made -available via a separate gem called -[`jekyll-import`](https://github.com/jekyll/jekyll-import). To use them, all +available to Jekyll via a separate gem named `jekyll-import`. To use them, all you need to do is install the gem, and they will become available as part of Jekyll's standard command line interface. -{% highlight bash %} -$ gem install jekyll-import -{% endhighlight %} +```bash +gem install jekyll-import +``` +
+ Jekyll Import requires you to manually install some dependencies. -
-
Jekyll-import requires you to manually install some dependencies.
-

Most importers require one or more dependencies. In order to keep - jekyll-import's footprint small, we don't bundle the gem - with every plausible dependency. Instead, you will see a nice error - message describing any missing dependency and how to install it. If - you're especially savvy, take a look at the require_deps - method in your chosen importer to install all of the deps in one go.

+ Most importers require one or more dependencies. In order to keep the plugin's + footprint small, we don't bundle the gem with every plausible dependency. + Instead, you will see a nice error message describing any missing dependency + and how to install it. We also document such dependencies in the dedicated + page for a given importer.
diff --git a/docs/_importers/third-party.md b/docs/_docs/third-party.md similarity index 92% rename from docs/_importers/third-party.md rename to docs/_docs/third-party.md index 9d8cdbd5..a217f016 100644 --- a/docs/_importers/third-party.md +++ b/docs/_docs/third-party.md @@ -1,9 +1,6 @@ --- -layout: docs -title: Third-party -prev_section: wordpressdotcom -next_section: contributing -permalink: /docs/third-party/ +title: Third-party Importers +doc_order: 5 --- Various third-party importers for Jekyll have been created separate from this diff --git a/docs/_docs/usage.md b/docs/_docs/usage.md index a9161283..855ace45 100644 --- a/docs/_docs/usage.md +++ b/docs/_docs/usage.md @@ -1,9 +1,5 @@ --- -layout: docs -title: Usage -prev_section: installation -next_section: behance -permalink: /docs/usage/ +doc_order: 3 --- You should now be all set to run the importers with the following incantation: diff --git a/docs/_importers/behance.md b/docs/_importers/behance.md index 50932a78..de99391f 100644 --- a/docs/_importers/behance.md +++ b/docs/_importers/behance.md @@ -1,7 +1,3 @@ --- -title: Behance -importer: true -prev_section: usage -link_source: behance -next_section: blogger +prereq_info: To import your posts from Behance, generate an API token for your user account. --- diff --git a/docs/_importers/blogger.md b/docs/_importers/blogger.md index 83263a97..cc884486 100644 --- a/docs/_importers/blogger.md +++ b/docs/_importers/blogger.md @@ -1,8 +1,4 @@ --- -importer: true -prev_section: behance -link_source: blogger -next_section: csv prereq_info: |- To import your posts from Blogger, you have to first [export the blog][export-blogger-xml] to an XML file (`blog-MM-DD-YYYY.xml`). diff --git a/docs/_importers/csv.md b/docs/_importers/csv.md index ebb7fc17..45e0bb76 100644 --- a/docs/_importers/csv.md +++ b/docs/_importers/csv.md @@ -1,8 +1,5 @@ --- title: CSV -prev_section: blogger -link_source: csv -next_section: drupal6 --- Your CSV file will be read in with the following columns: @@ -15,4 +12,4 @@ Your CSV file will be read in with the following columns: If you wish to specify custom front matter for each of your posts, you can use the `--no-front-matter` option to prevent the default front matter from being -written to the imported files. +imparted to the imported files. diff --git a/docs/_importers/dotclear.md b/docs/_importers/dotclear.md index 1273266e..19a3b7f1 100644 --- a/docs/_importers/dotclear.md +++ b/docs/_importers/dotclear.md @@ -1,6 +1,3 @@ --- -title: Dotclear -prev_section: csv -link_source: dotclear -next_section: drupal6 +title: DotClear --- diff --git a/docs/_importers/drupal6.md b/docs/_importers/drupal6.md index 24bd1130..ad25e02e 100644 --- a/docs/_importers/drupal6.md +++ b/docs/_importers/drupal6.md @@ -1,10 +1,9 @@ --- title: Drupal 6 -prev_section: csv -link_source: drupal6 -next_section: drupal7 --- -By default, this will pull in nodes of type `blog`, `story`, and `article`. -To specify custom types, you can use the `types` option when you run the -importer to select node types. +By default, the importer will pull in nodes of type `blog`, `story`, and `article`. +To specify custom types, you may use the `types` option while invoking the importer. + +The default Drupal 6 expects database to be MySQL. If you want to import posts from +Drupal 6 installation with PostgreSQL define, pass `postgresql` to the `--engine` option. diff --git a/docs/_importers/drupal7.md b/docs/_importers/drupal7.md index eda41315..aea041fd 100644 --- a/docs/_importers/drupal7.md +++ b/docs/_importers/drupal7.md @@ -1,10 +1,9 @@ --- title: Drupal 7 -prev_section: drupal6 -link_source: drupal7 -next_section: drupal8 --- -By default, this will pull in nodes of type `blog`, `story`, and `article`. -To specify custom types, you can use the `types` option when you run the -importer to select node types. +By default, the importer will pull in nodes of type `blog`, `story`, and `article`. +To specify custom types, you may use the `types` option while invoking the importer. + +The default Drupal 7 expects database to be MySQL. If you want to import posts from +Drupal 7 installation with PostgreSQL define, pass `postgresql` to the `--engine` option. diff --git a/docs/_importers/drupal8.md b/docs/_importers/drupal8.md index dbe599ff..bbab8348 100644 --- a/docs/_importers/drupal8.md +++ b/docs/_importers/drupal8.md @@ -1,10 +1,9 @@ --- title: Drupal 8 -prev_section: drupal7 -link_source: drupal8 -next_section: easyblog --- -By default, this will pull in nodes of type `blog`, `story`, and `article`. -To specify custom types, you can use the `types` option when you run the -importer to select node types. +By default, the importer will pull in nodes of type `blog`, `story`, and `article`. +To specify custom types, you may use the `types` option while invoking the importer. + +The default Drupal 8 expects database to be MySQL. If you want to import posts from +Drupal 8 installation with PostgreSQL define, pass `postgresql` to the `--engine` option. diff --git a/docs/_importers/easyblog.md b/docs/_importers/easyblog.md index 08835dad..e46725b3 100644 --- a/docs/_importers/easyblog.md +++ b/docs/_importers/easyblog.md @@ -1,6 +1,5 @@ --- title: EasyBlog -prev_section: drupal8 -link_source: easyblog -next_section: enki --- + +This importer will export all articles (in any state). Category and tags will also be included in export. diff --git a/docs/_importers/enki.md b/docs/_importers/enki.md index b9db6cb5..a845151c 100644 --- a/docs/_importers/enki.md +++ b/docs/_importers/enki.md @@ -1,5 +1,2 @@ --- -prev_section: easyblog -link_source: enki -next_section: ghost --- diff --git a/docs/_importers/ghost.md b/docs/_importers/ghost.md index bc930f25..88fdf21f 100644 --- a/docs/_importers/ghost.md +++ b/docs/_importers/ghost.md @@ -1,7 +1,7 @@ --- -prev_section: enki -link_source: ghost -next_section: google_reader +prereq_info: >- + To import your posts from your self-hosted Ghost instance, you first have to download + your `ghost.db` from your server. --- If you have a Ghost backup file, consider using another tool called diff --git a/docs/_importers/googlereader.md b/docs/_importers/googlereader.md index 0cf4a05b..e646497b 100644 --- a/docs/_importers/googlereader.md +++ b/docs/_importers/googlereader.md @@ -1,7 +1,3 @@ --- title: Google Reader -prev_section: enki -link_source: google_reader -next_section: joomla -permalink: /docs/google_reader/ --- diff --git a/docs/_importers/joomla.md b/docs/_importers/joomla.md index a65eccfa..a845151c 100644 --- a/docs/_importers/joomla.md +++ b/docs/_importers/joomla.md @@ -1,5 +1,2 @@ --- -prev_section: google_reader -link_source: joomla -next_section: joomla3 --- diff --git a/docs/_importers/joomla3.md b/docs/_importers/joomla3.md index ee3789de..8e26c665 100644 --- a/docs/_importers/joomla3.md +++ b/docs/_importers/joomla3.md @@ -1,9 +1,6 @@ --- title: Joomla 3 -prev_section: joomla -link_source: joomla3 -next_section: jrnl --- -If the `category` numerical field is not filled, all articles will be imported, except the ones that are -uncategorized. +If the `category` numerical field is not filled, all articles will be imported, except the ones that are +uncategorized. diff --git a/docs/_importers/jrnl.md b/docs/_importers/jrnl.md index a1b4b4a8..a845151c 100644 --- a/docs/_importers/jrnl.md +++ b/docs/_importers/jrnl.md @@ -1,5 +1,2 @@ --- -prev_section: joomla3 -link_source: jrnl -next_section: marley --- diff --git a/docs/_importers/marley.md b/docs/_importers/marley.md index 42d29dc4..a845151c 100644 --- a/docs/_importers/marley.md +++ b/docs/_importers/marley.md @@ -1,5 +1,2 @@ --- -prev_section: jrnl -link_source: marley -next_section: mephisto --- diff --git a/docs/_importers/medium.md b/docs/_importers/medium.md index 83063775..1f770e7e 100644 --- a/docs/_importers/medium.md +++ b/docs/_importers/medium.md @@ -1,8 +1,7 @@ --- -prev_section: marley -link_source: medium -next_section: mephisto --- -This importer will also import the existing tags/labels from Medium post and -include the tags to [Front Matter](https://jekyllrb.com/docs/front-matter/). +This importer will also import existing tags / labels from Medium post and +include those tags to the generated post's [front matter][front_matter_docs]. + +[front_matter_docs]: https://jekyllrb.com/docs/front-matter/ diff --git a/docs/_importers/mephisto.md b/docs/_importers/mephisto.md index 243d10b3..a845151c 100644 --- a/docs/_importers/mephisto.md +++ b/docs/_importers/mephisto.md @@ -1,5 +1,2 @@ --- -prev_section: marley -link_source: mephisto -next_section: mt --- diff --git a/docs/_importers/mt.md b/docs/_importers/mt.md index 694bd8b4..43a0ea33 100644 --- a/docs/_importers/mt.md +++ b/docs/_importers/mt.md @@ -1,18 +1,17 @@ --- title: Movable Type -prev_section: mephisto -link_source: mt -next_section: posterous --- -`comments`, which defaults to false, control the generation of -comment. If `comments` set to true, posts will be generated and placed -in `_comments` directory. +Posts will be generated and placed in `_posts` directory. -All of the posts and comments will include `post_id` in YAML front -matter to link a post and its comments. +`comments`, which defaults to false, control the generation of comments. If +`comments` is set to true, posts will be generated and placed in `_comments` +directory. -To include imported comments as part of a post, use the yet to merge -[fork of mt-static-comments](https://github.com/shigeya/jekyll-static-comments/tree/mt_static_comments) -to include statically generate comments in your post. Fork and provide -feedback if necessary. +All of the posts and comments will include `post_id` in YAML front matter to +link a post and its comments. + +You can use the [fork of mt-static-comments][fork of mt-static-comments] to +include statically generate comments in your post. + +[fork of mt-static-comments]: https://github.com/shigeya/jekyll-static-comments/tree/mt_static_comments diff --git a/docs/_importers/pluxml.md b/docs/_importers/pluxml.md index 4ab844ba..fbac4690 100644 --- a/docs/_importers/pluxml.md +++ b/docs/_importers/pluxml.md @@ -1,8 +1,6 @@ --- -title: PluXML -prev_section: mt -link_source: pluxml -next_section: posterous +title: PluXml --- -The `avoid_liquid` field is optional, it will add `render_with_liquid: false` option in the header of each file. Usefull if you have à lot of source code to show to your visitors. +The `--avoid_liquid` will disable rendering of each file with Liquid. Useful if +you have a lot of source code to show to your visitors. diff --git a/docs/_importers/posterous.md b/docs/_importers/posterous.md index 9b941acc..add7127f 100644 --- a/docs/_importers/posterous.md +++ b/docs/_importers/posterous.md @@ -1,9 +1,5 @@ --- -prev_section: mt -link_source: posterous -next_section: rss --- -There is also an [alternative Posterous -migrator](https://github.com/pepijndevos/jekyll/blob/patch-1/lib/jekyll/migrators/posterous.rb) +There is also an [alternative Posterous importer](https://github.com/pepijndevos/jekyll/blob/patch-1/lib/jekyll/migrators/posterous.rb) that maintains permalinks and attempts to import images too. diff --git a/docs/_importers/roller.md b/docs/_importers/roller.md index 96081d97..2498cb18 100644 --- a/docs/_importers/roller.md +++ b/docs/_importers/roller.md @@ -1,6 +1,5 @@ --- -prev_section: wordpressdotcom -link_source: roller -next_section: third-party render_limited_import_note: true --- + +Currently this importer assumes a MySQL database. diff --git a/docs/_importers/rss.md b/docs/_importers/rss.md index ba9ceae0..f113527d 100644 --- a/docs/_importers/rss.md +++ b/docs/_importers/rss.md @@ -1,8 +1,7 @@ --- title: RSS -prev_section: posterous -link_source: rss -next_section: s9y --- -__Note:__ `tag` and `extract_tags` are exclusive option, both can not be provided together. +The `source` option may either be a local file or a remote one. + +`tag` and `extract_tags` are exclusive options. Both can not be provided together. diff --git a/docs/_importers/s9y.md b/docs/_importers/s9y.md index 805ca71c..0978490f 100644 --- a/docs/_importers/s9y.md +++ b/docs/_importers/s9y.md @@ -1,6 +1,3 @@ --- title: S9Y -prev_section: rss -link_source: s9y -next_section: s9ydatabase --- diff --git a/docs/_importers/s9ydatabase.md b/docs/_importers/s9ydatabase.md index 41766aa3..8be75c01 100644 --- a/docs/_importers/s9ydatabase.md +++ b/docs/_importers/s9ydatabase.md @@ -1,87 +1,50 @@ --- title: S9Y Database -prev_section: s9y -link_source: s9ydatabase -next_section: textpattern render_limited_import_note: true --- -
-
Migration Options
-

- This importer now supports two options to help migrate your blog to a new - hosting provider. -

- - -
Extension Options
-

- This importer now supports some of the most common S9Y plugins. -

- -
+## Migration Options + +- ### `--relative` + + Set this to your URL prefix to convert all the absolute URLs in your posts to relative. For example, when set to **`myhost.com/blog`**, + URLs like `http://myhost.com/blog/lifestyle/7-lucky-post.html` will be converted to `/lifestyle/7-lucky-post.html`. Note that you should + not include the trailing slash `/`, and that `https://` is not supported. + +- ### `--linebreak` + + If you used a formatting extension, this option might be useful. Use one of the following values to try and replicate your post line breaks + as closely as possible: + + - #### `wp` + + Replicate the Wordpress line break behavior, the default for S9Y. + + - #### `nokogiri` + + Uses the `nokogiri` gem to interpret entries as XHTML formatted. If you write HTML entries, this preserves the HTML line breaks. + + - #### `ignore` + + This option does not process the entries at all, but imports them into Jekyll verbatim. This may be useful if you wrote your entries + in a Jekyll-compatible format. + +## Extension Options + +This importer supports some of the most common S9Y plugins. + +- ### `--includeentry` + + Use this option to transclude entries like the `includeentry`plugin. The current static content of the entry will be included. Future updates + will not be synced. + +- ### `--excerpt_separator` + + S9Y treats the regular post body as an excerpt, displaying the extended body only in the post details. Jekyll only shows the first paragraph + of the post as an excerpt. This option allows you to restore the S9Y behavior: posts with extended body will have the specified separator + added to their front matter, and you can modify your index layout to show the excerpts. + +- ### `--imgfig` + + By default, this converts references to S9Y's media library into HTML `figure` tags. Set it to `false` to keep the original references, which + you'll have to update manually. diff --git a/docs/_importers/textpattern.md b/docs/_importers/textpattern.md index 2f6450b8..d2ab353d 100644 --- a/docs/_importers/textpattern.md +++ b/docs/_importers/textpattern.md @@ -1,11 +1,7 @@ --- -title: Textpattern -prev_section: s9y -link_source: textpattern -next_section: tumblr --- -You will need to run the above from the parent directory of your `_import` -folder. For example, if `_import` is located in `/path/source/_import`, you will -need to run this code from `/path/source`. This importer will attempt to pull -all entries that are live or sticky. +You may need to invoke the importer from the parent directory of your `_import` +folder. For example, if `_import` is located in `/path/source/_import`, invoke +this importer from `/path/source`. This importer will attempt to pull all entries +that are live or sticky. diff --git a/docs/_importers/tumblr.md b/docs/_importers/tumblr.md index 272b3194..a845151c 100644 --- a/docs/_importers/tumblr.md +++ b/docs/_importers/tumblr.md @@ -1,5 +1,2 @@ --- -prev_section: textpattern -link_source: tumblr -next_section: typo --- diff --git a/docs/_importers/typo.md b/docs/_importers/typo.md index 94ee8c0c..f1c633a5 100644 --- a/docs/_importers/typo.md +++ b/docs/_importers/typo.md @@ -1,10 +1,5 @@ --- -title: Typo -prev_section: tumblr -link_source: typo -next_section: wordpress +title: Typo (Publify) --- -Typo is now [Publify](http://publify.co). - This importer has only been tested with Typo version 4+. diff --git a/docs/_importers/wordpress.md b/docs/_importers/wordpress.md index 837c7179..450ad3de 100644 --- a/docs/_importers/wordpress.md +++ b/docs/_importers/wordpress.md @@ -1,7 +1,4 @@ --- title: WordPress -prev_section: typo -link_source: wordpress render_limited_import_note: true -next_section: wordpressdotcom --- diff --git a/docs/_importers/wordpressdotcom.md b/docs/_importers/wordpressdotcom.md index 296ad579..913863af 100644 --- a/docs/_importers/wordpressdotcom.md +++ b/docs/_importers/wordpressdotcom.md @@ -1,18 +1,13 @@ --- title: WordPress.com -prev_section: wordpress -link_source: wordpressdotcom -next_section: third-party --- -The `source`, `no_fetch_images`, and `assets_folder` fields are not required. -Their default values are what you see above. +
+ **ProTip: WordPress.com Export Tool** -
-
ProTip™: WordPress.com Export Tool
-

If you are migrating from a WordPress.com account, you can - access the export tool at the following URL: - `https://YOUR-USER-NAME.wordpress.com/wp-admin/export.php`.

+ If you are migrating from a WordPress.com account, you can access the export + tool at the following URL: + `https://YOUR-USER-NAME.wordpress.com/wp-admin/export.php`.
### Further WordPress migration alternatives @@ -26,9 +21,8 @@ might be useful to you: Python for migrating one or more WordPress blogs into Jekyll (Markdown) format while keeping as much metadata as possible. Exitwp also downloads attachments and pages. -- [A great - article](https://vitobotta.com/2011/03/28/migrate-from-wordpress-to-jekyll/) with a - step-by-step guide for migrating a WordPress blog to Jekyll while keeping most - of the structure and metadata. +- [A great article](https://vitobotta.com/2011/03/28/migrate-from-wordpress-to-jekyll/) + with a step-by-step guide for migrating a WordPress blog to Jekyll while + keeping most of the structure and metadata. - [wpXml2Jekyll](https://github.com/theaob/wpXml2Jekyll) is an executable windows application for creating Markdown posts from your WordPress XML file. diff --git a/docs/_includes/analytics.html b/docs/_includes/analytics.html deleted file mode 100644 index bbdc351e..00000000 --- a/docs/_includes/analytics.html +++ /dev/null @@ -1,32 +0,0 @@ -{% if site.gauges_id %} - - -{% endif %} - -{% if site.google_analytics_id %} - - -{% endif %} diff --git a/docs/_includes/docs_contents.html b/docs/_includes/docs_contents.html deleted file mode 100644 index e911f35d..00000000 --- a/docs/_includes/docs_contents.html +++ /dev/null @@ -1,19 +0,0 @@ -
- -
diff --git a/docs/_includes/docs_contents_mobile.html b/docs/_includes/docs_contents_mobile.html deleted file mode 100644 index bcea6268..00000000 --- a/docs/_includes/docs_contents_mobile.html +++ /dev/null @@ -1,16 +0,0 @@ -
- -
diff --git a/docs/_includes/docs_option.html b/docs/_includes/docs_option.html deleted file mode 100644 index 9c72ca82..00000000 --- a/docs/_includes/docs_option.html +++ /dev/null @@ -1,11 +0,0 @@ -{% assign items = include.items | split: ' ' %} - -{% for item in items %} - {% assign item_url = item | prepend:'/docs/' | append:'/' %} - - {% for p in site.docs %} - {% if p.url == item_url %} - - {% endif %} - {% endfor %} -{% endfor %} diff --git a/docs/_includes/docs_ul.html b/docs/_includes/docs_ul.html deleted file mode 100644 index b2ccaf57..00000000 --- a/docs/_includes/docs_ul.html +++ /dev/null @@ -1,20 +0,0 @@ -{% assign items = include.items | split: ' ' %} - - diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html deleted file mode 100644 index d73b10ef..00000000 --- a/docs/_includes/footer.html +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/docs/_includes/header.html b/docs/_includes/header.html deleted file mode 100644 index 39de1bf2..00000000 --- a/docs/_includes/header.html +++ /dev/null @@ -1,18 +0,0 @@ -
- -
- - -
-
diff --git a/docs/_includes/primary-nav-items.html b/docs/_includes/primary-nav-items.html deleted file mode 100644 index 3d2b4f8a..00000000 --- a/docs/_includes/primary-nav-items.html +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/docs/_includes/section_nav.html b/docs/_includes/section_nav.html deleted file mode 100644 index beb65e74..00000000 --- a/docs/_includes/section_nav.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
- {% if page.prev_section != null %} - - {% else %} - Back - {% endif %} -
-
- {% if page.next_section != null %} - - {% else %} - Next - {% endif %} -
-
-
- diff --git a/docs/_includes/top.html b/docs/_includes/top.html deleted file mode 100644 index 163ba8f7..00000000 --- a/docs/_includes/top.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {{ page.title }} — {{ site.title }} - - - - - - - - - diff --git a/docs/_layouts/base.html b/docs/_layouts/base.html new file mode 100644 index 00000000..7b48ac39 --- /dev/null +++ b/docs/_layouts/base.html @@ -0,0 +1,33 @@ + + + + + + {{ page.title | append: page.title_suffix }} — Jekyll Import + + + + + +
{{ content }}
+
+
+

+ The contents of this website are
© {{ site.time | date: '%Y' }} under the terms of the MIT License. +

+
+
+ + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html deleted file mode 100644 index 8919fca7..00000000 --- a/docs/_layouts/default.html +++ /dev/null @@ -1,12 +0,0 @@ -{% include top.html %} - - - {% include header.html %} - - {{ content }} - - {% include footer.html %} - {% include analytics.html %} - - - diff --git a/docs/_layouts/docs.html b/docs/_layouts/docs.html index 03fd8467..4365931e 100644 --- a/docs/_layouts/docs.html +++ b/docs/_layouts/docs.html @@ -1,55 +1,23 @@ --- -layout: default +layout: base --- -
-
+
+ - {% include docs_contents_mobile.html %} +
+

{{ page.title | append: page.title_suffix }}

+ {{ content }} +
-
-
-

{{ page.title }}

- {% assign importer_deps = page.cmd_deps %} - {% if importer_deps %} -
-
Additional Dependencies
-

- This importer requires the following additional {% if importer_deps.size == 1 %}library{% else %}libraries{% endif %}. -

-
    {% for dep in importer_deps %} -
  • - - {{ dep }} -
  • {% endfor %} -
- {% if importer_deps.size == 1 %} -

You may install the needed gem by running gem install {{ importer_deps }}

- {% else %} -

- You may install the needed gems individually by running gem install GEM_NAME or install all of them - with a single invocation:gem install {{ importer_deps | join: " " }} -

- {% endif %} -
- {% endif %} - {{ content }} - {% if page.link_source %} -
- {% capture link_to_source %}{{ site.repository }}/blob/v{{ site.latest_release }}/lib/jekyll-import/importers/{{ page.link_source }}.rb{% endcapture %} - View Source → -
- {% endif %} - {% include section_nav.html %} -
-
- - {% include docs_contents.html %} - -
- -
-
+ +
diff --git a/docs/_layouts/importer.html b/docs/_layouts/importer.html index 92f9a1b8..1abac08b 100644 --- a/docs/_layouts/importer.html +++ b/docs/_layouts/importer.html @@ -2,6 +2,18 @@ layout: docs --- +{% if page.cmd_deps %} +
+

+ This importer depends on the following third-party gems: +

+ You may either install the gem(s) individually by running a command with syntax gem install GEM_NAME + or install the required gems in a batch by running the following snippet: +
gem install {{ page.cmd_deps | join: ' ' }}
+

+
+{% endif %} + {% if page.render_limited_import_note %}

@@ -30,12 +42,12 @@

Invocation

{{ option.switch }} {{ option.desc | markdownify }} - {% if option.default_value %}Default:  {{ option.default_value }}{% endif %} + {% if option.default_value %}Default: {{ option.default_value }}{% endif %} {% endfor %} {% if has_required_opts %} -
Highlighted row(s) in table above indicate required options.
+ Highlighted row(s) in table above indicate required options. {% endif %}
diff --git a/docs/_layouts/news.html b/docs/_layouts/news.html deleted file mode 100644 index 8f7945f3..00000000 --- a/docs/_layouts/news.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default ---- - -
-
- - {% include news_contents_mobile.html %} - -
- {{ content }} -
- - {% include news_contents.html %} - -
- -
-
diff --git a/docs/_layouts/news_item.html b/docs/_layouts/news_item.html deleted file mode 100644 index d3955020..00000000 --- a/docs/_layouts/news_item.html +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: news ---- - -
-

- {{ page.title }} - -

- - -

- {{ content }} -

-
diff --git a/docs/_plugins/liquid_tags.rb b/docs/_plugins/liquid_tags.rb new file mode 100644 index 00000000..987a0e1f --- /dev/null +++ b/docs/_plugins/liquid_tags.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +require "jekyll-import" + +module JekyllImport + module Docs + class OptgroupTag < Liquid::Tag + include Jekyll::Filters::URLFilters + + def initialize(tag_name, markup, options) + raise(SyntaxError, "Invalid syntax in #{tag_name} tag") unless markup.strip =~ %r!\s*(.*) from (.*)! + + @captures = Regexp.last_match.captures.map { |e| Liquid::Expression.parse(e) } + end + + def render(context) + @context = context # set `@context` for Jekyll::Filters::URLFilters + label, items = @captures.map { |e| context.evaluate(e) } + render_elements(label, items) + end + + private + + def render_elements(label, items) + <<~HTML + + #{render_items(items)} + + HTML + end + + def render_items(items) + items.map do |entry| + %() + end.join("\n ") + end + end + + class ListgroupTag < OptgroupTag + private + + def render_elements(label, items) + <<~HTML +

#{label}

+ + HTML + end + + def render_items(items) + page = @context.registers[:page] + page_url = page ? page["url"] : "" + + items.map do |entry| + res = +"#{entry.data["title"]}) + res + end.join("\n ") + end + end + + Liquid::Template.register_tag "optgroup", OptgroupTag + Liquid::Template.register_tag "listgroup", ListgroupTag + end +end diff --git a/docs/_plugins/netlify_helper.rb b/docs/_plugins/netlify_helper.rb deleted file mode 100644 index 534c8b11..00000000 --- a/docs/_plugins/netlify_helper.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# The Liquid templates for this site currently renders absolute URLs to various subpages, which -# interferes with Netlify's "Deploy Preview" for pull requests containing changes to the docs-site. -# -# Therefore, override `{{ site.url }}` with the Netlify Deploy Preview URL for seamless navigation -# during review. -# -# ref: https://docs.netlify.com/configure-builds/environment-variables/#deploy-urls-and-metadata -# -# DELETE THIS PLUGIN once the templates start rendering relative URLs to the subpages. - -return unless ENV["NETLIFY"] -return if ENV["DEPLOY_PRIME_URL"].to_s.empty? - -Jekyll::Hooks.register :site, :after_init do |site| - site.config["url"] = ENV["DEPLOY_PRIME_URL"] -end diff --git a/docs/_sass/_gridism.scss b/docs/_sass/_gridism.scss deleted file mode 100644 index 3c16018e..00000000 --- a/docs/_sass/_gridism.scss +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Gridism - * A simple, responsive, and handy CSS grid by @cobyism - * https://github.com/cobyism/gridism - */ - -/* Preserve some sanity */ -.grid, -.unit { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* Set up some rules to govern the grid */ -.grid { - display: block; - clear: both; -} -.grid .unit { - float: left; - width: 100%; - padding: 10px; -} - -/* This ensures the outer gutters are equal to the (doubled) inner gutters. */ -.grid .unit:first-child { padding-left: 20px; } -.grid .unit:last-child { padding-right: 20px; } - -/* Nested grids already have padding though, so let’s nuke it */ -.unit .unit:nth-child(2n+1) { padding-left: 0; } -.unit .unit:last-child { padding-right: 0; } -.unit .grid:first-child > .unit { padding-top: 0; } -.unit .grid:last-child > .unit { padding-bottom: 0; } - -/* Let people nuke the gutters/padding completely in a couple of ways */ -.no-gutters .unit, -.unit.no-gutters { - padding: 0 !important; -} - -/* Wrapping at a maximum width is optional */ -.wrap .grid, -.grid.wrap { - max-width: 978px; - margin: 0 auto; -} - -/* Width classes also have shorthand versions numbered as fractions - * For example: for a grid unit 1/3 (one third) of the parent width, - * simply apply class="w-1-3" to the element. */ -.grid .whole, .grid .w-1-1 { width: 100%; } -.grid .half, .grid .w-1-2 { width: 50%; } -.grid .one-third, .grid .w-1-3 { width: 33.3332%; } -.grid .two-thirds, .grid .w-2-3 { width: 66.6665%; } -.grid .one-quarter, .grid .w-1-4 { width: 25%; } -.grid .three-quarters, .grid .w-3-4 { width: 75%; } -.grid .one-fifth, .grid .w-1-5 { width: 20%; } -.grid .two-fifths, .grid .w-2-5 { width: 40%; } -.grid .three-fifths, .grid .w-3-5 { width: 60%; } -.grid .four-fifths, .grid .w-4-5 { width: 80%; } -.grid .golden-small, .grid .w-g-s { width: 38.2716%; } /* Golden section: smaller piece */ -.grid .golden-large, .grid .w-g-l { width: 61.7283%; } /* Golden section: larger piece */ - -/* Utility classes */ -.align-center { text-align: center; } -.align-left { text-align: left; } -.align-right { text-align: right; } -.pull-left { float: left; } -.pull-right { float: right; } - -.show-on-mobiles { - display: none; -} - -/* Responsive Stuff */ -@media screen and (max-width: 568px) { - /* Stack anything that isn’t full-width on smaller screens */ - .grid .unit { - width: 100% !important; - padding-left: 20px; - padding-right: 20px; - } - .unit .grid .unit { - padding-left: 0px; - padding-right: 0px; - } - - /* Sometimes, you just want to be different on small screens */ - .center-on-mobiles { - text-align: center !important; - } - .hide-on-mobiles { - display: none !important; - } - .show-on-mobiles { - display: block !important; - } - a .show-on-mobiles { - display: inline !important; - } -} - -/* Expand the wrap a bit further on larger screens */ -/*@media screen and (min-width: 1180px) { - .wrap .grid { - max-width: 1180px; - margin: 0 auto; - } -}*/ diff --git a/docs/_sass/_normalize.scss b/docs/_sass/_normalize.scss deleted file mode 100644 index fa4e73dd..00000000 --- a/docs/_sass/_normalize.scss +++ /dev/null @@ -1,447 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ - -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ - -figcaption, -figure, -main { /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ - -a { - background-color: transparent; /* 1 */ - -webkit-text-decoration-skip: objects; /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ - -details, /* 1 */ -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ - -template { - display: none; -} - -/* Hidden - ========================================================================== */ - -/** - * Add the correct display in IE 10-. - */ - -[hidden] { - display: none; -} diff --git a/docs/_sass/base.scss b/docs/_sass/base.scss new file mode 100644 index 00000000..1d9a7e69 --- /dev/null +++ b/docs/_sass/base.scss @@ -0,0 +1,88 @@ +:root { + --gold: #dcb360; + --light-brass: #d1ba73; + --brass: #b9a15b; + --dark-brass: #5e5742; + --slate: #303030; + --charcoal: #2b2b2b; + --silver: #dedede; + --cyan: #80d2ff; + --off-white: #bcbcbc; + + --padding-x: 10px; + +} + +@media (min-device-width: 321px) { :root { --padding-x: 15px } } +@media (min-device-width: 400px) { :root { --padding-x: 25px } } + +$x-sm: 480px; +$sm: 768px; +$med: 1024px; +$lg: 1280px; +$x-lg: 1900px; + +$link-color: var(--gold); +$link-border-color: var(--dark-brass); + +* { box-sizing: border-box } +html { height: 100% } + +body { + display: flex; + flex-direction: column; + min-height: 100%; + margin: 0; + font-family: Questrial, Roboto, Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + line-height: 1.45; + color: var(--silver); + background-color: var(--slate); +} +main { + flex: 1 0 auto; + padding: 8px var(--padding-x) 25px; +} +h1, h2, h3, h4, h5, h6 { + code { font-size: inherit } +} +p { + margin: 15px 0; +} +pre { + padding: 15px; + overflow-x: auto; + code { + white-space: pre; + background: none; + border: none; + } +} +pre, code { + font-size: 14px; + text-align: left; + white-space: pre; + background: #1f1f1f; + border: 1px solid #3d3d3d; +} +code { + padding: 1px 5px; + color: var(--off-white); + word-break: break-word; +} +small code { font-size: 12px } +table { + width: 100%; + text-align: left; + border-collapse: collapse; + th, td { border: 1px solid #575757 } + th { padding: 8px; font-size: 0.9em } + td { padding: 8px } +} +a { + color: $link-color; + text-decoration: none; + padding-bottom: 1px; + border-bottom: 1px dotted $link-color; +} +nav ul { list-style: none } diff --git a/docs/_sass/components/cards.scss b/docs/_sass/components/cards.scss new file mode 100644 index 00000000..4ecd0201 --- /dev/null +++ b/docs/_sass/components/cards.scss @@ -0,0 +1,64 @@ +div.deck { + display: flex; + flex-flow: row wrap; + justify-content: center; + .card { + flex: 0 auto; + margin: 5px; + padding: 1.5em; + font-size: 14px; + text-align: center; + border: 1px solid var(--dark-brass); + overflow: auto; + .container { + display: flex; + flex-direction: column; + width: 120px; + height: 170px; + overflow: hidden; + } + header { + height: 140px; + margin-bottom: 0.5em; + border-bottom: 1px solid var(--dark-brass); + .i-icon { + width: 6em; + height: 6em; + fill: var(--dark-brass); + stroke-width: 0.1px; + stroke: var(--brass); + } + .i-name { + margin-top: 0.5em; + font-size: 1.15em; + } + } + section { + display: flex; + flex-direction: column; + flex: 1 auto; + justify-content: center; + margin-top: 0.5em; + div { + max-height: 150px; + overflow: hidden; + } + table { + td, th { + padding: 5px; + border-color: transparent; + &:first-of-type { + text-align: right; + } + } + } + } + footer { + border-bottom: 1px solid var(--dark-brass); + a { + display: block; + border-bottom: none; + } + } + } +} diff --git a/docs/_sass/components/cli-table.scss b/docs/_sass/components/cli-table.scss new file mode 100644 index 00000000..2a3ec335 --- /dev/null +++ b/docs/_sass/components/cli-table.scss @@ -0,0 +1,24 @@ +table.cli { + margin-bottom: 10px; + th { + background: #333333; + border-color: #454545; + } + .required-option { + color: var(--light-brass); + background: #6b6247; + td { + border: 1px solid #51431a; + &:first-child { border-left-color: #575757 } + &:last-child { border-right-color: #575757 } + code { color: var(--light-brass) } + } + } + p { margin: 0 } + & + .cli-table-note { + float: right; + &:before { + content: "*"; + } + } +} diff --git a/docs/_sass/components/highlight.scss b/docs/_sass/components/highlight.scss new file mode 100644 index 00000000..3fcaf575 --- /dev/null +++ b/docs/_sass/components/highlight.scss @@ -0,0 +1,28 @@ +figure.highlight { + margin: 1em 0 +} +div.highlight { + display: block; + pre { background: #2b2b2b } + code { + padding: 0; + color: #eeeeee; + background: transparent; + } +} + +.highlight { + .c1 { color: #888888 } + .k { color: #fe5757 } + .nc { color: #9bcb0b } + .no { color: #65dcdc } + .nt { color: #00bcd4 } + .nv { color: #b5b5b5 } + .o { color: #fe5757 } + .s1 { color: #f7d87a } + .s2 { color: #f7d87a } + .se { color: #a3a3fa } + .sr { color: #f7d87a } + .ss { color: #a3a3fa } + .sx { color: #f7d87a } +} diff --git a/docs/_sass/components/note.scss b/docs/_sass/components/note.scss new file mode 100644 index 00000000..348409d9 --- /dev/null +++ b/docs/_sass/components/note.scss @@ -0,0 +1,14 @@ +div.note { + margin-bottom: 30px; + padding: 10px var(--padding-x); + overflow-x: auto; +} +div.note.warning { + color: #d1ba73; + background: #6b6247; + pre.install-deps-snippet { text-align: center } +} +div.note.info { + color: #eef4f7; + background: #4c7e99; +} diff --git a/docs/_sass/homepage.scss b/docs/_sass/homepage.scss new file mode 100644 index 00000000..877837c3 --- /dev/null +++ b/docs/_sass/homepage.scss @@ -0,0 +1,94 @@ +.home { + text-align: center; + .intro { + font-size: 2.25em; + letter-spacing: -1px; + line-height: 1.125; + font-weight: 300; + } + .features { + .listing, .info-lead { + margin: 0; + flex: 1 0 auto; + h2 { + font-size: 1.25em; + line-height: 1.2 + } + } + .listing { + flex-grow: 4; + .importer { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + margin: 5px auto; + max-width: 180px; + height: 200px; + border: 1px solid var(--dark-brass); + .i-icon { + width: 6em; + fill: var(--gold); + } + &:last-child { + font-size: 1.125em; + line-height: 1; + a span { + font-size: 3em; + font-weight: 600; + } + } + a { + display: block; + padding: 5px 2px; + border-color: transparent; + } + &:hover, &:active { + background: var(--gold); + a { + color: #333; + } + .i-icon { + fill: var(--dark-brass); + } + } + } + } + aside p { font-size: 1.125em } + } +} + +@media (min-width: 401px) { + .home { + .intro { + font-size: 2.35em + } + .features .listing { + .wrapper { + display: flex; + flex-flow: row wrap; + justify-content: center; + max-width: 570px; + } + .importer { + width: 180px; + } + } + } +} + +@media (min-width: 421px) { + .home { + .intro { + font-size: 2.5em + } + } +} + + +@media (min-width: 970px) { + section.features { + display: flex; + flex-flow: row + } +} diff --git a/docs/_sass/importer-styles.scss b/docs/_sass/importer-styles.scss deleted file mode 100644 index 2317af35..00000000 --- a/docs/_sass/importer-styles.scss +++ /dev/null @@ -1,31 +0,0 @@ -article.importer { - pre { - width: 100%; - padding: 15px; - background: #333; - overflow-x: auto - } - .table-container { - margin-bottom: 15px; - overflow-x: auto; - - table.cli { - .required-option { - color: #e5ce8b; - background: #6b6247; - } - code { - font-size: 15px; - background: #333; - } - small code { font-size: 14px } - &+ .cli-table-note { - font-size: 0.825em; - text-align: right; - &:before { - content: "*"; - } - } - } - } -} diff --git a/docs/_sass/layout.scss b/docs/_sass/layout.scss new file mode 100644 index 00000000..e04c630c --- /dev/null +++ b/docs/_sass/layout.scss @@ -0,0 +1,198 @@ +.container, .wrapper { + margin: 0 auto; + max-width: 1100px; +} +.show-on-mobiles { display: none } + +.flex.wrapper { + display: flex; + padding: 0 15px; +} + +header.site-header { + padding: 8px var(--padding-x); + line-height: 1; + a { + display: inline-block; + vertical-align: text-top; + &.logo { + border: none; + } + } + .container { + display: flex; + max-width: 1280px + } + nav.main-nav { + margin: 0 auto; + ul { + display: inline-block; + margin: 0; + padding: 1em 0; + } + li { + float: left; + padding: 0 10px; + font-weight: bold; + font-size: 0.75em; + &:first-child { padding-left: 0 } + &:not(:first-child) { border-left: 1px solid $link-border-color } + &:last-child { padding-right: 0 } + a { + text-transform: uppercase; + } + } + } +} + +article.main-content { + max-width: 720px; + h1 { font-size: 2em } + ul, ol { + margin: 1em 0; + padding-left: 2em; + } +} +footer.site-footer { + padding: 1em var(--padding-x); + background: #2b2b2b; + .container { + margin: 0 auto; + max-width: 350px; + color: #ccc; + text-align: center; + } +} +div.table-container { + margin-bottom: 15px; + overflow-x: auto +} + +div.sidebar { + width: 350px; + padding: 30px 0 30px 15px; + h4 { + margin: 5px 0; + letter-spacing: 1px; + text-transform: uppercase; + border-bottom: 1px solid #555; + } + ul { + display: flex; + flex-wrap: wrap; + padding: 0; + list-style: none; + font-size: 0.875em; + li { + display: flex; + align-items: center; + justify-content: center; + flex: 1 32%; + margin: 2px; + min-width: 100px; + height: 70px; + text-align: center; + border: 1px solid var(--dark-brass); + &:hover, &:active, &.current { + color: #2b2b2b; + background: var(--gold); + a { + color: inherit; + font-weight: bold + } + div { + min-width: 100px; + padding: 10px 2px; + text-align: center; + border: 1px solid var(--dark-brass); + } + } + a { + display: block; + padding: 25px 2px; + width: 100%; + border: none; + } + } + } +} + +@media (max-width: 969px) { + .show-on-mobiles, .block-on-mobiles { display: block !important } + .hide-on-mobiles { display: none } + .center-on-mobiles { text-align: center } + + .flex.wrapper { padding: 0 } + + .site-nav-mobile { + select { + width: 100%; + padding: 5px; + font-size: 1.125em; + color: #999999; + background: #3d3d3d; + border-color: transparent; + outline: none; + border-radius: 2px; + box-shadow: 0 1px 5px var(--charcoal); + option { font-size: 0.9em } + } + } + header.site-header { + .container { + display: block; + text-align: center; + } + a { + margin: 0 auto; + img { + width: 140px; + height: auto + } + } + nav.main-nav { + ul { + margin: 5px 0; + padding: 0 + } + } + } + article.main-content { + max-width: 725px; + margin: 0 auto; + } +} + +@media (min-width: 970px) { + header.site-header { + position: relative; + padding-top: 12px; + height: 72px; + .logo { position: absolute } + nav.main-nav { + li { font-size: 16px } + } + } +} + +@media (min-width: 1150px) { + body { font-size: 18px } + + .container, .wrapper { + max-width: 1200px; + } + + article.main-content { + max-width: 750px; + padding-right: 30px; + + ul, ol { + margin: 1.25em 0; + padding-left: 2.5em; + } + } + + div.sidebar { + width: 420px; + } +} diff --git a/docs/_sass/pygments.scss b/docs/_sass/pygments.scss deleted file mode 100644 index 408a44f3..00000000 --- a/docs/_sass/pygments.scss +++ /dev/null @@ -1,70 +0,0 @@ -/*.highlight { background: #333333; color: #ffffff}*/ -.highlight .hll { background-color: #ffffcc } -.highlight .c { color: #87ceeb} /* Comment */ -.highlight .err { color: #ffffff} /* Error */ -.highlight .g { color: #ffffff} /* Generic */ -.highlight .k { color: #f0e68c} /* Keyword */ -.highlight .l { color: #ffffff} /* Literal */ -.highlight .n { color: #ffffff} /* Name */ -.highlight .o { color: #ffffff} /* Operator */ -.highlight .x { color: #ffffff} /* Other */ -.highlight .p { color: #ffffff} /* Punctuation */ -.highlight .cm { color: #87ceeb} /* Comment.Multiline */ -.highlight .cp { color: #cd5c5c} /* Comment.Preproc */ -.highlight .c1 { color: #87ceeb} /* Comment.Single */ -.highlight .cs { color: #87ceeb} /* Comment.Special */ -.highlight .gd { color: #0000c0; font-weight: bold; background-color: #008080 } /* Generic.Deleted */ -.highlight .ge { color: #c000c0; text-decoration: underline} /* Generic.Emph */ -.highlight .gr { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Error */ -.highlight .gh { color: #cd5c5c} /* Generic.Heading */ -.highlight .gi { color: #ffffff; background-color: #0000c0 } /* Generic.Inserted */ -.highlight span.go { color: #add8e6; font-weight: bold; background-color: #4d4d4d } /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */ -.highlight .gp { color: #ffffff} /* Generic.Prompt */ -.highlight .gs { color: #ffffff} /* Generic.Strong */ -.highlight .gu { color: #cd5c5c} /* Generic.Subheading */ -.highlight .gt { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Traceback */ -.highlight .kc { color: #f0e68c} /* Keyword.Constant */ -.highlight .kd { color: #f0e68c} /* Keyword.Declaration */ -.highlight .kn { color: #f0e68c} /* Keyword.Namespace */ -.highlight .kp { color: #f0e68c} /* Keyword.Pseudo */ -.highlight .kr { color: #f0e68c} /* Keyword.Reserved */ -.highlight .kt { color: #bdb76b} /* Keyword.Type */ -.highlight .ld { color: #ffffff} /* Literal.Date */ -.highlight .m { color: #ffffff} /* Literal.Number */ -.highlight .s { color: #ffffff} /* Literal.String */ -.highlight .na { color: #ffffff} /* Name.Attribute */ -.highlight .nb { color: #ffffff} /* Name.Builtin */ -.highlight .nc { color: #ffffff} /* Name.Class */ -.highlight .no { color: #ffa0a0} /* Name.Constant */ -.highlight .nd { color: #ffffff} /* Name.Decorator */ -.highlight .ni { color: #ffdead} /* Name.Entity */ -.highlight .ne { color: #ffffff} /* Name.Exception */ -.highlight .nf { color: #ffffff} /* Name.Function */ -.highlight .nl { color: #ffffff} /* Name.Label */ -.highlight .nn { color: #ffffff} /* Name.Namespace */ -.highlight .nx { color: #ffffff} /* Name.Other */ -.highlight .py { color: #ffffff} /* Name.Property */ -.highlight .nt { color: #f0e68c} /* Name.Tag */ -.highlight .nv { color: #98fb98} /* Name.Variable */ -.highlight .ow { color: #ffffff} /* Operator.Word */ -.highlight .w { color: #ffffff} /* Text.Whitespace */ -.highlight .mf { color: #ffffff} /* Literal.Number.Float */ -.highlight .mh { color: #ffffff} /* Literal.Number.Hex */ -.highlight .mi { color: #ffffff} /* Literal.Number.Integer */ -.highlight .mo { color: #ffffff} /* Literal.Number.Oct */ -.highlight .sb { color: #ffffff} /* Literal.String.Backtick */ -.highlight .sc { color: #ffffff} /* Literal.String.Char */ -.highlight .sd { color: #ffffff} /* Literal.String.Doc */ -.highlight .s2 { color: #ffffff} /* Literal.String.Double */ -.highlight .se { color: #ffffff} /* Literal.String.Escape */ -.highlight .sh { color: #ffffff} /* Literal.String.Heredoc */ -.highlight .si { color: #ffffff} /* Literal.String.Interpol */ -.highlight .sx { color: #ffffff} /* Literal.String.Other */ -.highlight .sr { color: #ffffff} /* Literal.String.Regex */ -.highlight .s1 { color: #ffffff} /* Literal.String.Single */ -.highlight .ss { color: #ffffff} /* Literal.String.Symbol */ -.highlight .bp { color: #ffffff} /* Name.Builtin.Pseudo */ -.highlight .vc { color: #98fb98} /* Name.Variable.Class */ -.highlight .vg { color: #98fb98} /* Name.Variable.Global */ -.highlight .vi { color: #98fb98} /* Name.Variable.Instance */ -.highlight .il { color: #ffffff} /* Literal.Number.Integer.Long */ diff --git a/docs/assets/css/styles.scss b/docs/assets/css/styles.scss new file mode 100644 index 00000000..b61af7cd --- /dev/null +++ b/docs/assets/css/styles.scss @@ -0,0 +1,19 @@ +--- +--- + +// Questrial Regular (400) +@font-face { + font-family: "Questrial"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("{{ '/assets/fonts/Questrial/Questrial-Regular.ttf' | relative_url }}") format("truetype"); +} + +@import "base"; +@import "layout"; +@import "homepage"; +@import "components/cards"; +@import "components/cli-table"; +@import "components/highlight"; +@import "components/note"; diff --git a/docs/assets/fonts/Questrial/OFL.txt b/docs/assets/fonts/Questrial/OFL.txt new file mode 100644 index 00000000..79d0f2fe --- /dev/null +++ b/docs/assets/fonts/Questrial/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2011 The Questrial Project Authors (https://github.com/googlefonts/questrial) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs/assets/fonts/Questrial/Questrial-Regular.ttf b/docs/assets/fonts/Questrial/Questrial-Regular.ttf new file mode 100644 index 00000000..0f8c316e Binary files /dev/null and b/docs/assets/fonts/Questrial/Questrial-Regular.ttf differ diff --git a/docs/assets/imgs/importer-icons.svg b/docs/assets/imgs/importer-icons.svg new file mode 100644 index 00000000..a92c235b --- /dev/null +++ b/docs/assets/imgs/importer-icons.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/img/logo-2x.png b/docs/assets/imgs/logo-2x.png similarity index 100% rename from docs/img/logo-2x.png rename to docs/assets/imgs/logo-2x.png diff --git a/docs/css/style.scss b/docs/css/style.scss deleted file mode 100644 index 1cb40f8d..00000000 --- a/docs/css/style.scss +++ /dev/null @@ -1,980 +0,0 @@ ---- ---- - -@import "normalize"; -@import "gridism"; - -/* Base */ - -* { - box-sizing: border-box; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; -} - -body { - font-family: Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 21px; - font-weight: 300; - color: #ddd; - background: #333; - border-top: 5px solid #fc0; - box-shadow: inset 0 3px 30px rgba(0,0,0,.3); - text-shadow: 0 1px 3px rgba(0,0,0,.5); -} - -.clear { - display: block; -} - -.clear:after { - content: " "; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -/* Sections */ - -body > header, body > section, body > footer { - float: left; - width: 100%; - clear: both; -} - -/* Header */ - -body > header h1, body > header nav { - display: inline-block; -} - -body > header h1 span { - display: none; -} - -nav ul { - padding: 0; - margin: 0; -} - -nav li { - display: inline-block; -} - -.main-nav { - margin-top: 52px; -} - -.main-nav li { - margin-right: 10px; -} - -.main-nav li a { - border-radius: 5px; - font-weight: 800; - font-size: 14px; - padding: 0.5em 1em; - text-shadow: none; - text-transform: uppercase; - transition: all .25s; - -moz-transition: all .25s; - -webkit-transition: all .25s; -} - -.main-nav li a:hover { - background: #252525; - box-shadow: inset 0 1px 3px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.1); - text-shadow: 0 1px 3px rgba(0,0,0,.5); -} - -.main-nav li.current a { - background: #fc0; - color: #222; - box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 1px 5px rgba(0,0,0,.5); - text-shadow: 0 1px 0 rgba(255,255,255,.3); -} - -.mobile-nav ul { - overflow: hidden; - width: 100%; - display: table; -} - -.mobile-nav a { - float: left; - width: 100%; - background: #333; - color: #fc0; - text-align: center; - text-transform: uppercase; - font-size: 14px; - font-weight: 800; - padding: 5px; - border-radius: 5px; -} - -.mobile-nav .current a { - background: #fc0; - color: #222; - box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 1px 5px rgba(0,0,0,.5); - text-shadow: 0 1px 0 rgba(255,255,255,.3); -} - -.mobile-nav li { - display: table-cell; - width: 25%; - padding: 8px; -} - -@media (max-width: 768px){ - .main-nav ul { - text-align: right; - } -} -@media (max-width: 830px){ - .main-nav .show-on-mobiles { - display: inline; - } - .main-nav .hide-on-mobiles { - display: none; - } -} - -/* Footer */ - -body > footer { - background: #222; - font-size: 16px; - padding-bottom: 5px; - color: #888; - margin-top: 40px; -} - -body > footer a { - color: #fff; -} - -body > footer .align-right p, body > footer img { - display: inline-block; -} - -body > footer img { - position: relative; - top: 8px; - margin-left: 5px; - width: 100px; - height: 30px; - opacity: .8; - padding: 1px; - -webkit-transition: opacity .2s; - -moz-transition: opacity .2s; - transition: opacity .2s; -} - -body > footer a:hover img { - opacity: 1; -} - -@media (max-width: 568px){ - footer .one-third p { - margin-bottom: 0; - } - footer .two-thirds p { - margin-top: -20px; - } -} - -/* Intro */ - -.intro .unit { - padding: 10px 0 40px; -} - -.intro p { - font-size: 1.75em; - line-height: 1em; - margin: 0; -} - -@media (min-width: 569px){ - .intro p { - font-size: 3.2em; - } -} - -/* Quickstart */ - -.quickstart { - background: #3F1F1F; - color: #fff; - margin: 60px 0; - box-shadow: inset 0 3px 10px rgba(0,0,0,.4); -} - -.quickstart .content { - padding: 0px 0; -} - -.quickstart h4 { - font-size: 24px; - line-height: 24px; - margin-top: 20px; - text-shadow: 0 1px 3px rgba(0,0,0,.8); -} - -.quickstart .code { - font-size: 12px; - display: block; - margin: 10px 0 20px; -} - -@media (min-width: 768px){ - .quickstart .code { - font-size: 18px; - margin: 10px 0 30px; - } - .quickstart h4 { - margin: 20px 0 0; - text-align: center; - } -} - -/* Code */ - -.quickstart .code { - display: block; - padding: 0; - font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; - line-height: 1.3em; -} - -.quickstart .code .title { - display: block; - text-align: center; - margin: 0 20px; - padding: 5px 0; - border-radius: 5px 5px 0 0; - box-shadow: 0 3px 10px rgba(0,0,0,.5); - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 16px; - font-weight: normal; - color: #444; - text-shadow: 0 1px 0 rgba(255,255,255,.5); - background: #f7f7f7; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); - background: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7f7f7), color-stop(7%,#cfcfcf), color-stop(100%,#aaaaaa)); - background: -webkit-linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%); - background: -o-linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%); - background: -ms-linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%); - background: linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 ); - border-bottom: 1px solid #111; -} - -.quickstart .code .shell { - padding: 20px; - text-shadow: none; - margin: 0 20px; - background: #3d3d3d; - border-radius: 0 0 5px 5px; - box-shadow: 0 5px 30px rgba(0,0,0,.3); -} - -.quickstart .code .line { - display: block; - margin: 0; - padding: 0; -} - -.quickstart .code .line span { - display: inline-block; -} - -.quickstart .code .path { - color: #87ceeb; -} - -.quickstart .code .prompt { - color: #cd5c5c; -} - -.quickstart .code .command { - color: #f0e68c; -} - -.quickstart .code .output { - color: #888; -} - -/* Free Hosting */ - -.free-hosting { - margin-top: 10px; -} - -.free-hosting .pane { - background: #444; - border-radius: 10px; - text-shadow: none; - position: relative; - padding: 0 20px 30px; -} - -.free-hosting img { - margin: -30px 0 0; - width: 180px; - height: 150px; -} - -.free-hosting h2 { - font-size: 28px; -} - -.free-hosting p, -.free-hosting a { - font-size: 16px; -} - -.free-hosting p { - margin: .75em 0; -} - -@media (min-width: 768px){ - .free-hosting img { - float: left; - margin: -20px -30px -30px -50px; - width: 300px; - height: 251px; - } - .free-hosting .pane-content { - margin-top: 35px; - padding-right: 30px; - } - .free-hosting p, - .free-hosting a { - font-size: 18px; - } - .free-hosting .pane:after { - content: " "; - float: right; - background: url(../img/footer-arrow.png) top left no-repeat; - width: 73px; - height: 186px; - position: absolute; - right: 0; - bottom: -30px; - } -} - -/* Article - Used for both docs and news */ - - -article { - background: #444; - border-radius: 10px; - padding: 20px; - margin: 0 10px; - box-shadow: 0 3px 10px rgba(0,0,0,.1); - font-size: 16px; -} - -@media (max-width: 480px){ - article ul { - padding-left: 20px; - } -} - -@media (max-width: 568px){ - article { - margin: 0; - } -} - -@media (min-width: 768px){ - article { - padding: 40px 40px 30px; - font-size: 21px; - } -} - -/* Right-side nav - used by both docs and news */ - -aside { - padding-top: 30px; -} - -aside h4 { - text-transform: uppercase; - font-size: 14px; - font-weight: 700; - padding: 0 0 10px 30px; - margin-left: -30px; - display: inline-block; - border-bottom: 1px solid #c00; -} - -aside ul { - padding-left: 0; -} - -aside ul:first-child { - margin-top: 0; -} - -aside li { - list-style-type: none; -} - -aside li a { - font-size: 16px; - position: relative -} - -aside li.current a:before { - content: ""; - border-color: transparent transparent transparent #444; - border-style: solid; - border-width: 10px; - width: 0; - height: 0; - position: absolute; - top: 0; - left: -30px; -} - -/* Documentation */ - -.docs article { - min-height: 800px; -} - -.docs .content { - padding: 0; -} - -.section-nav { - text-align: center; - padding-top: 40px; - position: relative; - background: url(../img/article-footer.png) top center no-repeat; - margin: 40px -20px 10px; -} - -.section-nav > div { - width: 49.5%; -} - -.section-nav a, .section-nav span { - color: #fff; - font-size: 16px; - text-transform: uppercase; - font-weight: 700; - padding: 8px 12px 10px; - border-radius: 5px; - /*border: 1px solid #333;*/ - box-shadow: 0 1px 3px rgba(0,0,0,.3), inset 0 1px 1px rgba(255,255,255,.5); - background: #777; -} - -.section-nav a:hover { - color: #fff; - background: #888; -} - -.section-nav .next, .section-nav .prev { - position: relative; -} - -.section-nav .next:after, .section-nav .prev:before { - font-size: 36px; - color: #222; - font-weight: 800; - text-shadow: 0 1px 0 rgba(255,255,255,.4); - position: absolute; - top: -7px; -} - -.section-nav .next:after { - content: "›"; - right: 10px; -} - -.section-nav .prev:before { - content: "‹"; - left: 10px; -} - -.section-nav .prev, .section-nav .prev:hover { - /*float: left;*/ - padding-left: 30px; -} - -.section-nav .next, .section-nav .next:hover { - /*float: right;*/ - padding-right: 30px; -} - -.section-nav .disabled { - opacity: .5; - /*filter: alpha*/ - cursor: default; -} - -.docs-nav-mobile select { - width: 100%; -} - -/* News */ - -article h2:first-child { - margin-top: 0; -} - -.post-category, -.post-meta { - display: inline-block; - vertical-align: middle; - font-size: .8em; -} - -.post-category { - display: inline-block; - margin-left: -30px; - padding: 6px 10px 8px; - padding-left: 50px; - border-radius: 0 5px 5px 0; - position: relative; - box-shadow: 0 1px 5px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.3); - background: #9e2812; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#9e2812), color-stop(100%,#6f0d0d)); - background: -webkit-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: -o-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: -ms-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: linear-gradient(to bottom, #9e2812 0%,#6f0d0d 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); -} - -.label { - float: left; - text-transform: uppercase; - font-weight: bold; - text-shadow: 0 -1px 0 rgba(0,0,0,.5); -} - -@media (max-width: 568px){ - .post-category { - padding-left: 30px; - } -} - -@media (min-width: 768px){ - .post-category { - margin-left: -50px; - } -} - -.post-category:before { - content: ""; - position: absolute; - top: -10px; - left: 0px; - border-color: transparent #6f0d0d #6f0d0d transparent; - border-style: solid; - border-width: 5px; - width: 0; - height: 0; -} - -.avatar { - width: 24px; - height: 24px; - border-radius: 3px; - display: inline-block; - vertical-align: middle; -} - -.post-meta { - padding: 5px 0; - color: #aaa; - font-weight: 600; - text-shadow: 0 -1px 0 #000; -} - -.post-date, -.post-author { - margin-left: 10px; -} - -.news article + article { - margin-top: -10px; - border-radius: 0 0 10px 10px; - border-top: 1px solid #555; - box-shadow: 0 -1px 0 #2f2f2f; -} - -/* Code Highlighting */ - - -pre, code { - white-space: pre; - display: inline-block; - margin: 0; - padding: 0; - font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; - font-size: 14px; - padding: 0 .5em; - line-height: 1.8em; -} - -@media (min-width: 768px){ - pre, code { - font-size: 16px; - } -} - -.highlight, p > pre, p > code, p > nobr > code, li > code, h5 > code, .note > code { - background: #333; - color: #fff; - border-radius: 5px; - box-shadow: inset 0 1px 10px rgba(0,0,0,.3), - 0 1px 0 rgba(255,255,255,.1), - 0 -1px 0 rgba(0,0,0,.5); -} - -.note code { - background-color: rgba(0,0,0,0.2); - margin-left: 2.5px; - margin-right: 2.5px; - font-size: 0.8em; -} - -.highlight { - margin: 0; - padding: 10px 0; - width: 100%; - overflow: auto; -} - -/* HTML Elements */ - -h1, h2, h3, h4, h5, h6 { - margin: 0; -} - -a { - color: #fc0; - text-decoration: none; - transition: all .25s; - -moz-transition: all .25s; - -webkit-transition: all .25s; -} - -a:hover { - color: #f90; -} - -strong { - font-weight: 700; -} - -p { - line-height: 1.5em; -} - -.left { float: left; } -.right { float: right; } -.align-right { text-align: right; } -.align-left { text-align: left; } -.align-center { text-align: center; } - -/* Article HTML */ - -article h2, -article h3, -article h4, -article h5, -article h6 { - margin: 1em 0; -} - -article h4 { - color: #fff; -} - -h5, h6 { - font-size: 1em; - font-style: italic; -} - -article ul li p { - margin: 0; -} - -article ul li, article ol li { - line-height: 1.5em; - margin-bottom: 0.5em; -} - -article ul li blockquote { - margin: 10px 0; -} - -blockquote { - border-left: 2px solid #777; - padding-left: 20px; - font-style: italic; - font-size: 18px; - font-weight: 500; -} - - -/* Tables */ - -table { - width: 100%; - background: #555; - margin: .5em 0; - border-radius: 5px; - box-shadow: 0 1px 3px rgba(0,0,0,.3); -} - -thead { - border-top-left-radius: 5px; - border-top-right-radius: 5px; - color: #fff; - background: #3a3a3a; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzNhM2EzYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTFlMWUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3a3a3a), color-stop(100%,#1e1e1e)); - background: -webkit-linear-gradient(top, #3a3a3a 0%,#1e1e1e 100%); - background: -o-linear-gradient(top, #3a3a3a 0%,#1e1e1e 100%); - background: -ms-linear-gradient(top, #3a3a3a 0%,#1e1e1e 100%); - background: linear-gradient(to bottom, #3a3a3a 0%,#1e1e1e 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a3a3a', endColorstr='#1e1e1e',GradientType=0 ); -} - -thead th { - position: relative; - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); -} - -thead th:first-child { - border-top-left-radius: 5px; -} - -thead th:last-child { - border-top-right-radius: 5px; -} - -td { - padding: .5em .75em; -} - -td p { - margin: 0; -} - -th { - text-transform: uppercase; - font-size: 16px; - padding: .5em .75em; - text-shadow: 0 -1px 0 rgba(0,0,0,.9); - color: #888; -} - -tbody td { - border-top: 1px solid rgba(0,0,0,.1); - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); - background: -moz-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); - background: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%); - background: -o-linear-gradient(top, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%); - background: -ms-linear-gradient(top, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%); - background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 ); -} - -td p { - font-size: 16px; -} - -td p code { - font-size: 14px; -} - -code.option, th .option, code.filter, th .filter { - color: #50B600; -} - -code.flag, th .flag, code.output, th .output { - color: #049DCE; -} - -code.option, code.flag, code.filter, code.output { - margin-bottom: 2px; -} - -/* Note types */ - -.note { - margin: 30px 0; - margin-left: -30px; - padding: 20px 20px 24px; - padding-left: 50px; - border-radius: 0 5px 5px 0; - position: relative; - box-shadow: 0 1px 5px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.3); - background: #7e6d42; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlNmQ0MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YzRlMzUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7e6d42), color-stop(100%,#5c4e35)); - background: -webkit-linear-gradient(top, #7e6d42 0%,#5c4e35 100%); - background: -o-linear-gradient(top, #7e6d42 0%,#5c4e35 100%); - background: -ms-linear-gradient(top, #7e6d42 0%,#5c4e35 100%); - background: linear-gradient(to bottom, #7e6d42 0%,#5c4e35 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7e6d42', endColorstr='#5c4e35',GradientType=0 ); -} - -@media (max-width: 568px){ - .note { - margin-right: -30px; - } -} - -@media (min-width: 768px){ - .note { - margin-left: -50px; - } -} - -.note:before { - content: ""; - position: absolute; - top: -10px; - left: 0px; - border-color: transparent #222 #222 transparent; - border-style: solid; - border-width: 5px; - width: 0; - height: 0; -} - -.note h5, .note p { - margin: 0; - color: #fff; -} - -.note h5 { - line-height: 1.5em; - font-weight: 800; - font-style: normal; -} - -.note p { - font-weight: 400; - font-size: .75em; -} - -.info { - background: #0389aa; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAzODlhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDYxN2YiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(top, #0389aa 0%, #00617f 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#0389aa), color-stop(100%,#00617f)); - background: -webkit-linear-gradient(top, #0389aa 0%,#00617f 100%); - background: -o-linear-gradient(top, #0389aa 0%,#00617f 100%); - background: -ms-linear-gradient(top, #0389aa 0%,#00617f 100%); - background: linear-gradient(to bottom, #0389aa 0%,#00617f 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0389aa', endColorstr='#00617f',GradientType=0 ); -} - -.warning { - background: #9e2812; - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#9e2812), color-stop(100%,#6f0d0d)); - background: -webkit-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: -o-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: -ms-linear-gradient(top, #9e2812 0%,#6f0d0d 100%); - background: linear-gradient(to bottom, #9e2812 0%,#6f0d0d 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); -} - -.info:before { - border-color: transparent #00617f #00617f transparent; -} - -.warning:before { - border-color: transparent #6f0d0d #6f0d0d transparent; -} - -.note:after { - content: "★"; - color: #fc0; - position: absolute; - top: 14px; - left: 14px; - font-size: 28px; - font-weight: bold; - text-shadow: 0 -1px 0 rgba(0,0,0,.5); -} - -.info:after { - content: "ⓘ"; - color: #fff; - position: absolute; - top: 15px; - left: 15px; - font-size: 28px; - font-weight: bold; - text-shadow: 0 -1px 0 rgba(0,0,0,.5); -} - -.warning:after { - content: "‼"; - color: #fc0; - position: absolute; - top: 15px; - left: 15px; - font-size: 32px; - font-weight: bold; - text-shadow: 0 -1px 0 rgba(0,0,0,.5); -} - -/* Responsive tables */ - -@media (max-width: 768px){ - .mobile-side-scroller { - overflow-x: scroll; - margin: 0 -40px; - padding: 0 10px; - } -} - -ul.dep-list { - margin-top: 0.275em; - padding: 0; - list-style: none; - li { - margin: 0; - padding-left: 1em; - line-height: 1.275; - span img { - margin-right: 3px; - vertical-align: middle; - filter: invert(1); - } - a { - padding: 0 5px; - font-size: 0.75em; - font-weight: bold; - } - } -} - -@import "pygments"; -@import "importer-styles"; diff --git a/docs/feed.xml b/docs/feed.xml deleted file mode 100644 index bfec8a00..00000000 --- a/docs/feed.xml +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: none -permalink: /feed.xml ---- - - - - - {{ site.title }} - - http://import.jekyllrb.com - {{ site.time | date: "%a, %d %b %Y %H:%M:%S %z" }} - {{ site.time | date: "%a, %d %b %Y %H:%M:%S %z" }} - en-US - Import your old & busted site to Jekyll, a blog-aware static site generator. - {% for post in site.posts %} - - {{ post.title | xml_escape}} - http://import.jekyllrb.com{{ post.url }} - {{ post.date | date: "%a, %d %b %Y %H:%M:%S %z" }} - {{ post.author }} - {% for tag in post.tags %}{{ tag | xml_escape }} - {% endfor %}{% for cat in post.categories %}{{ cat | xml_escape }} - {% endfor %}{{ post.id }} - - - {% endfor %} - - diff --git a/docs/img/article-footer.png b/docs/img/article-footer.png deleted file mode 100644 index 3f97403d..00000000 Binary files a/docs/img/article-footer.png and /dev/null differ diff --git a/docs/img/footer-arrow.png b/docs/img/footer-arrow.png deleted file mode 100644 index 048e37df..00000000 Binary files a/docs/img/footer-arrow.png and /dev/null differ diff --git a/docs/img/footer-logo.png b/docs/img/footer-logo.png deleted file mode 100644 index 210babb0..00000000 Binary files a/docs/img/footer-logo.png and /dev/null differ diff --git a/docs/img/octojekyll.png b/docs/img/octojekyll.png deleted file mode 100644 index dad6dbdf..00000000 Binary files a/docs/img/octojekyll.png and /dev/null differ diff --git a/docs/img/tube.png b/docs/img/tube.png deleted file mode 100644 index bb0ba9c8..00000000 Binary files a/docs/img/tube.png and /dev/null differ diff --git a/docs/img/tube1x.png b/docs/img/tube1x.png deleted file mode 100644 index 104c28b0..00000000 Binary files a/docs/img/tube1x.png and /dev/null differ diff --git a/docs/importers.html b/docs/importers.html new file mode 100644 index 00000000..7d714e07 --- /dev/null +++ b/docs/importers.html @@ -0,0 +1,22 @@ +--- +layout: base +title: Builtin Importers +--- + +
+{% for importer in site.importers %} +
+
+
+ + + +
{{ importer.title }}
+
+ +
+
+{% endfor %} +
diff --git a/docs/index.html b/docs/index.html index 6ef52e1f..ad20e45a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,55 +1,41 @@ --- -layout: default -title: jekyll-import • Import your old & busted site to Jekyll -overview: true +layout: base +title: Import your old & busted site to Jekyll +featured: [ blogger, drupal8, mephisto, tumblr, wordpress ] --- -
-
-
-

Import your old & busted site or blog for use with Jekyll.

-
-
-
-
-
-
-

Wide Range of Available Importers

-

-

- {% for importer in site.importers %} - - {% endfor %} +
+
+

Import your old & busted site or blog for use with Jekyll.

+
+ +
+
+

Wide Range of Builtin Importers

+
+ {% assign featured_list_size = page.featured | size %} + {% for entry in page.featured %} + {% assign importer = site.importers | find: "slug", entry %} + -

+ {% endfor %} + +
- -
-
-
-
-
-
- Free Jekyll hosting on GitHub Pages -
-

Free hosting with GitHub Pages

-

Sick of dealing with hosting companies? GitHub Pages are powered by Jekyll, so you can easily deploy your site using GitHub for free—custom domain name and all.

- Learn more about GitHub Pages → -
-
-
-
-
-
-
+
+
diff --git a/docs/js/modernizr-2.5.3.min.js b/docs/js/modernizr-2.5.3.min.js deleted file mode 100755 index 27fcdae8..00000000 --- a/docs/js/modernizr-2.5.3.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/* Modernizr 2.5.3 (Custom Build) | MIT & BSD - * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load - */ -;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function L(){e.input=function(c){for(var d=0,e=c.length;d",a,""].join(""),k.id=h,m.innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e});var K=function(c,d){var f=c.join(""),g=d.length;y(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",n.join("touch-enabled),("),h,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",n.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',l,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);s.flexbox=function(){return J("flexOrder")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},s.touch=function(){return e.touch},s.geolocation=function(){return!!navigator.geolocation},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){for(var b=-1,c=p.length;++b",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f element in posts for the enclosure URLs (default: false)" + c.option "username", "--username NAME", "Medium username." + c.option "canonical_link", "--canonical_link", "Add original link as `canonical_url` to post front matter. (default: false)" + c.option "render_audio", "--render_audio", "Render `