Glorious.
226
README.md
|
@ -1,7 +1,7 @@
|
|||
jrnl [](https://travis-ci.org/maebert/jrnl)
|
||||
====
|
||||
|
||||
_For news on updates or to get help, follow [@maebert](https://twitter.com/maebert) or [submit an issue](https://github.com/maebert/jrnl/issues/new) on Github._
|
||||
_For news on updates or to get help, [read the docs](http://maebert.github.io/jrnl), follow [@maebert](https://twitter.com/maebert) or [submit an issue](https://github.com/maebert/jrnl/issues/new) on Github._
|
||||
|
||||
*jrnl* is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncing and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten.
|
||||
|
||||
|
@ -39,230 +39,6 @@ Or, if you want the option to encrypt your journal,
|
|||
|
||||
pip install jrnl[encrypted]
|
||||
|
||||
To install `pycrypto` as well (Note: this requires a `gcc` compiler. You can also [install PyCyrypto manually](https://www.dlitz.net/software/pycrypto/) first)). Alternatively, install _jrnl_ manually by cloning the repository:
|
||||
|
||||
git clone git://github.com/maebert/jrnl.git
|
||||
cd jrnl
|
||||
python setup.py install
|
||||
|
||||
The first time you run `jrnl` you will be asked where your journal file should be created and whether you wish to encrypt it.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
_jrnl_ has two modes: __composing__ and __viewing__.
|
||||
|
||||
### Viewing:
|
||||
|
||||
jrnl -n 10
|
||||
|
||||
will list you the ten latest entries,
|
||||
|
||||
jrnl -from "last year" -until march
|
||||
|
||||
everything that happened from the start of last year to the start of last march. If you only want to see the titles of your entries, use
|
||||
|
||||
jrnl -short
|
||||
|
||||
### Using Tags:
|
||||
|
||||
Keep track of people, projects or locations, by tagging them with an `@` in your entries:
|
||||
|
||||
jrnl Had a wonderful day on the @beach with @Tom and @Anna.
|
||||
|
||||
You can filter your journal entries just like this:
|
||||
|
||||
jrnl @pinkie @WorldDomination
|
||||
|
||||
Will print all entries in which either `@pinkie` or `@WorldDomination` occurred.
|
||||
|
||||
jrnl -n 5 -and @pineapple @lubricant
|
||||
|
||||
the last five entries containing both `@pineapple` __and__ `@lubricant`. You can change which symbols you'd like to use for tagging in the configuration.
|
||||
|
||||
> __Note:__ `jrnl @pinkie @WorldDomination` will switch to viewing mode because although _no_ command line arguments are given, all the input strings look like tags - _jrnl_ will assume you want to filter by tag.
|
||||
|
||||
### Composing:
|
||||
|
||||
Composing mode is entered by either starting `jrnl` without any arguments -- which will prompt you to write an entry or launch your editor -- or by just writing an entry on the prompt, such as
|
||||
|
||||
jrnl today at 3am: I just met Steve Buscemi in a bar! He looked funny.
|
||||
|
||||
|
||||
### Smart timestamps:
|
||||
|
||||
Timestamps that work:
|
||||
|
||||
* at 6am
|
||||
* yesterday
|
||||
* last monday
|
||||
* sunday at noon
|
||||
* 2 march 2012
|
||||
* 7 apr
|
||||
* 5/20/1998 at 23:42
|
||||
|
||||
Import and export
|
||||
-----------------
|
||||
|
||||
### Tag export
|
||||
|
||||
With
|
||||
|
||||
jrnl --tags
|
||||
|
||||
you'll get a list of all tags you used in your journal, sorted by most frequent. Tags occurring several times in the same entry are only counted as one.
|
||||
|
||||
### JSON export
|
||||
|
||||
Can do:
|
||||
|
||||
jrnl --export json
|
||||
|
||||
Why not create a beautiful [timeline](http://timeline.verite.co/) of your journal?
|
||||
|
||||
### Markdown export
|
||||
|
||||
Use:
|
||||
|
||||
jrnl --export markdown
|
||||
|
||||
or
|
||||
|
||||
jrnl --export md
|
||||
|
||||
Markdown is a simple markup language that is human readable and can be used to be rendered to other formats (html, pdf). This README for example is formatted in markdown and github makes it look nice.
|
||||
|
||||
### Text export
|
||||
|
||||
jrnl --export text
|
||||
|
||||
or
|
||||
|
||||
jrnl --export txt
|
||||
|
||||
Prettyprints your entire journal.
|
||||
|
||||
### Export to files
|
||||
|
||||
You can specify the output file of your exported journal using the `-o` argument:
|
||||
|
||||
jrnl --export md -o journal.md
|
||||
|
||||
The above command will generate a file named `journal.md`. If the `-o` argument is a directory, jrnl will export each entry into an individual file:
|
||||
|
||||
jrnl --export json -o my_entries/
|
||||
|
||||
The contents of `my_entries/` will then look like this:
|
||||
|
||||
my_entries/
|
||||
|- 2013_06_03_a-beautiful-day.json
|
||||
|- 2013_06_07_dinner-with-gabriel.json
|
||||
|- ...
|
||||
|
||||
Encryption
|
||||
----------
|
||||
|
||||
If you don't choose to encrypt your file when you run `jrnl` for the first time, you can encrypt your existing journal file or change its password using
|
||||
|
||||
jrnl --encrypt
|
||||
|
||||
If it is already encrypted, you will first be asked for the current password. You can then enter a new password and your plain journal will replaced by the encrypted file. Conversely,
|
||||
|
||||
jrnl --decrypt
|
||||
|
||||
will replace your encrypted journal file by a Journal in plain text. You can also specify a filename, ie. `jrnl --decrypt plain_text_copy.txt`, to leave your original file untouched.
|
||||
|
||||
|
||||
Advanced usages
|
||||
--------------
|
||||
|
||||
The first time launched, _jrnl_ will create a file configuration file at `~/.jrnl_config` or, if the `XDG_CONFIG_HOME` environment variable is set, `$XDG_CONFIG_HOME/jrnl`.
|
||||
|
||||
### .jrnl_config
|
||||
|
||||
The configuration file is a simple JSON file with the following options.
|
||||
|
||||
- `journals`: paths to your journal files
|
||||
- `editor`: if set, executes this command to launch an external editor for writing your entries, e.g. `vim` or `subl -w` (note the `-w` flag to make sure _jrnl_ waits for Sublime Text to close the file before writing into the journal).
|
||||
- `encrypt`: if `true`, encrypts your journal using AES.
|
||||
- `tagsymbols`: Symbols to be interpreted as tags. (__See note below__)
|
||||
- `default_hour` and `default_minute`: if you supply a date, such as `last thursday`, but no specific time, the entry will be created at this time
|
||||
- `timeformat`: how to format the timestamps in your journal, see the [python docs](http://docs.python.org/library/time.html#time.strftime) for reference
|
||||
- `highlight`: if `true`, tags will be highlighted in cyan.
|
||||
- `linewrap`: controls the width of the output. Set to `0` or `false` if you don't want to wrap long lines.
|
||||
|
||||
> __Note on `tagsymbols`:__ Although it seems intuitive to use the `#` character for tags, there's a drawback: on most shells, this is interpreted as a meta-character starting a comment. This means that if you type
|
||||
>
|
||||
> jrnl Implemented endless scrolling on the #frontend of our website.
|
||||
>
|
||||
> your bash will chop off everything after the `#` before passing it to _jrnl_). To avoid this, wrap your input into quotation marks like this:
|
||||
>
|
||||
> jrnl "Implemented endless scrolling on the #frontend of our website."
|
||||
>
|
||||
> Or use the built-in prompt or an external editor to compose your entries.
|
||||
|
||||
### DayOne Integration
|
||||
|
||||
Using your DayOne journal instead of a flat text file is dead simple - instead of pointing to a text file, change your `.jrnl_conf` to point to your DayOne journal. This is a folder ending with `.dayone`, and it's located at
|
||||
|
||||
* `~/Library/Application Support/Day One/` by default
|
||||
* `~/Dropbox/Apps/Day One/` if you're syncing with Dropbox and
|
||||
* `~/Library/Mobile Documents/5U8NS4GX82~com~dayoneapp~dayone/Documents/` if you're syncing with iCloud.
|
||||
|
||||
Instead of all entries being in a single file, each entry will live in a separate `plist` file. You can also star entries when you write them:
|
||||
|
||||
jrnl -star yesterday: Lunch with @Arthur
|
||||
|
||||
### Multiple journal files
|
||||
|
||||
You can configure _jrnl_ to use with multiple journals (eg. `private` and `work`) by defining more journals in your `.jrnl_config`, for example:
|
||||
|
||||
"journals": {
|
||||
"default": "~/journal.txt",
|
||||
"work": "~/work.txt"
|
||||
},
|
||||
|
||||
The `default` journal gets created the first time you start _jrnl_. Now you can access the `work` journal by using `jrnl work` instead of `jrnl`, eg.
|
||||
|
||||
jrnl work at 10am: Meeting with @Steve
|
||||
jrnl work -n 3
|
||||
|
||||
will both use `~/work.txt`, while `jrnl -n 3` will display the last three entries from `~/journal.txt` (and so does `jrnl default -n 3`).
|
||||
|
||||
You can also override the default options for each individual journal. If you `.jrnl_conf` looks like this:
|
||||
|
||||
{
|
||||
...
|
||||
"encrypt": false
|
||||
"journals": {
|
||||
"default": "~/journal.txt",
|
||||
"work": {
|
||||
"journal": "~/work.txt",
|
||||
"encrypt": true
|
||||
},
|
||||
"food": "~/my_recipes.txt",
|
||||
}
|
||||
|
||||
Your `default` and your `food` journals won't be encrypted, however your `work` journal will! You can override all options that are present at the top level of `.jrnl_conf`, just make sure that at the very least you specify a `"journal": ...` key that points to the journal file of that journal.
|
||||
|
||||
### Manual decryption
|
||||
|
||||
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run
|
||||
|
||||
import hashlib, Crypto.Cipher
|
||||
key = hashlib.sha256(my_password).digest()
|
||||
with open("my_journal.txt") as f:
|
||||
cipher = f.read()
|
||||
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
|
||||
plain = crypto.decrypt(cipher[16:])
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- The Windows shell prior to Windows 7 has issues with unicode encoding. If you want to use non-ascii characters, change the codepage with `chcp 1252` before using `jrnl` (Thanks to Yves Pouplard for solving this!)
|
||||
- _jrnl_ relies on the `PyCrypto` package to encrypt journals, which has some known problems with installing on Windows and within virtual environments. If you have trouble installing __jrnl__, [install PyCyrypto manually](https://www.dlitz.net/software/pycrypto/) first.
|
||||
|
||||
|
||||
|
||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||
|
||||
|
|
20
docs/_themes/jrnl/index.html
vendored
|
@ -6,22 +6,22 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title></title>
|
||||
<title>jrnl- The Command Line Journal</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/main.css', 1) }}">
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,700' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/jrnl.css', 1) }}">
|
||||
|
||||
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
|
||||
<link rel="apple-touch-icon-precomposed" href="{{ pathto('_static/img/favicon-152.png', 1) }}">
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/img/favicon.ico', 1) }}">
|
||||
</head>
|
||||
<body id="landing">
|
||||
<body id="landing" class="landing">
|
||||
<div id="upper">
|
||||
<a id="twitter" href="https://twitter.com/intent/tweet?text=Write+your+memoirs+on+the+command+line.+Like+a+boss.+%23jrnl&url=http%3A%2F%2Fmaebert.github.io%2Fjrnl&via=maebert">Tell your friends</a>
|
||||
<div id="title">
|
||||
<img id="logo" src="{{ pathto('_static/img/logo.png', 1) }}" title="jrnl"/>
|
||||
<h1>Collect your thoughts and notes<br />without leaving the command line</h1>
|
||||
<h1>Collect your thoughts and notes <br />without leaving the command line</h1>
|
||||
</div>
|
||||
<div id="prompt">
|
||||
<div class="pleft" onlick="next(); return false;"><i class="icon left"></i></div>
|
||||
|
@ -30,8 +30,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="nav">
|
||||
<a href="{{ pathto('installation') }}" title="Documentation">Documenation</a>
|
||||
<a href="{{ pathto('overview') }}" title="Documentation">Documenation</a>
|
||||
<a href="http://github.com/maebert/jrnl" title="View on Github">Fork me on GitHub</a>
|
||||
<a id="twitter-nav" href="https://twitter.com/intent/tweet?text=Write+your+memoirs+on+the+command+line.+Like+a+boss.+%23jrnl&url=http%3A%2F%2Fmaebert.github.io%2Fjrnl&via=maebert">Tell your friends on twitter</a>
|
||||
<a href="{{ pathto('installation') }}" title="Quick Start" class="cta">Download ▶</a>
|
||||
</div>
|
||||
<div id="lower">
|
||||
|
@ -74,8 +75,13 @@
|
|||
<p>Effortlessly access several journals for all parts of your life.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
Journal is made with love by {{ copyright }} and other fabulous people. If you need help, tweet to <a href="https://twitter.com/maebert" title="Follow @maebert on twitter">@maebert</a> or <a href="https://github.com/maebert/jrnl/issues/new" title="Open a new issue on Github">submit an issue</a> on Github.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="{{ pathto('_static/js/landing.js', 1) }}"></script>
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
|
||||
|
|
18
docs/_themes/jrnl/layout.html
vendored
|
@ -5,25 +5,25 @@
|
|||
|
||||
{%- block extrahead %}
|
||||
{{ super() }}
|
||||
{% if theme_touch_icon %}
|
||||
<link rel="apple-touch-icon" href="{{ pathto('_static/' ~ theme_touch_icon, 1) }}" />
|
||||
{% endif %}
|
||||
<link media="only screen and (max-device-width: 480px)" href="{{
|
||||
pathto('_static/small_flask.css', 1) }}" type= "text/css" rel="stylesheet" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
|
||||
<link rel="apple-touch-icon-precomposed" href="{{ pathto('_static/img/favicon-152.png', 1) }}">
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/img/favicon.ico', 1) }}">
|
||||
{% endblock %}
|
||||
|
||||
{%- block relbar1 %}{% endblock %}
|
||||
{%- block relbar2 %}{% endblock %}
|
||||
|
||||
{%- block sidebar2 %}
|
||||
<aside>
|
||||
<img class="logo" src="{{ pathto('_static/img/logo.png', 1) }}" title="jrnl"/>
|
||||
{{ super()}}
|
||||
<a href="/" id="logolink" title="jrnl"><img class="logo" src="{{ pathto('_static/img/logo.png', 1) }}" title="jrnl"/></a>
|
||||
<h2>Documentation</h2>
|
||||
{{ toctree() }}
|
||||
{%- include "searchbox.html" %}
|
||||
</aside>
|
||||
{% endblock %}
|
||||
|
||||
{%- block footer %}
|
||||
<div class="footer">
|
||||
© Copyright {{ copyright }}.
|
||||
Journal is made with love by {{ copyright }} and other fabulous people. If you need help, tweet to <a href="https://twitter.com/maebert" title="Follow @maebert on twitter">@maebert</a> or <a href="https://github.com/maebert/jrnl/issues/new" title="Open a new issue on Github">submit an issue</a> on Github.
|
||||
</div>
|
||||
{%- endblock %}
|
||||
{% endif %}
|
||||
|
|
228
docs/_themes/jrnl/static/css/jrnl.css
vendored
|
@ -158,8 +158,30 @@ table {
|
|||
body {
|
||||
font-family: "Open Sans", "Helvetica Neue", sans-serif;
|
||||
font-weight: 300;
|
||||
color: #333;
|
||||
background: #f7f8f9;
|
||||
}
|
||||
body:not(.landing) {
|
||||
padding-top: 40px;
|
||||
}
|
||||
body:not(.landing) h2 {
|
||||
margin-top: 40px;
|
||||
}
|
||||
input {
|
||||
background: transparent;
|
||||
border: 1px solid #999;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
padding: 2px 5px;
|
||||
color: #666;
|
||||
font-family: "Open Sans";
|
||||
font-weight: 300;
|
||||
outline: none;
|
||||
}
|
||||
input:focus {
|
||||
background: white;
|
||||
}
|
||||
div.related {
|
||||
background: rgba(255, 200, 200, 0.2);
|
||||
}
|
||||
|
@ -184,6 +206,19 @@ a:active {
|
|||
text-decoration: underline;
|
||||
color: #f6c324;
|
||||
}
|
||||
.literal {
|
||||
color: #47375d;
|
||||
font-size: 1em;
|
||||
background: #e8e2ee;
|
||||
padding: 1px 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: inset 0px 0px 0px 1px #c0b2d2;
|
||||
-moz-box-shadow: inset 0px 0px 0px 1px #c0b2d2;
|
||||
-o-box-shadow: inset 0px 0px 0px 1px #c0b2d2;
|
||||
box-shadow: inset 0px 0px 0px 1px #c0b2d2;
|
||||
}
|
||||
.note {
|
||||
background: #8c72ac;
|
||||
background-image: -moz-linear-gradient(top, #8c72ac 0%, #6e5691 100%);
|
||||
|
@ -229,7 +264,7 @@ a:active {
|
|||
background-image: url("../img/icons@2x.png");
|
||||
}
|
||||
}
|
||||
.note:before.share {
|
||||
.note:before.secure {
|
||||
background-position: 0em 0em;
|
||||
}
|
||||
.note:before.future {
|
||||
|
@ -241,8 +276,8 @@ a:active {
|
|||
.note:before.nli {
|
||||
background-position: -3em 0em;
|
||||
}
|
||||
.note:before.secure {
|
||||
background-position: -4em 0em;
|
||||
.note:before.share {
|
||||
background-position: 0em -1em;
|
||||
}
|
||||
.note:before.sync {
|
||||
background-position: 0em -1em;
|
||||
|
@ -268,12 +303,35 @@ a:active {
|
|||
.note:before.info {
|
||||
background-position: -2em -2em;
|
||||
}
|
||||
.highlight-python {
|
||||
.note .literal,
|
||||
.note .highlight-note {
|
||||
color: white;
|
||||
background: #6b518a;
|
||||
padding: 1px 3px;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: inset 0px 0px 0px 1px #8c72ac;
|
||||
-moz-box-shadow: inset 0px 0px 0px 1px #8c72ac;
|
||||
-o-box-shadow: inset 0px 0px 0px 1px #8c72ac;
|
||||
box-shadow: inset 0px 0px 0px 1px #8c72ac;
|
||||
}
|
||||
.note .highlight-note {
|
||||
padding: 1px 10px;
|
||||
}
|
||||
.note .highlight-note pre:before {
|
||||
content: "$ ";
|
||||
color: #deaa09;
|
||||
}
|
||||
.highlight {
|
||||
background: transparent !important;
|
||||
}
|
||||
.highlight-output {
|
||||
background: #2f1e34;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
padding: 50px 20px 10px 20px;
|
||||
padding: 1px 20px;
|
||||
margin: 40px auto;
|
||||
width: 500px;
|
||||
-webkit-box-shadow: 0px 1px 8px #a0acb7;
|
||||
|
@ -284,6 +342,55 @@ a:active {
|
|||
color: #f7f8f9;
|
||||
font-family: "Monaco", "Courier New";
|
||||
font-size: 12pt;
|
||||
background: #49374e;
|
||||
}
|
||||
.highlight-output #args {
|
||||
color: #f6f7b9;
|
||||
}
|
||||
.highlight-output #output {
|
||||
color: #9278b5;
|
||||
}
|
||||
.highlight-javascript {
|
||||
background: #2f1e34;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
padding: 1px 20px;
|
||||
margin: 40px auto;
|
||||
width: 500px;
|
||||
-webkit-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-moz-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-o-box-shadow: 0px 1px 8px #a0acb7;
|
||||
box-shadow: 0px 1px 8px #a0acb7;
|
||||
position: relative;
|
||||
color: #f7f8f9;
|
||||
font-family: "Monaco", "Courier New";
|
||||
font-size: 12pt;
|
||||
background: #49374e;
|
||||
}
|
||||
.highlight-javascript #args {
|
||||
color: #f6f7b9;
|
||||
}
|
||||
.highlight-javascript #output {
|
||||
color: #9278b5;
|
||||
}
|
||||
.highlight-python {
|
||||
background: #2f1e34;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
padding: 1px 20px;
|
||||
margin: 40px auto;
|
||||
width: 500px;
|
||||
-webkit-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-moz-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-o-box-shadow: 0px 1px 8px #a0acb7;
|
||||
box-shadow: 0px 1px 8px #a0acb7;
|
||||
position: relative;
|
||||
color: #f7f8f9;
|
||||
font-family: "Monaco", "Courier New";
|
||||
font-size: 12pt;
|
||||
padding: 50px 20px 10px 20px;
|
||||
}
|
||||
.highlight-python #args {
|
||||
color: #f6f7b9;
|
||||
|
@ -346,6 +453,9 @@ tt {
|
|||
color: #47375d;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
ul li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
div.document {
|
||||
max-width: 900px;
|
||||
margin: 20px auto;
|
||||
|
@ -355,10 +465,68 @@ div.documentwrapper {
|
|||
margin-left: 240px;
|
||||
padding: 0;
|
||||
}
|
||||
div.sphinxsidebar {
|
||||
aside {
|
||||
position: absolute;
|
||||
width: 220px;
|
||||
top: 0px;
|
||||
color: #999;
|
||||
}
|
||||
aside .logo {
|
||||
margin: 0 auto 20px auto;
|
||||
display: block;
|
||||
width: 90px;
|
||||
height: 98px;
|
||||
}
|
||||
aside h2,
|
||||
aside h3,
|
||||
aside h3 a:link,
|
||||
aside h3 a:visited {
|
||||
color: #777;
|
||||
}
|
||||
aside a:link,
|
||||
aside a:visited {
|
||||
color: #999;
|
||||
}
|
||||
aside a:hover,
|
||||
aside a:active {
|
||||
color: #deaa09;
|
||||
}
|
||||
aside input[type=submit] {
|
||||
display: none;
|
||||
}
|
||||
aside > ul {
|
||||
margin: 0 4px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
aside > ul > li {
|
||||
margin-bottom: 10px;
|
||||
font-size: 18px;
|
||||
color: #777;
|
||||
}
|
||||
aside > ul > li a:link,
|
||||
aside > ul > li a:visited {
|
||||
color: #777;
|
||||
}
|
||||
aside > ul > li ul {
|
||||
margin: 10px 0 0 0;
|
||||
padding-left: 20px;
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
}
|
||||
aside > ul > li ul a:link,
|
||||
aside > ul > li ul a:visited {
|
||||
color: #999;
|
||||
}
|
||||
div.footer {
|
||||
font-size: .8em;
|
||||
text-align: center;
|
||||
margin: 40px 0;
|
||||
color: #999;
|
||||
}
|
||||
div.footer a:link,
|
||||
div.footer a:visited {
|
||||
color: #555;
|
||||
}
|
||||
.icon {
|
||||
background-image: url("../img/icons.png");
|
||||
|
@ -373,7 +541,7 @@ div.sphinxsidebar {
|
|||
background-image: url("../img/icons@2x.png");
|
||||
}
|
||||
}
|
||||
.icon.share {
|
||||
.icon.secure {
|
||||
background-position: 0em 0em;
|
||||
}
|
||||
.icon.future {
|
||||
|
@ -385,8 +553,8 @@ div.sphinxsidebar {
|
|||
.icon.nli {
|
||||
background-position: -3em 0em;
|
||||
}
|
||||
.icon.secure {
|
||||
background-position: -4em 0em;
|
||||
.icon.share {
|
||||
background-position: 0em -1em;
|
||||
}
|
||||
.icon.sync {
|
||||
background-position: 0em -1em;
|
||||
|
@ -412,12 +580,12 @@ div.sphinxsidebar {
|
|||
.icon.info {
|
||||
background-position: -2em -2em;
|
||||
}
|
||||
.terminal {
|
||||
.pre-block {
|
||||
background: #2f1e34;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
padding: 50px 20px 10px 20px;
|
||||
padding: 1px 20px;
|
||||
margin: 40px auto;
|
||||
width: 500px;
|
||||
-webkit-box-shadow: 0px 1px 8px #a0acb7;
|
||||
|
@ -429,6 +597,30 @@ div.sphinxsidebar {
|
|||
font-family: "Monaco", "Courier New";
|
||||
font-size: 12pt;
|
||||
}
|
||||
.pre-block #args {
|
||||
color: #f6f7b9;
|
||||
}
|
||||
.pre-block #output {
|
||||
color: #9278b5;
|
||||
}
|
||||
.terminal {
|
||||
background: #2f1e34;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
padding: 1px 20px;
|
||||
margin: 40px auto;
|
||||
width: 500px;
|
||||
-webkit-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-moz-box-shadow: 0px 1px 8px #a0acb7;
|
||||
-o-box-shadow: 0px 1px 8px #a0acb7;
|
||||
box-shadow: 0px 1px 8px #a0acb7;
|
||||
position: relative;
|
||||
color: #f7f8f9;
|
||||
font-family: "Monaco", "Courier New";
|
||||
font-size: 12pt;
|
||||
padding: 50px 20px 10px 20px;
|
||||
}
|
||||
.terminal #args {
|
||||
color: #f6f7b9;
|
||||
}
|
||||
|
@ -475,6 +667,20 @@ body#landing {
|
|||
font-family: "Open Sans", "Helvetica Neue", sans-serif;
|
||||
font-weight: 300;
|
||||
}
|
||||
body#landing #twitter {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
border: 1px solid #47375d;
|
||||
padding: 5px 10px 5px 30px;
|
||||
color: #47375d;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background: url(../img/twitter.png) left center no-repeat transparent;
|
||||
background: red;
|
||||
}
|
||||
body#landing #title,
|
||||
body#landing .row3,
|
||||
body#landing .row4,
|
||||
|
|
223
docs/_themes/jrnl/static/css/main.css
vendored
|
@ -1,223 +0,0 @@
|
|||
/* ==========================================================================
|
||||
HTML5 Boilerplate styles - h5bp.com (generated via initializr.com)
|
||||
========================================================================== */
|
||||
|
||||
html,
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 1em;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background: #b3d4fc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: #b3d4fc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-top: 1px solid #ccc;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.chromeframe {
|
||||
margin: 0.2em 0;
|
||||
background: #ccc;
|
||||
color: #000;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Author's custom styles
|
||||
========================================================================== */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Media Queries
|
||||
========================================================================== */
|
||||
|
||||
@media only screen and (min-width: 35em) {
|
||||
|
||||
}
|
||||
|
||||
@media print,
|
||||
(-o-min-device-pixel-ratio: 5/4),
|
||||
(-webkit-min-device-pixel-ratio: 1.25),
|
||||
(min-resolution: 120dpi) {
|
||||
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Helper classes
|
||||
========================================================================== */
|
||||
|
||||
.ir {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
overflow: hidden;
|
||||
*text-indent: -9999px;
|
||||
}
|
||||
|
||||
.ir:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 150%;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.visuallyhidden {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.visuallyhidden.focusable:active,
|
||||
.visuallyhidden.focusable:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix {
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Print styles
|
||||
========================================================================== */
|
||||
|
||||
@media print {
|
||||
* {
|
||||
background: transparent !important;
|
||||
color: #000 !important; /* Black prints faster: h5bp.com/s */
|
||||
box-shadow: none !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
a,
|
||||
a:visited {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a[href]:after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
abbr[title]:after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't show links for images, or javascript/internal links
|
||||
*/
|
||||
|
||||
.ir a:after,
|
||||
a[href^="javascript:"]:after,
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
pre,
|
||||
blockquote {
|
||||
border: 1px solid #999;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: table-header-group; /* h5bp.com/t */
|
||||
}
|
||||
|
||||
tr,
|
||||
img {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 0.5cm;
|
||||
}
|
||||
|
||||
p,
|
||||
h2,
|
||||
h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
h2,
|
||||
h3 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
481
docs/_themes/jrnl/static/flasky.css_t
vendored
|
@ -1,481 +0,0 @@
|
|||
/*
|
||||
* flasky.css_t
|
||||
* ~~~~~~~~~~~~
|
||||
*
|
||||
* :copyright: Copyright 2010 by Armin Ronacher. Modifications by Kenneth Reitz.
|
||||
* :license: Flask Design License, see LICENSE for details.
|
||||
*/
|
||||
|
||||
{% set page_width = '940px' %}
|
||||
{% set sidebar_width = '220px' %}
|
||||
|
||||
@import url("basic.css");
|
||||
|
||||
/* -- page layout ----------------------------------------------------------- */
|
||||
|
||||
body {
|
||||
font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro';
|
||||
font-size: 17px;
|
||||
background-color: white;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.document {
|
||||
width: {{ page_width }};
|
||||
margin: 30px auto 0 auto;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 0 0 {{ sidebar_width }};
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
width: {{ sidebar_width }};
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 1px solid #B1B4B6;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: #ffffff;
|
||||
color: #3E4349;
|
||||
padding: 0 30px 0 30px;
|
||||
}
|
||||
|
||||
img.floatingflask {
|
||||
padding: 0 0 10px 10px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
width: {{ page_width }};
|
||||
margin: 20px auto 30px auto;
|
||||
font-size: 14px;
|
||||
color: #888;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
div.related {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #444;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #999;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a:hover {
|
||||
border-bottom: 1px solid #999;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
padding: 18px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper p.logo {
|
||||
padding: 0;
|
||||
margin: -10px 0 0 -20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3,
|
||||
div.sphinxsidebar h4 {
|
||||
font-family: 'Garamond', 'Georgia', serif;
|
||||
color: #444;
|
||||
font-size: 24px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.logo a,
|
||||
div.sphinxsidebar h3 a,
|
||||
div.sphinxsidebar p.logo a:hover,
|
||||
div.sphinxsidebar h3 a:hover {
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p {
|
||||
color: #555;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #ccc;
|
||||
font-family: 'Georgia', serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* -- body styles ----------------------------------------------------------- */
|
||||
|
||||
a {
|
||||
color: #004B6B;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #6D4100;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: 'Garamond', 'Georgia', serif;
|
||||
font-weight: normal;
|
||||
margin: 30px 0px 10px 0px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
|
||||
div.body h2 { font-size: 180%; }
|
||||
div.body h3 { font-size: 150%; }
|
||||
div.body h4 { font-size: 130%; }
|
||||
div.body h5 { font-size: 100%; }
|
||||
div.body h6 { font-size: 100%; }
|
||||
|
||||
a.headerlink {
|
||||
color: #ddd;
|
||||
padding: 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
color: #444;
|
||||
background: #eaeaea;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li {
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
div.admonition {
|
||||
background: #fafafa;
|
||||
margin: 20px -30px;
|
||||
padding: 10px 30px;
|
||||
border-top: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.admonition tt.xref, div.admonition a tt {
|
||||
border-bottom: 1px solid #fafafa;
|
||||
}
|
||||
|
||||
dd div.admonition {
|
||||
margin-left: -60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title {
|
||||
font-family: 'Garamond', 'Georgia', serif;
|
||||
font-weight: normal;
|
||||
font-size: 24px;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
div.admonition p.last {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.highlight {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
dt:target, .highlight {
|
||||
background: #FAF3E8;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #ffc;
|
||||
border: 1px solid #ff6;
|
||||
}
|
||||
|
||||
div.topic {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
pre, tt {
|
||||
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
img.screenshot {
|
||||
}
|
||||
|
||||
tt.descname, tt.descclassname {
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
tt.descname {
|
||||
padding-right: 0.08em;
|
||||
}
|
||||
|
||||
img.screenshot {
|
||||
-moz-box-shadow: 2px 2px 4px #eee;
|
||||
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||
box-shadow: 2px 2px 4px #eee;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
border: 1px solid #888;
|
||||
-moz-box-shadow: 2px 2px 4px #eee;
|
||||
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||
box-shadow: 2px 2px 4px #eee;
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
border: 1px solid #888;
|
||||
padding: 0.25em 0.7em;
|
||||
}
|
||||
|
||||
table.field-list, table.footnote {
|
||||
border: none;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
table.footnote {
|
||||
margin: 15px 0;
|
||||
width: 100%;
|
||||
border: 1px solid #eee;
|
||||
background: #fdfdfd;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
table.footnote + table.footnote {
|
||||
margin-top: -15px;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
table.field-list th {
|
||||
padding: 0 0.8em 0 0;
|
||||
}
|
||||
|
||||
table.field-list td {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table.footnote td.label {
|
||||
width: 0px;
|
||||
padding: 0.3em 0 0.3em 0.5em;
|
||||
}
|
||||
|
||||
table.footnote td {
|
||||
padding: 0.3em 0.5em;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
dl dd {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 0 30px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: 10px 0 10px 30px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: #eee;
|
||||
padding: 7px 30px;
|
||||
margin: 15px -30px;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
dl pre, blockquote pre, li pre {
|
||||
margin-left: -60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
|
||||
dl dl pre {
|
||||
margin-left: -90px;
|
||||
padding-left: 90px;
|
||||
}
|
||||
|
||||
tt {
|
||||
background-color: #ecf0f3;
|
||||
color: #222;
|
||||
/* padding: 1px 2px; */
|
||||
}
|
||||
|
||||
tt.xref, a tt {
|
||||
background-color: #FBFBFB;
|
||||
border-bottom: 1px solid white;
|
||||
}
|
||||
|
||||
a.reference {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #004B6B;
|
||||
}
|
||||
|
||||
a.reference:hover {
|
||||
border-bottom: 1px solid #6D4100;
|
||||
}
|
||||
|
||||
a.footnote-reference {
|
||||
text-decoration: none;
|
||||
font-size: 0.7em;
|
||||
vertical-align: top;
|
||||
border-bottom: 1px dotted #004B6B;
|
||||
}
|
||||
|
||||
a.footnote-reference:hover {
|
||||
border-bottom: 1px solid #6D4100;
|
||||
}
|
||||
|
||||
a:hover tt {
|
||||
background: #EEE;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
|
||||
div.sphinxsidebar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.document {
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin-top: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.document {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.bodywrapper {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.github {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* misc. */
|
||||
|
||||
.revsys-inline {
|
||||
display: none!important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
div.highlight-python {
|
||||
box-shadow: 0px 0px 15px #aaa;
|
||||
margin: 20px 0px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
div.highlight-python:before {
|
||||
content: " ";
|
||||
background: #ccc;
|
||||
height: 15px;
|
||||
background-image: -ms-linear-gradient(top, #E5E5E5 0%, #BBBBBB 100%);
|
||||
background-image: -moz-linear-gradient(top, #E5E5E5 0%, #BBBBBB 100%);
|
||||
background-image: -o-linear-gradient(top, #E5E5E5 0%, #BBBBBB 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #E5E5E5), color-stop(1, #BBBBBB));
|
||||
background-image: -webkit-linear-gradient(top, #E5E5E5 0%, #BBBBBB 100%);
|
||||
background-image: linear-gradient(to bottom, #E5E5E5 0%, #BBBBBB 100%);
|
||||
box-shadow: inset 0px 1px 0px #f0f0f0, inset 0px -1px 0px #999;
|
||||
border-radius: 5px 5px 0px 0px;
|
||||
display: block;
|
||||
padding: 5px 0px;
|
||||
color: #555;
|
||||
text-shadow: 0px 1px 0px #eee;
|
||||
text-align: center;
|
||||
}
|
||||
div.highlight-python pre {
|
||||
color: #f0ede6;
|
||||
border-radius: 0px 0px 5px 5px;
|
||||
box-shadow: inset 0px 4px 3px -3px #333;
|
||||
margin: 0px;
|
||||
background-color: #444;
|
||||
padding: 10px;
|
||||
}
|
BIN
docs/_themes/jrnl/static/img/favicon-152.png
vendored
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
docs/_themes/jrnl/static/img/favicon.ico
vendored
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 5.4 KiB |
BIN
docs/_themes/jrnl/static/img/favicon.png
vendored
Before Width: | Height: | Size: 661 B |
BIN
docs/_themes/jrnl/static/img/twitter.png
vendored
Normal file
After Width: | Height: | Size: 1.5 KiB |
4
docs/_themes/jrnl/static/js/landing.js
vendored
|
@ -14,9 +14,12 @@ var output = document.getElementById("output");
|
|||
var right = document.getElementById("right");
|
||||
var left = document.getElementById("left");
|
||||
var current = 0
|
||||
var timer = null;
|
||||
|
||||
var next = function() {
|
||||
clearTimeout(timer);
|
||||
reveal(++current % phrases.length);
|
||||
setTimeout(next, 5000);
|
||||
}
|
||||
var prev = function() {
|
||||
reveal(--current % phrases.length);
|
||||
|
@ -86,3 +89,4 @@ var letter = function(text, element, next, timeout, index) {
|
|||
var nx = function() { letter(text, element, next, timeout, ++index); }
|
||||
setTimeout(nx, timeout);
|
||||
}
|
||||
setTimeout(next, 3000);
|
||||
|
|
160
docs/_themes/jrnl/static/landing.svg
vendored
|
@ -18,6 +18,22 @@
|
|||
sodipodi:docname="landing.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4380">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4382" />
|
||||
<stop
|
||||
id="stop4396"
|
||||
offset="0.47619048"
|
||||
style="stop-color:#dedae5;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4384" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4339">
|
||||
|
@ -2523,6 +2539,15 @@
|
|||
r="16"
|
||||
gradientTransform="matrix(-1.9882057,0.35398273,-0.09041508,-0.50783204,4433.218,252.55239)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4380"
|
||||
id="linearGradient4386"
|
||||
x1="1576"
|
||||
y1="656.36218"
|
||||
x2="1597"
|
||||
y2="656.36218"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
|
@ -2531,9 +2556,9 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.7454562"
|
||||
inkscape:cx="1457.6936"
|
||||
inkscape:cy="541.40343"
|
||||
inkscape:zoom="2.5546875"
|
||||
inkscape:cx="1478.282"
|
||||
inkscape:cy="464.73087"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
|
@ -2559,7 +2584,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -2567,6 +2592,28 @@
|
|||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<rect
|
||||
style="fill:#604b7f;fill-opacity:1;stroke:none"
|
||||
id="rect4398"
|
||||
width="152"
|
||||
height="152"
|
||||
x="1698"
|
||||
y="632.36218"
|
||||
inkscape:export-filename="/Users/maebert/projects/jrnl/docs/_themes/jrnl/static/favicon-152.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:0.08695652;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="M 1727.5312 658.3125 C 1720.3085 658.3125 1714.4687 664.15843 1714.4688 671.375 L 1714.4688 745.34375 C 1714.4688 752.56032 1720.3085 758.4375 1727.5312 758.4375 L 1733.875 758.4375 L 1814.1562 758.4375 L 1820.4688 758.4375 C 1827.6914 758.4375 1833.5312 752.56032 1833.5312 745.34375 L 1833.5312 671.375 C 1833.5312 664.15843 1827.6914 658.3125 1820.4688 658.3125 L 1814.1562 658.3125 L 1733.875 658.3125 L 1727.5312 658.3125 z "
|
||||
id="path4556" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4386);fill-opacity:1;stroke:none"
|
||||
d="m 1574,637.375 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 4,0 8,0 10,0 4,0 c 2.216,0 4,-1.784 4,-4 l 0,-24 c 0,-2.216 -1.784,-4 -4,-4 l -4,0 -10,0 -8,0 z"
|
||||
id="path4378"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:export-filename="/Users/maebert/projects/jrnl/docs/_themes/jrnl/static/img/favicon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
id="path6705"
|
||||
style="fill:url(#linearGradient6707);fill-opacity:1;stroke:none"
|
||||
|
@ -3402,5 +3449,110 @@
|
|||
style="fill:url(#radialGradient4345);fill-opacity:1;stroke:none"
|
||||
d="M 1468.1875 514.375 C 1459.7336 514.80353 1453 521.81459 1453 530.375 C 1453 530.51322 1453.0278 530.64387 1453.0312 530.78125 C 1453.3347 522.49344 1459.9305 515.79355 1468.1875 515.375 C 1468.4602 515.3611 1468.7239 515.375 1469 515.375 C 1477.6698 515.375 1484.7054 522.26912 1484.9688 530.875 C 1484.974 530.7063 1485 530.54498 1485 530.375 C 1485 521.53845 1477.8366 514.375 1469 514.375 C 1468.7239 514.375 1468.4602 514.3611 1468.1875 514.375 z "
|
||||
id="path4318" />
|
||||
<path
|
||||
id="path3549"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#564371;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 1558.9773,638.22513 c 1.3129,0.22888 2.2955,1.35828 2.2955,2.74011 l 0,19.88473 c 0,1.38184 -0.9826,2.51123 -2.2955,2.74012 0.8053,-0.64365 1.3258,-1.62977 1.3258,-2.74012 l 0,-19.88473 c 0,-1.11034 -0.5205,-2.09646 -1.3258,-2.74011 z m -1.697,0 c 1.3129,0.22888 2.2955,1.35828 2.2955,2.74011 l 0,19.88473 c 0,1.38184 -0.9826,2.51123 -2.2955,2.74012 0.8054,-0.64365 1.3258,-1.62977 1.3258,-2.74012 l 0,-19.88473 c 0,-1.11034 -0.5204,-2.09646 -1.3258,-2.74011 z m -22.5606,0 c -0.8053,0.64365 -1.3257,1.62977 -1.3257,2.74011 l 0,19.88473 c 0,1.11035 0.5204,2.09647 1.3257,2.74012 -1.3129,-0.22889 -2.2955,-1.35828 -2.2955,-2.74012 l 0,-19.88473 c 0,-1.38183 0.9827,-2.51123 2.2955,-2.74011 z m -1.6969,0 c -0.8053,0.64365 -1.3258,1.62977 -1.3258,2.74011 l 0,19.88473 c 0,1.11035 0.5205,2.09647 1.3258,2.74012 -1.3129,-0.22889 -2.2955,-1.35828 -2.2955,-2.74012 l 0,-19.88473 c 0,-1.38183 0.9826,-2.51123 2.2955,-2.74011 z m 13.2197,-0.0454 2.6666,0 0,22.30693 1.8182,-1.45332 1.8182,1.45332 0,-22.30693 2.5455,0 c 1.5507,0 2.7878,1.23606 2.7878,2.78552 l 0,19.88474 c 0,1.54947 -1.2371,2.78553 -2.7878,2.78553 l -8.8485,0 0,-25.45579 z m -9.3334,0 8.6061,0 0,25.45579 -8.6061,0 c -1.5508,0 -2.7879,-1.23606 -2.7879,-2.78553 l 0,-19.88474 c 0,-1.54946 1.2371,-2.78552 2.7879,-2.78552 z m -3.3939,-0.72666 c -1.9412,0 -3.5152,1.57272 -3.5152,3.51218 l 0,19.88474 c 0,1.93947 1.5741,3.51219 3.5152,3.51219 l 1.6969,0 21.5758,0 1.697,0 c 1.9411,0 3.5151,-1.57272 3.5151,-3.51219 l 0,-19.88474 c 0,-1.93946 -1.5741,-3.51218 -3.5151,-3.51218 l -1.697,0 -21.5758,0 -1.6969,0 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#564371;fill-opacity:1;stroke:none"
|
||||
d="m 1574,637.375 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 4,0 8,0 8,0 4,0 c 2.216,0 4,-1.784 4,-4 l 0,-24 c 0,-2.216 -1.784,-4 -4,-4 l -4,0 -8,0 -8,0 z m 4,1 8,0 8,0 c 0.9369,0 3,0.76625 3,3 l 0,24 c 0,2.23375 -2.0631,3 -3,3 l -8,0 -8,0 c -0.9369,0 -3,-0.76625 -3,-3 l 0,-24 c 0,-2.23375 2.0631,-3 3,-3 z m -2.7812,0.0937 c -0.7604,0.72729 -1.2188,1.76611 -1.2188,2.90625 l 0,24 c 0,1.14014 0.4584,2.17896 1.2188,2.90625 -1.1755,-0.2818 -2.2188,-1.20303 -2.2188,-2.90625 l 0,-24 c 0,-1.70322 1.0433,-2.62445 2.2188,-2.90625 z m 21.5624,0 c 1.1755,0.2818 2.2188,1.20303 2.2188,2.90625 l 0,24 c 0,1.70322 -1.0433,2.62445 -2.2188,2.90625 0.7604,-0.72729 1.2188,-1.76611 1.2188,-2.90625 l 0,-24 c 0,-1.14014 -0.4584,-2.17896 -1.2188,-2.90625 z m -23.625,0.0625 c -0.723,0.723 -1.1562,1.73575 -1.1562,2.84375 l 0,24 c 0,1.108 0.4332,2.12075 1.1562,2.84375 -1.3254,-0.44542 -2.1562,-1.84068 -2.1562,-2.8437 l 0,-24 c 0,-1.00302 0.8308,-2.39828 2.1562,-2.84375 z m 25.6876,0 c 1.3254,0.44547 2.1562,1.84073 2.1562,2.84375 l 0,24 c 0,1.00302 -0.8308,2.39828 -2.1562,2.84375 0.723,-0.723 1.1562,-1.73575 1.1562,-2.84375 l 0,-24 c 0,-1.108 -0.4332,-2.12075 -1.1562,-2.84375 z"
|
||||
id="rect3567"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sccscccsccscccsscsccscsccsccccccccccccccccccccccccccccc"
|
||||
inkscape:export-filename="/Users/maebert/projects/jrnl/docs/_themes/jrnl/static/img/favicon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="fill:#564371;fill-opacity:1;stroke:none"
|
||||
id="rect4344"
|
||||
width="1"
|
||||
height="30"
|
||||
x="1585"
|
||||
y="638.36218"
|
||||
rx="0"
|
||||
ry="0"
|
||||
inkscape:export-filename="/Users/maebert/projects/jrnl/docs/_themes/jrnl/static/img/favicon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<path
|
||||
id="rect4346"
|
||||
style="fill:#564371;fill-opacity:1;stroke:none"
|
||||
d="m 1589,638.36218 4,0 0,22 -2,-2 -2,2 z"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:export-filename="/Users/maebert/projects/jrnl/docs/_themes/jrnl/static/img/favicon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<g
|
||||
id="g4400"
|
||||
transform="matrix(0.90203745,0,0,0.90203745,1341.23,615.11586)"
|
||||
style="fill:#ffffff;fill-opacity:0">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 442.85017,55.231703 c 5.41544,0.944151 9.46875,5.602891 9.46875,11.302952 l 0,82.024465 c 0,5.70007 -4.05331,10.3588 -9.46875,11.30296 3.32198,-2.65505 5.46874,-6.72278 5.46874,-11.30296 l 0,-82.024465 c 0,-4.58017 -2.14676,-8.647906 -5.46874,-11.302952 z m -7,0 c 5.41544,0.944151 9.46875,5.602891 9.46875,11.302952 l 0,82.024465 c 0,5.70007 -4.05331,10.3588 -9.46875,11.30296 3.32197,-2.65505 5.46875,-6.72278 5.46875,-11.30296 l 0,-82.024465 c 0,-4.58017 -2.14678,-8.647906 -5.46875,-11.302952 z m -93.0625,0 c -3.32198,2.655046 -5.46875,6.722782 -5.46875,11.302952 l 0,82.024465 c 0,4.58018 2.14677,8.64791 5.46875,11.30296 -5.41545,-0.94416 -9.46875,-5.60289 -9.46875,-11.30296 l 0,-82.024465 c 0,-5.700061 4.0533,-10.358801 9.46875,-11.302952 z m -7,0 c -3.32198,2.655046 -5.46875,6.722782 -5.46875,11.302952 l 0,82.024465 c 0,4.58018 2.14677,8.64791 5.46875,11.30296 -5.41544,-0.94416 -9.46875,-5.60289 -9.46875,-11.30296 l 0,-82.024465 c 0,-5.700061 4.05331,-10.358801 9.46875,-11.302952 z m 54.53125,-0.187342 11,0 0,92.016029 7.5,-5.99494 7.5,5.99494 0,-92.016029 10.5,0 c 6.39694,0 11.49999,5.098754 11.49999,11.490294 l 0,82.024465 c 0,6.39155 -5.10305,11.49031 -11.49999,11.49031 l -36.5,0 0,-105.005069 z m -38.5,0 35.5,0 0,105.005059 -35.5,0 c -6.39694,0 -11.5,-5.09875 -11.5,-11.4903 l 0,-82.024465 c 0,-6.39154 5.10306,-11.490294 11.5,-11.490294 z m -14,-2.997468 c -8.00706,0 -14.5,6.487466 -14.5,14.487762 l 0,82.024465 c 0,8.0003 6.49295,14.48777 14.5,14.48777 l 7,0 89,0 6.99999,0 c 8.00706,0 14.50001,-6.48747 14.50001,-14.48777 l 0,-82.024465 c 0,-8.000296 -6.49295,-14.487762 -14.50001,-14.487762 l -6.99999,0 -89,0 -7,0 z"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
id="path4402" />
|
||||
<g
|
||||
id="g4404"
|
||||
style="fill:#ffffff;fill-opacity:0">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4406"
|
||||
d="m 420.43407,194.49011 c -1.19645,-0.0222 -2.19349,-0.1551 -2.99111,-0.39882 -0.77548,-0.24371 -1.39586,-0.58714 -1.86112,-1.03027 -0.46529,-0.46528 -0.79763,-1.03026 -0.99705,-1.69495 -0.17725,-0.68685 -0.26587,-1.46232 -0.26587,-2.32642 l 0,-12.54276 4.02138,-0.66469 0,12.44306 c -1e-5,0.48744 0.0332,0.89733 0.0997,1.22967 0.0886,0.33235 0.23262,0.62038 0.43204,0.8641 0.1994,0.22157 0.46527,0.39882 0.79763,0.53175 0.35449,0.11079 0.79762,0.19941 1.32938,0.26588 l -0.56499,3.32345"
|
||||
style="font-size:35.61915969999999731px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:0;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||
sodipodi:nodetypes="ccccscccccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4408"
|
||||
d="m 390.31891,177.23024 c 0.77547,-0.22155 1.78358,-0.43203 3.02435,-0.63145 1.24075,-0.19939 3.54748,-0.2991 5.05413,-0.29912 1.41798,2e-5 2.60336,0.19943 3.55609,0.59823 0.9527,0.37667 1.70602,0.9195 2.25994,1.62849 0.57605,0.68686 0.97486,1.5288 1.19644,2.52582 0.24371,0.97489 0.36557,2.04947 0.36558,3.22374 l 0,9.77095 -4.02137,0 0,-9.13949 c -1e-5,-0.93056 -0.0665,-1.71711 -0.1994,-2.35965 -0.11081,-0.66468 -0.3102,-1.19643 -0.59823,-1.59526 -0.26589,-0.42095 -0.64255,-0.72006 -1.12997,-0.89733 -0.4653,-0.19939 -1.04136,-0.29909 -1.7282,-0.29911 -0.5096,2e-5 -1.9744,0.0333 -2.5283,0.0997 -0.55392,0.0665 -0.96381,0.12188 -1.22968,0.16618 l 0,14.02495 -4.02137,0 0,-16.81665"
|
||||
style="font-size:35.61915969999999731px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:0;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||
sodipodi:nodetypes="ccccccccccccccccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4410"
|
||||
d="m 383.22281,180.28781 c -0.33236,-0.11077 -0.79764,-0.22155 -1.39586,-0.33234 -0.57607,-0.13293 -1.25183,-0.1994 -2.0273,-0.19941 -0.44314,1e-5 -0.91949,0.0443 -1.42908,0.13294 -0.48745,0.0886 -0.83087,0.16618 -1.03027,0.23264 l 0,13.92525 -4.02138,0 0,-16.55078 c 0.77547,-0.28801 1.73927,-0.55389 2.89141,-0.79762 1.17428,-0.26586 2.47042,-0.3988 3.88844,-0.39882 0.26587,2e-5 0.57605,0.0222 0.93055,0.0665 0.3545,0.0222 0.70901,0.0665 1.06352,0.13294 0.35449,0.0443 0.69791,0.1108 1.03026,0.19941 0.33234,0.0665 0.59821,0.13295 0.79763,0.1994 l -0.69792,3.38992"
|
||||
style="font-size:35.61915969999999731px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:0;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4412"
|
||||
d="m 359.09221,194.21225 c -0.28804,-1e-5 -0.68685,-0.0332 -1.19644,-0.0997 -0.53175,-0.0443 -0.99703,-0.14403 -1.39585,-0.29911 l 0.53175,-3.29022 c 0.48745,0.1551 1.07458,0.23264 1.76143,0.23265 0.93057,-10e-6 1.58418,-0.27696 1.96083,-0.83086 0.37666,-0.53176 0.56499,-1.34046 0.56499,-2.42612 l 0,-10.45199 4.05,-0.675 -0.0286,11.19346 c -0.006,2.25993 -0.54285,3.93274 -1.62849,5.0184 -1.06351,1.08566 -2.60337,1.62849 -4.6196,1.6285"
|
||||
style="font-size:35.61915969999999731px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:0;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||
sodipodi:nodetypes="ccccccsccscc" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
id="path4416"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 1822.2871,661.17192 c 4.885,0.85166 8.5412,5.05402 8.5412,10.19569 l 0,73.98914 c 0,5.14168 -3.6562,9.34403 -8.5412,10.19569 2.9966,-2.39495 4.933,-6.0642 4.933,-10.19569 l 0,-73.98914 c 0,-4.13148 -1.9364,-7.80073 -4.933,-10.19569 z m -6.3142,0 c 4.8849,0.85166 8.5411,5.05402 8.5411,10.19569 l 0,73.98914 c 0,5.14168 -3.6562,9.34403 -8.5411,10.19569 2.9965,-2.39495 4.933,-6.0642 4.933,-10.19569 l 0,-73.98914 c 0,-4.13148 -1.9365,-7.80073 -4.933,-10.19569 z m -83.9458,0 c -2.9965,2.39496 -4.933,6.06421 -4.933,10.19569 l 0,73.98914 c 0,4.13149 1.9365,7.80074 4.933,10.19569 -4.8849,-0.85166 -8.5412,-5.05401 -8.5412,-10.19569 l 0,-73.98914 c 0,-5.14167 3.6563,-9.34403 8.5412,-10.19569 z m -6.3143,0 c -2.9965,2.39496 -4.933,6.06421 -4.933,10.19569 l 0,73.98914 c 0,4.13149 1.9365,7.80074 4.933,10.19569 -4.885,-0.85166 -8.5411,-5.05401 -8.5411,-10.19569 l 0,-73.98914 c 0,-5.14167 3.6561,-9.34403 8.5411,-10.19569 z m 49.1893,-0.16898 9.9223,0 0,83.0019 6.7653,-5.40766 6.7653,5.40766 0,-83.0019 9.4714,0 c 5.7702,0 10.3734,4.59926 10.3734,10.36467 l 0,73.98914 c 0,5.76542 -4.6032,10.36469 -10.3734,10.36469 l -32.9244,0 0,-94.7185 z m -34.7285,0 32.0224,0 0,94.71849 -32.0224,0 c -5.7702,0 -10.3734,-4.59926 -10.3734,-10.36468 l 0,-73.98914 c 0,-5.76541 4.6032,-10.36467 10.3734,-10.36467 z m -12.6285,-2.70383 c -7.2227,0 -13.0796,5.85193 -13.0796,13.0685 l 0,73.98914 c 0,7.21657 5.8569,13.06851 13.0796,13.06851 l 6.3143,0 80.2813,0 6.3143,0 c 7.2226,0 13.0795,-5.85194 13.0795,-13.06851 l 0,-73.98914 c 0,-7.21657 -5.8569,-13.0685 -13.0795,-13.0685 l -6.3143,0 -80.2813,0 -6.3143,0 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
y="496.24753"
|
||||
x="1615.4082"
|
||||
id="image3575"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAAA1CAIAAACYzbG/AAAAA3NCSVQICAjb4U/gAAAEVUlEQVRo
|
||||
ge2Zf0wbZRjHnyu9K3ClDoRB3a8qrCgjsImrxixmumFmYP4hYtyIskUsicVscWMdbJDpwlYXnLAw
|
||||
DD8iIQZBRhaGbEZFJbhsWXFyZG44tgVBNigFykrL2it3r38wbYFNrrbnDtbPX2/fvO+T7+f63tNr
|
||||
i92x2WEBIXrQAbyMz0fY+HyEjc9H2Cw0HzGXReNma0Pl1/qfqeGbo3wH8hBOPg2VTT3X+g+UfhAu
|
||||
X8x3IA/hdN5aT5/X5KcLXwY4+kyM2+aFDCy8fuDzETY+H2Hj8/EelxormgfZ2WNP4PR8MAeTV3at
|
||||
PdqH3+PSxNWW5EUS99yEMGvX++cuf7stOULkOvYwizd8xDH7W3Q0AJKQ9q7KvWmQ05EebqMBgJRK
|
||||
AND99qEoEEvQ7LFHWTwvAQDBj4ZODRi5DIVLFdJHZORUOC9EdAsv3z80gJiaOTna0ZT5zLupKnWq
|
||||
Sq1r6eVay9F9aP0n7Y5pCduL9nzcYQWAUarun5oZRWeNGAYAgDl47wcjnZ9lZjZHlu4r+6G4uDr5
|
||||
Ym7BjrbbXDYiYsmTcKm61eScmqSKvjStXiEz6Y9lqn9cWaStOltU0ZQVXVH13uZTZgxDQPPrg0RD
|
||||
9W+0x5Ud36NShAQFPPbUq1UlCsO+FvPU5fxXMEQmFq8Ze825eKitdjI07YWwvsrtnZHlR3avi5IS
|
||||
gYsi4rIp7fI/m4qv24Hvfo3Rw1SQX1SoxWoxGkaGBy13GPk6duL8VXpuHwAgn34lPOqb7wf8AACJ
|
||||
xprVxlUFqgD77RvYkpRVIc51uFLztu3EuX7wVj+4H8xA96gIO5miPek6GxIr49YmRIwyI92iqbmW
|
||||
sutxtrf1Ozy2IEHK9FJjwfHRBHLtNaKlZBguBr59/ORK/4nfcrryY5gZn5Usx8YXu+WtsI01/dl5
|
||||
dENtb+7hSJYF+epFproeOjUed9Zw0BbUxwDf542VBC4T/3Hmqu0/V5iMWL/ZcqO6k6r7XLo7UQkA
|
||||
gMQkfutMt7MmEg01HvJ/9qVw4NtHxCgydKEXtuxsuGwCAMAcY4O/63vd+FEFQ2TyFyupd47rn3sz
|
||||
Uc4AAOBKbeHyX7ftbLxuAgCgb9bvyO6wPq9JIDFEev+82V/EXV8+sUn3EVGSv1371d8zYYc/VK0A
|
||||
DAhZNHM3tMt4NsFrkggoidSslaG7B2zxxpy8/Z8e3KqtAQAAW8Kmwu60pSwLABiX/39SVeoT+nK3
|
||||
zVzBHBa7g0A4IcHnXjwdP8Pp11/W5/5yMB6ffhNijgmzgyUIqcT5rvDbD5wgXEq4bTIFVVZjSD8w
|
||||
UwYAEB4YNLPm/+XjPgizXrnYYzK2FTdLs0/FAExy2SVcH4w2/qQ71iZatqHsSJKckwwI2QdwRVZ9
|
||||
eZabm3zft4XNQ+kTQPqPm618R/EKnHyStm4o3FtqGBjiO43ncHo+AICqo7UX2qiRW6a5lz5QuPrM
|
||||
Fx7KfjCP8PkIG5+PsPH5CJuF5vMXDY2R1HSfRZQAAAAASUVORK5CYII=
|
||||
"
|
||||
height="53"
|
||||
width="69" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 208 KiB |
139
docs/_themes/jrnl/static/less/docs.less
vendored
|
@ -5,6 +5,15 @@ body
|
|||
color: #333;
|
||||
background: @white;
|
||||
}
|
||||
body:not(.landing)
|
||||
{
|
||||
padding:0px 20px;
|
||||
padding-top: 40px;
|
||||
h2
|
||||
{
|
||||
margin-top: 40px;
|
||||
}
|
||||
}
|
||||
input
|
||||
{
|
||||
background: transparent;
|
||||
|
@ -45,6 +54,17 @@ a:hover, a:active
|
|||
text-decoration: underline;
|
||||
color: lighten(@orange, 10);
|
||||
}
|
||||
|
||||
.literal
|
||||
{
|
||||
color: @purple;
|
||||
font-size: 1em;
|
||||
background: lighten(@purple-light, 45);
|
||||
padding: 1px 2px;
|
||||
.border-radius(2px);
|
||||
.box-shadow(inset 0px 0px 0px 1px lighten(@purple-light, 30));
|
||||
}
|
||||
|
||||
.note
|
||||
{
|
||||
.gradient(lighten(@purple-light, 10), lighten(@purple-light-shade, 10));
|
||||
|
@ -65,11 +85,38 @@ a:hover, a:active
|
|||
margin: auto;
|
||||
top: 0; bottom: 0; left: 20px;
|
||||
}
|
||||
.literal, .highlight-note
|
||||
{
|
||||
color: white;
|
||||
background: darken(@purple-light, 3);
|
||||
padding: 1px 3px;
|
||||
.border-radius(2px);
|
||||
.box-shadow(inset 0px 0px 0px 1px lighten(@purple-light, 10));
|
||||
}
|
||||
.highlight-note
|
||||
{
|
||||
padding: 1px 10px;
|
||||
pre:before
|
||||
{
|
||||
content: "$ ";
|
||||
color: @orange;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.highlight
|
||||
{
|
||||
background:transparent !important;
|
||||
}
|
||||
.highlight-output
|
||||
{
|
||||
.pre-block;
|
||||
background: desaturate(lighten(@terminal,10), 10);
|
||||
}
|
||||
.highlight-javascript
|
||||
{
|
||||
.pre-block;
|
||||
background: desaturate(lighten(@terminal,10), 10);
|
||||
}
|
||||
.highlight-python
|
||||
{
|
||||
|
@ -99,7 +146,9 @@ tt
|
|||
color: @purple;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
ul li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
div.document
|
||||
{
|
||||
|
@ -119,15 +168,16 @@ aside
|
|||
top: 0px;
|
||||
.logo
|
||||
{
|
||||
margin: 0 0 20px 0px;
|
||||
background: green;
|
||||
margin: 0 auto 20px auto;
|
||||
display: block;
|
||||
width: 90px;
|
||||
height: 98px;
|
||||
}
|
||||
}
|
||||
.sphinxsidebarwrapper
|
||||
{
|
||||
color: #999;
|
||||
h2, h3, h3 a:link, h3 a:visited
|
||||
{
|
||||
color: #777;
|
||||
}
|
||||
|
||||
a:link, a:visited
|
||||
{
|
||||
|
@ -146,5 +196,82 @@ aside
|
|||
margin: 0 4px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
&>li
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
font-size: 18px;
|
||||
color: #777;
|
||||
a:link, a:visited {color: #777;}
|
||||
ul
|
||||
{
|
||||
margin: 10px 0 0 0;
|
||||
padding-left: 20px;
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
a:link, a:visited {color: #999;}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.footer
|
||||
{
|
||||
font-size: .8em;
|
||||
text-align: center;
|
||||
margin: 40px 0;
|
||||
color: #999;
|
||||
a:link, a:visited {color: #555;}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 820px)
|
||||
{
|
||||
body:not(.landing){
|
||||
padding-top: 130px;
|
||||
.highlight-output,.highlight-python, .highlight-javascript
|
||||
{
|
||||
width: auto;
|
||||
max-width: 500px;
|
||||
}
|
||||
.highlight-python
|
||||
{
|
||||
pre { margin: -10px 0 10px 0;}
|
||||
&:before
|
||||
{
|
||||
height: 24px !important;
|
||||
line-height: 24px;
|
||||
font-size: .7em;
|
||||
}
|
||||
&:after
|
||||
{
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
aside
|
||||
{
|
||||
position: static;
|
||||
}
|
||||
div.documentwrapper
|
||||
{
|
||||
margin: 0px;
|
||||
}
|
||||
h1, .section
|
||||
{
|
||||
margin: 0px !important;
|
||||
}
|
||||
aside
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
width: 100%;
|
||||
margin: 5px -20px;
|
||||
padding: 5px 20px 10px 20px;
|
||||
}
|
||||
#logolink
|
||||
{
|
||||
position: absolute;
|
||||
top: -120px;
|
||||
left: 50%;
|
||||
margin-left: -49px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
102
docs/_themes/jrnl/static/less/jrnl.less
vendored
|
@ -17,11 +17,11 @@
|
|||
.icon,
|
||||
{
|
||||
.sprite("../img/icons.png", 32px, 5, 3, 8px);
|
||||
&.share {.sprite(0, 0)};
|
||||
&.secure {.sprite(0, 0)};
|
||||
&.future {.sprite(1, 0)};
|
||||
&.search {.sprite(2, 0)};
|
||||
&.nli {.sprite(3, 0)};
|
||||
&.secure {.sprite(4, 0)};
|
||||
&.share {.sprite(0, 1)};
|
||||
&.sync {.sprite(0, 1)};
|
||||
&.dayone {.sprite(1, 1)};
|
||||
&.github {.sprite(2, 1)};
|
||||
|
@ -88,6 +88,24 @@ body#landing
|
|||
background-color: @purple;
|
||||
font-family: "Open Sans", "Helvetica Neue", sans-serif;
|
||||
font-weight: 300;
|
||||
#twitter
|
||||
{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
border: 1px solid @purple;
|
||||
padding: 5px 10px 5px 30px;
|
||||
color: @purple;
|
||||
.border-radius(3px);
|
||||
.opacity(.7);
|
||||
background: url(../img/twitter.png) 8px center no-repeat transparent;
|
||||
&:hover, &:active
|
||||
{
|
||||
.opacity(1);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
#title, .row3, .row4, #prompt
|
||||
{
|
||||
width: 900px;
|
||||
|
@ -145,6 +163,7 @@ body#landing
|
|||
height: 60px;
|
||||
.box-shadow(0px 6px 6px -3px @purple-shade);
|
||||
text-align: center;
|
||||
a#twitter-nav {display: none;}
|
||||
a
|
||||
{
|
||||
color: @white;
|
||||
|
@ -165,6 +184,7 @@ body#landing
|
|||
.box-shadow(0px 1px 0px @purple-shade);
|
||||
.border-radius(5px);
|
||||
padding: 6px 10px 5px 10px;
|
||||
white-space: nowrap;
|
||||
&:hover
|
||||
{
|
||||
.gradient(lighten(@orange, 10), darken(@orange, 5));
|
||||
|
@ -215,3 +235,81 @@ body#landing
|
|||
.row4 .col { color: mix(@white, @purple, 80); i {.opacity(80);}}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 680px)
|
||||
{
|
||||
body#landing
|
||||
{
|
||||
#nav
|
||||
{
|
||||
height: auto;
|
||||
padding-bottom: 10px;
|
||||
a, a#twitter-nav
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
a.cta
|
||||
{
|
||||
margin: 10px;
|
||||
padding: 1px;
|
||||
}
|
||||
}
|
||||
#upper
|
||||
{
|
||||
#twitter { display: none;}
|
||||
#title
|
||||
{
|
||||
margin: 30px 0 10px 0;
|
||||
}
|
||||
#logo
|
||||
{
|
||||
backgound: red;
|
||||
display: block;
|
||||
float: none;
|
||||
margin: 0px auto;
|
||||
}
|
||||
#title br {display: none;}
|
||||
.pleft, .pright {display: none;}
|
||||
#prompt, #title
|
||||
{
|
||||
width: 100%;
|
||||
.border-box-sizing;
|
||||
padding: 0px 20px;
|
||||
}
|
||||
.terminal
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px)
|
||||
{
|
||||
body#landing
|
||||
{
|
||||
#lower
|
||||
{
|
||||
padding: 40px 20px;
|
||||
.row3, .row4
|
||||
{
|
||||
width: auto;
|
||||
}
|
||||
.row3 .col, .row4 .col
|
||||
{
|
||||
float: none;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin-bottom: 40px;
|
||||
h3 {font-size: 1.5em;}
|
||||
p {font-size: 1em;}
|
||||
|
||||
i
|
||||
{
|
||||
position: static;
|
||||
margin-bottom: -20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
527
docs/_themes/jrnl/static/normalize.css
vendored
|
@ -1,527 +0,0 @@
|
|||
/*! normalize.css v1.1.2 | MIT License | git.io/normalize */
|
||||
|
||||
/* ==========================================================================
|
||||
HTML5 display definitions
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||
*/
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
main,
|
||||
nav,
|
||||
section,
|
||||
summary {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||
*/
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent modern browsers from displaying `audio` without controls.
|
||||
* Remove excess height in iOS 5 devices.
|
||||
*/
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
|
||||
* Known issue: no IE 6 support.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Base
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
|
||||
* `em` units.
|
||||
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
||||
* user zoom.
|
||||
*/
|
||||
|
||||
html {
|
||||
font-size: 100%; /* 1 */
|
||||
-ms-text-size-adjust: 100%; /* 2 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `font-family` inconsistency between `textarea` and other form
|
||||
* elements.
|
||||
*/
|
||||
|
||||
html,
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address margins handled incorrectly in IE 6/7.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Links
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address `outline` inconsistency between Chrome and other browsers.
|
||||
*/
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability when focused and also mouse hovered in all browsers.
|
||||
*/
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address font sizes and margins set differently in IE 6/7.
|
||||
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
|
||||
* and Chrome.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
margin: 0.83em 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.17em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
margin: 1.33em 0;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.83em;
|
||||
margin: 1.67em 0;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.67em;
|
||||
margin: 2.33em 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in Safari 5 and Chrome.
|
||||
*/
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address differences between Firefox and other browsers.
|
||||
* Known issue: no IE 6/7 normalization.
|
||||
*/
|
||||
|
||||
hr {
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 6/7/8/9.
|
||||
*/
|
||||
|
||||
mark {
|
||||
background: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address margins set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
p,
|
||||
pre {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family: monospace, serif;
|
||||
_font-family: 'courier new', monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability of pre-formatted text in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address CSS quotes not supported in IE 6/7.
|
||||
*/
|
||||
|
||||
q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `quotes` property not supported in Safari 4.
|
||||
*/
|
||||
|
||||
q:before,
|
||||
q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent and variable font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Lists
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address margins set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
dl,
|
||||
menu,
|
||||
ol,
|
||||
ul {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 0 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address paddings set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
menu,
|
||||
ol,
|
||||
ul {
|
||||
padding: 0 0 0 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct list images handled incorrectly in IE 7.
|
||||
*/
|
||||
|
||||
nav ul,
|
||||
nav ol {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
|
||||
* 2. Improve image quality when scaled in IE 7.
|
||||
*/
|
||||
|
||||
img {
|
||||
border: 0; /* 1 */
|
||||
-ms-interpolation-mode: bicubic; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct overflow displayed oddly in IE 9.
|
||||
*/
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Figures
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
|
||||
*/
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Correct margin displayed oddly in IE 6/7.
|
||||
*/
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define consistent border, margin, and padding.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct color not being inherited in IE 6/7/8/9.
|
||||
* 2. Correct text not wrapping in Firefox 3.
|
||||
* 3. Correct alignment displayed oddly in IE 6/7.
|
||||
*/
|
||||
|
||||
legend {
|
||||
border: 0; /* 1 */
|
||||
padding: 0;
|
||||
white-space: normal; /* 2 */
|
||||
*margin-left: -7px; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct font size not being inherited in all browsers.
|
||||
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
|
||||
* and Chrome.
|
||||
* 3. Improve appearance and consistency in all browsers.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
font-size: 100%; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
vertical-align: baseline; /* 3 */
|
||||
*vertical-align: middle; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
|
||||
* the UA stylesheet.
|
||||
*/
|
||||
|
||||
button,
|
||||
input {
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||
* All other form control elements do not inherit `text-transform` values.
|
||||
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
|
||||
* Correct `select` style inheritance in Firefox 4+ and Opera.
|
||||
*/
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
||||
* and `video` controls.
|
||||
* 2. Correct inability to style clickable `input` types in iOS.
|
||||
* 3. Improve usability and consistency of cursor style between image-type
|
||||
* `input` and others.
|
||||
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
|
||||
* Known issue: inner spacing remains in IE 6.
|
||||
*/
|
||||
|
||||
button,
|
||||
html input[type="button"], /* 1 */
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
-webkit-appearance: button; /* 2 */
|
||||
cursor: pointer; /* 3 */
|
||||
*overflow: visible; /* 4 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-set default cursor for disabled elements.
|
||||
*/
|
||||
|
||||
button[disabled],
|
||||
html input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Address box sizing set to content-box in IE 8/9.
|
||||
* 2. Remove excess padding in IE 8/9.
|
||||
* 3. Remove excess padding in IE 7.
|
||||
* Known issue: excess padding remains in IE 6.
|
||||
*/
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
*height: 13px; /* 3 */
|
||||
*width: 13px; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
|
||||
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
|
||||
* (include `-moz` to future-proof).
|
||||
*/
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
-moz-box-sizing: content-box;
|
||||
-webkit-box-sizing: content-box; /* 2 */
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and search cancel button in Safari 5 and Chrome
|
||||
* on OS X.
|
||||
*/
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and border in Firefox 3+.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
|
||||
* 2. Improve readability and alignment in all browsers.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto; /* 1 */
|
||||
vertical-align: top; /* 2 */
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Tables
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove most spacing between table cells.
|
||||
*/
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
91
docs/_themes/jrnl/static/small_flask.css
vendored
|
@ -1,91 +0,0 @@
|
|||
/*
|
||||
* small_flask.css_t
|
||||
* ~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* :copyright: Copyright 2010 by Armin Ronacher.
|
||||
* :license: Flask Design License, see LICENSE for details.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 20px 30px;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: none;
|
||||
background: white;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
display: block;
|
||||
float: none;
|
||||
width: 102.5%;
|
||||
margin: 50px -30px -20px -30px;
|
||||
padding: 10px 20px;
|
||||
background: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
|
||||
div.sphinxsidebar h3 a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.document {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.related {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 10px 0 20px 0;
|
||||
}
|
||||
|
||||
div.related ul,
|
||||
div.related ul li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.body {
|
||||
min-height: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.rtd_doc_footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.document {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.github {
|
||||
display: none;
|
||||
}
|
||||
|
41
docs/_themes/jrnl/static/sprites.css
vendored
|
@ -1,41 +0,0 @@
|
|||
.icon-bookmark,.icon-refresh,.icon-share,.icon-search,.icon-lock,.icon-pen,.icon-bubble,.icon-michael-howarth-tardis,.icon-drawer,.icon-github,.icon-calendar {
|
||||
display: inline-block;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
background-image: url(sprites.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.icon-bookmark {
|
||||
background-position: 0 0;
|
||||
}
|
||||
.icon-refresh {
|
||||
background-position: -96px 0;
|
||||
}
|
||||
.icon-share {
|
||||
background-position: -192px 0;
|
||||
}
|
||||
.icon-search {
|
||||
background-position: -288px 0;
|
||||
}
|
||||
.icon-lock {
|
||||
background-position: -384px 0;
|
||||
}
|
||||
.icon-pen {
|
||||
background-position: -480px 0;
|
||||
width: 49px;
|
||||
}
|
||||
.icon-bubble {
|
||||
background-position: -576px 0;
|
||||
}
|
||||
.icon-michael-howarth-tardis {
|
||||
background-position: -672px 0;
|
||||
}
|
||||
.icon-drawer {
|
||||
background-position: -768px 0;
|
||||
}
|
||||
.icon-github {
|
||||
background-position: -864px 0;
|
||||
}
|
||||
.icon-calendar {
|
||||
background-position: -960px 0;
|
||||
}
|
100
docs/advanced.rst
Normal file
|
@ -0,0 +1,100 @@
|
|||
.. _advanced:
|
||||
|
||||
Advanced Usage
|
||||
==============
|
||||
|
||||
Configuration File
|
||||
-------------------
|
||||
|
||||
The configuration file is a simple JSON file with the following options.
|
||||
|
||||
- ``journals``
|
||||
paths to your journal files
|
||||
- ``editor``
|
||||
if set, executes this command to launch an external editor for writing your entries, e.g. ``vim`` or ``subl -w`` (note the ``-w`` flag to make sure _jrnl_ waits for Sublime Text to close the file before writing into the journal. If you're using MacVim, that would be ``mvim -f``).
|
||||
- ``encrypt``
|
||||
if ``true``, encrypts your journal using AES.
|
||||
- ``tagsymbols``
|
||||
Symbols to be interpreted as tags. (__See note below__)
|
||||
- ``default_hour`` and ``default_minute``
|
||||
if you supply a date, such as ``last thursday``, but no specific time, the entry will be created at this time
|
||||
- ``timeformat``
|
||||
how to format the timestamps in your journal, see the [python docs](http://docs.python.org/library/time.html#time.strftime) for reference
|
||||
- ``highlight``
|
||||
if ``true``, tags will be highlighted in cyan.
|
||||
- ``linewrap``
|
||||
controls the width of the output. Set to ``false`` if you don't want to wrap long lines.
|
||||
|
||||
.. note::
|
||||
|
||||
Although it seems intuitive to use the `#` character for tags, there's a drawback: on most shells, this is interpreted as a meta-character starting a comment. This means that if you type
|
||||
|
||||
.. code-block:: note
|
||||
|
||||
jrnl Implemented endless scrolling on the #frontend of our website.
|
||||
|
||||
your bash will chop off everything after the ``#`` before passing it to _jrnl_). To avoid this, wrap your input into quotation marks like this:
|
||||
|
||||
.. code-block:: note
|
||||
|
||||
jrnl "Implemented endless scrolling on the #frontend of our website."
|
||||
|
||||
Or use the built-in prompt or an external editor to compose your entries.
|
||||
|
||||
DayOne Integration
|
||||
------------------
|
||||
|
||||
Using your DayOne journal instead of a flat text file is dead simple - instead of pointing to a text file, change your `.jrnl_conf` to point to your DayOne journal. This is a folder ending with `.dayone`, and it's located at
|
||||
|
||||
* ``~/Library/Application Support/Day One/`` by default
|
||||
* ``~/Dropbox/Apps/Day One/`` if you're syncing with Dropbox and
|
||||
* ``~/Library/Mobile Documents/5U8NS4GX82~com~dayoneapp~dayone/Documents/`` if you're syncing with iCloud.
|
||||
|
||||
Instead of all entries being in a single file, each entry will live in a separate `plist` file. You can also star entries when you write them:
|
||||
|
||||
jrnl -star yesterday: Lunch with @Arthur
|
||||
|
||||
Multiple journal files
|
||||
----------------------
|
||||
|
||||
You can configure _jrnl_ to use with multiple journals (eg. ``private`` and ``work``) by defining more journals in your ``.jrnl_config``, for example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
...
|
||||
"journals": {
|
||||
"default": "~/journal.txt",
|
||||
"work": "~/work.txt"
|
||||
}
|
||||
}
|
||||
|
||||
The ``default`` journal gets created the first time you start _jrnl_. Now you can access the ``work`` journal by using ``jrnl work`` instead of ``jrnl``, eg. ::
|
||||
|
||||
jrnl work at 10am: Meeting with @Steve
|
||||
jrnl work -n 3
|
||||
|
||||
will both use ``~/work.txt``, while ``jrnl -n 3`` will display the last three entries from ``~/journal.txt`` (and so does ``jrnl default -n 3``).
|
||||
|
||||
You can also override the default options for each individual journal. If you ``.jrnl_conf`` looks like this:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
...
|
||||
"encrypt": false
|
||||
"journals": {
|
||||
"default": "~/journal.txt",
|
||||
"work": {
|
||||
"journal": "~/work.txt",
|
||||
"encrypt": true
|
||||
},
|
||||
"food": "~/my_recipes.txt",
|
||||
}
|
||||
|
||||
Your ``default`` and your ``food`` journals won't be encrypted, however your ``work`` journal will! You can override all options that are present at the top level of ``.jrnl_conf``, just make sure that at the very least you specify a ``"journal": ...`` key that points to the journal file of that journal.
|
||||
|
||||
.. note::
|
||||
|
||||
Changing ``encrypt`` to a different value will not encrypt or decrypt your journal file, it merely says whether or not your journal `is` encrypted. Hence manually changing this option will most likely result in your journal file being impossible to load.
|
||||
|
39
docs/encryption.rst
Normal file
|
@ -0,0 +1,39 @@
|
|||
.. _encryption:
|
||||
|
||||
Encryption
|
||||
==========
|
||||
|
||||
Encrypting and decrypting
|
||||
-------------------------
|
||||
|
||||
|
||||
If you don't choose to encrypt your file when you run `jrnl` for the first time, you can encrypt your existing journal file or change its password using ::
|
||||
|
||||
jrnl --encrypt
|
||||
|
||||
If it is already encrypted, you will first be asked for the current password. You can then enter a new password and your plain journal will replaced by the encrypted file. Conversely, ::
|
||||
|
||||
jrnl --decrypt
|
||||
|
||||
will replace your encrypted journal file by a Journal in plain text. You can also specify a filename, ie. `jrnl --decrypt plain_text_copy.txt`, to leave your original file untouched.
|
||||
|
||||
|
||||
Storing passwords in your keychain
|
||||
----------------------------------
|
||||
|
||||
Whenever you encrypt your journal, you are asked whether you want to store the encryption password in your keychain. If you do this, you won't have to enter your password every time you want to write or read your journal.
|
||||
|
||||
If you don't initially store the password in the keychain but decide to do so at a later point -- or maybe want to store it on one computer but not on another -- you can simply run `jrnl --encrypt` on an encrypted journal and use the same password again.
|
||||
|
||||
|
||||
Manual decryption
|
||||
-----------------
|
||||
|
||||
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run::
|
||||
|
||||
import hashlib, Crypto.Cipher
|
||||
key = hashlib.sha256(my_password).digest()
|
||||
with open("my_journal.txt") as f:
|
||||
cipher = f.read()
|
||||
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
|
||||
plain = crypto.decrypt(cipher[16:])
|
69
docs/export.rst
Normal file
|
@ -0,0 +1,69 @@
|
|||
.. _export:
|
||||
|
||||
Import and Export
|
||||
=================
|
||||
|
||||
|
||||
Tag export
|
||||
----------
|
||||
|
||||
With::
|
||||
|
||||
jrnl --tags
|
||||
|
||||
you'll get a list of all tags you used in your journal, sorted by most frequent. Tags occurring several times in the same entry are only counted as one.
|
||||
|
||||
JSON export
|
||||
-----------
|
||||
|
||||
Can do::
|
||||
|
||||
jrnl --export json
|
||||
|
||||
Why not create a beautiful [timeline](http://timeline.verite.co/) of your journal?
|
||||
|
||||
Markdown export
|
||||
---------------
|
||||
|
||||
Use::
|
||||
|
||||
jrnl --export markdown
|
||||
|
||||
or::
|
||||
|
||||
jrnl --export md
|
||||
|
||||
Markdown is a simple markup language that is human readable and can be used to be rendered to other formats (html, pdf). This README for example is formatted in markdown and github makes it look nice.
|
||||
|
||||
Text export
|
||||
-----------
|
||||
|
||||
::
|
||||
|
||||
jrnl --export text
|
||||
|
||||
or ::
|
||||
|
||||
jrnl --export txt
|
||||
|
||||
Pretty-prints your entire journal.
|
||||
|
||||
Export to files
|
||||
---------------
|
||||
|
||||
You can specify the output file of your exported journal using the `-o` argument::
|
||||
|
||||
jrnl --export md -o journal.md
|
||||
|
||||
The above command will generate a file named `journal.md`. If the `-o` argument is a directory, jrnl will export each entry into an individual file::
|
||||
|
||||
jrnl --export json -o my_entries/
|
||||
|
||||
The contents of `my_entries/` will then look like this:
|
||||
|
||||
.. code-block:: output
|
||||
|
||||
my_entries/
|
||||
|- 2013_06_03_a-beautiful-day.json
|
||||
|- 2013_06_07_dinner-with-gabriel.json
|
||||
|- ...
|
|
@ -1,31 +1,20 @@
|
|||
.. jrnl documentation master file, created by
|
||||
sphinx-quickstart on Wed Aug 7 13:22:51 2013.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
jrnl: The command-line journal
|
||||
==============================
|
||||
|
||||
Release v\ |version|. (:ref:`Installation <install>`)
|
||||
|
||||
|
||||
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
|
||||
>>> r.status_code
|
||||
200
|
||||
>>> r.headers['content-type']
|
||||
'application/json; charset=utf8'
|
||||
>>> r.encoding
|
||||
'utf-8'
|
||||
>>> r.text
|
||||
u'{"type":"User"...'
|
||||
>>> r.json()
|
||||
{u'private_gists': 419, u'total_private_repos': 77, ...}
|
||||
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 3
|
||||
|
||||
overview
|
||||
installation
|
||||
usage
|
||||
encryption
|
||||
export
|
||||
advanced
|
||||
recipes
|
||||
|
|
|
@ -18,7 +18,7 @@ to install the dependencies for encrypting journals as well.
|
|||
|
||||
.. note::
|
||||
|
||||
Installing the encryption library, `pycrypto`, requires a `gcc` compiler. You can also `install PyCyrypto manually <https://www.dlitz.net/software/pycrypto/>`_ first.
|
||||
Installing the encryption library, `pycrypto`, requires a `gcc` compiler. For this reason, jrnl will not install `pycrypto` unless explicitly told so like this. You can `install PyCyrypto manually <https://www.dlitz.net/software/pycrypto/>`_ first or install it with ``pip install pycrypto`` if you have a `gcc` compiler.
|
||||
|
||||
The first time you run ``jrnl`` you will be asked where your journal file should be created and whether you wish to encrypt it.
|
||||
|
||||
|
@ -28,9 +28,9 @@ Quickstart
|
|||
|
||||
to make a new entry, just type::
|
||||
|
||||
jrnl yesterday: Called in sick. Used the time to clean the house anspent 4h on writing my book.
|
||||
jrnl yesterday: Called in sick. Used the time to clean the house and spent 4h on writing my book.
|
||||
|
||||
and hit return. ```yesterday:``` will be interpreted as a timestamp. Everything until the first sentence mark (```.?!:```) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:
|
||||
and hit return. ``yesterday:`` will be interpreted as a time stamp. Everything until the first sentence mark (``.?!:``) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:
|
||||
|
||||
.. code-block:: output
|
||||
|
||||
|
|
19
docs/overview.rst
Normal file
|
@ -0,0 +1,19 @@
|
|||
.. _overview:
|
||||
|
||||
Overview
|
||||
===============
|
||||
|
||||
What is jrnl?
|
||||
-------------
|
||||
|
||||
`jrnl` is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncing and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten.
|
||||
|
||||
`jrnl` also plays nice with the fabulous `DayOne <http://dayoneapp.com>`_ and can read and write directly from and to DayOne Journals.
|
||||
|
||||
Optionally, your journal can be encrypted using the `256-bit AES <http://en.wikipedia.org/wiki/Advanced_Encryption_Standard>`_.
|
||||
|
||||
Why keep a journal?
|
||||
-------------------
|
||||
|
||||
Journals aren't only for 13-year old girls and people who have too much time on their summer vacation. A journal helps you to keep track of the things you get done and how you did them. Your imagination may be limitless, but your memory isn't. For personal use, make it a good habit to write at least 20 words a day. Just to reflect what made this day special, why you haven't wasted it. For professional use, consider a text-based journal to be the perfect complement to your GTD todo list - a documentation of what and how you've done it.
|
||||
|
17
docs/recipes.rst
Normal file
|
@ -0,0 +1,17 @@
|
|||
.. _recipes:
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
Recipes
|
||||
-------
|
||||
|
||||
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- The Windows shell prior to Windows 7 has issues with unicode encoding. If you want to use non-ascii characters, change the codepage with ``chcp 1252`` before using `jrnl` (Thanks to Yves Pouplard for solving this!)
|
||||
- _jrnl_ relies on the `PyCrypto` package to encrypt journals, which has some known problems with installing on Windows and within virtual environments.
|