From: Thomas Citharel Date: Sat, 13 Dec 2014 23:16:22 +0000 (+0100) Subject: merge epub with all the dev evolutions X-Git-Tag: 1.9beta~45^2 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=dc69d3e8d895c87f9d26c2d1309e40d6090d4c8d;hp=9f86454b48dec3c9ecfee8da224112eef0f61441;p=github%2Fwallabag%2Fwallabag.git merge epub with all the dev evolutions --- diff --git a/.gitignore b/.gitignore index aec2e3ef..5b34c79f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ +.DS_Store assets/* cache/* vendor composer.phar db/poche.sqlite inc/poche/config.inc.php -inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/ \ No newline at end of file +inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/ +.vagrant \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ccb0b14..58bc7134 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,3 +26,5 @@ Note : If you have large portions of text, use [Github's Gist service](https://g ## You want to fix a bug or to add a feature Please fork wallabag and work with **the dev branch** only. **Do not work on master branch**. + +[Don't forget to read our guidelines](https://github.com/wallabag/wallabag/blob/dev/GUIDELINES.md). \ No newline at end of file diff --git a/CREDITS.md b/CREDITS.md index 7ec3cbb7..f1e9d7af 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -11,4 +11,6 @@ wallabag is based on : wallabag is mainly developed by Nicolas Lœuillet under the MIT License +Thank you so much to @tcitworld and @mariroz. + Contributors : https://github.com/wallabag/wallabag/graphs/contributors \ No newline at end of file diff --git a/GUIDELINES.md b/GUIDELINES.md new file mode 100644 index 00000000..51e0de93 --- /dev/null +++ b/GUIDELINES.md @@ -0,0 +1,53 @@ +# Guidelines for wallabag + +If you want to contribute to wallabag, you have some rules to respect. These rules were defined by [PHP Framework Interop Group](http://www.php-fig.org). + +## Basic Coding Standard (PSR-1) + +This section of the standard comprises what should be considered the standard coding elements that are required to ensure a high level of technical interoperability between shared PHP code. + +* Files MUST use only `Preferences. Go to "Parsers" tab, click on PHP and press "Edit" button. Make sure your "Parser command:" looks like `xgettext --no-location --force-po -o %o %C %K %F` -Usualy it is required to add "--no-location" to default value. +Usually it is required to add "--no-location" to default value. -### 4. Open .po file you want to edit in Poedit and change it's settings +### 4. Open .po file you want to edit in Poedit and change its settings Open, for example `locale/pl_PL.utf8/LC_MESSAGES/pl_PL.utf8.po` file in your Poedit. -Go to "Catalog"->"Settings..." menu. Go to "Path" tab and add path to wallabag installaion in your local file system. This step can't be ommited as you will not be able to update phrases otherwise. +Go to "Catalog"->"Settings..." menu. Then go to "Path" tab and add path to wallabag installation in your local file system. This step can't be omitted as you will not be able to update phrases otherwise. You can also check "project into" tab to be sure, that "Language" is set correctly (this will allow you to spell check your translation). ### 5. Update opened .po file from sources Once you have set your path correctly, you are able to update phrases from sources. Press "Update catalog - synchronize it with sources" button or go to "Catalog"->"Update from sources" menu. -As a result you will see confirmation popup with two tabs: "New strings" and "Obsolete strings". Pls review and accept changes (or press "Undo" if you see too many obsolete strings, as Poedit will remove them all - in this case please make sure all previous steps are performed w/o errors). +As a result you will see confirmation popup with two tabs: "New strings" and "Obsolete strings". Please review and accept changes (or press "Undo" if you see too many obsolete strings, as Poedit will remove them all - in this case please make sure all previous steps are performed w/o errors). ### 6. Translate and save your .po file -If you have any dificulties on this step, please consult with Poedit manual. -Every time you save your .po file, Poedit will also comple appropriate .mo file by default (of course, if not disabled in preferences). +If you have any difficulties on this step, please consult with Poedit manual. +Every time you save your .po file, Poedit will also compile appropriate .mo file by default (of course, if not disabled in preferences). -So, you are almost done. +You are now almost done. ### 7. Clear cache again This step may be required if your web server runs php scripts in name of, say, www user (i.e. Apache with mod_php, not cgi). -##To create new translation -Please simple create appropriate directories in locale folder and perform all steps, described above. Instead of opening an existing file just create new one. +##To create new translation +You just have to copy the folder corresponding to the language you want to translate from, change language in the project settings and for the folder and files names. Then start replacing all existing translations with your own. diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 00000000..221ad6db --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,71 @@ + +$script_sqlite = < - + + + - - + + diff --git a/themes/baggy/_menu.twig b/themes/baggy/_menu.twig index 59b6a46b..8b80f65d 100644 --- a/themes/baggy/_menu.twig +++ b/themes/baggy/_menu.twig @@ -11,6 +11,7 @@ {% include '_search-form.twig' %}
  • {% trans "config" %}
  • +
  • {% trans "about" %}
  • {% trans "logout" %}
  • diff --git a/themes/baggy/_pocheit-form.twig b/themes/baggy/_pocheit-form.twig index 505ec368..bf2ae903 100755 --- a/themes/baggy/_pocheit-form.twig +++ b/themes/baggy/_pocheit-form.twig @@ -1,10 +1,10 @@ -
    + diff --git a/themes/baggy/_search-form.twig b/themes/baggy/_search-form.twig index b8ac3bfa..73f7951f 100644 --- a/themes/baggy/_search-form.twig +++ b/themes/baggy/_search-form.twig @@ -1,7 +1,9 @@ -
    + \ No newline at end of file +
    diff --git a/themes/baggy/about.twig b/themes/baggy/about.twig new file mode 100755 index 00000000..7e19a900 --- /dev/null +++ b/themes/baggy/about.twig @@ -0,0 +1,74 @@ +{% extends "layout.twig" %} + +{% block title %}{% trans "About" %}{% endblock %} +{% block menu %} +{% include '_menu.twig' %} +{% endblock %} +{% block content %} +

    {% trans "About wallabag" %}

    + +
    +
    {% trans "Project website" %}
    +
    http://www.wallabag.org
    + +
    {% trans "Main developer" %}
    +
    Nicolas Lœuillet — {% trans "website" %}
    + +
    {% trans "Contributors:" %}
    +
    {% trans "on Github" %}
    + +
    {% trans "Bug reports" %}
    +
    {% trans "On our support website" %} {% trans "or" %} {% trans "on Github" %}
    + +
    {% trans "License" %}
    +
    MIT
    + +
    {% trans "Version" %}
    +
    {{ constant('POCHE') }}
    +
    + +

    {% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}

    + +

    {% trans "Helping wallabag" %}

    + +

    {% trans "wallabag is free and opensource. You can help us:" %}

    + +
    +
    {% trans "via Paypal" %}
    + +
    {% trans "via Flattr" %}
    +
    + +

    {% trans "Credits" %}

    +
    +
    PHP Readability
    +
    https://bitbucket.org/fivefilters/php-readability
    + +
    Full Text RSS
    +
    http://code.fivefilters.org/full-text-rss/src
    + +
    logo by Maylis Agniel
    +
    https://github.com/wallabag/logo
    + +
    icons
    +
    http://icomoon.io
    + +
    PHP Simple HTML DOM Parser
    +
    http://simplehtmldom.sourceforge.net/
    + +
    Session
    +
    https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php
    + +
    Twig
    +
    http://twig.sensiolabs.org
    + +
    Flash messages
    +
    https://github.com/plasticbrain/PHP-Flash-Messages
    + +
    Pagination
    +
    https://github.com/daveismyname/pagination
    + +
    PHPePub
    +
    https://github.com/Grandt/PHPePub/
    +
    +{% endblock %} diff --git a/themes/baggy/config.twig b/themes/baggy/config.twig index dda05c29..a5a61559 100755 --- a/themes/baggy/config.twig +++ b/themes/baggy/config.twig @@ -6,30 +6,29 @@ {% endblock %} {% block content %}

    {% trans "Saving articles" %}

    -

    {% trans "There are several ways to save an article:" %} (?)

    +

    {% trans "There are several ways to save an article:" %} {% trans "(?)" %}

    +

    +

    +
    + + +
    +

    +

    Browser Plugins

    - -

    {% trans "Upgrading wallabag" %}

    +

    Mobile Apps

    -

    {% trans "You can clear cache to check the latest release." %}

    +

    {% trans "Bookmarklet" %}

    +

    + {% trans "Drag & drop this link to your bookmarks bar:" %} {% trans "bag it!" %} +

    {% trans "Feeds" %}

    {% if token == '' %} @@ -40,9 +39,11 @@
  • {% trans "Favorites feed" %}
  • {% trans "Archive feed" %}
  • -

    {% trans "Your token:" %} {{token}}

    -

    {% trans "Your user id:" %} {{user_id}}

    -

    {% trans "You can regenerate your token: generate!." %}

    +

    + {% trans "Your token:" %} {{token}}
    + {% trans "Your user id:" %} {{user_id}}
    + {% trans "You can regenerate your token: generate!." %} +

    {% endif %}

    {% trans "Change your theme" %}

    @@ -83,35 +84,14 @@ - {% if http_auth == 0 %} -

    {% trans "Change your password" %}

    -
    -
    -
    - - -
    -
    - - -
    -
    - -
    -
    - - -
    - {% endif %} - -

    {% trans "Import" %}

    +

    {% trans "Import" %}

    {% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}

    -

    {% trans "Please select export file on your computer and press \"Import\" button below.
    Wallabag will parse your file, insert all URLs and start fetching of articles if required.
    Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}

    +

    {% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}

    - +
    @@ -119,12 +99,12 @@

    {% trans "You can click here to fetch content for articles with no content." %}

    - +

    {% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}

    +

    {% trans "Export your wallabag data" %}

    - {% if constant('STORAGE') == 'sqlite' %} -

    {% trans "Click here" %} {% trans "to download your database." %}

    {% endif %} -

    {% trans "Click here" %} {% trans "to export your wallabag data." %}

    - +

    {% trans "Export JSON" %}
    + Data will be exported in a single JSON file.

    +

    {% trans "Fancy an E-Book ?" %}

    {% trans "Click to get all your articles in one ebook :" %}

    -
    {% trans "This can take a while and can even fail if you have too many articles, depending on your server configuration." %}

    + {% trans "This can take a while and can even fail if you have too many articles, depending on your server configuration." %}

    -

    {% trans "Cache" %}

    -

    {% trans "Click here" %} {% trans "to delete cache." %}

    +

    {% trans "Cache" %}

    +

    {% trans "Delete Cache" %}
    + Deleting the cache may help with display or other problems.

    + + {% if http_auth == 0 %} +

    {% trans "Change your password" %}

    +
    +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + + +
    + {% endif %}

    {% trans 'Add user' %}

    -

    {% trans 'Add a new user :' %}

    - +
    - + +
    +
    + +
    - +
    @@ -165,9 +170,18 @@
    - +
    - {% else %}

    {% trans "You are the only user, you cannot delete your own account." %}
    - {% trans "To completely remove wallabag, delete the wallabag folder on your web server." %}

    {% endif %} + {% else %}

    {% trans "You are the only user, you cannot delete your own account." %}

    +

    {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}

    {% endif %} + +

    {% trans "Upgrading wallabag" %}

    + +

    {% trans "You can clear cache to check the latest release." %}

    + {% endblock %} diff --git a/themes/baggy/css/main.css b/themes/baggy/css/main.css index 6d320cd2..1df82910 100755 --- a/themes/baggy/css/main.css +++ b/themes/baggy/css/main.css @@ -15,11 +15,11 @@ html { } body { - background: #EEE; + background-color: #EEE; } .login { - background: #333; + background-color: #333; } .login #main { @@ -28,7 +28,7 @@ body { } .login form { - background: #FFF; + background-color: #FFF; padding: 1.5em; box-shadow: 0 1px 8px rgba(0,0,0,0.9); width: 20em; @@ -51,7 +51,7 @@ body { ::selection { color: #FFF; - background: #000; + background-color: #000; } .desktopHide { @@ -70,7 +70,7 @@ h2, h3, h4 { text-transform: uppercase; } -p, li { +p, li, label { color: #666; } @@ -89,7 +89,7 @@ form fieldset { margin: 0; } -form input[type="text"], select, form input[type="password"], form input[type="url"] { +form input[type="text"], select, form input[type="password"], form input[type="url"], form input[type="email"] { border: 1px solid #999; padding: 0.5em 1em; min-width: 12em; @@ -104,10 +104,6 @@ form input[type="text"], select, form input[type="password"], form input[type="u } } -fieldset label { - min-width: 12.5em; -} - .inline .row { display: inline-block; margin-right: 0.5em; @@ -119,17 +115,21 @@ fieldset label { fieldset label { display: inline-block; - margin-right: 0.5em; + min-width: 12.5em; color: #666; } +label { + margin-right: 0.5em; +} + form .row { margin-bottom: 0.5em; } form button, input[type="submit"] { cursor:pointer; - background: #000; + background-color: #000; color: #FFF; border:0; padding: 0.5em 1em; @@ -138,7 +138,7 @@ form button, input[type="submit"] { } form button:hover, form button:focus, input[type="submit"]:hover, input[type="submit"]:focus { - background: #FFF; + background-color: #FFF; color: #000; -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; @@ -155,7 +155,7 @@ h2:after { content: ""; height: 4px; width: 70px; - background: #000; + background-color: #000; display: block; } @@ -176,11 +176,11 @@ h2:after { width: 10em; left: 0; text-align: right; - background: #333; + background-color: #333; padding-top: 9.5em; height: 100%; box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); - z-index: 10; + z-index: 15; } #main { @@ -191,7 +191,7 @@ h2:after { padding-bottom: 1em; } - #links a { + #links > li > a { display: block; padding: 0.5em 2em 0.5em 1em; color: #FFF; @@ -207,8 +207,8 @@ h2:after { transition: all 0.5s ease; } - #links a:hover, #links a:focus { - background: #999; + #links > li > a:hover, #links > li > a:focus { + background-color: #999; color: #000; } @@ -281,12 +281,12 @@ h2:after { #listmode a:hover { opacity: 1; } -.tablemode { +#listmode.tablemode { background-image: url("../img/baggy/table.png"); background-repeat: no-repeat; background-position: bottom; } -.listmode { +#listmode.listmode { background-image: url("../img/baggy/list.png"); background-repeat: no-repeat; background-position: bottom; @@ -327,15 +327,11 @@ footer a { margin-left: 0!important; } -.listmode .entrie p { - display: none; -} - .list-entries + .results { margin-bottom: 2em; } -.estimatedTime a { +.estimatedTime .reading-time { color: #999; font-style: italic; font-weight: normal; @@ -348,7 +344,7 @@ footer a { } .entrie { - background: #FFF; + background-color: #FFF; letter-spacing:normal; box-shadow: 0 3px 7px rgba(0,0,0,0.3); display: inline-block; @@ -359,11 +355,15 @@ footer a { position: relative; overflow: hidden; padding: 1.5em 1.5em 3em 1.5em; - -webkit-transition: all 0.5s ease; - -moz-transition: all 0.5s ease; - -ms-transition: all 0.5s ease; - -o-transition: all 0.5s ease; - transition: all 0.5s ease; + + /* Removing CSS transitions because they make the switch from list view to + * table view jerky + */ + /* -webkit-transition: all 0.5s ease; */ + /* -moz-transition: all 0.5s ease; */ + /* -ms-transition: all 0.5s ease; */ + /* -o-transition: all 0.5s ease; */ + /* transition: all 0.5s ease; */ } .entrie:before { @@ -391,7 +391,7 @@ footer a { width: 100%; bottom: 0; left: 0; - background: #000; + background-color: #000; -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -ms-transition: all 0.5s ease; @@ -418,6 +418,7 @@ footer a { .entrie h2 { text-transform: none; margin-bottom: 0; + line-height: 1.2; } .entrie h2:after { @@ -540,7 +541,7 @@ footer a { 2.1 = "save a link" related styles ========================================================================== */ -#bagit-form, #search-form { +.popup-form { background: rgba(0,0,0,0.5); position: absolute; top: 0; @@ -549,37 +550,53 @@ footer a { height: 100%; width: 100%; margin: 0; - margin-top: -30%; + margin-top: -30% !important; /* TODO: get rid of !important here; overridden by .messages selector */ padding: 2em; display: none; border-left: 1px #EEE solid; } -#bagit-form form, #search-form form { - background: #FFF; - position: absolute; - top: 0; - left: 0; - z-index: 20; - border: 10px solid #000; - width: 400px; - height: 200px; - /* margin: -150px 0 0 -300px; */ - padding: 2em; + .popup-form form { + background-color: #FFF; + position: absolute; + top: 0; + left: 0; + z-index: 20; + border: 10px solid #000; + width: 400px; + height: 200px; + padding: 2em; + } + +#bagit-form-form .addurl { + margin-left: 0; } -a#bagit-form-close, a#search-form-close { - background: #000; +.closeMessage, +.close-button { + background-color: #000; color: #FFF; - padding: 0.2em 0.5em; + font-size: 1.2em; + line-height: 1.6; + width: 1.6em; + height: 1.6em; + text-align: center; text-decoration: none; - display: inline-block; - float: right; - font-size: 0.6em; } -a#bagit-form-close:hover, a#search-form-close:hover { - background: #999; - color: #000; + .closeMessage:hover, + .closeMessage:focus, + .close-button:hover, + .close-button:focus { + background-color: #999; + color: #000; + } + +.close-button--popup { + display: inline-block; + position: absolute; + top: 0; + right: 0; + font-size: 1.4em; } .active-current { @@ -630,57 +647,7 @@ a.add-to-wallabag-link-after:after { #add-link-result { font-weight: bold; - margin-top: 10px; -} - -/* ========================================================================== - 2.2 = "search for articles" popup div related styles - ========================================================================== */ -#search-form { - background: rgba(0,0,0,0.5); - position: absolute; - top: 0; - left: 10em; - z-index: 20; - height: 100%; - width: 100%; - margin: 0; - margin-top: -30%; - padding: 2em; - display: none; - border-left: 1px #EEE solid; -} - -#search-form form { - background: #FFF; - position: absolute; - top: 0; - left: 0; - z-index: 20; - border: 10px solid #000; - width: 400px; - height: 200px; - /* margin: -150px 0 0 -300px; */ - padding: 2em; -} - -a#search-form-close { - background: #000; - color: #FFF; - padding: 0.2em 0.5em; - text-decoration: none; - display: inline-block; - float: right; - font-size: 1.2em; -} -a#search-form-close:hover { - background: #999; - color: #000; -} - -#submit-search{ -margin-left: 4em; -margin-top:1em; + font-size: 0.9em; } /* ========================================================================== @@ -690,15 +657,16 @@ margin-top:1em; @font-face { font-family: 'icomoon'; src:url('../fonts/icomoon.eot?-s0mcsx'); - src:url('../fonts/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'), - url('../fonts/icomoon.woff?-s0mcsx') format('woff'), - url('../fonts/icomoon.ttf?-s0mcsx') format('truetype'), - url('../fonts/icomoon.svg?-s0mcsx#icomoon') format('svg'); + src:url('../fonts/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'), + url('../fonts/icomoon.woff?-s0mcsx') format('woff'), + url('../fonts/icomoon.ttf?-s0mcsx') format('truetype'), + url('../fonts/icomoon.svg?-s0mcsx#icomoon') format('svg'); font-weight: normal; font-style: normal; } -.icon span { +.icon span, +.icon-image span { position: absolute; top: -9999px; } @@ -769,6 +737,28 @@ margin-top:1em; content: "\e80d"; } + +/* .icon-image class, for image-based icons + ========================================================================== */ + +.icon-image { + background-size: 16px 16px; + background-repeat: no-repeat; + background-position: center; + padding-right: 1em !important; + padding-left: 1em !important; +} + +/* Carrot (http://carrot.org) */ +.icon-image--carrot { + background-image: url('../../_global/img/icons/carrot-icon--white.png'); +} + +/* Diaspora */ +.icon-image--diaspora { + background-image: url('../../_global/img/icons/diaspora-icon--black.png'); +}} + /* ========================================================================== Icon selected ========================================================================== */ @@ -777,6 +767,10 @@ margin-top:1em; color: #FFF; } +.icon-check.archive:before { + color: #FFF; +} + /* ========================================================================== 4 = Messages ========================================================================== */ @@ -788,18 +782,6 @@ margin-top:1em; .messages > * { display: inline-block;} -.closeMessage { - background: #000; - color: #FFF; - padding: 0.2em 0.5em; - text-decoration: none; -} - - .closeMessage:hover, .closeMessage:focus { - background: #FFF; - color: #000; - } - .warning { /* font-size: 3em; color: #999; @@ -816,6 +798,16 @@ margin-top:1em; width: 100%; } +.more-info { + font-size: 0.85em; + line-height: 1.5; + color: #aaa; +} + + .more-info a { + color: #aaa; + } + /* ========================================================================== 5 = Article ========================================================================== */ @@ -836,11 +828,15 @@ margin-top:1em; blockquote { border:1px solid #999; - background: #FFF; + background-color: #FFF; padding: 1em; margin: 0; } +#article h1 { + text-align: left; +} + #article h2, #article h3, #article h4 { text-transform: none; } @@ -865,14 +861,14 @@ blockquote { } #article_toolbar a { - background: #000; + background-color: #000; padding: 0.3em 0.5em 0.2em; color: #FFF; text-decoration: none; } #article_toolbar a:hover, #article_toolbar a:focus { - background: #999; + background-color: #999; } .shaarli:before { @@ -895,7 +891,7 @@ blockquote { } .icon-rss { - background: #000; + background-color: #000; color: #FFF; padding: 0.2em 0.5em; } @@ -910,7 +906,7 @@ blockquote { } .list-tags .icon-rss:hover, .list-tags .icon-rss:focus { - background: #FFF; + background-color: #FFF; color: #000; text-decoration: none; } @@ -923,6 +919,13 @@ blockquote { text-decoration: underline; } +pre code { + font-family: "Courier New", Courier, monospace; + border: 1px solid #ccc; + font-size: 0.96em; +} + + /* ========================================================================== 6 = Media Queries ========================================================================== */ @@ -964,7 +967,7 @@ blockquote { margin-left: 0; } body > header { - background: #333; + background-color: #333; position: fixed; top: 0; width: 100%; @@ -1010,11 +1013,11 @@ blockquote { width: 2.5em; height: 2.5em; cursor: pointer; - background: #999; + background-color: #999; font-size: 1.2em; } .desktopHide:hover, .desktopHide:focus { - background: #FFF; + background-color: #FFF; } #links { display: none; @@ -1022,6 +1025,9 @@ blockquote { height: auto; padding-top: 3em; } + #links.menu--open { + display: block; + } footer { position: static; margin-right: 3em; @@ -1051,7 +1057,15 @@ blockquote { display: none; } - #bagit-form, #search-form { + .popup-form, #bagit-form, #search-form { left: 0; + width: 100%; + border-left: none; + } + + .popup-form form, + #bagit-form form, + #search-form form { + width: 100%; } } diff --git a/themes/baggy/edit-tags.twig b/themes/baggy/edit-tags.twig index 2113e964..15f15560 100755 --- a/themes/baggy/edit-tags.twig +++ b/themes/baggy/edit-tags.twig @@ -5,22 +5,22 @@ {% endblock %} {% block content %} - - - + + +

    {{ entry.title|raw }}

    {% if tags is empty %} -
    no tags
    +
    {% trans "no tags" %}
    {% endif %}
    - +

    {% trans "Start typing for auto complete." %}
    {% trans "You can enter multiple tags, separated by commas." %}

    diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig index 4f415220..426ead1d 100755 --- a/themes/baggy/home.twig +++ b/themes/baggy/home.twig @@ -38,12 +38,12 @@ {% endblock %}
    {% for entry in entries %} -
    +

    {{ entry.title|raw }}

    {% if entry.content| getReadingTime > 0 %} - +
    {% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min
    {% else %} -
    +
    {% trans "estimated reading time :" %} < 1 min
    {% endif %}
    {{ block('pager') }} - {% if view == 'home' %}{% if nb_results > 1 %}{{ "Mark all the entries as read" }}{% endif %}{% endif %} - - {% if search_term is defined %}{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}{% endif %} + {% if view == 'home' %}{% if nb_results > 1 %}

    {% trans "Mark all the entries as read" %}

    {% endif %}{% endif %} + {% if searchterm is defined %}{% trans "Tag these results as" %} {{ searchterm }}{% endif %}
    {% if tag %} {% trans "Download as ePub3" %} {% trans "Download as Mobi" %} {% trans "Download as PDF" %} - {% elseif search_term is defined %} - {% trans "Download as ePub3" %} - {% trans "Download as Mobi" %} - {% trans "Download as PDF" %} + {% elseif searchterm is defined %} + {% trans "Download as ePub3" %} + {% trans "Download as Mobi" %} + {% trans "Download as PDF" %} {% else %} {% trans "Download as ePub3" %} {% trans "Download as Mobi" %} {% trans "Download as PDF" %} {% endif %} - - {% endif %} +{% endif %} {% endblock %} diff --git a/themes/baggy/js/init.js b/themes/baggy/js/init.js index 00470fbf..74cbae68 100755 --- a/themes/baggy/js/init.js +++ b/themes/baggy/js/init.js @@ -8,7 +8,10 @@ $.fn.ready(function() { ========================================================================== */ $("#menu").click(function(){ - $("#links").toggle(); + $("#links").toggleClass('menu--open'); + if ($('#content').hasClass('opacity03')) { + $('#content').removeClass('opacity03'); + } }); /* ========================================================================== diff --git a/themes/baggy/login.twig b/themes/baggy/login.twig index 645db376..58290e9c 100644 --- a/themes/baggy/login.twig +++ b/themes/baggy/login.twig @@ -9,17 +9,17 @@ {% if constant('MODE_DEMO') == 1 %}

    {% trans "you are in demo mode, some features may be disabled." %}

    {% endif %}
    - +
    - +
    - +
    - +
    {% trans "(Do not check on public computers)" %}
    diff --git a/themes/baggy/tags.twig b/themes/baggy/tags.twig index 9bb93a45..65930eb2 100755 --- a/themes/baggy/tags.twig +++ b/themes/baggy/tags.twig @@ -1,5 +1,5 @@ {% extends "layout.twig" %} -{% block title %}tags{% endblock %} +{% block title %}Tags{% endblock %} {% block menu %} {% include '_menu.twig' %} {% endblock %} @@ -10,4 +10,4 @@ {% endfor %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/themes/baggy/view.twig b/themes/baggy/view.twig index 3f151592..dd274327 100755 --- a/themes/baggy/view.twig +++ b/themes/baggy/view.twig @@ -4,6 +4,7 @@ {% endblock %} {% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} {% block content %} + {% include '_highlight.twig' %}
    - + - diff --git a/themes/courgette/_menu.twig b/themes/courgette/_menu.twig deleted file mode 100755 index 0e37660a..00000000 --- a/themes/courgette/_menu.twig +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/themes/courgette/_top.twig b/themes/courgette/_top.twig deleted file mode 100755 index 2d41db17..00000000 --- a/themes/courgette/_top.twig +++ /dev/null @@ -1,9 +0,0 @@ -
    -

    - {% if view == 'home' %}{% block logo %}wallabag logo{% endblock %} - {% elseif view == 'fav' %}{{ block('logo') }} Favoris - {% elseif view == 'archive' %}{{ block('logo') }} Archive - {% else %}{{ block('logo') }} - {% endif %} -

    -
    \ No newline at end of file diff --git a/themes/courgette/_view.twig b/themes/courgette/_view.twig deleted file mode 100755 index c5c916c0..00000000 --- a/themes/courgette/_view.twig +++ /dev/null @@ -1,46 +0,0 @@ -{% extends "layout.twig" %} -{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} -{% block content %} -
    - -
    -
    -
    -

    {{ entry.title|raw }}

    -
    -
    - {{ content | raw }} -
    -
    - - -{% endblock %} \ No newline at end of file diff --git a/themes/courgette/css/font.css b/themes/courgette/css/font.css deleted file mode 100755 index 849ff85b..00000000 --- a/themes/courgette/css/font.css +++ /dev/null @@ -1,22 +0,0 @@ -@font-face { - font-family: 'fontello'; - src: url('../font/fontello.eot?97381924'); - src: url('../font/fontello.eot?97381924#iefix') format('embedded-opentype'), - url('../font/fontello.woff?97381924') format('woff'), - url('../font/fontello.ttf?97381924') format('truetype'), - url('../font/fontello.svg?97381924#fontello') format('svg'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'icomoon'; - src:url('../font/icomoon.eot?-72nnzw'); - src:url('../font/icomoon.eot?#iefix-72nnzw') format('embedded-opentype'), - url('../font/icomoon.woff?-72nnzw') format('woff'), - url('../font/comoon.ttf?-72nnzw') format('truetype'), - url('../font/icomoon.svg?-72nnzw#icomoon') format('svg'); - font-weight: normal; - font-style: normal; -} - diff --git a/themes/courgette/css/knacss.css b/themes/courgette/css/knacss.css deleted file mode 100755 index e69de29b..00000000 diff --git a/themes/courgette/css/messages.css b/themes/courgette/css/messages.css deleted file mode 100755 index fe6fbbe8..00000000 --- a/themes/courgette/css/messages.css +++ /dev/null @@ -1,75 +0,0 @@ -.messages { - display: block; - clear: both; - width: 400px; - margin: 10px auto 10px; - padding: 10px 0; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.messages a.closeMessage { - display: none; - float: right; - width: 16px; - height: 16px; - margin: -14px -8px 0 0; - background: url(../img/messages/close.png) no-repeat; -} - -/*.messages:hover a.closeMessage { visibility:visible; }*/ - -.messages p { - margin: 3px 0 3px 10px !important; - padding: 0 10px 0 23px !important; - font-size: 14px; - line-height: 16px; -} - -.messages.error { - border: 1px solid #c42608; - color: #c00 !important; - background: #fff0ef; -} - -.messages.error p { - color: #c00 !important; - background: url(../img/messages/cross.png) no-repeat 0 50%; -} - -.messages.success { - border: 1px solid #6dc70c; - background: #e0fbcc; -} - -.messages.success p { - color: #2b6301 !important; - background: url(../img/messages/tick.png) no-repeat 0 50%; -} - -.messages.warning { - border: 1px solid #ebcd41; - color: #000; - background: #fffcd3; -} - -.messages.warning p { - color: #5f4e01; - background: url(../img/messages/warning.png) no-repeat 0 50%; -} - -.messages.information, -.messages.info { - border: 1px solid #82aee7; - background: #dfebfb; -} - -.messages.information p, -.messages.info p { - color: #064393; - background: url(../img/messages/help.png) no-repeat 0 50%; -} - -.messages.information a { - text-decoration: underline; -} \ No newline at end of file diff --git a/themes/courgette/css/print.css b/themes/courgette/css/print.css deleted file mode 100755 index 9aefa779..00000000 --- a/themes/courgette/css/print.css +++ /dev/null @@ -1,48 +0,0 @@ -/* ### Layout ### */ - -body { - font-family: Serif; - background-color: #fff; -} - -@page { - margin: 1cm; -} - -img { - max-width: 100% !important; -} - -/* ### Content ### */ - -/* Hide useless blocks */ -body > header, -#links, -#sort, -body > footer, -.top_link, -div.tools, -header div, -.messages, -.entrie + .results { - display: none !important; -} - -article { - border: none !important; -} - -/* Add URL after links */ -.vieworiginal a:after { - content: " (" attr(href) ")"; -} - -/* Add explanation after abbr */ -abbr[title]:after { - content: " (" attr(title) ")"; -} - -/* Change border on current pager item */ -.pagination span.current { - border-style: dashed; -} diff --git a/themes/courgette/css/style-default.css b/themes/courgette/css/style-default.css deleted file mode 100755 index 3377a75b..00000000 --- a/themes/courgette/css/style-default.css +++ /dev/null @@ -1,59 +0,0 @@ -a.back span { - background-image: url('../img/default/left.png'); -} - -a.top span { - background-image: url('../img/default/top.png'); -} - -a.fav span, -a.fav-off span:hover { - background-image: url('../img/default/star-on.png'); -} - -a.fav span:hover, -a.fav-off span { - background-image: url('../img/default/star-off.png'); -} - -a.archive span, -a.archive-off span:hover { - background-image: url('../img/default/checkmark-on.png'); -} - -a.archive span:hover, -a.archive-off span { - background-image: url('../img/default/checkmark-off.png'); -} - -a.twitter span { - background-image: url('../img/default/twitter.png'); -} - -a.shaarli span { - background-image: url('../img/default/shaarli.png'); -} - -a.flattr span { - background-image: url('../img/default/flattr.png'); -} - -a.email span { - background-image: url('../img/default/envelop.png'); -} - -a.delete span { - background-image: url('../img/default/remove.png'); -} - -a.link span { - background-image: url('../img/default/link.png'); -} - -a.bad-display span { - background-image: url('../img/default/bad-display.png'); -} - -a.reading-time span { - background-image: url('../img/default/clock.png'); -} diff --git a/themes/courgette/css/style.css b/themes/courgette/css/style.css deleted file mode 100755 index edd09c78..00000000 --- a/themes/courgette/css/style.css +++ /dev/null @@ -1,684 +0,0 @@ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -body { - margin: 10px; - font-family: 'Roboto',Verdana,Geneva,sans-serif; - font-size: 16px; - color: #000; -} - -h1 span { - color #FFF; - background: #000; - display: inline-block; - padding: 0.2em 1em 0.2em 1.2em; - font-size: 0.7em; - position: relative; - top: -1em; - left: -1em; -} - -h1 a { - color: #FFF; - text-decoration: none; -} - -#menu { - font-family: 'fontello'; - position:fixed; - z-index: 11; - top: 0.7em; - right: 0.5em; - border:0; - font-size: 2em; - background: #000; - color:#FFF; - height: 58px; - width: 58px; - line-height:58px; - border-radius:120px; -} - -#menu:hover, #menu:focus { - background: #FFF; - color:#000; - cursor: pointer; -} - -#menu span { - position: absolute; - top: -99999px; -} - -#menuContainer ul, #article_toolbar ul { - position:fixed; - top: 0; - left:0; - width: 100%; - padding: 0; - margin: 0; - text-align:center; - height:80px; -} - -/*Inspired by http://tympanus.net/Tutorials/AnimatedBorderMenus/index.html */ - -#menuContainer, #article_toolbar { - position: fixed; - top: 0; - left:0; - width: 100%; - height: 0; - overflow: hidden; - border-width:0; - border-style: solid; - border-color:#000; - background-color: transparent; - -webkit-transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s; - -moz-transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s; - transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s; -} - -#article_toolbar ul { - padding: 1.7em; -} - -#menuContainer.open, #article_toolbar.open { - border-width:80px; - height: 100%; - background: rgba(0,0,0,0.5); - -webkit-transition: border-width 0.3s, background-color 0.3s; - -moz-transition: border-width 0.3s, background-color 0.3s; - transition: border-width 0.3s, background-color 0.3s; - z-index: 1; -} - -#links li, #article_toolbar li { - list-style: none; - display: inline-block; -} - -#links li a, #article_toolbar a { - color:#FFF; - display: block; - position:relative; - top: -200px; - -webkit-transition: top 0.3s ease; - -moz-transition: top 0.3s ease; - transition: top 0.3s ease; - padding:1.85em 1em; -} - -#links li a { - text-decoration:none; - text-transform:uppercase; -} - -#links li a:hover, #links li a:focus { - background: #FFF; - color:#000; -} - -#menuContainer.open li a, #article_toolbar.open a { - top: 0; - -webkit-transition: top 0.3s ease; - -moz-transition: top 0.3s ease; - transition: top 0.3s ease; - -webkit-transition-delay:0.25ms; - -moz-transition-delay:0.25ms; - transition-delay:0.25ms; -} - -#menuContainer.open li:nth-child(2) a { - -webkit-transition-delay:0.50ms; - -moz-transition-delay:0.50ms; - transition-delay:0.50ms; -} - -#menuContainer.open li:nth-child(3) a { - -webkit-transition-delay:1ms; - -moz-transition-delay:1ms; - transition-delay:1ms; -} - -#menuContainer.open li:nth-child(4) a { - -webkit-transition-delay:1.25ms; - -moz-transition-delay:1.25ms; - transition-delay:1.25ms; -} - -#menuContainer.open li:nth-child(5) a { - -webkit-transition-delay:1.55ms; - -moz-transition-delay:1.55ms; - transition-delay:1.55ms; -} - -#article_toolbar li:nth-child(2) { display: none; } - -#menu:before { - content: "\e801"; - display: block; - text-indent: 0; -} - -body > header { - position: fixed; - top: 0; - left: 1em; - z-index: 10; -} - -#main { - padding:6em; -} - -/* ========================================================================== - entrie - ========================================================================== */ - -.entrie, #article { - width: 45em; - margin: auto; - position:relative; - padding: 0 0 1em 0; - margin-bottom: 1.5em; -} - -#article a { - text-decoration: underline; - color:#000; -} - -#article a:hover, #article a:focus { - text-decoration: none; -} - -.entrie:after { - content:""; - position: absolute; - width: 100%; - height: 4px; - background: #000; - bottom:0; - left: -1em; -} - -.entrie p { - padding:0 0 0 1.5em; -} - -.entrie:before { - content:''; - position: absolute; - top: 0; - left: -1em; - width: 4px; - height: 100%; - background: #000; -} - -.entrie h2:after { - content:""; - display: block; - width: 0; - height: 0; - border-color: #000; - border-width:7px; - border-color:transparent transparent transparent #000; - border-style: solid; - position: absolute; - top: 0.8em; - right: -0.58em; -} - -.entrie h2 { - margin:0; - display: inline-block; - position: relative; - max-width: 78%; -} - -.entrie h2 a { - color:#000; - text-decoration:none; - display: block; - background: #000; - padding: 0.4em 1em; - color:#FFF; - margin-left: -0.5em; - -webkit-transition: all 0.3s ease-out; - -moz-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; -} - -.entrie h2 a:hover, .entrie h2 a:focus { - padding:0.4em 1em 0.4em 2em; -} - -ul { - padding:0; - margin:0; -} - -ul li { - list-style: none; -} - -.tools { - display: inline-block; - margin-left: 1em; - vertical-align: top; - padding-top: 1em; -} - -.tools a span { - position:absolute; - top: -99999px; -} - -.tools li { - display: inline-block; -} - -.tools a { - display: block; - color:#FFF; - background: #000; - text-decoration:none; - height: 1.5em; - width: 1.5em; - text-align: center; - line-height:1.5em; - border-radius: 90px; -} - -.tools a:hover, .tools a:focus { - background: #FFF; - color:#000; -} - -.tools a:before { display: block; font-family: 'icomoon'; } - - -.fav-off:before, .fav:before { content: '\e805'; } /* '' */ -.archive-off:before, .archive:before { content: '\e804'; } /* '' */ -.tools .archive, .tools .fav { - background: #FFF; - color:#000; -} -.link:before { content: '\e801'; } /* '' */ -.delete:before { content: '\e80c'; } /* '' */ -.reading-time:before { content: '\e803'; } /* '' */ - -#article_toolbar a:before { - display: block; - font-family: 'icomoon'; -} - -#article_toolbar a { - display: block; - color:#000; - background: #FFF; - text-decoration:none; - height: 1.5em; - width: 1.5em; - text-align: center; - line-height:1.5em; - border-radius: 90px; - padding: 0; -} - -#article_toolbar a:hover, #article_toolbar a:focus { - background: #000; - color:#FFF; -} - -#article_toolbar span { - position: absolute; - top: -99999px; -} - -.email:before { content: '\e80a'; } /* '' */ -.icon-check:before { content: '\e804'; } /* '' */ -.back:before { content: '\e806'; } /* '' */ -.flattr:before { content: '\e800'; } /* '' */ -.bad-display:before { content: '\e600'; } /* '' */ -.twitter:before { content: '\e807'; } /* '' */ - -#article_toolbar .flattrli { - display: none; -} - -#article_toolbar li { - margin: 0 0 0 1em; -} - - -footer { - position: fixed; - bottom: 0; - width: 100%; - padding: 0 2%; - left: 0; - text-align:right; - font-size: 0.8em; - font-style: italic; - background: rgba(255,255,255,0.5); -} - -footer a { - color:#000; -} - -footer a:hover,footer a:focus { - text-decoration: none; -} - -footer p:first-child { - float:left; -} - -#loginForm fieldset { - border:5px solid #000; - padding: 1.5em; -} - -fieldset { - border:0; - padding: 0; -} - -#loginForm { - max-width: 25em; - margin: auto; -} - -#loginForm .row { - margin-bottom: 0.5em; -} - -form h2 { - margin-top: 0; -} - -form label { - width: 40%; - display: inline-block; -} - -form input[type="text"], form input[type="password"], form input[type='url'], form select { - border:1px solid #000; - padding:0.5em 1em; -} - -@media screen and (-webkit-min-device-pixel-ratio:0){ - form select{ - -webkit-appearance: none; - background: url(../img/bg-select.png) no-repeat right center; - padding-right: 2.2em; - border-radius: 0; - } -} - -form button, form input[type="submit"] { - background: #000; - color:#FFF; - border:0; - font-size:1em; - padding:0.5em 1em; - margin-top: 1em; - cursor: pointer; -} - -form button:hover, form button:focus, form input[type="submit"]:hover, form input[type="submit"]:focus { - background: #FFF; - color: #000; -} - -/* ========================================================================== - Config - ========================================================================== */ - -#config { - max-width: 60%; - margin: auto; -} - -#config a { - background: #000; - text-decoration: none; - color:#FFF; - padding: 0.2em 1em; -} - -#config .special { - background: none; - padding:0; - color: #000; -} - -#config a:hover, #config a:focus { - background: #FFF; - color:#000; -} - -#config li { - margin-bottom: 1em; -} - -#plainurl { - font-size: 1em; -} - -#config label { - width: 20%; -} - -.results { - max-width: 62.5%; - font-style:italic; - margin: 1em auto 2.5em; -} - -#sort { - max-width: 62.5%; - margin: 0 auto -2.5em; - text-align: right; - border-bottom:1px dotted #000; -} - -#sort li { - display: inline-block; - vertical-align: top; - position: relative; - top: -0.1em; - margin-left: 1em; -} - -#sort li img { - display: none; -} - -#sort a { - display: inline-block; - font-family: 'fontello'; - color:#000; - text-decoration: none; -} - -#sort a:hover, #sort a:focus { - text-decoration: underline; -} - -#sort a:before { - display: block; -} - -#sort li a:first-child:before { - content: '\e809'; -} - -#sort li a:first-child + a:before { - content: '\e80b'; -} - -@media screen and (max-width: 860px) { - .entrie, #article { - width: 30em; - } -} - -@media screen and (max-width: 650px) { - #menuContainer ul, #article_toolbar ul { - width: 120px; - height: 100%; - } - - body > header { - position: static; - } - - #main { - padding: 0 0.5em 6em; - } - - #menu { - display: none; - } - - #main:before { - content:none; - } - - #menuContainer, #article_toolbar, #menuContainer ul, #article_toolbar ul { - position: static; - width: 100%; - height: auto; - } - - #links li a, #article_toolbar a { - position: static; - color: #000; - } - - #links li a { - padding: 1em; - min-width: 120px; - text-align: left; - } - - #article_toolbar li { - margin-bottom: 1em; - margin-left: 0.5em; - } - -} - -@media screen and (max-width: 500px) { - .entrie, #article { - width: 17em; - } - .entrie h2 { - width: 100%; - max-width: none; - } - .entrie h2 a:hover, .entrie h2 a:focus { - padding-left: 1em; - background: #FFF; - color: #000; - } - .entrie h2:after { - content:none; - } - - .messages { - width: 100%!important; - } - - #sort { - margin: 3em auto 0; - max-width: none; - text-align: center; - } - #config { - margin: 7em auto 0; - max-width: none; - } - #config label { width: 100%; } - .results { - max-width: none; - margin-bottom: 1em; - } - - footer p:first-child { - float: none; - } - footer { - position:static; - } -} - - -.w600p { - width: 70%; - margin: auto; -} - -.tagForm { - margin: 1em 0; -} - -.tagForm p { - font-style: italic; - margin: 0; - font-size: 0.8em; - color: #999; -} - -.tagForm label { - width: auto; - margin-right: 1em; -} - -.back:before { - font-family: "icomoon"; -} - -.back.link { - color: #000; - text-decoration: none; -} - -.back.link:before { - margin-right: 0.5em; -} - -.tag-list a { - color: #000; - text-decoration: none; -} - -.tag-list li { - display: inline-block; - margin-right: 1em; -} - -a:hover { - text-decoration: underline; -} - -.tag { - background: #000; - color: #FFF; - padding: 0.5em 1em; - text-decoration: none; -} - -.tag:hover, .tag:focus { - background: #FFF; - color: #000; -} \ No newline at end of file diff --git a/themes/courgette/edit-tags.twig b/themes/courgette/edit-tags.twig deleted file mode 100644 index bcddbe46..00000000 --- a/themes/courgette/edit-tags.twig +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "layout.twig" %} -{% block title %}edit tags{% endblock %} -{% block menu %} -{% include '_menu.twig' %} -{% endblock %} -{% block content %} -{% if tags is empty %} -no tags -{% endif %} -
      -{% for tag in tags %}
    • {{ tag.value }} ✘
    • {% endfor %} -
    - - -

    {% trans "You can enter multiple tags, separated by commas." %}

    - - - -{% trans "return to article" %} -{% endblock %} diff --git a/themes/courgette/error.twig b/themes/courgette/error.twig deleted file mode 100755 index 4d4db1f3..00000000 --- a/themes/courgette/error.twig +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "layout.twig" %} -{% block title %}{% trans "plop" %}{% endblock %} -{% block content %} - {{ msg|raw }} -

    Don't forget the documentation.

    -{% endblock %} \ No newline at end of file diff --git a/themes/courgette/font/icomoon.eot b/themes/courgette/font/icomoon.eot deleted file mode 100755 index ff2d109d..00000000 Binary files a/themes/courgette/font/icomoon.eot and /dev/null differ diff --git a/themes/courgette/font/icomoon.svg b/themes/courgette/font/icomoon.svg deleted file mode 100755 index 8968452d..00000000 --- a/themes/courgette/font/icomoon.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/themes/courgette/font/icomoon.ttf b/themes/courgette/font/icomoon.ttf deleted file mode 100755 index 52463a87..00000000 Binary files a/themes/courgette/font/icomoon.ttf and /dev/null differ diff --git a/themes/courgette/font/icomoon.woff b/themes/courgette/font/icomoon.woff deleted file mode 100755 index ddb96f29..00000000 Binary files a/themes/courgette/font/icomoon.woff and /dev/null differ diff --git a/themes/courgette/home.twig b/themes/courgette/home.twig deleted file mode 100755 index 811298eb..00000000 --- a/themes/courgette/home.twig +++ /dev/null @@ -1,62 +0,0 @@ -{% extends "layout.twig" %} -{% block title %} -{% if view == 'fav' %} -{% trans "favoris" %} -{% elseif view == 'archive' %} -{% trans "archive" %} -{% else %} -{% trans "unread" %} -{% endif %} -{% endblock %} -{% block menu %} -{% include '_menu.twig' %} -{% endblock %} -{% block precontent %} - {% if entries|length > 1 %} -
      -
    • {% trans {% trans "by date" %} {% trans
    • -
    • {% trans {% trans "by title" %} {% trans
    • -
    - {% endif %} -{% endblock %} -{% block content %} - {% if entries is empty %} -

    {% trans "No link available here!" %}

    - {% else %} - {% block pager %} - {% if nb_results > 1 %} -
    -
    {{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}
    - {{ page_links | raw }} -
    - {% elseif nb_results == 1 %} - {% if search_term is defined %} -
    -
    {% trans "Only one result found for " %} « {{ search_term }} »
    -
    - {% endif %} - {% endif %} - {% endblock %} - {% for entry in entries %} -
    -

    {{ entry.title|raw }}

    - -

    {{ entry.content|striptags|slice(0, 300) }}...

    -
    - {% endfor %} - - {{ block('pager') }} - - {% if tag %}{% trans "Download the articles from this tag in an epub" %} - {% elseif search_term is defined %}{% trans "Download the articles from this search in an epub" %} - {% else %}{% trans "Download the articles from this category in an epub" %}{% endif %} - - {% endif %} - -{% endblock %} \ No newline at end of file diff --git a/themes/courgette/img/apple-touch-icon-144x144-precomposed.png b/themes/courgette/img/apple-touch-icon-144x144-precomposed.png deleted file mode 100755 index 557b479c..00000000 Binary files a/themes/courgette/img/apple-touch-icon-144x144-precomposed.png and /dev/null differ diff --git a/themes/courgette/img/apple-touch-icon-72x72-precomposed.png b/themes/courgette/img/apple-touch-icon-72x72-precomposed.png deleted file mode 100755 index e167d3a4..00000000 Binary files a/themes/courgette/img/apple-touch-icon-72x72-precomposed.png and /dev/null differ diff --git a/themes/courgette/img/apple-touch-icon.png b/themes/courgette/img/apple-touch-icon.png deleted file mode 100755 index 4d222fba..00000000 Binary files a/themes/courgette/img/apple-touch-icon.png and /dev/null differ diff --git a/themes/courgette/img/bg-select.png b/themes/courgette/img/bg-select.png deleted file mode 100644 index 3a77d0eb..00000000 Binary files a/themes/courgette/img/bg-select.png and /dev/null differ diff --git a/themes/courgette/img/default/backtotop.png b/themes/courgette/img/default/backtotop.png deleted file mode 100755 index 051238ef..00000000 Binary files a/themes/courgette/img/default/backtotop.png and /dev/null differ diff --git a/themes/courgette/img/default/bad-display.png b/themes/courgette/img/default/bad-display.png deleted file mode 100755 index 6866799f..00000000 Binary files a/themes/courgette/img/default/bad-display.png and /dev/null differ diff --git a/themes/courgette/img/default/checkmark-off.png b/themes/courgette/img/default/checkmark-off.png deleted file mode 100755 index 3db5a06d..00000000 Binary files a/themes/courgette/img/default/checkmark-off.png and /dev/null differ diff --git a/themes/courgette/img/default/checkmark-on.png b/themes/courgette/img/default/checkmark-on.png deleted file mode 100755 index cd3abb2c..00000000 Binary files a/themes/courgette/img/default/checkmark-on.png and /dev/null differ diff --git a/themes/courgette/img/default/clock.png b/themes/courgette/img/default/clock.png deleted file mode 100755 index 6164e92b..00000000 Binary files a/themes/courgette/img/default/clock.png and /dev/null differ diff --git a/themes/courgette/img/default/down.png b/themes/courgette/img/default/down.png deleted file mode 100755 index b9d536a7..00000000 Binary files a/themes/courgette/img/default/down.png and /dev/null differ diff --git a/themes/courgette/img/default/envelop.png b/themes/courgette/img/default/envelop.png deleted file mode 100755 index 6be1c886..00000000 Binary files a/themes/courgette/img/default/envelop.png and /dev/null differ diff --git a/themes/courgette/img/default/flattr.png b/themes/courgette/img/default/flattr.png deleted file mode 100755 index 0404aaea..00000000 Binary files a/themes/courgette/img/default/flattr.png and /dev/null differ diff --git a/themes/courgette/img/default/left.png b/themes/courgette/img/default/left.png deleted file mode 100755 index a0a53631..00000000 Binary files a/themes/courgette/img/default/left.png and /dev/null differ diff --git a/themes/courgette/img/default/link.png b/themes/courgette/img/default/link.png deleted file mode 100755 index db62819d..00000000 Binary files a/themes/courgette/img/default/link.png and /dev/null differ diff --git a/themes/courgette/img/default/remove.png b/themes/courgette/img/default/remove.png deleted file mode 100755 index f8ad56a3..00000000 Binary files a/themes/courgette/img/default/remove.png and /dev/null differ diff --git a/themes/courgette/img/default/shaarli.png b/themes/courgette/img/default/shaarli.png deleted file mode 100755 index 1eb30f60..00000000 Binary files a/themes/courgette/img/default/shaarli.png and /dev/null differ diff --git a/themes/courgette/img/default/star-off.png b/themes/courgette/img/default/star-off.png deleted file mode 100755 index 6a0133a7..00000000 Binary files a/themes/courgette/img/default/star-off.png and /dev/null differ diff --git a/themes/courgette/img/default/star-on.png b/themes/courgette/img/default/star-on.png deleted file mode 100755 index a9f96eaa..00000000 Binary files a/themes/courgette/img/default/star-on.png and /dev/null differ diff --git a/themes/courgette/img/default/top.png b/themes/courgette/img/default/top.png deleted file mode 100755 index 954a8c0a..00000000 Binary files a/themes/courgette/img/default/top.png and /dev/null differ diff --git a/themes/courgette/img/default/twitter.png b/themes/courgette/img/default/twitter.png deleted file mode 100755 index cfcfe419..00000000 Binary files a/themes/courgette/img/default/twitter.png and /dev/null differ diff --git a/themes/courgette/img/favicon.ico b/themes/courgette/img/favicon.ico deleted file mode 100755 index 0e9ff779..00000000 Binary files a/themes/courgette/img/favicon.ico and /dev/null differ diff --git a/themes/courgette/img/logo.png b/themes/courgette/img/logo.png deleted file mode 100755 index 5305c77d..00000000 Binary files a/themes/courgette/img/logo.png and /dev/null differ diff --git a/themes/courgette/img/logo.svg b/themes/courgette/img/logo.svg deleted file mode 100644 index 865da440..00000000 --- a/themes/courgette/img/logo.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/themes/courgette/img/messages/close.png b/themes/courgette/img/messages/close.png deleted file mode 100755 index 731aa018..00000000 Binary files a/themes/courgette/img/messages/close.png and /dev/null differ diff --git a/themes/courgette/img/messages/cross.png b/themes/courgette/img/messages/cross.png deleted file mode 100755 index 1514d51a..00000000 Binary files a/themes/courgette/img/messages/cross.png and /dev/null differ diff --git a/themes/courgette/img/messages/help.png b/themes/courgette/img/messages/help.png deleted file mode 100755 index 5c870176..00000000 Binary files a/themes/courgette/img/messages/help.png and /dev/null differ diff --git a/themes/courgette/img/messages/tick.png b/themes/courgette/img/messages/tick.png deleted file mode 100755 index a9925a06..00000000 Binary files a/themes/courgette/img/messages/tick.png and /dev/null differ diff --git a/themes/courgette/img/messages/warning.png b/themes/courgette/img/messages/warning.png deleted file mode 100755 index 628cf2da..00000000 Binary files a/themes/courgette/img/messages/warning.png and /dev/null differ diff --git a/themes/courgette/js/init.js b/themes/courgette/js/init.js deleted file mode 100755 index dca83906..00000000 --- a/themes/courgette/js/init.js +++ /dev/null @@ -1,6 +0,0 @@ -$.fn.ready(function () { - $('#menu').on('click', function(){ - $('body').toggleClass('menuOpen'); - $('#menuContainer, #article_toolbar').toggleClass('open'); - }); -}) \ No newline at end of file diff --git a/themes/courgette/layout.twig b/themes/courgette/layout.twig deleted file mode 100755 index 57c2cc98..00000000 --- a/themes/courgette/layout.twig +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - {% block title %}{% endblock %} - wallabag -{% include '_head.twig' %} -{% include '_bookmarklet.twig' %} - - - {% include '_top.twig' %} -
    - - {% block menu %}{% endblock %} - {% block precontent %}{% endblock %} - {% block messages %} - {% include '_messages.twig' %} - {% endblock %} -
    - {% block content %}{% endblock %} -
    -
    -{% include '_footer.twig' %} - - \ No newline at end of file diff --git a/themes/courgette/login.twig b/themes/courgette/login.twig deleted file mode 100755 index 1fec0fc9..00000000 --- a/themes/courgette/login.twig +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "layout.twig" %} - -{% block title %}{% trans "login to your wallabag" %}{% endblock %} -{% block content %} -
    -
    -

    {% trans "login to your wallabag" %}

    - {% if constant('MODE_DEMO') == 1 %}

    {% trans "you are in demo mode, some features may be disabled." %}

    {% endif %} -
    - - -
    - -
    - - -
    -
    - -
    - - {% trans "(Do not check on public computers)" %} -
    -
    -
    - -
    -
    - - -
    -{% endblock %} \ No newline at end of file diff --git a/themes/courgette/screenshot.jpg b/themes/courgette/screenshot.jpg deleted file mode 100755 index 44ee4b63..00000000 Binary files a/themes/courgette/screenshot.jpg and /dev/null differ diff --git a/themes/courgette/tags.twig b/themes/courgette/tags.twig deleted file mode 100755 index b11dce28..00000000 --- a/themes/courgette/tags.twig +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "layout.twig" %} -{% block title %}tags{% endblock %} -{% block menu %} -{% include '_menu.twig' %} -{% endblock %} -{% block content %} -{% for tag in tags %}{{ tag.value }} {% if token != '' %}{% endif %} {% endfor %} -{% endblock %} \ No newline at end of file diff --git a/themes/courgette/theme.ini b/themes/courgette/theme.ini deleted file mode 100644 index 996d171f..00000000 --- a/themes/courgette/theme.ini +++ /dev/null @@ -1,3 +0,0 @@ -name = Courgette -description = Responsive black and white theme especially adapted to smartphones. -requirements[] = default diff --git a/themes/default/_head.twig b/themes/default/_head.twig index 8c939e30..277e3833 100755 --- a/themes/default/_head.twig +++ b/themes/default/_head.twig @@ -1,14 +1,36 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - \ No newline at end of file + + diff --git a/themes/default/_highlight.twig b/themes/default/_highlight.twig new file mode 100755 index 00000000..cdb7c6bf --- /dev/null +++ b/themes/default/_highlight.twig @@ -0,0 +1,4 @@ + {# include excelent highlight.js library for code highligting, see http://highlightjs.org/ #} + + + diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig index 9b9a6062..eedf84f1 100644 --- a/themes/default/_menu.twig +++ b/themes/default/_menu.twig @@ -6,6 +6,7 @@
  • {% trans "save a link" %}
  • {% trans "search" %}
  • {% trans "config" %}
  • +
  • {% trans "about" %}
  • {% trans "logout" %}
  • {% include '_pocheit-form.twig' %} diff --git a/themes/default/_search-form.twig b/themes/default/_search-form.twig index 33bea20d..0cf6097a 100755 --- a/themes/default/_search-form.twig +++ b/themes/default/_search-form.twig @@ -2,7 +2,7 @@

    - : + :

    diff --git a/themes/default/_sorting.twig b/themes/default/_sorting.twig index ce3d38bc..3ce9b949 100755 --- a/themes/default/_sorting.twig +++ b/themes/default/_sorting.twig @@ -1,6 +1,6 @@ {% if entries|length > 1 %}
      -
    • {% trans {% trans "by date" %} {% trans
    • -
    • {% trans {% trans "by title" %} {% trans
    • +
    • {% trans {% trans "by date" %} {% trans
    • +
    • {% trans {% trans "by title" %} {% trans
    {% endif %} diff --git a/themes/default/about.twig b/themes/default/about.twig new file mode 100755 index 00000000..5ca3217c --- /dev/null +++ b/themes/default/about.twig @@ -0,0 +1,74 @@ +{% extends "layout.twig" %} + +{% block title %}{% trans "About wallabag" %}{% endblock %} +{% block menu %} +{% include '_menu.twig' %} +{% endblock %} +{% block content %} +

    {% trans "About wallabag" %}

    + +
    +
    {% trans "Project website" %}
    +
    http://www.wallabag.org
    + +
    {% trans "Main developer" %}
    +
    Nicolas Lœuillet — {% trans "website" %}
    + +
    {% trans "Contributors:" %}
    +
    {% trans "on Github" %}
    + +
    {% trans "Bug reports" %}
    +
    {% trans "On our support website" %} {% trans "or" %} {% trans "on Github" %}
    + +
    {% trans "License" %}
    +
    MIT
    + +
    {% trans "Version" %}
    +
    {{ constant('POCHE') }}
    +
    + +

    {% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}

    + +

    {% trans "Helping wallabag" %}

    + +

    {% trans "wallabag is free and opensource. You can help us:" %}

    + +
    +
    {% trans "via Paypal" %}
    + +
    {% trans "via Flattr" %}
    +
    + +

    {% trans "Credits" %}

    +
    +
    PHP Readability
    +
    https://bitbucket.org/fivefilters/php-readability
    + +
    Full Text RSS
    +
    http://code.fivefilters.org/full-text-rss/src
    + +
    logo by Maylis Agniel
    +
    https://github.com/wallabag/logo
    + +
    icons
    +
    http://icomoon.io
    + +
    PHP Simple HTML DOM Parser
    +
    http://simplehtmldom.sourceforge.net/
    + +
    Session
    +
    https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php
    + +
    Twig
    +
    http://twig.sensiolabs.org
    + +
    Flash messages
    +
    https://github.com/plasticbrain/PHP-Flash-Messages
    + +
    Pagination
    +
    https://github.com/daveismyname/pagination
    + +
    PHPePub
    +
    https://github.com/Grandt/PHPePub/
    +
    +{% endblock %} diff --git a/themes/default/config.twig b/themes/default/config.twig index a65d2b2c..bac563cf 100755 --- a/themes/default/config.twig +++ b/themes/default/config.twig @@ -6,29 +6,29 @@ {% endblock %} {% block content %}

    {% trans "Saving articles" %}

    -

    {% trans "There are several ways to save an article:" %} (?)

    +

    {% trans "There are several ways to save an article:" %} {% trans "(?)" %}

    +

    +

    +
    + + +
    +

    +

    Browser Plugins

    - -

    {% trans "Upgrading wallabag" %}

    +

    Mobile Apps

    +

    {% trans "Bookmarklet" %}

    +

    + {% trans "Drag & drop this link to your bookmarks bar:" %} {% trans "bag it!" %} +

    {% trans "Feeds" %}

    {% if token == '' %} @@ -39,14 +39,16 @@
  • {% trans "Favorites feed" %}
  • {% trans "Archive feed" %}
  • -

    {% trans "Your token:" %} {{token}}

    -

    {% trans "Your user id:" %} {{user_id}}

    -

    {% trans "You can regenerate your token: generate!." %}

    +

    + {% trans "Your token:" %} {{token}}
    + {% trans "Your user id:" %} {{user_id}}
    + {% trans "You can regenerate your token: generate!." %} +

    {% endif %}

    {% trans "Change your theme" %}

    -
    +
    @@ -82,35 +84,14 @@ - {% if http_auth == 0 %} -

    {% trans "Change your password" %}

    -
    -
    -
    - - -
    -
    - - -
    -
    - -
    -
    - - -
    - {% endif %} - -

    {% trans "Import" %}

    +

    {% trans "Import" %}

    {% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}

    -

    {% trans "Please select export file on your computer and press \"Import\" button below.
    Wallabag will parse your file, insert all URLs and start fetching of articles if required.
    Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}

    +

    {% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}

    - +
    @@ -118,11 +99,11 @@

    {% trans "You can click here to fetch content for articles with no content." %}

    +

    {% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}

    {% trans "Export your wallabag data" %}

    - {% if constant('STORAGE') == 'sqlite' %} -

    {% trans "Click here" %} {% trans "to download your database." %}

    {% endif %} -

    {% trans "Click here" %} {% trans "to export your wallabag data." %}

    +

    {% trans "Export JSON" %}
    + Data will be exported in a single JSON file.

    {% trans "Fancy an E-Book ?" %}

    {% trans "Click to get all your articles in one ebook :" %} @@ -131,31 +112,56 @@

  • Mobi
  • PDF
  • +

    -
    {% trans "This can take a while and can even fail if you have too many articles, depending on your server configuration." %}

    + {% trans "This can take a while and can even fail if you have too many articles, depending on your server configuration." %}

    +

    {% trans "Cache" %}

    +

    {% trans "Delete Cache" %}
    + Deleting the cache may help with display or other problems.

    + + {% if http_auth == 0 %} +

    {% trans "Change your password" %}

    +
    +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + + +
    + {% endif %} -

    {% trans "Cache" %}

    -

    {% trans "Click here" %} {% trans "to delete cache." %}

    -

    {% trans 'Add user' %}

    -

    {% trans 'Add a new user :' %}

    - +
    - + +
    +
    + +
    - +
    - +

    {% trans "Delete account" %}

    {% if not only_user %}

    {% trans "You can delete your account by entering your password and validating." %}
    {% trans "Be careful, data will be erased forever (that is a very long time)." %}

    @@ -165,9 +171,18 @@
    - +
    - {% else %}

    {% trans "You are the only user, you cannot delete your own account." %}
    - {% trans "To completely remove wallabag, delete the wallabag folder on your web server." %}

    {% endif %} + {% else %}

    {% trans "You are the only user, you cannot delete your own account." %}

    +

    {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}

    {% endif %} + +

    {% trans "Upgrading wallabag" %}

    +
      +
    • {% trans "Installed version" %}: {{ constant('POCHE') }}
    • +
    • {% trans "Latest stable version" %}: {{ prod }}. {% if compare_prod == -1 %}{% trans "A more recent stable version is available." %}{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_prod }})
    • + {% if constant('DEBUG_POCHE') == 1 %}
    • {% trans "Latest dev version" %}: {{ dev }}. {% if compare_dev == -1 %}{% trans "A more recent development version is available." %}{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}
    • +
    +

    {% trans "You can clear cache to check the latest release." %}

    + {% endblock %} diff --git a/themes/default/css/style-default.css b/themes/default/css/style-default.css index 889a9f5c..4406d48f 100755 --- a/themes/default/css/style-default.css +++ b/themes/default/css/style-default.css @@ -38,6 +38,16 @@ a.flattr span { background-image: url('../img/default/flattr.png'); } +a.carrot span { + background-image: url('../../_global/img/icons/carrot-icon--black.png'); + background-size: 16px 16px; +} + +a.diaspora span { + background-image: url('../../_global/img/icons/diaspora-icon--black.png'); + background-size: 16px 16px; +} + a.email span { background-image: url('../img/default/envelop.png'); } @@ -56,4 +66,4 @@ a.bad-display span { a.print span { background-image: url('../img/default/print.png'); -} \ No newline at end of file +} diff --git a/themes/default/css/style.css b/themes/default/css/style.css index e58ef81a..b25373d6 100755 --- a/themes/default/css/style.css +++ b/themes/default/css/style.css @@ -417,6 +417,15 @@ a.add-to-wallabag-link-after:after { padding-left: 10px; } +/* ========================================================================== + "Search" popup div related styles + ========================================================================== */ + +/* Search form message needs a little more width, depending on translations */ +#search-form { + width: 420px; +} + .opacity03 { /*opacity: 0.3;*/ } @@ -429,4 +438,10 @@ a.add-to-wallabag-link-after:after { text-indent: 0; color: black; width: 50px; -} \ No newline at end of file +} + +pre code { + font-family: "Courier New", Courier, monospace; + border: 1px solid #ddd; + font-size: 0.96em; +} diff --git a/themes/default/edit-tags.twig b/themes/default/edit-tags.twig index bd498d26..c29427e0 100755 --- a/themes/default/edit-tags.twig +++ b/themes/default/edit-tags.twig @@ -5,9 +5,9 @@ {% endblock %} {% block content %} - - - + + +
    @@ -16,15 +16,15 @@
    {% if tags is empty %} -no tags +{% trans "no tags" %} {% endif %}
      {% for tag in tags %}
    • {{ tag.value }} ✘
    • {% endfor %}
    - - + +

    {% trans "Start typing for auto complete." %}
    {% trans "You can enter multiple tags, separated by commas." %}

    diff --git a/themes/default/highlightjs/highlight.pack.js b/themes/default/highlightjs/highlight.pack.js new file mode 100644 index 00000000..10a21c34 --- /dev/null +++ b/themes/default/highlightjs/highlight.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function j(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function h(w,x){var v=w&&w.exec(x);return v&&v.index==0}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^lang(uage)?-/,"")});return v.filter(function(x){return i(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=j(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+j(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};var E=function(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})};if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b="\\b("+D.bK.split(" ").join("|")+")\\b"}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?("+F.b+")\\.?":F.b}).concat([D.tE,D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){if(!I.k){return j(C)}var T="";var W=0;I.lR.lastIndex=0;var U=I.lR.exec(C);while(U){T+=j(C.substr(W,U.index-W));var V=E(I,U);if(V){H+=V[1];T+=w(V[0],j(U[0]))}else{T+=j(U[0])}W=I.lR.lastIndex;U=I.lR.exec(C)}return T+j(C.substr(W))}function F(){if(I.sL&&!f[I.sL]){return j(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):e(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=j(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=j(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=i(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D+=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:j(L)}}else{throw O}}}function e(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:j(y)};var w=v;x.forEach(function(z){if(!i(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function g(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
    ")}return v}function p(z){var y=b.useBR?z.innerHTML.replace(/\n/g,"").replace(/
    |
    ]*>/g,"\n").replace(/<[^>]*>/g,""):z.textContent;var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):e(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=g(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function d(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function k(){return Object.keys(f)}function i(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=e;this.fixMarkup=g;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=d;this.listLanguages=k;this.getLanguage=i;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/};this.CLCM={cN:"comment",b:"//",e:"$",c:[this.PWM]};this.CBCM={cN:"comment",b:"/\\*",e:"\\*/",c:[this.PWM]};this.HCM={cN:"comment",b:"#",e:"$",c:[this.PWM]};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.CSSNM={cN:"number",b:this.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0};this.RM={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{aliases:["csharp"],k:a,i:/::/,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",v:[{b:"///",r:0},{b:""},{b:""}]}]},b.CLCM,b.CBCM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(f){var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var i="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var b={cN:"yardoctag",b:"@[A-Za-z]+"};var c={cN:"value",b:"#<",e:">"};var k={cN:"comment",v:[{b:"#",e:"$",c:[b]},{b:"^\\=begin",e:"^\\=end",c:[b],r:10},{b:"^__END__",e:"\\n$"}]};var d={cN:"subst",b:"#\\{",e:"}",k:i};var e={cN:"string",c:[f.BE,d],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">"},{b:"%[qw]?/",e:"/"},{b:"%[qw]?%",e:"%"},{b:"%[qw]?-",e:"-"},{b:"%[qw]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var a={cN:"params",b:"\\(",e:"\\)",k:i};var h=[e,c,k,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[f.inherit(f.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+f.IR+"::)?"+f.IR}]},k]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[f.inherit(f.TM,{b:j}),a,k]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[e,{b:j}],r:0},{cN:"symbol",b:f.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+f.RSR+")\\s*",c:[c,k,{cN:"regexp",c:[f.BE,d],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];d.c=h;a.c=h;var g=[{r:1,cN:"output",b:"^\\s*=> ",e:"$",rB:true,c:[{cN:"status",b:"^\\s*=>"},{b:" ",e:"$",c:h}]},{r:1,cN:"input",b:"^[^ ][^=>]*>+ ",e:"$",rB:true,c:[{cN:"prompt",b:"^[^ ][^=>]*>+"},{b:" ",e:"$",c:h}]}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:i,c:g.concat(h)}});hljs.registerLanguage("diff",function(a){return{aliases:["patch"],c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBCM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBCM,a.RM,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:true,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBCM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{aliases:["md","mkdown","mkd"],c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",rB:true,eE:true,e:"\\("};return{cI:true,i:"[=/|']",c:[a.CBCM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.CSSNM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBCM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.CSSNM,a.QSM,a.ASM,a.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{aliases:["jsp"],k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBCM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,eE:true,i:/[:"\[\]]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"(\\$|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{aliases:["php3","php4","php5","php6"],cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,eE:true,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBCM,c,d]}]},{cN:"class",bK:"class interface",e:"{",eE:true,i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){var b={cN:"comment",b:"--",e:"$"};return{cI:true,i:/[<>]/,c:[{cN:"operator",bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate savepoint release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup",e:/;/,eW:true,k:{keyword:"abs absolute acos action add adddate addtime aes_decrypt aes_encrypt after aggregate all allocate alter analyze and any are as asc ascii asin assertion at atan atan2 atn2 authorization authors avg backup before begin benchmark between bin binlog bit_and bit_count bit_length bit_or bit_xor both by cache call cascade cascaded case cast catalog ceil ceiling chain change changed char_length character_length charindex charset check checksum checksum_agg choose close coalesce coercibility collate collation collationproperty column columns columns_updated commit compress concat concat_ws concurrent connect connection connection_id consistent constraint constraints continue contributors conv convert convert_tz corresponding cos cot count count_big crc32 create cross cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime data database databases datalength date_add date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts datetimeoffsetfromparts day dayname dayofmonth dayofweek dayofyear deallocate declare decode default deferrable deferred degrees delayed delete des_decrypt des_encrypt des_key_file desc describe descriptor diagnostics difference disconnect distinct distinctrow div do domain double drop dumpfile each else elt enclosed encode encrypt end end-exec engine engines eomonth errors escape escaped event eventdata events except exception exec execute exists exp explain export_set extended external extract fast fetch field fields find_in_set first first_value floor flush for force foreign format found found_rows from from_base64 from_days from_unixtime full function get get_format get_lock getdate getutcdate global go goto grant grants greatest group group_concat grouping grouping_id gtid_subset gtid_subtract handler having help hex high_priority hosts hour ident_current ident_incr ident_seed identified identity if ifnull ignore iif ilike immediate in index indicator inet6_aton inet6_ntoa inet_aton inet_ntoa infile initially inner innodb input insert install instr intersect into is is_free_lock is_ipv4 is_ipv4_compat is_ipv4_mapped is_not is_not_null is_used_lock isdate isnull isolation join key kill language last last_day last_insert_id last_value lcase lead leading least leaves left len lenght level like limit lines ln load load_file local localtime localtimestamp locate lock log log10 log2 logfile logs low_priority lower lpad ltrim make_set makedate maketime master master_pos_wait match matched max md5 medium merge microsecond mid min minute mod mode module month monthname mutex name_const names national natural nchar next no no_write_to_binlog not now nullif nvarchar oct octet_length of old_password on only open optimize option optionally or ord order outer outfile output pad parse partial partition password patindex percent_rank percentile_cont percentile_disc period_add period_diff pi plugin position pow power pragma precision prepare preserve primary prior privileges procedure procedure_analyze processlist profile profiles public publishingservername purge quarter query quick quote quotename radians rand read references regexp relative relaylog release release_lock rename repair repeat replace replicate reset restore restrict return returns reverse revoke right rlike rollback rollup round row row_count rows rpad rtrim savepoint schema scroll sec_to_time second section select serializable server session session_user set sha sha1 sha2 share show sign sin size slave sleep smalldatetimefromparts snapshot some soname soundex sounds_like space sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sql_variant_property sqlstate sqrt square start starting status std stddev stddev_pop stddev_samp stdev stdevp stop str str_to_date straight_join strcmp string stuff subdate substr substring subtime subtring_index sum switchoffset sysdate sysdatetime sysdatetimeoffset system_user sysutcdatetime table tables tablespace tan temporary terminated tertiary_weights then time time_format time_to_sec timediff timefromparts timestamp timestampadd timestampdiff timezone_hour timezone_minute to to_base64 to_days to_seconds todatetimeoffset trailing transaction translation trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse ucase uncompress uncompressed_length unhex unicode uninstall union unique unix_timestamp unknown unlock update upgrade upped upper usage use user user_resources using utc_date utc_time utc_timestamp uuid uuid_short validate_password_strength value values var var_pop var_samp variables variance varp version view warnings week weekday weekofyear weight_string when whenever where with work write xml xor year yearweek zon",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int integer interval number numeric real serial smallint varchar varying int8 serial8 text"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM,a.CBCM,b]},a.CBCM,b]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{aliases:["pl"],k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView NSView NSViewController NSWindow NSWindowController NSSet NSUUID NSIndexSet UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{aliases:["m","mm","objc","obj-c"],k:d,l:c,i:""}]}]},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",eE:true,k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{aliases:["coffee","cson","iced"],k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{aliases:["nginxconf"],c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:c.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c","h","c++","h++"],k:b,i:""]',k:"include",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,c:["self"]},{b:a.IR+"::"}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{aliases:["mk","mak"],c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b]}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); \ No newline at end of file diff --git a/themes/default/highlightjs/styles/default.css b/themes/default/highlightjs/styles/default.css new file mode 100644 index 00000000..e5bd2801 --- /dev/null +++ b/themes/default/highlightjs/styles/default.css @@ -0,0 +1,152 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #f0f0f0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88f; +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/themes/default/highlightjs/styles/github.css b/themes/default/highlightjs/styles/github.css new file mode 100644 index 00000000..47fc2651 --- /dev/null +++ b/themes/default/highlightjs/styles/github.css @@ -0,0 +1,127 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #333; + background: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold; +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14; +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080; +} + +.hljs-regexp { + color: #009926; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073; +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + background: #fdd; +} + +.hljs-addition { + background: #dfd; +} + +.diff .hljs-change { + background: #0086b3; +} + +.hljs-chunk { + color: #aaa; +} diff --git a/themes/default/highlightjs/styles/googlecode.css b/themes/default/highlightjs/styles/googlecode.css new file mode 100644 index 00000000..fd237367 --- /dev/null +++ b/themes/default/highlightjs/styles/googlecode.css @@ -0,0 +1,148 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: white; + color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9b703f; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #c5af75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9b859d; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #eee; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #bccff9; +} + +.hljs-addition { + background-color: #baeeba; +} + +.hljs-deletion { + background-color: #ffc8bd; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/themes/default/home.twig b/themes/default/home.twig index 093c2dc5..59615691 100755 --- a/themes/default/home.twig +++ b/themes/default/home.twig @@ -31,13 +31,13 @@ {% block pager %} {% if nb_results > 1 %}
    -
    {{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}
    +
    {{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}
    {{ page_links | raw }}
    {% elseif nb_results == 1 %} - {% if search_term is defined %} + {% if searchterm is defined %}
    -
    {% trans "Only one result found for " %} « {{ search_term }} »
    +
    {% trans "Only one result found for " %} « {{ searchterm }} »
    {% endif %} {% endif %} @@ -57,12 +57,22 @@ {% endfor %} {{ block('pager') }} + {% if view == 'home' %}{% if nb_results > 1 %}

    {% trans "Mark all the entries as read" %}

    {% endif %}{% endif %} + {% if searchterm is defined %}{% trans "Tag these results as" %} {{ searchterm }}{% endif %}
    - {% if view == 'home' %}{% if nb_results > 1 %}{% trans "mark all the entries as read" %}{% endif %}{% endif %} - - {% if tag %}{% trans "Download the articles from this tag in an epub" %} - {% elseif search_term is defined %}{% trans "Download the articles from this search in an epub" %} - {% else %}{% trans "Download the articles from this category in an epub" %}{% endif %} + {% if tag %} + {% trans "Download as ePub3" %} + {% trans "Download as Mobi" %} + {% trans "Download as PDF" %} + {% elseif searchterm is defined %} + {% trans "Download as ePub3" %} + {% trans "Download as Mobi" %} + {% trans "Download as PDF" %} + {% else %} + {% trans "Download as ePub3" %} + {% trans "Download as Mobi" %} + {% trans "Download as PDF" %} + {% endif %} {% endif %} {% endblock %} diff --git a/themes/default/img/apple-touch-icon-144x144-precomposed.png b/themes/default/img/apple-touch-icon-144x144-precomposed.png deleted file mode 100644 index 9e951230..00000000 Binary files a/themes/default/img/apple-touch-icon-144x144-precomposed.png and /dev/null differ diff --git a/themes/default/img/apple-touch-icon-72x72-precomposed.png b/themes/default/img/apple-touch-icon-72x72-precomposed.png deleted file mode 100644 index 263419b1..00000000 Binary files a/themes/default/img/apple-touch-icon-72x72-precomposed.png and /dev/null differ diff --git a/themes/default/img/apple-touch-icon.png b/themes/default/img/apple-touch-icon.png deleted file mode 100644 index ac8a1cf0..00000000 Binary files a/themes/default/img/apple-touch-icon.png and /dev/null differ diff --git a/themes/default/img/favicon.ico b/themes/default/img/favicon.ico deleted file mode 100644 index 0e9ff779..00000000 Binary files a/themes/default/img/favicon.ico and /dev/null differ diff --git a/themes/default/js/popupForm.js b/themes/default/js/popupForm.js deleted file mode 100644 index 06be3f0c..00000000 --- a/themes/default/js/popupForm.js +++ /dev/null @@ -1,20 +0,0 @@ -$(document).ready(function() { - - $("#search-form").hide(); - - function closeSearch() { - $("#search-form").toggle(); - $("#search").toggleClass("current"); - $("#search-arrow").toggleClass("arrow-down"); - } - - $("#search").click(function(){ - closeSearch(); - }); - - $("#search-form-close").click(function(){ - closeSearch(); - }); - - -}); \ No newline at end of file diff --git a/themes/default/js/restoreScroll.js b/themes/default/js/restoreScroll.js deleted file mode 100644 index 331c9e19..00000000 --- a/themes/default/js/restoreScroll.js +++ /dev/null @@ -1,25 +0,0 @@ -function supportsLocalStorage() { - try { - return 'localStorage' in window && window['localStorage'] !== null; - } catch (e) { - return false; - } -} - -function savePercent(id, percent) { - if (!supportsLocalStorage()) { return false; } - localStorage["poche.article." + id + ".percent"] = percent; - return true; -} - -function retrievePercent(id) { - if (!supportsLocalStorage()) { return false; } - - var bheight = $(document).height(); - var percent = localStorage["poche.article." + id + ".percent"]; - var scroll = bheight * percent; - - $('html,body').animate({scrollTop: scroll}, 'fast'); - - return true; -} \ No newline at end of file diff --git a/themes/default/view.twig b/themes/default/view.twig index 90b11839..181e1284 100755 --- a/themes/default/view.twig +++ b/themes/default/view.twig @@ -1,6 +1,7 @@ {% extends "layout.twig" %} {% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} {% block content %} + {% include '_highlight.twig' %} {% include '_pocheit-form.twig' %}
    - + {% endblock %} -