diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..32411353 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,6 @@ +# ignore documentation-specific files + +.jekyll-metadata +Gemfile +Gemfile.lock +_site/ \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..79b3b4e9 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,4 @@ +# Documentation Readme + +This project's documentation is hosted using GitHub pages, which serves static pages using Jeykll. +[Please refer to the official documentation for instructions for how to build the site locally.](https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/) \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 00000000..ec321c11 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,11 @@ +title: Solaar +description: Linux Device manager for the Logitech Unifying Receiver. +tagline: Linux Device manager for the Logitech Unifying Receiver. +owner: pwr +owner_url: https://github.com/pwr +repository: pwr/Solaar +version: 0.9.2 +ga_id: UA-36908718-1 +show_downloads: false +encoding: utf-8 +theme: jekyll-theme-slate \ No newline at end of file diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 00000000..694090c1 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,64 @@ + + + + + + + + + + +{% seo %} + + + + + +
+
+ {% if site.github.is_project_page %} + View on GitHub + {% endif %} +

+ + {{ site.title | default: site.github.repository_name }}

+

{{ site.description | default: site.github.project_tagline }}

+ + {% if site.show_downloads %} +
+ Download this project as a .zip file + Download this project as a tar.gz file +
+ {% endif %} +
+
+ + +
+
+ {{ content }} +
+
+ + + + + {% if site.google_analytics %} + + {% endif %} + + diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100644 index 00000000..61e59f52 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,58 @@ + + + + + + + + + +{% seo %} + + + + + +
+
+ {% if site.github.is_project_page %} + View on GitHub + {% endif %} + +

+ + + {{ site.title | default: site.github.repository_name }}

+ +
+
+ + +
+
+ {{ content }} +
+
+ + + + + {% if site.google_analytics %} + + {% endif %} + + diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 00000000..1f290489 Binary files /dev/null and b/docs/assets/favicon.png differ diff --git a/docs/assets/solaar.svg b/docs/assets/solaar.svg new file mode 100644 index 00000000..4a302b9e --- /dev/null +++ b/docs/assets/solaar.svg @@ -0,0 +1,100 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/docs/debian.md b/docs/debian.md index 9fd9a6c0..8313209f 100644 --- a/docs/debian.md +++ b/docs/debian.md @@ -1,3 +1,8 @@ +--- +title: Debian Repository +layout: page +--- + # Debian repository Solaar is now part of the [official debian repository](https://packages.debian.org/solaar-gnome3), to install it on your debian machine, use the following command: `sudo apt install solaar-gnome3` diff --git a/docs/devices.md b/docs/devices.md index 113e03f5..255f9dfa 100644 --- a/docs/devices.md +++ b/docs/devices.md @@ -1,3 +1,8 @@ +--- +title: Supported Devices +layout: page +--- + # Supported devices **Solaar** will detect all devices paired with your receiver, and at the very diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..6365d2d9 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,99 @@ +--- +title: Solaar +layout: default +--- + +**Solaar** is a Linux device manager for Logitech's [Unifying][unifying] Receiver +peripherals. It is able to pair/unpair devices to the receiver, and for most +devices read battery status. + +It comes in two flavors, command-line and GUI. Both are able to list the +devices paired to a Unifying Receiver, show detailed info for each device, and +also pair/unpair supported devices with the receiver. + +[unifying]: http://logitech.com/promotions/6072 + +## Supported Devices + +**Solaar** will detect all devices paired with your Unifying Receiver, and at +the very least display some basic information about them. + +For some devices, extra settings (usually not available through the standard +Linux system configuration) are supported. For a full list of supported devices +and their features, see [docs/devices.md]({{ site.baseurl }}/devices). + + +## Pre-built packages + +Pre-built packages are available for a few Linux distros. + +* Debian 7 (Wheezy) or higher: packages in this [repository]({{ site.baseurl }}/debian) +* Ubuntu/Kubuntu 16.04+: use the `solaar-gnome3` and/or `solaar` package from [universe repository][universe repository] +* Ubuntu/Kubuntu 12.04 to 14.04: use `solaar` package from [ppa:daniel.pavel/solaar][ppa] + +The `solaar` package uses a standard system tray implementation; to ensure +integration with *gnome-shell* or *Unity*, install `solaar-gnome3`. + +* an [Arch package][arch], courtesy of Arnaud Taffanel +* a [Fedora package][fedora], courtesy of Eric Smith +* a [Gentoo package][gentoo], courtesy of Carlos Silva and Tim Harder +* a [Mageia package][mageia], courtesy of David Geiger +* an [OpenSUSE rpm][opensuse], courtesy of Mathias Homann + +[ppa]: http://launchpad.net/~daniel.pavel/+archive/solaar +[arch]: http://aur.archlinux.org/packages/solaar +[fedora]: https://apps.fedoraproject.org/packages/solaar +[gentoo]: https://packages.gentoo.org/packages/app-misc/solaar +[mageia]: http://mageia.madb.org/package/show/release/cauldron/application/0/name/solaar +[opensuse]: http://software.opensuse.org/package/Solaar +[universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all§ion=all + + +## Manual installation + +See [docs/installation.md]({{ site.baseurl }}/installation) for the step-by-step +procedure for manual installation. + + +## Known Issues + +- KDE/Kubuntu: if some icons appear broken in the application, make sure you've + properly configured the Gtk theme and icon theme in KDE's control panel. + +- Some devices using the [Nano Receiver][nano] (which is very similar to the + Unifying Receiver) are supported, but not all. For details, see + [docs/devices.md]({{ site.baseurl }}/devices). + +- Running the command-line application (`bin/solaar-cli`) while the GUI + application is also running *may* occasionally cause either of them to become + confused about the state of the devices. I haven't encountered this often + enough to be able to be able to diagnose it properly yet. + +[nano]: http://support.logitech.com/en_us/parts + + +## License + +This software is distributed under the terms of the +[GNU Public License, v2](COPYING). + + +## Thanks + +This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s +logitech-solar-k750 project on GitHub (no longer available). It was developed +further thanks to the diggings in Logitech's HID++ protocol done by many other +people: + +- [Julien Danjou](http://julien.danjou.info/blog/2012/logitech-k750-linux-support), +who also provided some internal +[Logitech documentation](http://julien.danjou.info/blog/2012/logitech-unifying-upower) +- [Lars-Dominik Braun](http://6xq.net/git/lars/lshidpp.git) +- [Alexander Hofbauer](http://derhofbauer.at/blog/blog/2012/08/28/logitech-performance-mx) +- [Clach04](http://bitbucket.org/clach04/logitech-unifying-receiver-tools) +- [Peter Wu](https://lekensteyn.nl/logitech-unifying.html) +- [Nestor Lopez Casado](http://drive.google.com/folderview?id=0BxbRzx7vEV7eWmgwazJ3NUFfQ28) +provided some more Logitech specifications for the HID++ protocol + +Also thanks to Douglas Wagner, Julien Gascard and Peter Wu for helping with +application testing and supporting new devices. diff --git a/docs/installation.md b/docs/installation.md index eae9ae9d..b3c0b40a 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,3 +1,8 @@ +--- +title: Manual Installation +layout: page +--- + # Manual installation ### Requirements diff --git a/jekyll/_config.yml b/jekyll/_config.yml deleted file mode 100644 index 7c05c378..00000000 --- a/jekyll/_config.yml +++ /dev/null @@ -1,12 +0,0 @@ -title: Solaar -tagline: Linux devices manager for the Logitech Unifying Receiver. -owner: pwr -owner_url: https://github.com/pwr -repository: https://github.com/pwr/Solaar -version: 0.9.2 -tar_download: https://github.com/pwr/Solaar/archive/0.9.2.tar.gz -ga_id: UA-36908718-1 - -pygments: true -safe: true -lsi: false diff --git a/jekyll/_includes/solaar.svg b/jekyll/_includes/solaar.svg deleted file mode 100644 index 1681b79c..00000000 --- a/jekyll/_includes/solaar.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/jekyll/_layouts/default.html b/jekyll/_layouts/default.html deleted file mode 100644 index aa96978c..00000000 --- a/jekyll/_layouts/default.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - {{ page.title }} - - - - -
-
- View on GitHub - -

{% include solaar.svg %} {{ site.title }}

-

{{ site.tagline }}

- -
- Solaar {{ site.version }} -

- Latest version:
- {{ site.version }} -

-
-
-
- -
-
- {{ content }} -
-
- - - - - - - diff --git a/jekyll/_layouts/page.html b/jekyll/_layouts/page.html deleted file mode 100644 index c4af10e7..00000000 --- a/jekyll/_layouts/page.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - {{ page.title }} - - - - -
-
-

- {% include solaar.svg %} {{ site.title }} -

-
-
- -
-
- {{ content }} -
-
- - - - - - - diff --git a/jekyll/style/pygment_trac.css b/jekyll/style/pygment_trac.css deleted file mode 100644 index e65cedff..00000000 --- a/jekyll/style/pygment_trac.css +++ /dev/null @@ -1,70 +0,0 @@ -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f0f3f3; } -.highlight .c { color: #0099FF; font-style: italic } /* Comment */ -.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */ -.highlight .k { color: #006699; font-weight: bold } /* Keyword */ -.highlight .o { color: #555555 } /* Operator */ -.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #009999 } /* Comment.Preproc */ -.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */ -.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */ -.highlight .go { color: #AAAAAA } /* Generic.Output */ -.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #99CC66 } /* Generic.Traceback */ -.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #006699 } /* Keyword.Pseudo */ -.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #FF6600 } /* Literal.Number */ -.highlight .s { color: #CC3300 } /* Literal.String */ -.highlight .na { color: #330099 } /* Name.Attribute */ -.highlight .nb { color: #336666 } /* Name.Builtin */ -.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */ -.highlight .no { color: #336600 } /* Name.Constant */ -.highlight .nd { color: #9999FF } /* Name.Decorator */ -.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #CC00FF } /* Name.Function */ -.highlight .nl { color: #9999FF } /* Name.Label */ -.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #003333 } /* Name.Variable */ -.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #FF6600 } /* Literal.Number.Float */ -.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */ -.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */ -.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */ -.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */ -.highlight .sc { color: #CC3300 } /* Literal.String.Char */ -.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #CC3300 } /* Literal.String.Double */ -.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */ -.highlight .si { color: #AA0000 } /* Literal.String.Interpol */ -.highlight .sx { color: #CC3300 } /* Literal.String.Other */ -.highlight .sr { color: #33AAAA } /* Literal.String.Regex */ -.highlight .s1 { color: #CC3300 } /* Literal.String.Single */ -.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */ -.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #003333 } /* Name.Variable.Class */ -.highlight .vg { color: #003333 } /* Name.Variable.Global */ -.highlight .vi { color: #003333 } /* Name.Variable.Instance */ -.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */ - -.type-csharp .highlight .k { color: #0000FF } -.type-csharp .highlight .kt { color: #0000FF } -.type-csharp .highlight .nf { color: #000000; font-weight: normal } -.type-csharp .highlight .nc { color: #2B91AF } -.type-csharp .highlight .nn { color: #000000 } -.type-csharp .highlight .s { color: #A31515 } -.type-csharp .highlight .sc { color: #A31515 } diff --git a/jekyll/style/stylesheet.css b/jekyll/style/stylesheet.css deleted file mode 100644 index 4194ce3e..00000000 --- a/jekyll/style/stylesheet.css +++ /dev/null @@ -1,442 +0,0 @@ -/******************************************************************************* -Slate Theme for Github Pages -by Jason Costello, @jsncostello -*******************************************************************************/ - -@import url(pygment_trac.css); - -/******************************************************************************* -MeyerWeb Reset -*******************************************************************************/ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - vertical-align: baseline; -} - -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} - -ol, ul { - list-style: none; -} - -blockquote, q { -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -a:focus { - outline: none; -} - -/******************************************************************************* -Theme Styles -*******************************************************************************/ - -body { - box-sizing: border-box; - color:#373737; - background: #212121; - font-size: 18px; - font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif; - line-height: 1.4; - -webkit-font-smoothing: antialiased; -} - -h1, h2, h3, h4, h5, h6 { - margin: 20px 0; - font-weight: 700; - color:#222222; - font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif; - letter-spacing: -1px; -} - -h1 { - font-size: 36px; - font-weight: 700; -} - -h2 { - padding-bottom: 0px; - font-size: 32px; - background: url('../images/bg_hr.png') repeat-x bottom; -} - -h3 { - font-size: 24px; -} - -h4 { - font-size: 21px; -} - -h5 { - font-size: 18px; -} - -h6 { - font-size: 16px; -} - -p { - margin: 10px 0 15px 0; -} - -footer p { - color: #f2f2f2; -} - -a { - text-decoration: none; - color: #007edf; - text-shadow: none; - - transition: color 0.5s ease; - transition: text-shadow 0.5s ease; - -webkit-transition: color 0.5s ease; - -webkit-transition: text-shadow 0.5s ease; - -moz-transition: color 0.5s ease; - -moz-transition: text-shadow 0.5s ease; - -o-transition: color 0.5s ease; - -o-transition: text-shadow 0.5s ease; - -ms-transition: color 0.5s ease; - -ms-transition: text-shadow 0.5s ease; -} - -#main_content a:hover { - color: #0069ba; - text-shadow: #0090ff 0px 0px 2px; -} - -footer a:hover { - color: #43adff; - text-shadow: #0090ff 0px 0px 2px; -} - -em { - font-style: italic; -} - -strong { - font-weight: bold; -} - -img { - position: relative; - margin: 0 auto; - max-width: 739px; - padding: 5px; - margin: 10px 0 10px 0; - border: 1px solid #ebebeb; - - box-shadow: 0 0 5px #ebebeb; - -webkit-box-shadow: 0 0 5px #ebebeb; - -moz-box-shadow: 0 0 5px #ebebeb; - -o-box-shadow: 0 0 5px #ebebeb; - -ms-box-shadow: 0 0 5px #ebebeb; -} - -img.logo { - max-width: 48px; - width: 48px; - height: 48px; - margin: 0; - padding: 0; - border: 0; - bottom: -10px; - - box-shadow: none; - -webkit-box-shadow: 0; - -moz-box-shadow: 0; - -o-box-shadow: 0; - -ms-box-shadow: 0; -} - -pre, code { - width: 100%; - color: #222; - background-color: #fff; - - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; - font-size: 14px; - - border-radius: 2px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; -} - -pre { - width: 100%; - padding: 10px; - box-shadow: 0 0 10px rgba(0,0,0,.1); - overflow: auto; -} - -code { - padding: 3px; - margin: 0 3px; - box-shadow: 0 0 10px rgba(0,0,0,.1); -} - -pre code { - display: block; - box-shadow: none; -} - -blockquote { - color: #666; - margin-bottom: 20px; - padding: 0 0 0 20px; - border-left: 3px solid #bbb; -} - -ul, ol, dl { - margin-bottom: 15px -} - -ul li { - list-style: inside; - padding-left: 20px; -} - -ol li { - list-style: decimal inside; - padding-left: 20px; -} - -dl dt { - font-weight: bold; -} - -dl dd { - padding-left: 20px; - font-style: italic; -} - -dl p { - padding-left: 20px; - font-style: italic; -} - -hr { - height: 1px; - margin-bottom: 5px; - border: none; - background: url('../images/bg_hr.png') repeat-x center; -} - -table { - border: 1px solid #373737; - margin-bottom: 20px; - text-align: left; - width: 100%; - } - -th { - font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif; - padding: 10px; - background: #373737; - color: #fff; - } - -td { - padding: 10px; - border: 1px solid #373737; - } - -form { - background: #f2f2f2; - padding: 20px; -} - -img { - width: 100%; - max-width: 100%; -} - -/******************************************************************************* -Full-Width Styles -*******************************************************************************/ - -.outer { - width: 100%; -} - -.inner { - position: relative; - max-width: 940px; - padding: 20px 10px; - margin: 0 auto; -} - -.copyright { - float: right; -} - -#forkme_banner { - display: block; - position: absolute; - top:0; - right: 10px; - z-index: 10; - padding: 10px 50px 10px 10px; - color: #fff; - background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%; - font-weight: 700; - box-shadow: 0 0 10px rgba(0,0,0,.5); - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; -} - -#header_wrap { - background: #212121; -} - -#header_wrap .inner { - padding 50px 10px 30px 10px; -} - -#project_title { - margin: 0; - color: #fff; - font-size: 42px; - font-weight: 700; - text-shadow: #111 0px 0px 10px; -} - -#project_tagline { - color: #fff; - font-size: 24px; - font-weight: 300; - background: none; - text-shadow: #111 0px 0px 10px; -} - -#downloads { - position: absolute; - width: 240px; - z-index: 10; - bottom: 0px; - right: 0; - height: 80px; - background: url('../images/icon_download.png') no-repeat 15% 70%; -} - -.zip_download_link { - display: block; - float: right; - width: 90px; - height:70px; - text-indent: -5000px; - overflow: hidden; - background: url(../images/sprite_download.png) no-repeat bottom left; -} - -.tar_download_link { - display: block; - float: right; - width: 90px; - height:70px; - text-indent: -5000px; - overflow: hidden; - background: url(../images/sprite_download.png) no-repeat bottom right; - margin-left: 10px; -} - -.zip_download_link:hover { - background: url(../images/sprite_download.png) no-repeat top left; -} - -.tar_download_link:hover { - background: url(../images/sprite_download.png) no-repeat top right; -} - -#main_content_wrap { - background: #f2f2f2; - border-top: 1px solid #111; - border-bottom: 1px solid #111; -} - -#main_content { - padding-top: 40px; -} - -#footer_wrap { - background: #212121; -} - -/******************************************************************************* -Small Device Styles -*******************************************************************************/ - -@media screen and (max-width: 480px) { - body { - font-size:14px; - } - - #downloads { - display: none; - } - - .inner { - min-width: 320px; - max-width: 480px; - } - - #project_title { - font-size: 32px; - } - - h1 { - font-size: 28px; - } - - h2 { - font-size: 24px; - } - - h3 { - font-size: 21px; - } - - h4 { - font-size: 18px; - } - - h5 { - font-size: 14px; - } - - h6 { - font-size: 12px; - } - - code, pre { - min-width: 320px; - max-width: 480px; - font-size: 11px; - } - -} diff --git a/tools/build_gh_pages.sh b/tools/build_gh_pages.sh deleted file mode 100755 index 2e9714c8..00000000 --- a/tools/build_gh_pages.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/sh - -set -e - -BUILD="$(/bin/mktemp --directory --tmpdir solaar-gh-pages-XXXXXX)" -cd "$(/usr/bin/dirname "$0")/.." -SELF="$PWD" -SITE="$(/bin/readlink --canonicalize "$SELF/../gh-pages")" - -# -# -# - -add_md() { - local SOURCE="$SELF/$1" - local TARGET="$BUILD/${2:-$(/usr/bin/basename "$1")}" - - LAYOUT=default - TITLE=$(/bin/grep --max-count=1 '^# ' "$SOURCE" | /usr/bin/cut --characters=3-) - if test -n "$TITLE"; then - local TITLE="Solaar - $TITLE" - LAYOUT=page - else - local TITLE=Solaar - fi - - /bin/mkdir --parents "$(dirname "$TARGET")" - /bin/cat >"$TARGET" <<-FRONTMATTER - --- - layout: $LAYOUT - title: $TITLE - --- - - FRONTMATTER - - /bin/cat "$SOURCE" >>"$TARGET" -} - -fix_times() { - local SOURCE="$SELF/$1" - local TARGET="$SITE/$2" - local f - - if test -d "$SOURCE"; then - for f in "$SOURCE"/*; do - f=$(/usr/bin/basename "$f") - fix_times "$1/$f" "$2/$f" - done - fi - /usr/bin/touch --reference="$SOURCE" "$TARGET" -} - -# -# -# - -/bin/cp --archive --update "$SELF/jekyll"/* "$BUILD/" -# convert the svg logo to png for the web site favicon -/usr/bin/convert.im6 "$SELF/share/solaar/icons/solaar.svg" -transparent white \ - -resize 32x32 "$BUILD/images/favicon.png" - -# optimize the converted pngs -command -V optipng && optipng -preserve -quiet -o 7 "$BUILD/images"/*.png -#command -V pngcrush && pngcrush -d "$BUILD/images" -oldtimestamp -q "$BUILD/images"/*.png - -add_md docs/devices.md -add_md docs/installation.md - -add_md README.md index.md -# fix local links to the proper .html files -/bin/sed --in-place --expression='s#\[docs/\([a-z]*\)\.md\]#[\1]#g' "$BUILD/index.md" -/bin/sed --in-place --expression='s#(docs/\([a-z]*\)\.md)#(\1.html)#g' "$BUILD/index.md" -/bin/sed --in-place --expression='s#(COPYING)#({{ site.repository }}/blob/master/COPYING)#g' "$BUILD/index.md" - -# remove empty lines, to minimze html sizes -for l in "$BUILD/_layouts"/*.html; do - /bin/sed --expression='/^$/d' "$l" | /usr/bin/tr --delete '\t' >"$l=" - /bin/mv "$l=" "$l" -done - -# create packages/ sub-directory -/bin/mkdir --parents "$SITE/../packages" "$SITE/packages/" -#/bin/cp --archive --update --target-directory="$SITE/../packages/" "$SELF/dist/debian"/solaar_* || true -#/bin/cp --archive --update --target-directory="$SITE/../packages/" "$SELF/dist/debian"/solaar-gnome3_* || true -if test -x /usr/bin/dpkg-scanpackages; then - cd "$SITE/../packages/" - /bin/rm --force *.build - /usr/bin/dpkg-scanpackages --multiversion . > Packages - /usr/bin/dpkg-scansources . > Sources - add_md docs/debian.md - cd - -fi - -# check for the latest released version, and update the jekyll configuration -if test -x /usr/bin/uscan; then - TAG=$(/usr/bin/uscan --no-conf --report-status --check-dirname-regex packaging ./packaging/ \ - | /bin/grep 'Newest version' \ - | /bin/grep --only-matching --word-regexp '[0-9.]*' | /usr/bin/head --lines=1) - if test -n "$TAG"; then - /bin/sed --in-place --expression='s#^version: .*$#'"version: $TAG#" "$SELF/jekyll/_config.yml" - /bin/sed --in-place --expression='s#/archive/[0-9.]*\.tar\.gz$#'"/archive/$TAG.tar.gz#" "$SELF/jekyll/_config.yml" - fi -fi - -# Jekyll nukes the .git folder in the target -# so move it out of the way while building. -GIT_BACKUP="$(/bin/mktemp --dry-run --directory --tmpdir="$SITE/.." git-backup-XXXXXX)" -/bin/mv --no-target-directory "$SITE/.git" "$GIT_BACKUP" -jekyll --kramdown "$BUILD" "$SITE" -/bin/mv --no-target-directory "$GIT_BACKUP" "$SITE/.git" - -/bin/cp --archive --link "$SITE/../packages/" "$SITE/" - -# fix some html formatting -for p in "$SITE"/*.html; do - /bin/sed --in-place --expression='s#^[ ]*##g' "$p" - /bin/sed --in-place --file=- "$p" <<-SED - bstart - :eop /<\/p>/ brepl - { N; beop; } - :repl { s#
  • \n

    \(.*\)

    #
  • \1#g; t; } - :start /
  • / N - /
  • \n

    / {N;beop;} - :end - SED -done - -# set timestmap of the created files to match the sources -fix_times README.md index.html -fix_times docs/devices.md devices.html -fix_times docs/installation.md installation.html -fix_times docs/debian.md debian.html -fix_times jekyll/images images -fix_times share/solaar/icons/solaar.svg images/favicon.png -fix_times jekyll/style style