From git-noreply at xxxxx Sat Jun 1 08:20:34 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 08:20:34 -0000 Subject: [geany/www.geany.org] b595b4: Increase vertical space between main text and download button Message-ID: <20190601102517.0736D1EB008@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 08:20:34 UTC Commit: b595b453c0a7c8434d0b77c877a7d87ba11972ee https://github.com/geany/www.geany.org/commit/b595b453c0a7c8434d0b77c877a7d87ba11972ee Log Message: ----------- Increase vertical space between main text and download button Modified Paths: -------------- geany/static/css/main.css geany/templates/home.html Modified: geany/static/css/main.css 4 lines changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -20,6 +20,10 @@ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { line-height: 120%; } +#main-download-button { + margin-top: 30px; +} + .jumbotron { padding-top: 20px; } Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -54,7 +54,7 @@

Geany - The Flyweight IDE

workflow. It runs on Windows, MacOS and Linux, is translated into over 40 languages, and has built-in support for more than 50 programming languages. - + Download Geany {{ geany_latest_version.version }} » -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 1 09:31:44 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 09:31:44 -0000 Subject: [geany/www.geany.org] 184fb9: Replace documentation box with plugin information Message-ID: <20190601102517.843DA1EB013@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 09:31:44 UTC Commit: 184fb9fe9ede035fc69bf3d5960b410a25c12787 https://github.com/geany/www.geany.org/commit/184fb9fe9ede035fc69bf3d5960b410a25c12787 Log Message: ----------- Replace documentation box with plugin information Existing documentation is probably more visible than the existing plugin system and so list a few plugins and a link to more information. Modified Paths: -------------- geany/static/css/main.css geany/templates/home.html Modified: geany/static/css/main.css 5 lines changed, 5 insertions(+), 0 deletions(-) =================================================================== @@ -24,6 +24,11 @@ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { margin-top: 30px; } +.plugin-button-group a { + margin-top: 10px; + margin-right: 10px; +} + .jumbotron { padding-top: 20px; } Modified: geany/templates/home.html 30 lines changed, 19 insertions(+), 11 deletions(-) =================================================================== @@ -179,7 +179,7 @@

Easily Customizable

-

Many filetypes

+

Many Filetypes

Many supported filetypes including popular programming languages like C, Java, PHP, HTML, JavaScript, Python or Perl. @@ -188,19 +188,27 @@

Many filetypes

But Geany also includes support for other useful filetypes like ini-style config files, Diff output, SQL files and many more - (get the full list) + (get the full list)

-
-

RTFM

-

Geany not only has an extensive User Manual - but also has a crowd-sourced Wiki and full - Plugin API Documentation. Not satisfied?

-

Hit us up on The Mailing Lists or - IRC - and we'll get you on track.

-

To The Docs! »

+
+

Many Plugins

+

+ With Geany's plugin system, users can get more features into Geany and + developers can easily add new features and/or improve existing ones. +

+

+

+ +

-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 1 10:26:45 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 10:26:45 -0000 Subject: [geany/www.geany.org] c576dc: Hack: add a temporary color scheme switcher Message-ID: <20190601102717.21F511EB008@mail.geany.org> Branch: refs/heads/color-fun Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 10:26:45 UTC Commit: c576dc2319ca5b913926e4db3843ba8ef1f9d74b https://github.com/geany/www.geany.org/commit/c576dc2319ca5b913926e4db3843ba8ef1f9d74b Log Message: ----------- Hack: add a temporary color scheme switcher Modified Paths: -------------- geany/static/css/geany-theme-blue-default.css geany/static/css/geany-theme-yellow-b4n.css geany/static/css/geany-theme-yellow-eht16.css geany/static/css/geany-theme-yellow-gmail.css geany/templates/skel.html Modified: geany/static/css/geany-theme-blue-default.css 36 lines changed, 36 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,36 @@ +/* buttons */ +.btn-primary { + color: rgb(255, 255, 255); + background-color: rgb(66, 139, 202); + border-color: rgb(53, 126, 189); +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + color: rgb(255, 255, 255); + background-color:rgb(48, 113, 169); + border-color:rgb(40, 94, 142); +} + +/* links */ +a { + color: rgb(66, 139, 202); +} +a:hover, a:focus { + color: rgb(42, 100, 150); +} +a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { + border-color: rgb(42, 100, 150); +} + +/* code block*/ +code { + color: rgb(66, 139, 202); +} +pre { + color: rgb(66, 139, 202); +} + +/* homepage icons */ +.feature-icon span { + color: white; + background-color: rgb(50, 118, 177); +} Modified: geany/static/css/geany-theme-yellow-b4n.css 35 lines changed, 35 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,35 @@ +/* buttons */ +.btn-primary { + color: black; /* for more readability */ + background-color: #F5DA2F; + border-color: #F0C404; +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + color: black; + background-color:#F0C404; + border-color:#F0C404 +} + +/* links */ +a { + color: #F0AD04; +} +a:hover, a:focus { + color: #F5DA2F; +} +a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { + border-color: #F5DA2F; +} + +/* code block*/ +code { + color: #F0AD04; +} +pre { + color: #F0AD04; +} + +/* homepage icons */ +.feature-icon span { + background-color: #F5DA2F; +} Modified: geany/static/css/geany-theme-yellow-eht16.css 41 lines changed, 41 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,41 @@ +/* + * Main link color: #C8B407 rgb(200, 180, 7) + * + * Alternate color (borders, background, ...): #8A7C00 rgb(138, 124, 0) + */ + +/* buttons */ +.btn-primary { + background-color: rgb(138, 124, 0); + border-color: rgb(200, 180, 7); + color: rgb(0, 0, 0); +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + background-color: rgb(200, 180, 7); + border-color: rgb(138, 124, 0); + color: rgb(0, 0, 0); +} + +/* links */ +a { + color: rgb(138, 124, 0); +} +a:hover, a:focus { + color: rgb(200, 180, 7); +} +a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { + border-color: rgb(200, 180, 7); +} + +/* code block*/ +code { + color: rgb(138, 124, 0); +} +pre { + color: rgb(138, 124, 0); +} + +/* homepage icons */ +.feature-icon span { + background-color: rgb(200, 180, 7); +} Modified: geany/static/css/geany-theme-yellow-gmail.css 41 lines changed, 41 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,41 @@ +/* + * Main link color: #ffb302 rgb(255, 179, 2) + * + * Alternate color (borders, background, ...): #D29300 rgb(210, 147, 0) + */ + +/* buttons */ +.btn-primary { + background-color: rgb(210, 147, 0); + border-color: rgb(255, 179, 2); + color: rgb(0, 0, 0); +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + background-color: rgb(255, 179, 2); + border-color: rgb(210, 147, 0); + color: rgb(0, 0, 0); +} + +/* links */ +a { + color: rgb(210, 147, 0); +} +a:hover, a:focus { + color: rgb(255, 179, 2); +} +a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { + border-color: rgb(255, 179, 2); +} + +/* code block*/ +code { + color: rgb(210, 147, 0); +} +pre { + color: rgb(210, 147, 0); +} + +/* homepage icons */ +.feature-icon span { + background-color: rgb(255, 179, 2); +} Modified: geany/templates/skel.html 49 lines changed, 48 insertions(+), 1 deletions(-) =================================================================== @@ -17,6 +17,12 @@ + + + + + + {% block extra_css %}{% endblock %} {% endcompress %} @@ -67,7 +73,48 @@ {% include "includes/footer_scripts.html" %} -{% block footer_js %}{% endblock %} +{% block footer_js %} + +{% endblock %} -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 1 10:37:40 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 10:37:40 -0000 Subject: [geany/www.geany.org] 7a7e83: Remove debugger statement Message-ID: <20190601103750.7387C1EB008@mail.geany.org> Branch: refs/heads/color-fun Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 10:37:40 UTC Commit: 7a7e8317856a3878fd03d364c5f013dae437385c https://github.com/geany/www.geany.org/commit/7a7e8317856a3878fd03d364c5f013dae437385c Log Message: ----------- Remove debugger statement Oops :). Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 1 lines changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -93,7 +93,6 @@ `; $("ul.nav").append(colorFunDropdown); - debugger; var currentSheet = document.getElementById("stylesheet"), switcher = document.getElementById("styleswitcher"); -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 1 10:54:10 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 10:54:10 -0000 Subject: [geany/www.geany.org] 5f8462: Do not compress additional stylesheets Message-ID: <20190601105421.DB8511EB008@mail.geany.org> Branch: refs/heads/color-fun Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 10:54:10 UTC Commit: 5f8462f59b266f04b85845204335053269275ee1 https://github.com/geany/www.geany.org/commit/5f8462f59b266f04b85845204335053269275ee1 Log Message: ----------- Do not compress additional stylesheets Django-compressor would remove the alternate stylesheets. Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 13 lines changed, 6 insertions(+), 7 deletions(-) =================================================================== @@ -17,12 +17,6 @@ - - - - - - {% block extra_css %}{% endblock %} {% endcompress %} @@ -38,7 +32,12 @@ {% block extra_js %}{% endblock %} {% endcompress %} -{% block extra_head %}{% endblock %} +{% block extra_head %} + + + + +{% endblock %} -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 1 10:59:12 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 01 Jun 2019 10:59:12 -0000 Subject: [geany/www.geany.org] 62608c: Add another color style variant Message-ID: <20190601105927.65BDC1EB008@mail.geany.org> Branch: refs/heads/color-fun Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 01 Jun 2019 10:59:12 UTC Commit: 62608c2bab3c83f3aa547d7c8fb518916c1d2413 https://github.com/geany/www.geany.org/commit/62608c2bab3c83f3aa547d7c8fb518916c1d2413 Log Message: ----------- Add another color style variant Modified Paths: -------------- geany/static/css/geany-theme-yellow-gmail-inverted.css geany/templates/skel.html Modified: geany/static/css/geany-theme-yellow-gmail-inverted.css 41 lines changed, 41 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,41 @@ +/* + * Main link color: #D29300 rgb(210, 147, 0) + * + * Alternate color (borders, background, ...): #ffb302 rgb(255, 179, 2) + */ + +/* buttons */ +.btn-primary { + background-color: rgb(255, 179, 2); + border-color: rgb(210, 147, 0); + color: rgb(0, 0, 0); +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + background-color: rgb(210, 147, 0); + border-color: rgb(255, 179, 2); + color: rgb(0, 0, 0); +} + +/* links */ +a { + color: rgb(255, 179, 2); +} +a:hover, a:focus { + color: rgb(210, 147, 0); +} +a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { + border-color: rgb(210, 147, 0); +} + +/* code block*/ +code { + color: rgb(255, 179, 2); +} +pre { + color: rgb(255, 179, 2); +} + +/* homepage icons */ +.feature-icon span { + background-color: rgb(210, 147, 0); +} Modified: geany/templates/skel.html 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -37,6 +37,7 @@ + {% endblock %} @@ -87,6 +88,7 @@
  • b4n's yellow
  • eht16's yellow
  • gmail's yellow
  • +
  • gmail's yellow (inverted)
  • -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 2 21:13:55 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 02 Jun 2019 21:13:55 -0000 Subject: [geany/www.geany.org] cae7d1: Add "mezzanine-sync-pages" to easily synchronize page contents Message-ID: <20190602211418.31E7D1EB00D@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 02 Jun 2019 21:13:55 UTC Commit: cae7d192a443542c9c350d1ca0fd20fcd3143e0d https://github.com/geany/www.geany.org/commit/cae7d192a443542c9c350d1ca0fd20fcd3143e0d Log Message: ----------- Add "mezzanine-sync-pages" to easily synchronize page contents Modified Paths: -------------- geany/settings.py page_content/about.md page_content/about/donate.md page_content/about/events.md page_content/about/filetypes.md page_content/about/geany.md page_content/about/privacy.md page_content/about/reviews.md page_content/association.md page_content/contribute.md page_content/contribute/development.md page_content/contribute/documentation.md page_content/contribute/support.md page_content/contribute/translation.md page_content/contribute/translation/statistics.md page_content/documentation.md page_content/documentation/faq.md page_content/documentation/hacking.md page_content/documentation/manual.md page_content/documentation/releasenotes.md page_content/documentation/screenshots.md page_content/documentation/todo.md page_content/download.md page_content/download/git.md page_content/download/nightly-builds.md page_content/download/releases.md page_content/download/third-party.md page_content/fake.md page_content/support.md page_content/support/bugs.md page_content/support/irc.md page_content/support/mailing-lists.md page_content/support/plugins.md page_content/support/verify-gpg-signature.md requirements.txt Modified: geany/settings.py 4 lines changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -330,6 +330,7 @@ # 3rd party "honeypot", # for pastebin "mezzanine_pagedown", + "mezzanine_sync_pages", ) # List of middleware classes to use. Order is important; in the request phase, @@ -420,6 +421,7 @@ "generic.ThreadedComment", "mezzanine_blocks.Block", "mezzanine_blocks.RichBlock", + "mezzanine_sync_pages.MezzanineSyncPages", (_("Media Library"), "fb_browse"),)), (_("Site"), ( "sites.Site", @@ -457,6 +459,8 @@ IRC_USER_LIST_FILE = '/srv/tmp/irc_userlist' +MEZZANINE_SYNC_PAGES_DESTINATION_PATH = os.path.join(PROJECT_ROOT, 'page_content') + ######################### # LOGGING # Modified: page_content/about.md 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1 @@ +empty on purpose Modified: page_content/about/donate.md 29 lines changed, 29 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,29 @@ +Donate to the Geany project +========== + +Donations are always welcome and help to support the development of Geany. + +There are many ways of donating to the Geany project. +More than financial support, the Geany project needs help with: +- [Translations][1] +- [Documentation][2] +- [Supporting users][3] +- [Implementing new features and fixing bugs][4] + + +### Financial support + +If you want to donate money to the Geany project, it will be used to support further development of Geany, to pay running costs for hosting and domains and support presenting Geany on various [Open Source Conferences][5]. + +Currently, the only available option to donate money is via Paypal. We are working on more options. + +[Donate via Paypal ![Donate via Paypal][6]][7] + + + [1]: /contribute/translation/ + [2]: /contribute/documentation/ + [3]: /contribute/support/ + [4]: /contribute/development/ + [5]: /about/events/ + [6]: /static/img/PayPal_mark_50x34.gif + [7]: /service/donate/ Modified: page_content/about/events.md 35 lines changed, 35 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,35 @@ +Events +====== + + +A couple of volunteers - Geany developers, contributors and users - organize booths at various open source conferences in Europe to present Geany and answer questions of users. + +Since 2010 the group of booth organizers joined the following events regularly: + + * [Chemnitzer LinuxTage][1] (Chemnitz, Germany, Europe) + * [FrOSCon][2] (St. Augustin, Germany, Europe) + * [Prague LinuxDays][3] (Prague, Czech, Europe) + * [OpenRheinRuhr][4] (Oberhausen, Germany, Europe) + +If you will be around at such an event, feel free to visit the Geany booth and say hello! +We are always curious to meet new people, users of Geany and get their feedback. + +### Organize your own booth + +If you want to organize your own booth at an open source conference or similar event, feel free to do it! +We can support you with our experiences and maybe with some materials (posters, stickers, ...). + +Just ask on the [Devel mailing list][5] for more information. +The organizers of the German/Czech events are prepared with stickers, posters, table cloths, T-Shirts and a small magic lamp. + + +### Impressions of past events + + + + + [1]: https://chemnitzer.linux-tage.de/ + [2]: https://www.froscon.de/en/ + [3]: https://www.linuxdays.cz/ + [4]: https://openrheinruhr.de/ + [5]: /support/mailing-lists/#geany-devel Modified: page_content/about/filetypes.md 73 lines changed, 73 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,73 @@ +Supported Filetypes +========== + +Geany supports a variety of many different filestypes. Here is (not necessarily complete) list: + + - Abaqus + - Abc + - ActionScript + - Ada + - Arduino + - Asciidoc + - ASM + - Batch + - C + - C# + - C++ + - CAML + - Clojure + - CMake + - COBOL + - CoffeeScript + - Conf + - CSS + - CUDA + - Cython + - D + - Diff + - Docbook + - Erlang + - F77 + - Ferite + - Forth + - Fortran + - FreeBasic + - Genie + - GLSL + - Go + - Graphviz + - Haskell + - Haxe + - HTML + - Java + - Javascript + - JSON + - LaTeX + - Lisp + - Lua + - Make + - Markdown + - Matlab/Octave + - NSIS + - Objective-C + - Pascal + - Perl + - PHP + - Po + - PowerShell + - Python + - R + - reStructuredText + - Ruby + - Rust + - Scala + - Sh + - SQL + - Tcl + - Txt2tags + - Vala + - Verilog + - VHDL + - XML + - YAML + - Zephir Modified: page_content/about/geany.md 40 lines changed, 40 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,40 @@ +About Geany +========== + +Geany is a small and lightweight Integrated Development Environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME - Geany only requires the GTK2 runtime libraries. + +## Features + + - Syntax highlighting + - Code folding + - Symbol name auto-completion + - Construct completion/snippets + - Auto-closing of XML and HTML tags + - Call tips + - Many supported filetypes including C, Java, PHP, HTML, Python, Perl, Pascal ([full list][1]) + - Symbol lists + - Code navigation + - Build system to compile and execute your code + - Simple project management + - Plugin interface (see [Plugins][2]) + +Geany is known to run under Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, AIX v5.3, Solaris Express and Windows. More generally, it should run on every platform, which is supported by the GTK libraries. Only the Windows port of Geany is missing some features. + +The code is licensed under the terms of the [GNU General Public Licence][3]. + +## Geany's makers + + - Colomban Wendling (maintainer, developer) + - Nick Treleaven (developer) + - Matthew Brush (developer) + - Enrico Tröger (developer) + - Frank Lanitz (translation maintainer) + - Lex Trotman (regular contributor, support guru) + - Jiří Techet (regular contributor, MacOS expert) + - and many other contributors, translators and patch writers + +To contact all of us for general questions or feedback, please use the address <team (at) geany (dot) org>. This address will forward your email to all of us. + + [1]: /about/filetypes/ + [2]: /support/plugins/ + [3]: https://www.gnu.org/licenses/gpl-2.0.en.html Modified: page_content/about/privacy.md 41 lines changed, 41 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,41 @@ +Privacy Statement +----------------- + +Responsible for the protection of personal data is: +``` +Geany e.V. +Represented by Enrico Tröger +eMail: enrico [dot] troeger [at] uvena.de +PGP Key: 4579 90C8 6F91 F33D E05E BF1B CC03 633F 7009 90F2 +``` + +This website can be used without providing any personal data. + +This site does not use any kind of tracking, Google Analytics, Facebookpixel or similar. +Search queries on the page remain purely local on the server but generate a log entry. + + +## Server log files + +The website operator collects data about access to the site and stores it +as "server log files". The following data is logged: + +- Visited website +- Time of access +- Amount of data sent in bytes +- Source / reference from which you came to the page +- Used browser +- Used operating system +- Used IP address + +This data is only stored for error detection and debugging purposes. There is no evaluation or linkage of this data with other sources. +Server log files get deleted automatically after 60 days. + + +## Information, Blocking, Deletion + +You have the right to request information about all your personal data which we store, its origin, recipients and the purpose of data processing. + +Furthermore, you have the right to request rectification, blocking and deletion of all your personal data. + +For such requests a proof of identity is needed, best to send a PGP encrypted email to us, find address and PGP key further up on this page. Modified: page_content/about/reviews.md 19 lines changed, 19 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,19 @@ +
    +

    Do we really want this? For now, I just removed this page from the site.

    +

    Reviews

    +

    This page lists some reviews and articles about Geany we have found on the web. The newest articles are on top, the oldest on the bottom.

    +

    Geany – A Great Lightweight Code Editor For Linux

    +
    Reviewed on MakeUseOf.com - Cool Websites, Software and Internet Tips
    +

    Kaly wrote a nice review about Geany on makeUseOf.com

    +

    Geany - as good as IDEs get?

    +

    Tommy Brunn wrote an article about Geany on his blog BlastFromThePast.se. You can find it on http://www.blastfromthepast.se/blabbermouth/2009/10/geany-as-good-as-ides-get/.

    +

    How to develop websites on linux

    +

    The Smashing Magazine wrote an article about how to develop websites on Linux in August 2009. The article makes fair use of Geany. http://www.smashingmagazine.com/2009/08/28/how-to-develop-web-sites-on-linux/

    +

    100% CLEAN Award by Softpedia

    +
    100% CLEAN award granted by Softpedia
    +

    Geany 0.11 got the Softpedia 100% Clean Award. Daniel Voicu wrote a review of Geany 0.14 at Softpedia. It can be found at http://www.softpedia.com/reviews/linux/Geany--Review-84142.shtml

    +

    NoviceNotes article about Geany

    +

    Jeff Sabarese wrote an article about Geany on Windows. Have a look at http://novicenotes.com/2008/01/20/best-free-windows-php-ide-text-editor/.

    +

    Introduction into Geany on Ubuntu News

    +

    Ubuntu News wrote about Geany as a "Perfect Programming IDE" in a great descriptive way. http://www.ubuntunews.info/geany-perfect-programming-ide (thanks to Mateusz Mucha).

    +
    Modified: page_content/association.md 71 lines changed, 71 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,71 @@ +Geany e.V. - the registered association for the Geany project +================================================= + +## About + +The association "Geany e.V." is registered in Stendal, Germany and is intended to represent the Geany project. The main goal is to provide a legal entity for the Geany project and to handle donated money. + +There are no plans to direct the development of Geany itself from the association, this was, is and will be the job of the Geany core developers and the community. + +## Meetings + +#### Upcoming meetings + +* None planned + + +#### Past meetings + +##### Geany e.V. General Assembly 2018 +Date: 3rd November 2018 - 16:00 CET +Location: LVR-Industriemuseum, Oberhausen, Germany +Audience: association members +Agenda: + +* Election of the association board +* General report +* Financial report + +##### Geany e.V. General Assembly 2017 +Date: 4th November 2017 - 17:00 CET +Location: LVR-Industriemuseum, Oberhausen, Germany +Audience: association members +Agenda: + +* General report +* Financial report + +##### Founding of the association 2016 +Date: 3rd November 2016 - 16:00 CET +Location: LVR-Industriemuseum, Oberhausen, Germany +Agenda: + + * Found the association + * Election of the association board + + +## Members + +Currently, the board consists of Enrico Tröger, Frank Lanitz and Silvio Knizek. + +For privacy reasons, we do not list any other members than the board. + + +## Charter + +The charter of the association (Satzung) is available at: [satzung.pdf](/media/uploads/association/satzung.pdf "satzung.pdf") +The rules of order (Geschäftsordnung) are available at: [go.pdf](/media/uploads/association/go.pdf "go.pdf") + +Unfortunately, currently the charter and rules of order documents are available only in German. + + +## Contact + +For any questions or requests, feel free to contact any or all of the board members. + +Enrico Tröger - enrico [dot] troeger [at] uvena.de +Frank Lanitz - frank [at] lanitz [dot] info +Silvio Knizek - silvio [dot] knizek [at] gmx [dot] de + +For members communication, there is a mailing list at +https://lists.geany.org/cgi-bin/mailman/listinfo/association-members. Modified: page_content/contribute.md 15 lines changed, 15 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,15 @@ +Contribute +========= + +There are multiple ways to contribute to the Geany project: + +- [Supporting users][1] +- [Development][2] +- [Documentation][3] +- [Translate Geany][4] + + +[1]: /contribute/support/ +[2]: /contribute/development/ +[3]: /contribute/documentation/ +[4]: /contribute/translation/ Modified: page_content/contribute/development.md 61 lines changed, 61 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,61 @@ +Development +========== + +## How to get started + +Since you clicked the link to get here, you most likely are a developer with C/C++ knowledge and wonder how to start contributing to the Geany project? You will find a short introduction here on how to start. + +### Introduce yourself + +The first step is to introduce yourself so that we know you are there. Begin with subscribing to the [mailing lists][1] if you haven't done yet. Then write us a short mail to the [Geany Devel mailing list][2] and introduce yourself. We do not require any specific information about you. You decide what you will tell us. + +### Prepare for developing + +#### Read the HACKING file + +Before you begin hacking on Geany, you should have a look on the [HACKING][3] file. Important things about coding style and many more are written down there. + +#### Surf through bugs and feature requests + +There is a [bug tracker][4] which may contain bug reports or even feature requests which may already have a patch attached. To avoid redundant efforts, it's always a good idea to have a look first to see if there is already anything concerning the topic you want to work on. + +#### Surf through the mailing lists + +There are also mailing lists archives where you can find out if topics have already been discussed. It's a good idea, to have at least a quick look there too. You can find them on the [mailing lists page][5]. + +### Step in and dive into the Geany project + +There are a few different points where you can step in and begin developing and improving Geany. + +#### Fix bugs + +You can fix any bug you found in the [issue tracker][4] and either send a patch to the Geany-devel mailing list or attach the patch directly to the concerning bug. If you have an account om GitHub, you may also fork us and open a pull request accordingly. + +#### Add new features + +Take a feature you found on the issue tracker and decide if it is a feature which should be implemented in the Geany core or if it is better that it is implemented as a plugin. If you're not sure, you can discuss this on the Geany-devel mailing list. When you have decided to implement the feature in the Geany core, go ahead and clone or update the [current Git master of Geany][6], implement your feature and open a pull request on GitHub. + +#### Write a plugin + +Write your own plugin? Yes! +More information about the separate Geany-Plugins project can be found on the [plugins page][7]. + +If you're going to write a plugin it would be cool if you write your README file in restructuredText. It can automagically be used for the plugins.geany.org website then. + + +### Dive deeper + +When you like contributing to the Geany project and have fun with implementing things for Geany, you can even dive deeper. + +#### Fork us on GitHub + +You can find Geany on GitHub at https://github.com/geany. A repository for Geany-Plugins can also be found there. Feel free to anonymously clone the repositories, change the code, diff it and send us the patches or even better - if you have an account at GitHub - fork it there and open a pull request for your changes. + + + [1]: /support/mailing-lists/ + [2]: /support/mailing-lists/#geany-devel + [3]: /documentation/hacking/ + [4]: https://github.com/geany/geany/issues + [5]: /support/mailing-lists/ + [6]: /download/git/ + [7]: /support/plugins/ Modified: page_content/contribute/documentation.md 40 lines changed, 40 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,40 @@ +Documentation +============ + +## Introduce yourself as an author + +Subscribe to the [Geany Devel mailing list][1] and write a short mail to the list so that everyone knows you are there, and would like to contribute as an author for the documentation. + +## Prepare for your work + +Note that you will need several tools installed on your system. In particular these are: + + - GIT + - Python docutils + +The packages are named `git` and `python-docutils` on Debian and Fedora systems. + +## Writing Documentation + +### Check out current documentation from Git + +The documentation is included in the source distribution. Thus, most current documentation is available in Geany's Git repository. To make sure you have the most recent version, check out the master branch of Geany as described on the [Git page][2] and then change to the directory `doc` in the Geany source tree. + +### Edit geany.txt + +You will find a file called `geany.txt`, which is the basis of all documentation. It is written in [reStructuredText][3] (or "reST"). Feel free to improve this file as you like. To build the related HTML document to see what your changes look like, run: + + make geany.html + +in the `doc` directory to create or update the generated HTML documentation. + +### Publish your changes for review and inclusion + +If you are finished, just open a pull request on GitHub: https://github.com/geany/geany/pull/. + + + [1]: /support/mailing-lists/#geany-devel + [2]: /download/git/ + [3]: http://docutils.sourceforge.net/rst.html + [4]: https://geany.org/manual/dev/hacking.html#patches + [5]: https://github.com/geany/geany/pulls Modified: page_content/contribute/support.md 27 lines changed, 27 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,27 @@ +Support +====== + +## Supporting users + +There are different ways you can support Geany users. Yes, even supporting users is a contribution to the Geany project. + +### Geany-users mailing list + +You can subscribe to the [Geany Users mailing list][1] and answer questions, give hints to people who write there and so on. + +### IRC + +There are many people who join IRC and ask questions. You can join us on [#geany][2] on chat.freenode.net and help out answering questions there. + +### Bug Zapping + +You can also surf through the bugs reported at the [Github issue tracker][3] and see if you maybe can help users. Some issues reported are not actually bugs and maybe can be solved with your help. + +### Twitter + +Geany's twitter stream: https://twitter.com/GeanyIDE/ + + + [1]: /support/mailing-lists/ + [2]: http://irc://chat.freenode.net/geany%7C#geany + [3]: https://github.com/geany/geany/issues Modified: page_content/contribute/translation.md 43 lines changed, 43 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,43 @@ +Translate Geany and Geany-Plugins +============================= + +If you would like to translate Geany into another language, have a look at the [language statistics page][1] first to see if your desired language already exists. If it already exists, please read the Notes for updating translations section. Otherwise, get the Git version of Geany, change to the po directory and start the new translation with: + + msginit -l ll_CC -o ll.po -i geany.pot + +Fill in ll with the language code and CC with the country code. For example, to translate Geany into Italian you would type: + + msginit -l it_IT -o it.po -i geany.pot + +This will create a file it.po. This file can be opened with a text editor (e.g. Geany and its [PoHelper plugin][2] ;-)) or a graphical program like [PoEdit][3]. There are also several other GUI programs for working on translations. + +You don't need to modify the file `po/LINGUAS`, it is regenerated automatically on the next build. + +When you have finished editing the file, check the file with: + + msgfmt -c --check-accelerators=_ it.po + +Please take care of menu accelerators(strings containing a "\_"). The "\_" character should also be in your translation. It also would be nice if these accelerators are not used twice within a dialog or sub menu. + +When you have finished your work - which doesn't mean you finished the translation, you will not have to work alone - send the file to the [translation mailing list][4] or directly to [Frank Lanitz][5] and he will add the translation to Geany then. + +Alternatively, you are also welcome to open a pull request with your translation updates on https://github.com/geany/geany/tree/master/po. You can also edit and start the pull request online. + +It is a good idea to let any translator and Frank know before you start or while translating, because they can give you hints on translating and Frank can ensure that a translation is not already in progress. + +The instructions here can be used also for translating Geany-Plugins (https://plugins.geany.org) which are managed in a separate code repository at https://github.com/geany/geany-plugins. + +## Notes for adding or updating translations + +If you want to update an existing translation, please contact the [translation mailing list][4] and/or [Frank Lanitz][5] directly. He is supervising all translation issues and will contact the maintainer of the translation you want to update to avoid any conflicts. + +Alternatively, you are also welcome to open a pull request with your translation updates on https://github.com/geany/geany/tree/master/po. You can also edit and start the pull request online. + +Translation statistics: https://www.geany.org/contribute/translation/statistics/ + + + [1]: /contribute/translation/statistics/ + [2]: https://plugins.geany.org/pohelper.html + [3]: https://www.poedit.net/ + [4]: /support/mailing-lists/#geany-i18n + [5]: mailto:frank at frank.uvena.de Modified: page_content/contribute/translation/statistics.md 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,3 @@ +This is a dummy page. + +The actual content is sent from a custom view for the release notes. This page only exists for the site navigation. Modified: page_content/documentation.md 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1 @@ +empty on purpose Modified: page_content/documentation/faq.md 171 lines changed, 171 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,171 @@ +Frequently Asked Questions +==================== + +## Can I make Geany behave like Emacs/Vim? + +As its default, Geany uses the standard GTK+ keybindings that most desktop users are +familiar with. Although you can remap **most** keybindings to suit your taste, +Geany cannot currently fully emulate Emacs or Vim, nor is it currently a goal +of the core project developers to make it do so. + +And if really necessary, there is a Vim-mode plugin: https://plugins.geany.org/vimode.html + + +## Can Geany show me multiple files at the same time? + +Geany provides a tabbed main editor window, but does not support +split windows in the core. There is a Split Window plugin which +should work fine for viewing another document next to the main +editor notebook. You can also run several instances of Geany simultaneously. + + +## Does Geany have incremental search? + +Case-insensitive forward incremental search is via the `search field` in the toolbar. +For reverse incremental search, start a forward search then use your key for `Find Previous`. + + +## Can I add custom filetypes by creating a filetypes.foo configuration file? + +You can add a filetypes.Name.conf file with Geany 0.19 and use an existing +filetype's syntax highlighting and tag parsing. +See https://www.geany.org/manual/index.html#custom-filetypes. + + +## How do I add full filetype support for language Foo? + +Please see the [HACKING][1] document. + + +## Can I extend Geany myself? + +Yes! You can write your own plugins in C. You can also write Lua scripts +for Geany using the Lua plugin. See the [Plugins][2] page. +Also note the `Format->Send Selection` to command is useful for +piping text through a script/external program. + + +## How can I change the colors used for syntax highlighting? + +Geany reads the colors to use for syntax highlighting from filetype definition files. +Detailed information on how to find and edit these files can be found in the [manual][3]. + +There is a tool for configuring color schemes, and a set of +dark color schemes available can be found in the [Wiki][4]. + + +## The vertical scrollbar scrolls over the document and doesn't stop at the last line. What's wrong? + +For Geany 0.13 and 0.14, this is enabled by default and allows appending text with the +last lines drawn at the top of the view. +Since Geany 0.15, it is off by default and you can configure it in Geany's preferences dialog. + + +## How can I contribute to Geany? + +See [Contribute to Development][5]. + + +## Does Geany support editing files remotely through FTP or SSH? + +No, Geany doesn't support any remote file editing. But you can easily mount +remote filesystems through FTP, SSH or whatever with Fuse or LUFS. +This is even better because the remote filesystem will become available +for all your applications transparently. + +If you have GVfs (Gnome >= 2.22) you may already have a Fuse mountpoint +in `~/.gvfs/` which you can tell Geany to open remote files from, after +mounting the connection from a Gnome program such as nautilus. + +To avoid slow responsiveness, it is recommended to disable checking files +for changes to not query the file's modification time. To do so, open the +preferences dialog and set `Disk check timeout` in the Files tab to 0 which +will disable it at all. Since Geany 0.16 disk file changes are always disabled +for remote files, so there is no need to disable this setting with Geany 0.16. + + +## How can I change the language of the user interface? + +On Windows: Download https://download.geany.org/contrib/geany_english.bat +and put it into the `bin` subdirectory in the folder where you have Geany installed, +next to Geany.exe. Then open the file, edit the line `set LANG=C` and replace C +with your the language code of your locale (e.g. 'nl for Dutch, 'pt_BR' for +'Portuguese Brazilian'). Save the file and execute it. It should start Geany +with the desired language assuming there is an exising translation. +See also the [list of available translations][6]. + +On non-Windows systems: Simply start Geany like this: + +`LANG=C geany` + +and of course, change "C" to your language code (see above) or set +your locale specific environment variables accordingly. + + +## I get build errors after updating from Git, why? + +It's possible it's a bug, but first try this: + +``` + make distclean + ./autogen.sh +``` + +If there are still errors, contact the mailing list. + + +## Since Geany 0.16, GTK/GLib symbol completion is broken, why? + +The symbol completion data for GTK/GLib symbols are just not in the default distribution anymore. +Instead they can be downloaded separately besides other tag files. + +For details about this change and download information, see [GTK symbol +completion data removed from Geany 0.16][7]. + + +## How can I use urxvt or konsole as terminal application when executing files? + +Open the preferences tab, Tools tab and enter the following +command in the field Terminal: + + urxvt -e sh -c + + or + + konsole -e sh -c + + or (in case the above failed) + + konsole --workdir . -e sh geany_run_script.sh + + +## I changed my project/general indent prefs but my document still uses the old settings! + +The project or general prefs for indentation only apply when opening new documents, +because documents in your current session may have different overridden +indent settings - i.e. you might want one document indented with tabs whilst +another is open with spaces indentation. See the [manual][8] for details. + + +## How do you pronounce Geany? + +`ʒeːniː` + +(pronounced like "genie") But of course, it's up to you how you pronounce it. + + +## How do I get my question answered? + +Please first have a look at our [comprehensive manual][3]. +If that doesn't answer your question, the quickest and best way is to ask on the [mailing list][9]. + + +[1]: /documentation/hacking/ +[2]: /support/plugins/ +[3]: /documentation/manual/ +[4]: https://wiki.geany.org/ +[5]: /contribute/development/ +[6]: /contribute/translation/statistics/ +[7]: /news/gtk-symbol-completion-data-removed-from-geany-016/ +[8]: https://www.geany.org/manual/index.html#indentation +[9]: /support/mailing-lists/ Modified: page_content/documentation/hacking.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +Hacking +========== + +There is a file called HACKING in the source distribution of Geany. You can find some basic information there on how to write code for the Geany project. The HTML versions of the HACKING file distributed with Geany can be found here: + +If you are working from recent Git, see the development version (updated nightly): +https://geany.org/manual/dev/hacking.html + +Otherwise the latest release version is here: +https://geany.org/manual/hacking.html Modified: page_content/documentation/manual.md 31 lines changed, 31 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,31 @@ +Manual +====== + +## Current Release + +Geany's documentation is available in different formats. + +HTML and text versions of the documentation are installed when you install Geany. Choose the `Help->Help` menu item to view the HTML version. +The manual will be opened in a browser window (unless the browser command is not set correctly in the Tools tab of the Preferences dialog). + +You can also read the manual online: + +[Current Manual in HTML format][1] + +[Current Manual in TXT format][2] + + +## Development Version + +This documentation contains the most recent changes in Git, +and will probably include some features not in the current release. + +[Manual in HTML format][3] (updated nightly from Git) + +[Manual in TXT format][4] (updated nightly from Git) + + +[1]: https://www.geany.org/manual/current/index.html +[2]: https://www.geany.org/manual/current/geany.txt +[3]: https://www.geany.org/manual/dev/index.html +[4]: https://www.geany.org/manual/dev/geany.txt Modified: page_content/documentation/releasenotes.md 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,3 @@ +This is a dummy page. + +The actual content is sent from a custom view for the release notes. This page only exists for the site navigation. Modified: page_content/documentation/screenshots.md 4 lines changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,4 @@ +Screenshots +========== + +Various screenshots of Geany: Modified: page_content/documentation/todo.md 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,3 @@ +This is a dummy page. + +The actual content is sent from a custom view for the release notes. This page only exists for the site navigation. Modified: page_content/download.md 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1 @@ +empty on purpose Modified: page_content/download/git.md 69 lines changed, 69 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,69 @@ +Git Repository +========== + +We use Git(https://git-scm.com/) for version control when developing Geany. +You can use it to test the latest source code, even between releases. + +To check out Geany make sure you have the git package installed on your system. +Then checkout either the [GitHub repository][1]: + + git clone git://github.com/geany/geany.git geany + +or the [geany.org mirror][2]: + + git clone http://git.geany.org/git/geany geany + +This creates a subdirectory "geany" and puts all files in it. + +To build with Autotools, change to that subdirectory and run: + + ./autogen.sh + +This will create and run the configure script for you. +You must have installed various GNU Autotools packages - if not, +the script will print out what you need to install. +In particular you need at least Autoconf version 2.60 and Automake version 1.7 or later. + +For more details, check [the manual][3]. + + +## Make Problems + +When updating and rebuilding, Autotools can sometimes fail to regenerate the Makefiles correctly. You may need to run: + + make distclean + ./autogen.sh + + +## Git Commands + +If you find any problems with the Git version, please tell us the revision number. + +- Run `git rev-parse --short HEAD` to find what revision you checked out +- Run `git pull` to update to the latest revision +- Run `git diff` to see local modifications - see [Hacking][4] for how to make patches + + +See http://schacon.github.com/git/gittutorial.html and http://www.git-scm.com/documentation for more information. + + +## Web-Based Interface + +There is also a web-based interface to the Git repository, +on which you can browse the code and view each file. + +https://github.com/geany/geany/ + + +## Nightly Tarballs + +There are also nightly tarballs available. +These tarballs are generated each night from the current Git version. + +You can download them at https://download.geany.org/ . + + +[1]: https://github.com/geany/geany/ +[2]: https://git.geany.org/geany/ +[3]: https://www.geany.org/manual/index.html#installation +[4]: /documentation/hacking/ Modified: page_content/download/nightly-builds.md 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,3 @@ +Dummy page just for navigation + +The real content is rendered dynamically on access. Modified: page_content/download/releases.md 36 lines changed, 36 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,36 @@ +Releases +========== + +Distribution | File | GPG Signature | GPG Key +----------------- | ------------- | ------------- | ------------- +Source (tar.gz) | [geany-{{ geany_latest_version.version }}.tar.gz](https://download.geany.org/geany-{{ geany_latest_version.version }}.tar.gz) | [geany-{{ geany_latest_version.version }}.tar.gz.sig](https://download.geany.org/geany-{{ geany_latest_version.version }}.tar.gz.sig) ([Instructions][4]) | [colombanw-pubkey.txt][1] +Source (tar.bz2) | [geany-{{ geany_latest_version.version }}.tar.bz2](https://download.geany.org/geany-{{ geany_latest_version.version }}.tar.bz2) | [geany-{{ geany_latest_version.version }}.tar.bz2.sig](https://download.geany.org/geany-{{ geany_latest_version.version }}.tar.bz2.sig) ([Instructions][4]) | [colombanw-pubkey.txt][1] +Windows | [geany-{{ geany_latest_version.version }}_setup.exe](https://download.geany.org/geany-{{ geany_latest_version.version }}_setup.exe) | [geany-{{ geany_latest_version.version }}_setup.exe.sig](https://download.geany.org/geany-{{ geany_latest_version.version }}_setup.exe.sig) ([Instructions][4]) | [eht16-pubkey.txt][2] +Mac OSX | [geany-{{ geany_latest_version.version }}_osx.dmg](https://download.geany.org/geany-{{ geany_latest_version.version }}_osx.dmg) | - | - + +[Release notes for Geany {{ geany_latest_version.version }}][3] + + +## Plugins + +Geany has a few plugins included (Classbuilder, Export, Filebrowser, HTML Characters, Save Actions and Split Window) +but many more plugins are available in the [Geany-Plugins][5] project. + +For more details, see the [plugin page][5]. + + +## Older versions + +For older versions, please see https://download.geany.org/. + +- Note: Tarballs before 1.34 used another GPG Key: https://download.geany.org/eht16-pubkey_old.txt +- Note: Tarballs before 1.32 used another GPG Key: https://download.geany.org/colombanw-pubkey.txt +- Note: Tarballs before 1.25 used another GPG Key: https://download.geany.org/colombanw-pubkey-pre-1.25.txt +- Note: Tarballs before 0.21 used another GPG Key: https://download.geany.org/ntrel-pubkey.txt +- Note: Tarballs before 0.20 used another GPG Key: https://download.geany.org/eht16-pubkey_old.txt + +[1]: https://download.geany.org/colombanw-pubkey.txt +[2]: https://download.geany.org/eht16-pubkey.txt +[3]: /documentation/releasenotes/ +[4]: /support/verify-gpg-signature/ +[5]: /support/plugins/ Modified: page_content/download/third-party.md 75 lines changed, 75 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,75 @@ +Third-Party Packages +========== + + +## Debian + +Geany is available through the official Debian archives. + +``` +apt-get install geany +``` + +For newer versions in the Oldstable and Stable releases, check http://backports.debian.org for updated packages. + + +## Ubuntu + +Geany is available through the official Ubuntu archives (Universe section). + +``` +apt-get install geany +``` + +You might find newer versions in the Ubuntu Geany PPA at https://launchpad.net/~geany-dev/+archive/ppa. + + +## Fedora + +Geany can be found in the Everything repository for recent Fedora releases (or Fedora Extras repository for Fedora Core 6 and earlier). + +``` +yum install geany +``` + +You can also install the Geany Plugins with yum install geany-plugins-* + + +## Gentoo + +Geany is included in Gentoo Portage, so just install it with: + +``` +emerge -av geany +``` + + +## OpenSUSE + +You can install Geany on OpenSUSE using the normal package installation methods. + + +## Arch Linux + +Packages for Geany and Geany-Plugins for Arch Linux are available in the +Community repository, so you can install it like any other package: + +``` +pacman -S geany +``` + +## FreeBSD / NetBSD / OpenBSD + +Find the Geany package in the mentioned BSD variants in `devel/geany`. + + +## Geany Portable for Windows (portableapps.com) + +There is a portable version of Geany by Oliver Krystal to carry on your USB stick and use on any Windows computer. + +http://portableapps.com/apps/development/geany_portable + + +## Find your package + +See https://pkgs.org/download/geany for even more available packages. Modified: page_content/fake.md 5 lines changed, 5 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,5 @@ +General purpose fake/dumy page. + +Just leave it as it is. + +This page is used as a dummy for various non-CMS pages like pastebin.geany.org and similars. Modified: page_content/support.md 13 lines changed, 13 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,13 @@ +Support +========== + +There are multiple ways to get support on using Geany and/or ask questions: + +- [Mailing Lists][1] +- [IRC (chat)][2] +- [Issue tracker / Bugs][3] + + +[1]: /support/mailing-lists/ +[2]: /support/irc/ +[3]: /support/bugs/ Modified: page_content/support/bugs.md 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,63 @@ +Bugs and Features +========== + +If you think you found a bug in Geany or if you have a feature to request, please file bugs at the Github issue tracker(see below). +You can also feel free to subscribe and write to our [mailing list][1]. + +### Github issue tracker + +The issue tracker can be used for bugs as well as feature requests: + +https://github.com/geany/geany/issues + +Sometimes a bug is not caused by Geany itself but by a plugin. +If you know or assume it might be a plugin, please refer to the Geany-Plugins project for reporting: + +https://github.com/geany/geany-plugins/issues + + +### Bug reports + +Please try to give us reliable instructions to reproduce the bug, so we can diagnose the cause. We also need: + + - The version number of Geany + - The version number of GTK+ (can be printed with `geany -V`) + - Your OS details + - The filetype the bug occurred with (if applicable) + +### Other useful information + +Geany prints useful information on the command-line when run with the `-v` switch. +This can be useful to diagnose a bug. + +Sometimes you might find a bug that only occurs with a certain configuration - in this case it can be helpful if you send us your `~/.geany/geany.conf` and any other concerned configuration file (where `~` is your home directory). + +### Getting a backtrace + +If Geany crashed, it would also help us a lot if you can give us a backtrace made using `gdb`: + + - Run `gdb /path/to/geany` (Note: the usual path can be found by running `which geany`) + - Type `run -v` (followed by any command-line arguments you used with Geany when the bug occurred) in the `gdb` prompt + - Reproduce the segfault - it will be caught by `gdb` + - Type `bt` and press enter if prompted + +Send us everything from the `run` command - thanks. + +In some cases the backtrace may not be that useful. +This mostly happens when Geany was built without debug information, useful information was removed by using `-fomit-frame-pointer` or the binary was stripped (but it may still be worth sending it to us). + +In this case it would be great if you could either: + + - Get a backtrace from a debug package of Geany (if your distro has one) or + - Get a backtrace from a fresh Geany build with appropriate debug flags: + + * `make clean` + * `./configure CFLAGS=-g` + * Then build Geany with `make`, etc. + +This also prevents optimization flags (usually enabled e.g. `-O2`) from inlining static functions where the bug might be hiding. + +Note: a default source configure with gcc should include the `-g` debug flag, but on some systems CFLAGS is already set either by autoconf or in the shell environment, so it may need overriding. + + + [1]: /support/mailing-lists/ Modified: page_content/support/irc.md 12 lines changed, 12 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,12 @@ +IRC chat +========== + +If you have a problem, a question or anything else to talk about, join our IRC channel irc://chat.freenode.net/geany|#geany on chat.freenode.net. + +**Due to spam, as of 2018-08-01, you need to be registered and identified** with Freenode's account service to speak in geany-affiliated channels. + +Follow freenode's instructions: . + +IRC channel logs: https://irc.geany.org/logs/. + +IRC channel stats: https://irc.geany.org/stats/. Modified: page_content/support/mailing-lists.md 110 lines changed, 110 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,110 @@ +Mailing Lists +========== + +For announcements, general discussing, coordinating development and more, we use mailing lists (read about at [Wikipedia][1]). + +[TOC] + +* _Note: You must subscribe to a list before you can send mail to it_ + + +### Geany Users + +The Geany Users mailing list is for all questions and problems about Geany. +For bug reports, please see [Bugs](https://www.geany.org/Support/Bugs). + +To subscribe just send a blank mail to `users-subscribe at lists.geany.org` or visit the +[Geany-Users list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/users). + +Archives are available from: + + - [http://lists.geany.org/pipermail/users/](http://lists.geany.org/pipermail/users/) + - [https://www.mail-archive.com/users at lists.geany.org/](https://www.mail-archive.com/users at lists.geany.org/) (searchable) + + +### Geany-I18n + +The Geany-I18n list is for all translation related issues. Any active translator of Geany should subscribe to this list. + +To subscribe just send a blank mail to `i18n-subscribe at lists.geany.org` or visit the +[Geany-I18n list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/i18n). + +Archives are available from: + + - [http://lists.geany.org/pipermail/i18n](http://lists.geany.org/pipermail/i18n) + - [https://www.mail-archive.com/i18n at lists.geany.org/](https://www.mail-archive.com/i18n at lists.geany.org/) (searchable) + + +### Geany-Devel + +The Geany-Devel list is for discussing development of Geany and Plugins. + +To subscribe just send a blank mail to `devel-subscribe at lists.geany.org` or visit the +[Geany-Devel list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/devel). + +Archives are available from: + + - [http://lists.geany.org/pipermail/devel](http://lists.geany.org/pipermail/devel) + - [https://www.mail-archive.com/devel at lists.geany.org/](https://www.mail-archive.com/devel at lists.geany.org/) (searchable) + + +### Geany-Commits + +This is the GIT commit mailing list for Geany. +It is a read only mailing list where any GIT commits related to Geany are posted. + +To subscribe just send a blank mail to `commits-subscribe at lists.geany.org` or visit the +[Geany commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/commits). + +The archive of Geany-Commits can be found at +[http://lists.geany.org/pipermail/commits/](http://lists.geany.org/pipermail/commits/). + + +### Geany-Newsletter-Commits + +This is the commit mailing list for the Geany Newsletter GIT repository. +It is a read only mailing list where any GIT commits related to Geany's Newsletter are posted. + +To subscribe just send a blank mail to `newsletter-commits-subscribe at lists.geany.org` or visit the +[Geany Newsletter commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/newsletter-commits). + +The archive of Geany-newsletter-commits can be found at +[http://lists.geany.org/pipermail/newsletter-commits/](http://lists.geany.org/pipermail/newsletter-commits/). + + +### Geany-Plugins-Commits + +Geany-Plugins-Commits is a read only mailing list where any subversion commit of the geany-plugins project is posted. + +To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the +[Geany-Plugins-Commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-commits). + +The archive of Geany-plugins-commits can be found at +[http://lists.geany.org/pipermail/plugins-commits/](http://lists.geany.org/pipermail/plugins-commits/). + + +### Geany-Plugins-Tracker + +Geany-Plugins-Tracker is a read only mailing list where all Sourceforge tracker notifications of +the geany-plugins project are posted. + +To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the +[Geany-Plugins-Tracker list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-tracker). + +The archive of Geany-plugins-tracker can be found at +[http://lists.geany.org/pipermail/plugins-tracker/](http://lists.geany.org/pipermail/plugins-tracker/). + + +### Github-Comments-Archive + +Github-Comments-Archive is a read only mailing list where all Github comments and other +notifications are archived of all repositories of the Geany Github organization. +This is because comments in Github pull requests/commits are sometimes removed when commit are squashed or similar. + +It's probably not very useful to subscribe to this list but the archives can be found at +[http://lists.geany.org/pipermail/github-comments](http://lists.geany.org/pipermail/github-comments). + +List page: [https://lists.geany.org/cgi-bin/mailman/listinfo/github-comments](https://lists.geany.org/cgi-bin/mailman/listinfo/github-comments) + + + [1]: https://en.wikipedia.org/wiki/Electronic_mailing_list Modified: page_content/support/plugins.md 34 lines changed, 34 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,34 @@ +Geany Plugins +========== + +Geany has a plugin system which allows to get more features into Geany and developers can easily add new features and/or improve existing ones. + +### Plugins shipped with Geany: + + - Classbuilder - Creates source files for new class types + - Export - Exports the current file into different formats + - Filebrowser - Adds a file browser tab to the sidebar + - HTML Characters - Inserts HTML character entities like '&' + - Save Actions - Provides different actions related to saving files (autosave, instantsave, backupcopy) + - Split Window - Splits the editor view into two windows + +### The Geany-Plugins project + +The Geany-Plugins project is a combined release for each matching Geany release. +It includes a huge number of plugins for different purposes. +Please have a look at https://plugins.geany.org/ for more information. + +You can file bugs and request features for the Geany-Plugins project at https://github.com/geany/geany-plugins/issues. +The source code and more information can be found on https://github.com/geany/geany-plugins. + +### Other Plugins + +If you wrote a plugin and it should be listed here, please email the project admins. + + +### Developer Information + +The Plugin API documentation is currently incomplete, but already contains useful information. Please read the [HACKING][1] file for instructions on how to generate it and any related information. The generated API documentation can also be viewed online at http://www.geany.org/manual/reference/. In case of any questions, feel free to ask us on the mailing list. + + + [1]: https://raw.github.com/geany/geany/master/HACKING Modified: page_content/support/verify-gpg-signature.md 30 lines changed, 30 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,30 @@ +Verifying GPG signatures of Geany and Geany-Plugins releases +========== + +First, you need to import the public GPG key used to sign the packages. You can download the used public key from: http://download.geany.org/colombanw-pubkey.txt + +To import the key use: +```Bash +gpg --import < colombanw-pubkey.txt +``` + +To actually verify the downloaded archive, use one of the following commands according to the archive you have downloaded: + +For tar.bz2: +```Bash +gpg --verify geany-1.34.tar.bz2.sig geany-1.34.tar.bz2 +``` + +For tar.gz: +```Bash +gpg --verify geany-1.34.tar.gz.sig geany-1.34.tar.gz +``` + +The command's output should state something like "Good signature" and should return with an exit code of 0. If you get another exit code, something went wrong. + +A complete example: +```Bash +wget http://download.geany.org/colombanw-pubkey.txt +gpg --import < colombanw-pubkey.txt +gpg --verify geany-1.34.tar.bz2.sig geany-1.34.tar.bz2``` +``` Modified: requirements.txt 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -7,6 +7,7 @@ django-honeypot django-log-request-id django-memcache-status mezzanine-pagedown +mezzanine-sync-pages pygments pylibmc python-logstash-async -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 2 21:38:01 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 02 Jun 2019 21:38:01 -0000 Subject: [geany/www.geany.org] 33d7f6: Add database dumps Message-ID: <20190602213957.3B9B21EB04B@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 02 Jun 2019 21:38:01 UTC Commit: 33d7f6de839b5023aade5722592b292e79deac3c https://github.com/geany/www.geany.org/commit/33d7f6de839b5023aade5722592b292e79deac3c Log Message: ----------- Add database dumps Mostly useful for local development. Sensitive information are stripped out. Modified Paths: -------------- database.json database_nightlybuilds.json Modified: database.json 4378 lines changed, 4378 insertions(+), 0 deletions(-) =================================================================== No diff available, check online Modified: database_nightlybuilds.json 418 lines changed, 418 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,418 @@ +[ + [ + { + "model": "nightlybuilds.nightlybuild", + "pk": 31564, + "fields": { + "revision": "95c0c06", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": "build_gtk224_geany_stderr.log", + "nightly_build_target": 15, + "filename": null, + "build_date": "2019-05-28T02:19:18Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (env: GTK 2.24)", + "log_stdout": "build_gtk224_geany.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31565, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": "build_gtk224_plugins_stderr.log", + "nightly_build_target": 16, + "filename": null, + "build_date": "2019-05-28T02:23:33Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (env: GTK 2.24)", + "log_stdout": "build_gtk224_plugins.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31566, + "fields": { + "revision": "95c0c06", + "glib_version": "2.52.2", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": "build_win32_geany_stderr.log", + "nightly_build_target": 13, + "filename": "geany_win32_nightly.zip", + "build_date": "2019-05-28T02:25:41Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (env: Win32, cross-compile)", + "log_stdout": "build_win32_geany.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31567, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.52.2", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": "build_win32_plugins_stderr.log", + "nightly_build_target": 14, + "filename": "geany_win32_nightly.zip", + "build_date": "2019-05-28T02:29:29Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (env: Win32, cross-compile)", + "log_stdout": "build_win32_plugins.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31568, + "fields": { + "revision": "95c0c06", + "glib_version": "2.58.3", + "gtk_version": "2.24.32", + "status": false, + "log_stderr": null, + "nightly_build_target": 9, + "filename": null, + "build_date": "2019-05-28T02:34:39Z", + "compiler_version": "8", + "build_host": "buildbox.geany.org (cowbuilder: sid-i386)", + "log_stdout": "geany_1.34.1-1+20190528git95c0c06-1_sid-i386.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31569, + "fields": { + "revision": "95c0c06", + "glib_version": "2.58.3", + "gtk_version": "2.24.32", + "status": false, + "log_stderr": null, + "nightly_build_target": 11, + "filename": null, + "build_date": "2019-05-28T02:39:15Z", + "compiler_version": "8", + "build_host": "buildbox.geany.org (cowbuilder: sid-amd64)", + "log_stdout": "geany_1.34.1-1+20190528git95c0c06-1_sid-amd64.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31570, + "fields": { + "revision": "95c0c06", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": null, + "nightly_build_target": 17, + "filename": null, + "build_date": "2019-05-28T02:44:20Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (cowbuilder: stretch-i386)", + "log_stdout": "geany_1.34.1-1+20190528git95c0c06-1_stretch-i386.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31571, + "fields": { + "revision": "95c0c06", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": null, + "nightly_build_target": 18, + "filename": null, + "build_date": "2019-05-28T02:49:17Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (cowbuilder: stretch-amd64)", + "log_stdout": "geany_1.34.1-1+20190528git95c0c06-1_stretch-amd64.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31572, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": null, + "nightly_build_target": 19, + "filename": null, + "build_date": "2019-05-28T02:56:44Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (cowbuilder: stretch-i386)", + "log_stdout": "geany-plugins_1.34-1+20190528git68cb7d2-1_stretch-i386.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31573, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.50.3", + "gtk_version": "2.24.31", + "status": false, + "log_stderr": null, + "nightly_build_target": 20, + "filename": null, + "build_date": "2019-05-28T03:04:01Z", + "compiler_version": "6.3.0", + "build_host": "buildbox.geany.org (cowbuilder: stretch-amd64)", + "log_stdout": "geany-plugins_1.34-1+20190528git68cb7d2-1_stretch-amd64.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31574, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.58.3", + "gtk_version": "2.24.32", + "status": false, + "log_stderr": null, + "nightly_build_target": 10, + "filename": null, + "build_date": "2019-05-28T03:10:51Z", + "compiler_version": "8", + "build_host": "buildbox.geany.org (cowbuilder: sid-i386)", + "log_stdout": "geany-plugins_1.34-1+20190528git68cb7d2-1_sid-i386.log" + } + }, + { + "model": "nightlybuilds.nightlybuild", + "pk": 31575, + "fields": { + "revision": "68cb7d2", + "glib_version": "2.58.3", + "gtk_version": "2.24.32", + "status": false, + "log_stderr": null, + "nightly_build_target": 12, + "filename": null, + "build_date": "2019-05-28T03:17:52Z", + "compiler_version": "8", + "build_host": "buildbox.geany.org (cowbuilder: sid-amd64)", + "log_stdout": "geany-plugins_1.34-1+20190528git68cb7d2-1_sid-amd64.log" + } + } + ], + [ + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 1, + "fields": { + "arch": "i686", + "project": "geany", + "identifier": "archlinux32_geany", + "last_nightly_build": 25917, + "name": "ArchLinux", + "folder": "archlinux", + "active": false + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 2, + "fields": { + "arch": "i686", + "project": "plugins", + "identifier": "archlinux32_plugins", + "last_nightly_build": 25918, + "name": "ArchLinux", + "folder": "archlinux", + "active": false + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 3, + "fields": { + "arch": "x86_64", + "project": "geany", + "identifier": "archlinux64_geany", + "last_nightly_build": 25919, + "name": "ArchLinux", + "folder": "archlinux", + "active": false + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 4, + "fields": { + "arch": "x86_64", + "project": "plugins", + "identifier": "archlinux64_plugins", + "last_nightly_build": 25920, + "name": "ArchLinux", + "folder": "archlinux", + "active": false + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 9, + "fields": { + "arch": "i386", + "project": "geany", + "identifier": "deb32_sid_geany", + "last_nightly_build": 31568, + "name": "Debian Unstable (Sid)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 10, + "fields": { + "arch": "i386", + "project": "plugins", + "identifier": "deb32_sid_plugins", + "last_nightly_build": 31574, + "name": "Debian Unstable (Sid)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 11, + "fields": { + "arch": "amd64", + "project": "geany", + "identifier": "deb64_sid_geany", + "last_nightly_build": 31569, + "name": "Debian Unstable (Sid)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 12, + "fields": { + "arch": "amd64", + "project": "plugins", + "identifier": "deb64_sid_plugins", + "last_nightly_build": 31575, + "name": "Debian Unstable (Sid)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 13, + "fields": { + "arch": "i686", + "project": "geany", + "identifier": "win32_geany", + "last_nightly_build": 31566, + "name": "Windows", + "folder": "win32", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 14, + "fields": { + "arch": "i686", + "project": "plugins", + "identifier": "win32_plugins", + "last_nightly_build": 31567, + "name": "Windows", + "folder": "win32", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 15, + "fields": { + "arch": "amd64", + "project": "geany", + "identifier": "gtk224_geany", + "last_nightly_build": 31564, + "name": "Linux GTK 2.24 Test", + "folder": "misc", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 16, + "fields": { + "arch": "amd64", + "project": "plugins", + "identifier": "gtk224_plugins", + "last_nightly_build": 31565, + "name": "Linux GTK 2.24 Test", + "folder": "misc", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 17, + "fields": { + "arch": "i386", + "project": "geany", + "identifier": "deb32_stretch_geany", + "last_nightly_build": 31570, + "name": "Debian Stable (Stretch)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 18, + "fields": { + "arch": "amd64", + "project": "geany", + "identifier": "deb64_stretch_geany", + "last_nightly_build": 31571, + "name": "Debian Stable (Stretch)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 19, + "fields": { + "arch": "i386", + "project": "plugins", + "identifier": "deb32_stretch_plugins", + "last_nightly_build": 31572, + "name": "Debian Stable (Stretch)", + "folder": "debian", + "active": true + } + }, + { + "model": "nightlybuilds.nightlybuildtarget", + "pk": 20, + "fields": { + "arch": "amd64", + "project": "plugins", + "identifier": "deb64_stretch_plugins", + "last_nightly_build": 31573, + "name": "Debian Stable (Stretch)", + "folder": "debian", + "active": true + } + } + ] +] \ No newline at end of file -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 2 21:32:56 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 02 Jun 2019 21:32:56 -0000 Subject: [geany/www.geany.org] 3e5b1c: Add exclude for "mezzanine_sync_pages" in "dump_database" command Message-ID: <20190602213955.8DEE41EB00D@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 02 Jun 2019 21:32:56 UTC Commit: 3e5b1cc1ca822dbe15f0b4fd8676dbcd8c14bf72 https://github.com/geany/www.geany.org/commit/3e5b1cc1ca822dbe15f0b4fd8676dbcd8c14bf72 Log Message: ----------- Add exclude for "mezzanine_sync_pages" in "dump_database" command Modified Paths: -------------- geany/management/commands/dump_database.py Modified: geany/management/commands/dump_database.py 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -41,6 +41,7 @@ def _dump_main_database(self): '--exclude', 'sessions.session', '--exclude', 'admin.logentry', '--exclude', 'pastebin.snippet', + '--exclude', 'mezzanine_sync_pages.mezzaninesyncpages', '--indent', '2', '--output', 'database.json') -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 3 19:03:23 2019 From: git-noreply at xxxxx (=?utf-8?q?Frank_Lanitz?=) Date: Mon, 03 Jun 2019 19:03:23 -0000 Subject: [geany/geany] b9ef19: Update of Swedish translation Message-ID: <20190603190336.03D351EB060@mail.geany.org> Branch: refs/heads/master Author: Frank Lanitz Committer: Frank Lanitz Date: Mon, 03 Jun 2019 19:03:23 UTC Commit: b9ef191c2a0b7a49ee92093ff095a86e62af2821 https://github.com/geany/geany/commit/b9ef191c2a0b7a49ee92093ff095a86e62af2821 Log Message: ----------- Update of Swedish translation Modified Paths: -------------- po/sv.po Modified: po/sv.po 286 lines changed, 148 insertions(+), 138 deletions(-) =================================================================== @@ -1,14 +1,14 @@ # Swedish translations for geany package. -# Copyright (C) 2006 The Geany contributors. +# Copyright (C) 2006-2019 The Geany contributors. # This file is distributed under the same license as the geany package. # -# Tony Mattsson , 2007 - 2018 +# Tony Mattsson , 2007 - 2019 msgid "" msgstr "" -"Project-Id-Version: Geany 1.34\n" +"Project-Id-Version: Geany 1.35\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-15 17:13+0200\n" -"PO-Revision-Date: 2018-12-10 15:42+0100\n" +"POT-Creation-Date: 2019-06-03 02:36+0000\n" +"PO-Revision-Date: 2019-06-03 09:55+0200\n" "Last-Translator: Tony Mattsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.2.3\n" #: ../geany.desktop.in.h:1 ../data/geany.glade.h:343 msgid "Geany" @@ -107,11 +107,11 @@ msgstr "Sök" msgid "Open Selected F_ile" msgstr "Öppna vald fil" -#: ../data/geany.glade.h:19 ../src/symbols.c:2615 +#: ../data/geany.glade.h:19 ../src/symbols.c:2618 msgid "Find _Usage" msgstr "Visa användning" -#: ../data/geany.glade.h:20 ../src/symbols.c:2620 +#: ../data/geany.glade.h:20 ../src/symbols.c:2623 msgid "Find _Document Usage" msgstr "Visa dokumentets användning" @@ -1776,7 +1776,7 @@ msgstr "Sök nästa" msgid "Find _Previous" msgstr "Sök föregående" -#: ../data/geany.glade.h:381 ../src/symbols.c:2625 +#: ../data/geany.glade.h:381 ../src/symbols.c:2628 msgid "Find in F_iles..." msgstr "Sök i filer..." @@ -2227,69 +2227,71 @@ msgid "" "Copyright (c) 2005\n" "The Geany contributors" msgstr "" +"Upphovsrättsskyddad (c) 2005\n" +"Geanys skapare" -#: ../src/about.c:169 +#: ../src/about.c:170 msgid "About Geany" msgstr "Om Geany" -#: ../src/about.c:213 +#: ../src/about.c:214 msgid "A fast and lightweight IDE" msgstr "Ett snabbt och lättviktigt IDE" -#: ../src/about.c:235 +#: ../src/about.c:236 #, c-format msgid "(built on or after %s)" msgstr "(byggd på eller efter %s)" #. gtk_container_add(GTK_CONTAINER(info_box), cop_label); -#: ../src/about.c:267 +#: ../src/about.c:268 msgid "Info" msgstr "Info" -#: ../src/about.c:283 +#: ../src/about.c:284 msgid "Developers" msgstr "Utvecklare" -#: ../src/about.c:290 +#: ../src/about.c:291 msgid "maintainer" msgstr "ansvarig" -#: ../src/about.c:298 ../src/about.c:306 ../src/about.c:314 +#: ../src/about.c:299 ../src/about.c:307 ../src/about.c:315 msgid "developer" msgstr "utvecklare" -#: ../src/about.c:322 +#: ../src/about.c:323 msgid "translation maintainer" msgstr "ansvarig för översättningar" -#: ../src/about.c:331 +#: ../src/about.c:332 msgid "Translators" msgstr "Översättare" -#: ../src/about.c:351 +#: ../src/about.c:352 msgid "Previous Translators" msgstr "Tidigare översättare" -#: ../src/about.c:372 +#: ../src/about.c:373 msgid "Contributors" msgstr "Medarbetare" -#: ../src/about.c:382 +#: ../src/about.c:383 #, c-format msgid "" "Some of the many contributors (for a more detailed list, see the file %s):" msgstr "" "Några av de många bidragsgivarna (för en komplett lista, läs filen %s):" -#: ../src/about.c:408 +#: ../src/about.c:409 msgid "Credits" msgstr "Tack till" -#: ../src/about.c:425 +#: ../src/about.c:426 msgid "License" msgstr "Licens" -#: ../src/about.c:434 +#: ../src/about.c:435 msgid "" "License text could not be found, please visit http://www.gnu.org/licenses/" "gpl-2.0.txt to view it online." @@ -2402,12 +2404,12 @@ msgstr "Inga fler byggfel." msgid "Set menu item label" msgstr "Ange rubrik för meny" -#: ../src/build.c:1785 ../src/symbols.c:520 ../src/tools.c:396 +#: ../src/build.c:1785 ../src/symbols.c:522 ../src/tools.c:396 msgid "Label" msgstr "Etikett" #. command column, holding status and command display -#: ../src/build.c:1786 ../src/symbols.c:515 ../src/tools.c:381 +#: ../src/build.c:1786 ../src/symbols.c:517 ../src/tools.c:381 msgid "Command" msgstr "Kommando" @@ -2682,7 +2684,7 @@ msgstr "" #: ../src/dialogs.c:1204 ../src/dialogs.c:1205 ../src/dialogs.c:1206 #: ../src/dialogs.c:1212 ../src/dialogs.c:1213 ../src/dialogs.c:1214 -#: ../src/symbols.c:2429 ../src/symbols.c:2445 ../src/ui_utils.c:287 +#: ../src/symbols.c:2432 ../src/symbols.c:2448 ../src/ui_utils.c:287 msgid "unknown" msgstr "okänd" @@ -3226,7 +3228,7 @@ msgstr "Gå till rad" msgid "View" msgstr "Visa" -#: ../src/keybindings.c:321 ../src/symbols.c:641 +#: ../src/keybindings.c:321 ../src/symbols.c:643 msgid "Document" msgstr "Dokument" @@ -3271,7 +3273,7 @@ msgstr "Spara som" msgid "Save all" msgstr "Spara allt" -#: ../src/keybindings.c:350 ../src/symbols.c:725 +#: ../src/keybindings.c:350 ../src/symbols.c:728 msgid "Properties" msgstr "Egenskaper" @@ -3913,10 +3915,10 @@ msgid "Configuration directory could not be created (%s)." msgstr "Konfigureringsmappen kunde inte skapas (%s)." #: ../src/libmain.c:1184 -#, fuzzy msgid "IPC socket could not be created, see Help->Debug Messages for details." msgstr "" -"Sökningen misslyckades (se Hjälp -> Debugmeddelanden för mer information)." +"IPC-socket kunde inte skapas, se Hjälp -> Debugmeddelanden för mer " +"information." #: ../src/libmain.c:1413 msgid "Do you really want to quit?" @@ -4047,11 +4049,11 @@ msgstr "Läs av tangent" msgid "Press the combination of the keys you want to use for \"%s\"." msgstr "Skriv in den tangentbordskombination du vill använda för \"%s\"." -#: ../src/prefs.c:226 ../src/symbols.c:2583 ../src/sidebar.c:751 +#: ../src/prefs.c:226 ../src/symbols.c:2586 ../src/sidebar.c:751 msgid "_Expand All" msgstr "Expandera alla" -#: ../src/prefs.c:231 ../src/symbols.c:2588 ../src/sidebar.c:757 +#: ../src/prefs.c:231 ../src/symbols.c:2591 ../src/sidebar.c:757 msgid "_Collapse All" msgstr "Stäng alla" @@ -4603,11 +4605,11 @@ msgstr "Okänt fel vid exekvering av underprocess" msgid "Value" msgstr "Värde" -#: ../src/symbols.c:471 ../src/symbols.c:521 ../src/symbols.c:631 +#: ../src/symbols.c:471 ../src/symbols.c:523 ../src/symbols.c:633 msgid "Chapter" msgstr "Kapitel" -#: ../src/symbols.c:472 ../src/symbols.c:517 ../src/symbols.c:632 +#: ../src/symbols.c:472 ../src/symbols.c:519 ../src/symbols.c:634 msgid "Section" msgstr "Sektion" @@ -4627,298 +4629,306 @@ msgstr "Sekt3" msgid "Appendix" msgstr "Appendix" -#: ../src/symbols.c:477 ../src/symbols.c:522 ../src/symbols.c:547 -#: ../src/symbols.c:563 ../src/symbols.c:578 ../src/symbols.c:589 -#: ../src/symbols.c:690 ../src/symbols.c:701 ../src/symbols.c:714 -#: ../src/symbols.c:728 ../src/symbols.c:740 ../src/symbols.c:752 -#: ../src/symbols.c:769 ../src/symbols.c:798 ../src/symbols.c:830 +#: ../src/symbols.c:477 ../src/symbols.c:524 ../src/symbols.c:549 +#: ../src/symbols.c:565 ../src/symbols.c:580 ../src/symbols.c:591 +#: ../src/symbols.c:692 ../src/symbols.c:703 ../src/symbols.c:716 +#: ../src/symbols.c:731 ../src/symbols.c:743 ../src/symbols.c:755 +#: ../src/symbols.c:772 ../src/symbols.c:801 ../src/symbols.c:833 msgid "Other" msgstr "Annat" -#: ../src/symbols.c:483 ../src/symbols.c:760 ../src/symbols.c:808 +#: ../src/symbols.c:483 ../src/symbols.c:763 ../src/symbols.c:811 msgid "Module" msgstr "Modul" -#: ../src/symbols.c:484 ../src/symbols.c:574 ../src/symbols.c:686 -#: ../src/symbols.c:738 ../src/symbols.c:750 ../src/symbols.c:765 -#: ../src/symbols.c:779 +#: ../src/symbols.c:484 ../src/symbols.c:576 ../src/symbols.c:688 +#: ../src/symbols.c:741 ../src/symbols.c:753 ../src/symbols.c:768 +#: ../src/symbols.c:782 msgid "Types" msgstr "Typ" #: ../src/symbols.c:485 msgid "Type constructors" msgstr "Typ-konstruktörer" -#: ../src/symbols.c:486 ../src/symbols.c:508 ../src/symbols.c:529 -#: ../src/symbols.c:546 ../src/symbols.c:558 ../src/symbols.c:571 -#: ../src/symbols.c:586 ../src/symbols.c:600 ../src/symbols.c:610 -#: ../src/symbols.c:674 ../src/symbols.c:724 ../src/symbols.c:747 -#: ../src/symbols.c:792 ../src/symbols.c:816 +#: ../src/symbols.c:486 ../src/symbols.c:510 ../src/symbols.c:531 +#: ../src/symbols.c:548 ../src/symbols.c:560 ../src/symbols.c:573 +#: ../src/symbols.c:588 ../src/symbols.c:602 ../src/symbols.c:612 +#: ../src/symbols.c:676 ../src/symbols.c:727 ../src/symbols.c:750 +#: ../src/symbols.c:795 ../src/symbols.c:819 msgid "Functions" msgstr "Funktioner" #: ../src/symbols.c:491 msgid "Program" msgstr "Program" -#: ../src/symbols.c:493 ../src/symbols.c:501 ../src/symbols.c:507 +#: ../src/symbols.c:493 +msgid "Divisions" +msgstr "Uppdelningar" + +#: ../src/symbols.c:494 ../src/symbols.c:503 ../src/symbols.c:509 msgid "Sections" msgstr "Markeringar" -#: ../src/symbols.c:494 +#: ../src/symbols.c:495 msgid "Paragraph" msgstr "Paragraf" -#: ../src/symbols.c:495 +#: ../src/symbols.c:496 msgid "Group" msgstr "Grupp" -#: ../src/symbols.c:496 +#: ../src/symbols.c:497 msgid "Data" msgstr "Data" -#: ../src/symbols.c:502 +#: ../src/symbols.c:498 +msgid "Copies" +msgstr "Kopior" + +#: ../src/symbols.c:504 msgid "Keys" msgstr "Tangenter" -#: ../src/symbols.c:509 ../src/symbols.c:560 ../src/symbols.c:576 -#: ../src/symbols.c:602 ../src/symbols.c:675 ../src/symbols.c:700 -#: ../src/symbols.c:726 ../src/symbols.c:739 ../src/symbols.c:748 -#: ../src/symbols.c:764 ../src/symbols.c:799 ../src/symbols.c:828 +#: ../src/symbols.c:511 ../src/symbols.c:562 ../src/symbols.c:578 +#: ../src/symbols.c:604 ../src/symbols.c:677 ../src/symbols.c:702 +#: ../src/symbols.c:729 ../src/symbols.c:742 ../src/symbols.c:751 +#: ../src/symbols.c:767 ../src/symbols.c:802 ../src/symbols.c:831 msgid "Variables" msgstr "Variabler" -#: ../src/symbols.c:516 +#: ../src/symbols.c:518 msgid "Environment" msgstr "Miljö" -#: ../src/symbols.c:518 ../src/symbols.c:633 +#: ../src/symbols.c:520 ../src/symbols.c:635 msgid "Subsection" msgstr "Subsektion" -#: ../src/symbols.c:519 ../src/symbols.c:634 +#: ../src/symbols.c:521 ../src/symbols.c:636 msgid "Subsubsection" msgstr "Subsubsektion" -#: ../src/symbols.c:530 ../src/symbols.c:555 +#: ../src/symbols.c:532 ../src/symbols.c:557 msgid "Structures" msgstr "Strukturer" -#: ../src/symbols.c:537 +#: ../src/symbols.c:539 msgid "Parts" msgstr "Delar" -#: ../src/symbols.c:538 +#: ../src/symbols.c:540 msgid "Assembly" msgstr "Bygg" -#: ../src/symbols.c:539 +#: ../src/symbols.c:541 msgid "Steps" msgstr "Steg" -#: ../src/symbols.c:554 ../src/symbols.c:652 ../src/symbols.c:698 +#: ../src/symbols.c:556 ../src/symbols.c:654 ../src/symbols.c:700 msgid "Modules" msgstr "Moduler" -#: ../src/symbols.c:556 ../src/symbols.c:603 +#: ../src/symbols.c:558 ../src/symbols.c:605 msgid "Traits" msgstr "Egenskaper" -#: ../src/symbols.c:557 +#: ../src/symbols.c:559 msgid "Implementations" msgstr "Implementeringar" -#: ../src/symbols.c:559 ../src/symbols.c:819 +#: ../src/symbols.c:561 ../src/symbols.c:822 msgid "Typedefs / Enums" msgstr "Typedefs / Enums" -#: ../src/symbols.c:561 ../src/symbols.c:777 ../src/symbols.c:786 -#: ../src/symbols.c:825 +#: ../src/symbols.c:563 ../src/symbols.c:780 ../src/symbols.c:789 +#: ../src/symbols.c:828 msgid "Macros" msgstr "Makron" -#: ../src/symbols.c:562 ../src/symbols.c:655 ../src/symbols.c:664 -#: ../src/symbols.c:673 ../src/symbols.c:711 ../src/symbols.c:737 +#: ../src/symbols.c:564 ../src/symbols.c:657 ../src/symbols.c:666 +#: ../src/symbols.c:675 ../src/symbols.c:713 ../src/symbols.c:740 msgid "Methods" msgstr "Metoder" -#: ../src/symbols.c:570 ../src/symbols.c:585 ../src/symbols.c:683 -#: ../src/symbols.c:708 ../src/symbols.c:721 +#: ../src/symbols.c:572 ../src/symbols.c:587 ../src/symbols.c:685 +#: ../src/symbols.c:710 ../src/symbols.c:724 msgid "Package" msgstr "Paket" -#: ../src/symbols.c:572 ../src/symbols.c:598 ../src/symbols.c:709 -#: ../src/symbols.c:722 ../src/symbols.c:735 ../src/symbols.c:762 -#: ../src/symbols.c:815 +#: ../src/symbols.c:574 ../src/symbols.c:600 ../src/symbols.c:711 +#: ../src/symbols.c:725 ../src/symbols.c:738 ../src/symbols.c:765 +#: ../src/symbols.c:818 msgid "Interfaces" msgstr "Gränssnitt" -#: ../src/symbols.c:573 ../src/symbols.c:818 +#: ../src/symbols.c:575 ../src/symbols.c:821 msgid "Structs" msgstr "Strukturer" -#: ../src/symbols.c:575 ../src/symbols.c:588 ../src/symbols.c:601 -#: ../src/symbols.c:727 ../src/symbols.c:749 +#: ../src/symbols.c:577 ../src/symbols.c:590 ../src/symbols.c:603 +#: ../src/symbols.c:730 ../src/symbols.c:752 msgid "Constants" msgstr "Konstanter" -#: ../src/symbols.c:577 ../src/symbols.c:712 ../src/symbols.c:817 +#: ../src/symbols.c:579 ../src/symbols.c:714 ../src/symbols.c:820 msgid "Members" msgstr "Medlemmar" -#: ../src/symbols.c:587 ../src/symbols.c:751 ../src/symbols.c:776 +#: ../src/symbols.c:589 ../src/symbols.c:754 ../src/symbols.c:779 msgid "Labels" msgstr "Etiketter" -#: ../src/symbols.c:597 ../src/symbols.c:662 ../src/symbols.c:811 +#: ../src/symbols.c:599 ../src/symbols.c:664 ../src/symbols.c:814 msgid "Namespaces" msgstr "Namespaces" -#: ../src/symbols.c:599 ../src/symbols.c:621 ../src/symbols.c:653 -#: ../src/symbols.c:663 ../src/symbols.c:672 ../src/symbols.c:710 -#: ../src/symbols.c:723 ../src/symbols.c:736 ../src/symbols.c:814 +#: ../src/symbols.c:601 ../src/symbols.c:623 ../src/symbols.c:655 +#: ../src/symbols.c:665 ../src/symbols.c:674 ../src/symbols.c:712 +#: ../src/symbols.c:726 ../src/symbols.c:739 ../src/symbols.c:817 msgid "Classes" msgstr "Klasser" -#: ../src/symbols.c:611 +#: ../src/symbols.c:613 msgid "Anchors" msgstr "Ankare" -#: ../src/symbols.c:612 +#: ../src/symbols.c:614 msgid "H1 Headings" msgstr "Rubrik (H1)" -#: ../src/symbols.c:613 +#: ../src/symbols.c:615 msgid "H2 Headings" msgstr "Rubrik (H1)" -#: ../src/symbols.c:614 +#: ../src/symbols.c:616 msgid "H3 Headings" msgstr "Rubrik (H1)" -#: ../src/symbols.c:622 +#: ../src/symbols.c:624 msgid "ID Selectors" msgstr "ID-markering" -#: ../src/symbols.c:623 +#: ../src/symbols.c:625 msgid "Type Selectors" msgstr "Typ-konstruktörer" -#: ../src/symbols.c:642 +#: ../src/symbols.c:644 msgid "Section Level 1" msgstr "Sektionsnivå 1" -#: ../src/symbols.c:643 +#: ../src/symbols.c:645 msgid "Section Level 2" msgstr "Sektionsnivå 2" -#: ../src/symbols.c:644 +#: ../src/symbols.c:646 msgid "Section Level 3" msgstr "Sektionsnivå 3" -#: ../src/symbols.c:645 +#: ../src/symbols.c:647 msgid "Section Level 4" msgstr "Sektionsnivå 4" -#: ../src/symbols.c:654 +#: ../src/symbols.c:656 msgid "Singletons" msgstr "Singletons" -#: ../src/symbols.c:665 ../src/symbols.c:793 +#: ../src/symbols.c:667 ../src/symbols.c:796 msgid "Procedures" msgstr "Procedurer" -#: ../src/symbols.c:676 +#: ../src/symbols.c:678 ../src/symbols.c:723 msgid "Imports" msgstr "Inporterade" -#: ../src/symbols.c:684 +#: ../src/symbols.c:686 msgid "Entities" msgstr "Enhet" -#: ../src/symbols.c:685 +#: ../src/symbols.c:687 msgid "Architectures" msgstr "Arkitekturer" -#: ../src/symbols.c:687 +#: ../src/symbols.c:689 msgid "Functions / Procedures" msgstr "Funktioner / Procedurer" -#: ../src/symbols.c:688 +#: ../src/symbols.c:690 msgid "Variables / Signals" msgstr "Variabler / Signaler" -#: ../src/symbols.c:689 +#: ../src/symbols.c:691 msgid "Processes / Blocks / Components" msgstr "Processer / Block / Komponenter" -#: ../src/symbols.c:697 +#: ../src/symbols.c:699 msgid "Events" msgstr "Händelser" -#: ../src/symbols.c:699 +#: ../src/symbols.c:701 msgid "Functions / Tasks" msgstr "Funktioner / Uppgifter" -#: ../src/symbols.c:713 ../src/symbols.c:768 +#: ../src/symbols.c:715 ../src/symbols.c:771 msgid "Enums" msgstr "Enums" -#: ../src/symbols.c:761 +#: ../src/symbols.c:764 msgid "Programs" msgstr "Program" -#: ../src/symbols.c:763 +#: ../src/symbols.c:766 msgid "Functions / Subroutines" msgstr "Funktioner / Subrutiner" -#: ../src/symbols.c:766 +#: ../src/symbols.c:769 msgid "Components" msgstr "Komponenter" -#: ../src/symbols.c:767 +#: ../src/symbols.c:770 msgid "Blocks" msgstr "Block" -#: ../src/symbols.c:778 +#: ../src/symbols.c:781 msgid "Defines" msgstr "Definitioner" -#: ../src/symbols.c:785 +#: ../src/symbols.c:788 msgid "Targets" msgstr "Mål" -#: ../src/symbols.c:794 +#: ../src/symbols.c:797 msgid "Indexes" msgstr "Index" -#: ../src/symbols.c:795 +#: ../src/symbols.c:798 msgid "Tables" msgstr "Tabeller" -#: ../src/symbols.c:796 +#: ../src/symbols.c:799 msgid "Triggers" msgstr "Utlösare" -#: ../src/symbols.c:797 +#: ../src/symbols.c:800 msgid "Views" msgstr "Visa" -#: ../src/symbols.c:829 +#: ../src/symbols.c:832 msgid "Extern Variables" msgstr "Externa variabler" -#: ../src/symbols.c:1646 +#: ../src/symbols.c:1649 #, c-format msgid "Unknown filetype extension for \"%s\".\n" msgstr "Okänd filändelse för filen \"%s\".\n" -#: ../src/symbols.c:1672 +#: ../src/symbols.c:1675 #, c-format msgid "Failed to create tags file, perhaps because no symbols were found.\n" msgstr "Kunde inte skapa en taggfil, kanske därför inga symboler hittades.\n" -#: ../src/symbols.c:1679 +#: ../src/symbols.c:1682 #, c-format msgid "" "Usage: %s -g \n" @@ -4927,7 +4937,7 @@ msgstr "" "Användning: %s -g \n" "\n" -#: ../src/symbols.c:1680 +#: ../src/symbols.c:1683 #, c-format msgid "" "Example:\n" @@ -4938,52 +4948,52 @@ msgstr "" "CFLAGS=`pkg-config gtk+-2.0 --cflags` %s -g gtk2.c.tags /usr/include/gtk-2.0/" "gtk/gtk.h\n" -#: ../src/symbols.c:1694 +#: ../src/symbols.c:1697 msgid "Load Tags File" msgstr "Ladda taggfil" -#: ../src/symbols.c:1701 +#: ../src/symbols.c:1704 msgid "Geany tags file (*.*.tags)" msgstr "Geany taggfiler (*.*.tags)" #. For translators: the first wildcard is the filetype, the second the filename -#: ../src/symbols.c:1721 +#: ../src/symbols.c:1724 #, c-format msgid "Loaded %s tags file '%s'." msgstr "Laddade %s tagg-filen '%s'." -#: ../src/symbols.c:1724 +#: ../src/symbols.c:1727 #, c-format msgid "Could not load tags file '%s'." msgstr "Kunde inte ladda tagg-filen '%s'." #. For translators: it's the filename and line number of a symbol in the goto-symbol popup menu -#: ../src/symbols.c:1967 +#: ../src/symbols.c:1970 #, c-format msgid "%s: %lu" msgstr "%s: %lu" #. For translators: it's the filename and line number of a symbol in the goto-symbol popup menu -#: ../src/symbols.c:1970 +#: ../src/symbols.c:1973 #, c-format msgid "%s: %lu" msgstr "%s: %lu" -#: ../src/symbols.c:2180 +#: ../src/symbols.c:2183 #, c-format msgid "Forward declaration \"%s\" not found." msgstr "Deklarationen \"%s\" kunde inte hittas." -#: ../src/symbols.c:2182 +#: ../src/symbols.c:2185 #, c-format msgid "Definition of \"%s\" not found." msgstr "Definitionen av \"%s\" kan inte hittas." -#: ../src/symbols.c:2598 +#: ../src/symbols.c:2601 msgid "Sort by _Name" msgstr "Sortera efter namn" -#: ../src/symbols.c:2605 +#: ../src/symbols.c:2608 msgid "Sort by _Appearance" msgstr "Sortera efter egenskaper" @@ -5436,24 +5446,24 @@ msgstr "CR" msgid "LF" msgstr "LF" -#: ../src/vte.c:584 +#: ../src/vte.c:585 #, c-format msgid "invalid VTE library \"%s\": missing symbol \"%s\"" msgstr "ogiltigt VTE bibliotek \"%s\": symbol saknas \"%s\"" -#: ../src/vte.c:765 +#: ../src/vte.c:766 msgid "_Set Path From Document" msgstr "Ange sökväg från dokumentet" -#: ../src/vte.c:770 +#: ../src/vte.c:771 msgid "_Restart Terminal" msgstr "Starta om terminalen" -#: ../src/vte.c:803 +#: ../src/vte.c:804 msgid "_Input Methods" msgstr "Inmatningsmetoder" -#: ../src/vte.c:895 +#: ../src/vte.c:896 msgid "" "Directory not changed because the terminal may contain some input (press Ctrl" "+C or Enter to clear it)." -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Tue Jun 4 15:25:10 2019 From: git-noreply at xxxxx (=?utf-8?q?Nick_Treleaven?=) Date: Tue, 04 Jun 2019 15:25:10 -0000 Subject: [geany/geany] 55382d: Comment out copied contents opening `Tools->Configuration Files` Message-ID: <20190604152536.E4A7E1EB05F@mail.geany.org> Branch: refs/heads/master Author: Nick Treleaven Committer: Nick Treleaven Date: Tue, 04 Jun 2019 15:25:10 UTC Commit: 55382df297e287bb46793bdcfa19aafe04c0cc14 https://github.com/geany/geany/commit/55382df297e287bb46793bdcfa19aafe04c0cc14 Log Message: ----------- Comment out copied contents opening `Tools->Configuration Files` Discourage the user from overriding system settings unnecessarily. Modified Paths: -------------- src/ui_utils.c Modified: src/ui_utils.c 15 lines changed, 13 insertions(+), 2 deletions(-) =================================================================== @@ -36,6 +36,7 @@ #include "filetypes.h" #include "geanymenubuttonaction.h" #include "keyfile.h" +#include "keybindings.h" #include "main.h" #include "msgwindow.h" #include "prefs.h" @@ -2096,6 +2097,7 @@ static void on_config_file_clicked(GtkWidget *widget, gpointer user_data) gchar *global_file; gchar *base_name = NULL; gchar *global_content = NULL; + GeanyDocument *doc = NULL; /* get the path inside app->configdir - can contain subdirectories */ if (g_str_has_prefix(file_name, app->configdir)) @@ -2115,8 +2117,17 @@ static void on_config_file_clicked(GtkWidget *widget, gpointer user_data) if (g_file_test(global_file, G_FILE_TEST_EXISTS)) g_file_get_contents(global_file, &global_content, NULL, NULL); - document_new_file(utf8_filename, ft, global_content); - + doc = document_new_file(utf8_filename, ft, global_content); + if (global_content) + { + sci_select_all(doc->editor->sci); + keybindings_send_command(GEANY_KEY_GROUP_FORMAT, + GEANY_KEYS_FORMAT_COMMENTLINETOGGLE); + sci_set_current_line(doc->editor->sci, 0); + document_set_text_changed(doc, FALSE); + sci_empty_undo_buffer(doc->editor->sci); + ui_document_show_hide(doc); /* update the document menu */ + } utils_free_pointers(4, utf8_filename, base_name, global_file, global_content, NULL); } } -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 8 17:44:18 2019 From: git-noreply at xxxxx (=?utf-8?q?Simon_Krauter?=) Date: Sat, 08 Jun 2019 17:44:18 -0000 Subject: [geany/geany] 3afdba: Add Nim filetype (#2085) Message-ID: <20190608174424.83CEF1EB086@mail.geany.org> Branch: refs/heads/master Author: Simon Krauter Committer: Nick Treleaven Date: Sat, 08 Jun 2019 17:44:18 UTC Commit: 3afdba5716c5c5f2d4f1b9f8733ef392c759a3ff https://github.com/geany/geany/commit/3afdba5716c5c5f2d4f1b9f8733ef392c759a3ff Log Message: ----------- Add Nim filetype (#2085) * Add Nim filetype Add support for the Nim programming language using the Python lexer. Nim website: https://nim-lang.org/ * Correct file name * Add filetypes.Nim.conf to Makefile.am As requested by b4n * Remove unneeded lexer_properties and indentation width As requested by b4n * Fix run_cmd * Improved keywords Modified Paths: -------------- data/Makefile.am data/filedefs/filetypes.Nim.conf data/filetype_extensions.conf Modified: data/Makefile.am 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -49,6 +49,7 @@ filetypes = \ filedefs/filetypes.makefile \ filedefs/filetypes.markdown \ filedefs/filetypes.matlab \ + filedefs/filetypes.Nim.conf \ filedefs/filetypes.nsis \ filedefs/filetypes.objectivec \ filedefs/filetypes.pascal \ Modified: data/filedefs/filetypes.Nim.conf 29 lines changed, 29 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,29 @@ +# For complete documentation of this file, please see Geany's main documentation + +[styling=Python] + +[keywords] + +primary=addr as asm atomic bind block break case cast const continue converter defer discard distinct div do elif else end enum except export finally for from func generic if import include interface iterator let macro method mixin mod notin object of out proc raise return shl shr static template try type using var when while with without yield seq array tuple ref ptr not and xor in or is isnot new + +identifiers=bool byte char int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 string nil true false result echo assert + +[settings] + +extension=nim +comment_single=# +comment_use_indent=true +tag_parser=Python +lexer_filetype=Python + +[indentation] + +type=0 + +[build-menu] + +# %f will be replaced by the complete filename +# %e will be replaced by the filename without extension +# (use only one of it at one time) +compiler=nim c "%f" +run_cmd="./%e" Modified: data/filetype_extensions.conf 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -47,6 +47,7 @@ Lua=*.lua; Make=*.mak;*.mk;GNUmakefile;makefile;Makefile;makefile.*;Makefile.*; Markdown=*.mdml;*.markdown;*.md;*.mkd;*.mkdn;*.mdwn;*.mdown;*.mdtxt;*.mdtext; Matlab/Octave=*.m; +Nim=*.nim; NSIS=*.nsi;*.nsh; Objective-C=*.m;*.mm;*.h; Pascal=*.pas;*.pp;*.inc;*.dpr;*.dpk; -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 09:34:43 2019 From: git-noreply at xxxxx (=?utf-8?b?SmlyzIxpzIEgVGVjaGV0?=) Date: Sun, 09 Jun 2019 09:34:43 -0000 Subject: [geany/geany-osx] 92fba7: Properly sign Geany bundle and allow it to be notarized by Apple Message-ID: <20190609093453.665D61EB0A9@mail.geany.org> Branch: refs/heads/master Author: Jiří Techet Committer: Jiří Techet Date: Sun, 09 Jun 2019 09:34:43 UTC Commit: 92fba7de40b0f437bc6c49d164d1235788994d26 https://github.com/geany/geany-osx/commit/92fba7de40b0f437bc6c49d164d1235788994d26 Log Message: ----------- Properly sign Geany bundle and allow it to be notarized by Apple This patch makes sure that all binaries inside the bundle are signed, the bundle is "hardened" and allows the bundle to be notarized by Apple. For details, see https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution Modified Paths: -------------- README.md create_dmg.sh geany.entitlements notarize.sh sign.sh Modified: README.md 15 lines changed, 13 insertions(+), 2 deletions(-) =================================================================== @@ -199,10 +199,10 @@ Bundling checking for "Developer ID Application" - the whole name in apostrophes is the certificate name. - Then run + Then, run ``` - codesign -s "$SIGN_CERTIFICATE" --deep --force ./Geany.app + ./sign.sh ``` @@ -223,6 +223,17 @@ Distribution from within the `geany-osx` directory. If the `SIGN_CERTIFICATE` variable is defined, the image gets signed by the specified certificate. +3. Optionally, to get the image notarized by + [Apple notary service](https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution), + run + ``` + ./notarize.sh + ``` + where `` is the dmg file generated above, `` is + the Apple ID used for your developer account, and `` is + a file containing an [app-specific password](https://support.apple.com/en-us/HT204397) + generated for your Apple ID. + Maintenance ----------- This section describes some maintenance-related activities which do not Modified: create_dmg.sh 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -27,7 +27,7 @@ create-dmg \ rm -rf "${TMPDIR}" -if [ -n "$APPLICATION_CERT" ] +if [ -n "$SIGN_CERTIFICATE" ] then - codesign -s "$SIGN_CERTIFICATE" "$DMGNAME" + codesign -s "$SIGN_CERTIFICATE" --options runtime "$DMGNAME" fi Modified: geany.entitlements 6 lines changed, 6 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,6 @@ + + + + + + Modified: notarize.sh 33 lines changed, 33 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Modified version of +# https://github.com/thommcgrath/Beacon/blob/master/Installers/Mac/Build.sh + +DMGFILE="${1}" +APPLEID="${2}" +# file containing app-specific password, see https://support.apple.com/en-us/HT204397 +PASSWORD=`cat ${3}` +BUNDLEID="org.geany.geany" + +echo "Uploading disk image for notarization. This can take a while."; +xcrun altool --notarize-app -f "${DMGFILE}" --primary-bundle-id "${BUNDLEID}" -u "${APPLEID}" -p "${PASSWORD}" > ${TMPDIR}notarize_output 2>&1 || { cat ${TMPDIR}notarize_output; rm -f ${TMPDIR}notarize_output; exit $?; }; +cat ${TMPDIR}notarize_output; +REQUESTUUID=$(sed -n 's/RequestUUID = \(.*\)/\1/p' ${TMPDIR}notarize_output); +echo "Disk image has been uploaded. Request UUID is ${REQUESTUUID}. Checking status every 10 seconds:"; +STATUS="in progress"; +while [ "${STATUS}" = "in progress" ]; do + sleep 10s; + xcrun altool --notarization-info "${REQUESTUUID}" -u "${APPLEID}" -p "${PASSWORD}" > ${TMPDIR}notarize_output 2>&1 || { cat ${TMPDIR}notarize_output; rm -f ${TMPDIR}notarize_output; echo "Failed to check on notarization status."; exit $?; }; + STATUS=$(sed -ne 's/^[[:space:]]*Status: \(.*\)$/\1/p' ${TMPDIR}notarize_output); + echo "Status: ${STATUS}" +done; +if [ "${STATUS}" = "success" ]; then + echo "Stapling file."; + xcrun stapler staple "${DMGFILE}"; +else + cat ${TMPDIR}notarize_output; + rm -f ${TMPDIR}notarize_output; + echo "Disk image WAS NOT NOTARIZED, status is ${STATUS}."; + exit 1; +fi; +rm -f ${TMPDIR}notarize_output; Modified: sign.sh 11 lines changed, 11 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,11 @@ +#!/bin/sh + +sign() { + codesign -s "$SIGN_CERTIFICATE" --entitlements geany.entitlements --deep --force --strict=all --options runtime -vvv $1 +} +export -f sign + +sign "./Geany.app/Contents/MacOS/geany-bin" +sign "./Geany.app/Contents/Resources/libexec/gnome-pty-helper" +find . -name "*.dylib" -o -name "*.so" -exec sh -c 'sign "$0"' {} \; +sign "./Geany.app" -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 09:49:11 2019 From: git-noreply at xxxxx (=?utf-8?b?SmlyzIxpzIEgVGVjaGV0?=) Date: Sun, 09 Jun 2019 09:49:11 -0000 Subject: [geany/geany-osx] dece84: Add allow-dyld-environment-variables entitlement Message-ID: <20190609094928.3F4171EB0A9@mail.geany.org> Branch: refs/heads/master Author: Jiří Techet Committer: Jiří Techet Date: Sun, 09 Jun 2019 09:49:11 UTC Commit: dece848b5250a7ec8ce4df1141c5e9fce26c93ed https://github.com/geany/geany-osx/commit/dece848b5250a7ec8ce4df1141c5e9fce26c93ed Log Message: ----------- Add allow-dyld-environment-variables entitlement Seems to be necessary to run VTE. Modified Paths: -------------- geany.entitlements Modified: geany.entitlements 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -2,5 +2,7 @@ + com.apple.security.cs.allow-dyld-environment-variables + -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 10:45:20 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 09 Jun 2019 10:45:20 -0000 Subject: [geany/www.geany.org] 07c830: Use absolute URIs for nightly build detail links Message-ID: <20190609144113.026BD1EB0A9@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 09 Jun 2019 10:45:20 UTC Commit: 07c8300f4ce52134a5694c571a977991ba606fe3 https://github.com/geany/www.geany.org/commit/07c8300f4ce52134a5694c571a977991ba606fe3 Log Message: ----------- Use absolute URIs for nightly build detail links Modified Paths: -------------- nightlybuilds/templatetags/nightlybuilds_tags.py Modified: nightlybuilds/templatetags/nightlybuilds_tags.py 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -40,7 +40,7 @@ def get_build_log(nightly_build, log_type): else: if size > 0: return format_html( - '{}', + '{}', nightly_build.nightly_build_target.folder, log, log_type) @@ -53,7 +53,7 @@ def get_details(nightly_build): header_txt = os.path.join(BASE_DIR, nightly_build.nightly_build_target.folder, 'HEADER.txt') if os.path.exists(header_txt): return format_html( - 'Details', + 'Details', nightly_build.nightly_build_target.folder) return '' -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 10:46:51 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 09 Jun 2019 10:46:51 -0000 Subject: [geany/www.geany.org] 737464: Remove obsolete alternative top-level menu Message-ID: <20190609144113.44D8C1EB0AA@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 09 Jun 2019 10:46:51 UTC Commit: 737464adacd0e58d37349d603fbfc3c31ee95667 https://github.com/geany/www.geany.org/commit/737464adacd0e58d37349d603fbfc3c31ee95667 Log Message: ----------- Remove obsolete alternative top-level menu Modified Paths: -------------- nightlybuilds/templates/nightlybuilds.html Modified: nightlybuilds/templates/nightlybuilds.html 19 lines changed, 0 insertions(+), 19 deletions(-) =================================================================== @@ -7,25 +7,6 @@ {% block meta_title %}Geany Nightly Builds{% endblock %} -{% block top_menu %} -{% if request.site_id == 1 %} - {# default menu on www.geany.org #} - {{ block.super }} -{% else %} - {# empty menu for nightly.geany.org #} - -{% endif %} -{% endblock %} - {% block main %}
    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 14:40:57 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 09 Jun 2019 14:40:57 -0000 Subject: [geany/www.geany.org] b14990: Add robots.txt Message-ID: <20190609144114.5C6DD1EB0AA@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 09 Jun 2019 14:40:57 UTC Commit: b1499015a11e0bab8a3513adb4230a75ed6859f6 https://github.com/geany/www.geany.org/commit/b1499015a11e0bab8a3513adb4230a75ed6859f6 Log Message: ----------- Add robots.txt The different filename is to not conflict with Mezzanine's default robots.txt. Our geany_robots.txt is delivered as /robots.txt via webserver configuration directive. Modified Paths: -------------- geany/static/geany_robots.txt Modified: geany/static/geany_robots.txt 7 lines changed, 7 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,7 @@ +# robots.txt for https://www.geany.org/ + +User-agent: * +Crawl-delay: 20 +Allow: / + +Sitemap: https://www.geany.org/sitemap.xml -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 14:34:13 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 09 Jun 2019 14:34:13 -0000 Subject: [geany/www.geany.org] cb5740: Add common table formatting CSS rules Message-ID: <20190609144113.CDC311EB0A9@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 09 Jun 2019 14:34:13 UTC Commit: cb57404f01b66eb68d2052b9a79613ced363f224 https://github.com/geany/www.geany.org/commit/cb57404f01b66eb68d2052b9a79613ced363f224 Log Message: ----------- Add common table formatting CSS rules Since Markdown tables are created a simple tags, the usual Bootstrap table classes cannot be applied, so add general CSS rules for all tables. Modified Paths: -------------- geany/static/css/main.css geany/templates/pages/download/releases.html Modified: geany/static/css/main.css 22 lines changed, 22 insertions(+), 0 deletions(-) =================================================================== @@ -126,3 +126,25 @@ div.feature-icon { .news-list li { margin-bottom: 10px; } + + +/* basic table formatting: border and cell spacing */ +table { + border: 1px solid rgb(221, 221, 221); + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} + +table > thead > tr > th, +table > tbody > tr > th, +table > tfoot > tr > th, +table > thead > tr > td, +table > tbody > tr > td, +table > tfoot > tr > td { + border: 1px solid rgb(221, 221, 221); + padding: 6px; + line-height: 1.4; + vertical-align: top; + border-top: 1px solid rgb(221, 221, 221); +} Modified: geany/templates/pages/download/releases.html 28 lines changed, 0 insertions(+), 28 deletions(-) =================================================================== @@ -1,28 +0,0 @@ -{% extends "pages/richtextpage.html" %} - -{% block extra_head %} -{{ block.super }} - - -{% endblock %} -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 9 14:21:36 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 09 Jun 2019 14:21:36 -0000 Subject: [geany/www.geany.org] 290ed7: Replace http links with https Message-ID: <20190609144113.91B1A1EB0AD@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 09 Jun 2019 14:21:36 UTC Commit: 290ed7323d44f79eba2c6ebaa83848f2258cff8c https://github.com/geany/www.geany.org/commit/290ed7323d44f79eba2c6ebaa83848f2258cff8c Log Message: ----------- Replace http links with https Modified Paths: -------------- page_content/contribute/documentation.md page_content/contribute/support.md page_content/download/git.md page_content/download/third-party.md page_content/support/mailing-lists.md page_content/support/plugins.md page_content/support/verify-gpg-signature.md Modified: page_content/contribute/documentation.md 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -10,7 +10,7 @@ Subscribe to the [Geany Devel mailing list][1] and write a short mail to the lis Note that you will need several tools installed on your system. In particular these are: - GIT - - Python docutils + - Python docutils The packages are named `git` and `python-docutils` on Debian and Fedora systems. @@ -26,7 +26,7 @@ You will find a file called `geany.txt`, which is the basis of all documentation make geany.html -in the `doc` directory to create or update the generated HTML documentation. +in the `doc` directory to create or update the generated HTML documentation. ### Publish your changes for review and inclusion Modified: page_content/contribute/support.md 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -23,5 +23,5 @@ Geany's twitter stream: https://twitter.com/GeanyIDE/ [1]: /support/mailing-lists/ - [2]: http://irc://chat.freenode.net/geany%7C#geany + [2]: irc://chat.freenode.net/geany%7C#geany [3]: https://github.com/geany/geany/issues Modified: page_content/download/git.md 20 lines changed, 10 insertions(+), 10 deletions(-) =================================================================== @@ -1,27 +1,27 @@ Git Repository ========== -We use Git(https://git-scm.com/) for version control when developing Geany. +We use Git(https://git-scm.com/) for version control when developing Geany. You can use it to test the latest source code, even between releases. -To check out Geany make sure you have the git package installed on your system. +To check out Geany make sure you have the git package installed on your system. Then checkout either the [GitHub repository][1]: git clone git://github.com/geany/geany.git geany or the [geany.org mirror][2]: - git clone http://git.geany.org/git/geany geany + git clone https://git.geany.org/git/geany geany This creates a subdirectory "geany" and puts all files in it. To build with Autotools, change to that subdirectory and run: ./autogen.sh -This will create and run the configure script for you. -You must have installed various GNU Autotools packages - if not, -the script will print out what you need to install. +This will create and run the configure script for you. +You must have installed various GNU Autotools packages - if not, +the script will print out what you need to install. In particular you need at least Autoconf version 2.60 and Automake version 1.7 or later. For more details, check [the manual][3]. @@ -44,21 +44,21 @@ If you find any problems with the Git version, please tell us the revision numbe - Run `git diff` to see local modifications - see [Hacking][4] for how to make patches -See http://schacon.github.com/git/gittutorial.html and http://www.git-scm.com/documentation for more information. +See https://schacon.github.com/git/gittutorial.html and https://www.git-scm.com/documentation for more information. ## Web-Based Interface -There is also a web-based interface to the Git repository, +There is also a web-based interface to the Git repository, on which you can browse the code and view each file. https://github.com/geany/geany/ ## Nightly Tarballs -There are also nightly tarballs available. -These tarballs are generated each night from the current Git version. +There are also nightly tarballs available. +These tarballs are generated each night from the current Git version. You can download them at https://download.geany.org/ . Modified: page_content/download/third-party.md 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -10,7 +10,7 @@ Geany is available through the official Debian archives. apt-get install geany ``` -For newer versions in the Oldstable and Stable releases, check http://backports.debian.org for updated packages. +For newer versions in the Oldstable and Stable releases, check https://backports.debian.org for updated packages. ## Ubuntu @@ -51,7 +51,7 @@ You can install Geany on OpenSUSE using the normal package installation methods. ## Arch Linux -Packages for Geany and Geany-Plugins for Arch Linux are available in the +Packages for Geany and Geany-Plugins for Arch Linux are available in the Community repository, so you can install it like any other package: ``` @@ -67,7 +67,7 @@ Find the Geany package in the mentioned BSD variants in `devel/geany`. There is a portable version of Geany by Oliver Krystal to carry on your USB stick and use on any Windows computer. -http://portableapps.com/apps/development/geany_portable +https://portableapps.com/apps/development/geany_portable ## Find your package Modified: page_content/support/mailing-lists.md 58 lines changed, 29 insertions(+), 29 deletions(-) =================================================================== @@ -10,99 +10,99 @@ For announcements, general discussing, coordinating development and more, we use ### Geany Users -The Geany Users mailing list is for all questions and problems about Geany. +The Geany Users mailing list is for all questions and problems about Geany. For bug reports, please see [Bugs](https://www.geany.org/Support/Bugs). -To subscribe just send a blank mail to `users-subscribe at lists.geany.org` or visit the +To subscribe just send a blank mail to `users-subscribe at lists.geany.org` or visit the [Geany-Users list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/users). Archives are available from: - - [http://lists.geany.org/pipermail/users/](http://lists.geany.org/pipermail/users/) + - [https://lists.geany.org/pipermail/users/](https://lists.geany.org/pipermail/users/) - [https://www.mail-archive.com/users at lists.geany.org/](https://www.mail-archive.com/users at lists.geany.org/) (searchable) ### Geany-I18n The Geany-I18n list is for all translation related issues. Any active translator of Geany should subscribe to this list. -To subscribe just send a blank mail to `i18n-subscribe at lists.geany.org` or visit the +To subscribe just send a blank mail to `i18n-subscribe at lists.geany.org` or visit the [Geany-I18n list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/i18n). Archives are available from: - - [http://lists.geany.org/pipermail/i18n](http://lists.geany.org/pipermail/i18n) + - [https://lists.geany.org/pipermail/i18n](https://lists.geany.org/pipermail/i18n) - [https://www.mail-archive.com/i18n at lists.geany.org/](https://www.mail-archive.com/i18n at lists.geany.org/) (searchable) ### Geany-Devel The Geany-Devel list is for discussing development of Geany and Plugins. -To subscribe just send a blank mail to `devel-subscribe at lists.geany.org` or visit the +To subscribe just send a blank mail to `devel-subscribe at lists.geany.org` or visit the [Geany-Devel list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/devel). Archives are available from: - - [http://lists.geany.org/pipermail/devel](http://lists.geany.org/pipermail/devel) + - [https://lists.geany.org/pipermail/devel](https://lists.geany.org/pipermail/devel) - [https://www.mail-archive.com/devel at lists.geany.org/](https://www.mail-archive.com/devel at lists.geany.org/) (searchable) ### Geany-Commits -This is the GIT commit mailing list for Geany. +This is the GIT commit mailing list for Geany. It is a read only mailing list where any GIT commits related to Geany are posted. -To subscribe just send a blank mail to `commits-subscribe at lists.geany.org` or visit the -[Geany commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/commits). +To subscribe just send a blank mail to `commits-subscribe at lists.geany.org` or visit the +[Geany commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/commits). The archive of Geany-Commits can be found at -[http://lists.geany.org/pipermail/commits/](http://lists.geany.org/pipermail/commits/). +[https://lists.geany.org/pipermail/commits/](https://lists.geany.org/pipermail/commits/). ### Geany-Newsletter-Commits -This is the commit mailing list for the Geany Newsletter GIT repository. +This is the commit mailing list for the Geany Newsletter GIT repository. It is a read only mailing list where any GIT commits related to Geany's Newsletter are posted. -To subscribe just send a blank mail to `newsletter-commits-subscribe at lists.geany.org` or visit the -[Geany Newsletter commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/newsletter-commits). +To subscribe just send a blank mail to `newsletter-commits-subscribe at lists.geany.org` or visit the +[Geany Newsletter commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/newsletter-commits). -The archive of Geany-newsletter-commits can be found at -[http://lists.geany.org/pipermail/newsletter-commits/](http://lists.geany.org/pipermail/newsletter-commits/). +The archive of Geany-newsletter-commits can be found at +[https://lists.geany.org/pipermail/newsletter-commits/](https://lists.geany.org/pipermail/newsletter-commits/). ### Geany-Plugins-Commits Geany-Plugins-Commits is a read only mailing list where any subversion commit of the geany-plugins project is posted. -To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the -[Geany-Plugins-Commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-commits). +To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the +[Geany-Plugins-Commits list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-commits). -The archive of Geany-plugins-commits can be found at -[http://lists.geany.org/pipermail/plugins-commits/](http://lists.geany.org/pipermail/plugins-commits/). +The archive of Geany-plugins-commits can be found at +[https://lists.geany.org/pipermail/plugins-commits/](https://lists.geany.org/pipermail/plugins-commits/). ### Geany-Plugins-Tracker -Geany-Plugins-Tracker is a read only mailing list where all Sourceforge tracker notifications of +Geany-Plugins-Tracker is a read only mailing list where all Sourceforge tracker notifications of the geany-plugins project are posted. -To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the -[Geany-Plugins-Tracker list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-tracker). +To subscribe just send a blank mail to `plugins-commits-subscribe at lists.geany.org` or visit the +[Geany-Plugins-Tracker list information site](https://lists.geany.org/cgi-bin/mailman/listinfo/plugins-tracker). -The archive of Geany-plugins-tracker can be found at -[http://lists.geany.org/pipermail/plugins-tracker/](http://lists.geany.org/pipermail/plugins-tracker/). +The archive of Geany-plugins-tracker can be found at +[https://lists.geany.org/pipermail/plugins-tracker/](https://lists.geany.org/pipermail/plugins-tracker/). ### Github-Comments-Archive -Github-Comments-Archive is a read only mailing list where all Github comments and other -notifications are archived of all repositories of the Geany Github organization. +Github-Comments-Archive is a read only mailing list where all Github comments and other +notifications are archived of all repositories of the Geany Github organization. This is because comments in Github pull requests/commits are sometimes removed when commit are squashed or similar. -It's probably not very useful to subscribe to this list but the archives can be found at -[http://lists.geany.org/pipermail/github-comments](http://lists.geany.org/pipermail/github-comments). +It's probably not very useful to subscribe to this list but the archives can be found at +[https://lists.geany.org/pipermail/github-comments](https://lists.geany.org/pipermail/github-comments). List page: [https://lists.geany.org/cgi-bin/mailman/listinfo/github-comments](https://lists.geany.org/cgi-bin/mailman/listinfo/github-comments) Modified: page_content/support/plugins.md 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -10,7 +10,7 @@ Geany has a plugin system which allows to get more features into Geany and devel - Filebrowser - Adds a file browser tab to the sidebar - HTML Characters - Inserts HTML character entities like '&' - Save Actions - Provides different actions related to saving files (autosave, instantsave, backupcopy) - - Split Window - Splits the editor view into two windows + - Split Window - Splits the editor view into two windows ### The Geany-Plugins project @@ -28,7 +28,7 @@ If you wrote a plugin and it should be listed here, please email the project adm ### Developer Information -The Plugin API documentation is currently incomplete, but already contains useful information. Please read the [HACKING][1] file for instructions on how to generate it and any related information. The generated API documentation can also be viewed online at http://www.geany.org/manual/reference/. In case of any questions, feel free to ask us on the mailing list. +The Plugin API documentation is currently incomplete, but already contains useful information. Please read the [HACKING][1] file for instructions on how to generate it and any related information. The generated API documentation can also be viewed online at https://www.geany.org/manual/reference/. In case of any questions, feel free to ask us on the mailing list. [1]: https://raw.github.com/geany/geany/master/HACKING Modified: page_content/support/verify-gpg-signature.md 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -1,7 +1,7 @@ Verifying GPG signatures of Geany and Geany-Plugins releases ========== -First, you need to import the public GPG key used to sign the packages. You can download the used public key from: http://download.geany.org/colombanw-pubkey.txt +First, you need to import the public GPG key used to sign the packages. You can download the used public key from: https://download.geany.org/colombanw-pubkey.txt To import the key use: ```Bash @@ -24,7 +24,7 @@ The command's output should state something like "Good signature" and should ret A complete example: ```Bash -wget http://download.geany.org/colombanw-pubkey.txt +wget https://download.geany.org/colombanw-pubkey.txt gpg --import < colombanw-pubkey.txt gpg --verify geany-1.34.tar.bz2.sig geany-1.34.tar.bz2``` ``` -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 10:32:02 2019 From: git-noreply at xxxxx (=?utf-8?q?Nick_Treleaven?=) Date: Mon, 10 Jun 2019 10:32:02 -0000 Subject: [geany/geany] 56fa03: [doc] Add tip to put commonly used filetypes in the None group (#2175) Message-ID: <20190610103211.A53111EB0C3@mail.geany.org> Branch: refs/heads/master Author: Nick Treleaven Committer: GitHub Date: Mon, 10 Jun 2019 10:32:02 UTC Commit: 56fa037df9ba176ba690a015c673a9c44f01b820 https://github.com/geany/geany/commit/56fa037df9ba176ba690a015c673a9c44f01b820 Log Message: ----------- [doc] Add tip to put commonly used filetypes in the None group (#2175) Modified Paths: -------------- doc/geany.txt Modified: doc/geany.txt 7 lines changed, 7 insertions(+), 0 deletions(-) =================================================================== @@ -4691,6 +4691,8 @@ should look like:: Filetype group membership ^^^^^^^^^^^^^^^^^^^^^^^^^ +Filetype groups are used in the `Document->Set Filetype` menu. + Group membership is also stored in ``filetype_extensions.conf``. This file is used to store information Geany needs at startup, whereas the separate filetype definition files hold information only needed when @@ -4710,6 +4712,11 @@ The key names cannot be configured. .. note:: Group membership is only read at startup. +.. tip:: + You can make commonly used filetypes appear in the top-level of the + filetype menu by adding them to the `None` group, e.g. + `None=C;Python`. + Preferences file format ----------------------- -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 10:36:29 2019 From: git-noreply at xxxxx (=?utf-8?b?SmlyzIxpzIEgVGVjaGV0?=) Date: Mon, 10 Jun 2019 10:36:29 -0000 Subject: [geany/geany-osx] eed361: Updates related to the latest gtk-osx version Message-ID: <20190610104208.9C2D11EB0C4@mail.geany.org> Branch: refs/heads/master Author: Jiří Techet Committer: Jiří Techet Date: Mon, 10 Jun 2019 10:36:29 UTC Commit: eed3615c6b9c632c5d6068ac5f76ab6e7254be56 https://github.com/geany/geany-osx/commit/eed3615c6b9c632c5d6068ac5f76ab6e7254be56 Log Message: ----------- Updates related to the latest gtk-osx version Modified Paths: -------------- README.md Modified: README.md 20 lines changed, 10 insertions(+), 10 deletions(-) =================================================================== @@ -70,22 +70,22 @@ To create the bundle, you need to first install JHBuild and GTK as described bel jhbuild will not interfere with some other command-line tools installed on your system). -2. Get `gtk-osx-build-setup.sh` by +2. Get `gtk-osx-setup.sh` by ``` - curl -L -o gtk-osx-build-setup.sh https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/gtk-osx-build-setup.sh + curl -L -o gtk-osx-setup.sh https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/gtk-osx-setup.sh ``` and run it: ``` - sh gtk-osx-build-setup.sh + sh gtk-osx-setup.sh ``` 3. Run ``` - export PATH=$PATH:"$HOME/.local/bin" + export PATH=$PATH:"$HOME/.new_local/bin" ``` to set path to jhbuild installed in the previous step. @@ -107,11 +107,11 @@ To create the bundle, you need to first install JHBuild and GTK as described bel commands: * **GTK 2** ``` - jhbuild bootstrap && jhbuild build python meta-gtk-osx-bootstrap meta-gtk-osx-freetype meta-gtk-osx-core + jhbuild bootstrap-gtk-osx && jhbuild build python python3 meta-gtk-osx-bootstrap meta-gtk-osx-core ``` * **GTK 3** ``` - jhbuild bootstrap && jhbuild build python meta-gtk-osx-bootstrap meta-gtk-osx-freetype meta-gtk-osx-gtk3 + jhbuild bootstrap-gtk-osx && jhbuild build python python3 meta-gtk-osx-bootstrap meta-gtk-osx-gtk3 ``` This is the moment when you have to make a decision whether to build Geany with GTK 2 or GTK 3 - they cannot be installed side by side. @@ -132,20 +132,20 @@ Geany Installation * **GTK 2** * **Geany from release tarball** ``` - jhbuild -m geany.modules build geany-bundle-release-gtk2 + jhbuild -m `pwd`/geany.modules build geany-bundle-release-gtk2 ``` * **Geany from git master** ``` - jhbuild -m geany.modules build geany-bundle-git-gtk2 + jhbuild -m `pwd`/geany.modules build geany-bundle-git-gtk2 ``` * **GTK 3** * **Geany from release tarball** ``` - jhbuild -m geany.modules build geany-bundle-release-gtk3 + jhbuild -m `pwd`/geany.modules build geany-bundle-release-gtk3 ``` * **Geany from git master** ``` - jhbuild -m geany.modules build geany-bundle-git-gtk3 + jhbuild -m `pwd`/geany.modules build geany-bundle-git-gtk3 ``` Bundling -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 10:34:24 2019 From: git-noreply at xxxxx (=?utf-8?b?SmlyzIxpzIEgVGVjaGV0?=) Date: Mon, 10 Jun 2019 10:34:24 -0000 Subject: [geany/geany-osx] e29308: Ask for the notarization password using the shell script Message-ID: <20190610104208.4A29A1EB0C3@mail.geany.org> Branch: refs/heads/master Author: Jiří Techet Committer: Jiří Techet Date: Mon, 10 Jun 2019 10:34:24 UTC Commit: e29308594be5cab03990844eae02eca202c069d6 https://github.com/geany/geany-osx/commit/e29308594be5cab03990844eae02eca202c069d6 Log Message: ----------- Ask for the notarization password using the shell script Modified Paths: -------------- README.md notarize.sh Modified: README.md 8 lines changed, 4 insertions(+), 4 deletions(-) =================================================================== @@ -227,11 +227,11 @@ Distribution [Apple notary service](https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution), run ``` - ./notarize.sh + ./notarize.sh ``` - where `` is the dmg file generated above, `` is - the Apple ID used for your developer account, and `` is - a file containing an [app-specific password](https://support.apple.com/en-us/HT204397) + where `` is the dmg file generated above and `` + is the Apple ID used for your developer account. The script then + prompts for an [app-specific password](https://support.apple.com/en-us/HT204397) generated for your Apple ID. Maintenance Modified: notarize.sh 9 lines changed, 7 insertions(+), 2 deletions(-) =================================================================== @@ -5,10 +5,15 @@ DMGFILE="${1}" APPLEID="${2}" -# file containing app-specific password, see https://support.apple.com/en-us/HT204397 -PASSWORD=`cat ${3}` BUNDLEID="org.geany.geany" +# App-specific password, see https://support.apple.com/en-us/HT204397 +stty -echo +printf "Password: " +read PASSWORD +stty echo +printf "\n" + echo "Uploading disk image for notarization. This can take a while."; xcrun altool --notarize-app -f "${DMGFILE}" --primary-bundle-id "${BUNDLEID}" -u "${APPLEID}" -p "${PASSWORD}" > ${TMPDIR}notarize_output 2>&1 || { cat ${TMPDIR}notarize_output; rm -f ${TMPDIR}notarize_output; exit $?; }; cat ${TMPDIR}notarize_output; -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 10:41:45 2019 From: git-noreply at xxxxx (=?utf-8?b?SmlyzIxpzIEgVGVjaGV0?=) Date: Mon, 10 Jun 2019 10:41:45 -0000 Subject: [geany/geany-osx] 57e441: Don't use libsoup and gnutls Message-ID: <20190610104208.E6FF21EB0C5@mail.geany.org> Branch: refs/heads/master Author: Jiří Techet Committer: Jiří Techet Date: Mon, 10 Jun 2019 10:41:45 UTC Commit: 57e441c2f6ce8a0fa8b59e42bd2bf1dfcb5065c6 https://github.com/geany/geany-osx/commit/57e441c2f6ce8a0fa8b59e42bd2bf1dfcb5065c6 Log Message: ----------- Don't use libsoup and gnutls Both of them require compilation of cryptography-related libraries which however aren't updated in gtk-osx so there are probably many security-related problems. In addition, HTTPS doesn't seem to work anyway so we won't lose much. Modified Paths: -------------- geany.modules patches/0001-build-Add-strchrnul-implementation-to-fix-compilatio.patch Modified: geany.modules 13 lines changed, 5 insertions(+), 8 deletions(-) =================================================================== @@ -49,19 +49,17 @@ + - + - - - - + @@ -179,7 +177,6 @@ - Modified: patches/0001-build-Add-strchrnul-implementation-to-fix-compilatio.patch 117 lines changed, 0 insertions(+), 117 deletions(-) =================================================================== @@ -1,117 +0,0 @@ -From a4362e96d882e496444c8858963d4d4be4d7b430 Mon Sep 17 00:00:00 2001 -From: Egmont Koblinger -Date: Sun, 15 Oct 2017 22:33:22 +0200 -Subject: [PATCH 1/2] build: Add strchrnul implementation to fix compilation on - macOS - -https://bugzilla.gnome.org/show_bug.cgi?id=788476 ---- - configure.ac | 3 +++ - src/vteseq.cc | 1 + - src/vtespawn.cc | 13 ++----------- - src/vteutils.cc | 13 +++++++++++++ - src/vteutils.h | 3 +++ - 5 files changed, 22 insertions(+), 11 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e5109fff..e7c386d6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -293,6 +293,9 @@ AC_CHECK_FUNCS([cfmakeraw fork setsid setpgid getpgid tcgetattr tcsetattr]) - AC_CHECK_FUNCS([pread pwrite]) - AC_CHECK_FUNCS([explicit_bzero]) - -+# Misc string routines. -+AC_CHECK_FUNCS([strchrnul]) -+ - # for vtespawn - AC_CHECK_HEADERS([sys/resource.h]) - AC_CHECK_FUNCS([fdwalk]) -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 6876341d..7b5b49b0 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -31,6 +31,7 @@ - #include - #include "vteinternal.hh" - #include "vtegtk.hh" -+#include "vteutils.h" /* for strchrnul on non-GNU systems */ - #include "caps.h" - #include "debug.h" - -diff --git a/src/vtespawn.cc b/src/vtespawn.cc -index b411ca71..331e8fc2 100644 ---- a/src/vtespawn.cc -+++ b/src/vtespawn.cc -@@ -39,6 +39,7 @@ - #include - - #include "vtespawn.hh" -+#include "vteutils.h" /* for strchrnul on non-GNU systems */ - #include "reaper.hh" - - #define VTE_SPAWN_ERROR_TIMED_OUT (G_SPAWN_ERROR_FAILED + 1000) -@@ -1001,16 +1002,6 @@ script_execute (const gchar *file, - } - } - --static gchar* --my_strchrnul (const gchar *str, gchar c) --{ -- gchar *p = (gchar*) str; -- while (*p && (*p != c)) -- ++p; -- -- return p; --} -- - static gint - g_execute (const gchar *file, - gchar **argv, -@@ -1081,7 +1072,7 @@ g_execute (const gchar *file, - char *startp; - - path = p; -- p = my_strchrnul (path, ':'); -+ p = strchrnul (path, ':'); - - if (p == path) - /* Two adjacent colons, or a colon at the beginning or the end -diff --git a/src/vteutils.cc b/src/vteutils.cc -index 648d1851..e683375b 100644 ---- a/src/vteutils.cc -+++ b/src/vteutils.cc -@@ -96,3 +96,16 @@ _vte_mkstemp (void) - - return fd; - } -+ -+#ifndef HAVE_STRCHRNUL -+/* Copied from glib */ -+char * -+strchrnul (const char *s, int c) -+{ -+ char *p = (char *) s; -+ while (*p && (*p != c)) -+ ++p; -+ -+ return p; -+} -+#endif /* !HAVE_STRCHRNUL */ -diff --git a/src/vteutils.h b/src/vteutils.h -index 999e3bf9..0cc98eb2 100644 ---- a/src/vteutils.h -+++ b/src/vteutils.h -@@ -24,6 +24,9 @@ - G_BEGIN_DECLS - - int _vte_mkstemp (void); -+#ifndef HAVE_STRCHRNUL -+char *strchrnul (const char *s, int c); -+#endif - - G_END_DECLS - --- -2.13.5 (Apple Git-94) - -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 11:15:50 2019 From: git-noreply at xxxxx (=?utf-8?q?Nick_Treleaven?=) Date: Mon, 10 Jun 2019 11:15:50 -0000 Subject: [geany/geany] 0082fb: Kill filetypes_find(), rename static function Message-ID: <20190610111548.A61C51EB0D5@mail.geany.org> Branch: refs/heads/master Author: Nick Treleaven Committer: Nick Treleaven Date: Thu, 16 May 2019 14:58:57 UTC Commit: 0082fb2a99b306a7d7b995cd6ca3d087c3bca7cd https://github.com/geany/geany/commit/0082fb2a99b306a7d7b995cd6ca3d087c3bca7cd Log Message: ----------- Kill filetypes_find(), rename static function It's not worth abstracting finding through filetypes_array, it's not bug prone, and it may even cause bugs with non-type-safe predicate signature. It was only used once anyway. Modified Paths: -------------- src/filetypes.c src/filetypes.h Modified: src/filetypes.c 33 lines changed, 11 insertions(+), 22 deletions(-) =================================================================== @@ -463,26 +463,8 @@ void filetypes_init(void) } -/* Find a filetype that predicate returns TRUE for, otherwise return NULL. */ -GeanyFiletype *filetypes_find(GCompareFunc predicate, gpointer user_data) +static gboolean match_basename(const GeanyFiletype *ft, const gchar *base_filename) { - guint i; - - for (i = 0; i < filetypes_array->len; i++) - { - GeanyFiletype *ft = filetypes[i]; - - if (predicate(ft, user_data)) - return ft; - } - return NULL; -} - - -static gboolean match_basename(gconstpointer pft, gconstpointer user_data) -{ - const GeanyFiletype *ft = pft; - const gchar *base_filename = user_data; gint j; gboolean ret = FALSE; @@ -505,7 +487,7 @@ static gboolean match_basename(gconstpointer pft, gconstpointer user_data) } -static GeanyFiletype *check_builtin_filenames(const gchar *utf8_filename) +static GeanyFiletype *detect_filetype_conf_file(const gchar *utf8_filename) { gchar *lfn = NULL; gchar *path; @@ -540,7 +522,7 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) gchar *base_filename; GeanyFiletype *ft; - ft = check_builtin_filenames(utf8_filename); + ft = detect_filetype_conf_file(utf8_filename); if (ft) return ft; @@ -551,7 +533,14 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) SETPTR(base_filename, g_utf8_strdown(base_filename, -1)); #endif - ft = filetypes_find(match_basename, base_filename); + for (guint i = 0; i < filetypes_array->len; i++) + { + if (match_basename(filetypes[i], base_filename)) + { + ft = filetypes[i]; + break; + } + } if (ft == NULL) ft = filetypes[GEANY_FILETYPES_NONE]; Modified: src/filetypes.h 3 lines changed, 0 insertions(+), 3 deletions(-) =================================================================== @@ -196,9 +196,6 @@ extern GPtrArray *filetypes_array; extern GSList *filetypes_by_title; -GeanyFiletype *filetypes_find(GCompareFunc predicate, gpointer user_data); - - void filetypes_init(void); void filetypes_init_types(void); -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 11:15:50 2019 From: git-noreply at xxxxx (=?utf-8?q?Nick_Treleaven?=) Date: Mon, 10 Jun 2019 11:15:50 -0000 Subject: [geany/geany] 41122c: Always allow user filetype extensions to override system config file Message-ID: <20190610111549.3D9961EB0D6@mail.geany.org> Branch: refs/heads/master Author: Nick Treleaven Committer: Nick Treleaven Date: Sat, 18 May 2019 12:51:55 UTC Commit: 41122c07bca2a45cd3750311398d42da404c85fa https://github.com/geany/geany/commit/41122c07bca2a45cd3750311398d42da404c85fa Log Message: ----------- Always allow user filetype extensions to override system config file Before the user would sometimes have to override 'UnwantedFiletype=' in the user config file to remove an extension written in the system file. Geany would ignore an overridden filetype in the user config file that also matches the extension. This happened when the wanted filetype had a higher index than the unwanted one in filetypes_array. Modified Paths: -------------- src/filetypes.c src/filetypesprivate.h Modified: src/filetypes.c 17 lines changed, 16 insertions(+), 1 deletions(-) =================================================================== @@ -521,6 +521,7 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) { gchar *base_filename; GeanyFiletype *ft; + guint i; ft = detect_filetype_conf_file(utf8_filename); if (ft) @@ -533,14 +534,27 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) SETPTR(base_filename, g_utf8_strdown(base_filename, -1)); #endif - for (guint i = 0; i < filetypes_array->len; i++) + for (i = 0; i < filetypes_array->len; i++) { if (match_basename(filetypes[i], base_filename)) { ft = filetypes[i]; break; } } + // check if user config overrides found ft + if (ft && !ft->priv->user_extensions) + { + for (i++; i < filetypes_array->len; i++) + { + if (filetypes[i]->priv->user_extensions && + match_basename(filetypes[i], base_filename)) + { + ft = filetypes[i]; + break; + } + } + } if (ft == NULL) ft = filetypes[GEANY_FILETYPES_NONE]; @@ -1386,6 +1400,7 @@ static void read_extensions(GKeyFile *sysconfig, GKeyFile *userconfig) gchar **list = g_key_file_get_string_list( (userset) ? userconfig : sysconfig, "Extensions", filetypes[i]->name, &len, NULL); + filetypes[i]->priv->user_extensions = userset; g_strfreev(filetypes[i]->pattern); /* Note: we allow 'Foo=' to remove all patterns */ if (!list) Modified: src/filetypesprivate.h 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -40,6 +40,7 @@ typedef struct GeanyFiletypePrivate gboolean xml_indent_tags; /* XML tag autoindentation, for HTML and XML filetypes */ GSList *tag_files; gboolean warn_color_scheme; + gboolean user_extensions; // true if extensions were read from user config file /* TODO: move to structure in build.h and only put a pointer here */ GeanyBuildCommand *filecmds; -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Mon Jun 10 11:15:43 2019 From: git-noreply at xxxxx (=?utf-8?q?Nick_Treleaven?=) Date: Mon, 10 Jun 2019 11:15:43 -0000 Subject: [geany/geany] 770cda: Merge pull request #2166 from ntrel/user-ft-ext Message-ID: <20190610111549.B2D611EB0D7@mail.geany.org> Branch: refs/heads/master Author: Nick Treleaven Committer: GitHub Date: Mon, 10 Jun 2019 11:15:43 UTC Commit: 770cda40646e8ebfe6591df03356e2bcb71b875c https://github.com/geany/geany/commit/770cda40646e8ebfe6591df03356e2bcb71b875c Log Message: ----------- Merge pull request #2166 from ntrel/user-ft-ext Always allow user filetype extensions to override system config file Modified Paths: -------------- src/filetypes.c src/filetypes.h src/filetypesprivate.h Modified: src/filetypes.c 48 lines changed, 26 insertions(+), 22 deletions(-) =================================================================== @@ -463,26 +463,8 @@ void filetypes_init(void) } -/* Find a filetype that predicate returns TRUE for, otherwise return NULL. */ -GeanyFiletype *filetypes_find(GCompareFunc predicate, gpointer user_data) +static gboolean match_basename(const GeanyFiletype *ft, const gchar *base_filename) { - guint i; - - for (i = 0; i < filetypes_array->len; i++) - { - GeanyFiletype *ft = filetypes[i]; - - if (predicate(ft, user_data)) - return ft; - } - return NULL; -} - - -static gboolean match_basename(gconstpointer pft, gconstpointer user_data) -{ - const GeanyFiletype *ft = pft; - const gchar *base_filename = user_data; gint j; gboolean ret = FALSE; @@ -505,7 +487,7 @@ static gboolean match_basename(gconstpointer pft, gconstpointer user_data) } -static GeanyFiletype *check_builtin_filenames(const gchar *utf8_filename) +static GeanyFiletype *detect_filetype_conf_file(const gchar *utf8_filename) { gchar *lfn = NULL; gchar *path; @@ -539,8 +521,9 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) { gchar *base_filename; GeanyFiletype *ft; + guint i; - ft = check_builtin_filenames(utf8_filename); + ft = detect_filetype_conf_file(utf8_filename); if (ft) return ft; @@ -551,7 +534,27 @@ GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename) SETPTR(base_filename, g_utf8_strdown(base_filename, -1)); #endif - ft = filetypes_find(match_basename, base_filename); + for (i = 0; i < filetypes_array->len; i++) + { + if (match_basename(filetypes[i], base_filename)) + { + ft = filetypes[i]; + break; + } + } + // check if user config overrides found ft + if (ft && !ft->priv->user_extensions) + { + for (i++; i < filetypes_array->len; i++) + { + if (filetypes[i]->priv->user_extensions && + match_basename(filetypes[i], base_filename)) + { + ft = filetypes[i]; + break; + } + } + } if (ft == NULL) ft = filetypes[GEANY_FILETYPES_NONE]; @@ -1397,6 +1400,7 @@ static void read_extensions(GKeyFile *sysconfig, GKeyFile *userconfig) gchar **list = g_key_file_get_string_list( (userset) ? userconfig : sysconfig, "Extensions", filetypes[i]->name, &len, NULL); + filetypes[i]->priv->user_extensions = userset; g_strfreev(filetypes[i]->pattern); /* Note: we allow 'Foo=' to remove all patterns */ if (!list) Modified: src/filetypes.h 3 lines changed, 0 insertions(+), 3 deletions(-) =================================================================== @@ -196,9 +196,6 @@ extern GPtrArray *filetypes_array; extern GSList *filetypes_by_title; -GeanyFiletype *filetypes_find(GCompareFunc predicate, gpointer user_data); - - void filetypes_init(void); void filetypes_init_types(void); Modified: src/filetypesprivate.h 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -40,6 +40,7 @@ typedef struct GeanyFiletypePrivate gboolean xml_indent_tags; /* XML tag autoindentation, for HTML and XML filetypes */ GSList *tag_files; gboolean warn_color_scheme; + gboolean user_extensions; // true if extensions were read from user config file /* TODO: move to structure in build.h and only put a pointer here */ GeanyBuildCommand *filecmds; -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 16 13:25:55 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 16 Jun 2019 13:25:55 -0000 Subject: [geany/www.geany.org] f5c6eb: Increase margin of left/right buttons in carousel Message-ID: <20190616132732.1BD701EB03A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 16 Jun 2019 13:25:55 UTC Commit: f5c6eb20282cd9697bad1a666ecc59563fa3b283 https://github.com/geany/www.geany.org/commit/f5c6eb20282cd9697bad1a666ecc59563fa3b283 Log Message: ----------- Increase margin of left/right buttons in carousel Do not overlap the left/right arrows with the picture. Modified Paths: -------------- geany/static/css/main.css Modified: geany/static/css/main.css 7 lines changed, 7 insertions(+), 0 deletions(-) =================================================================== @@ -127,6 +127,13 @@ div.feature-icon { margin-bottom: 10px; } +/* galery / carousel */ +.carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { + margin-right: -55px; +} +.carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { + margin-left: -35px; +} /* basic table formatting: border and cell spacing */ table { -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 16 13:27:13 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 16 Jun 2019 13:27:13 -0000 Subject: [geany/www.geany.org] 5b41c0: Renew homepage carousel screenshots Message-ID: <20190616132732.6E0901EB0AF@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 16 Jun 2019 13:27:13 UTC Commit: 5b41c005eb359ffc77035b598ec4b709d08e64db https://github.com/geany/www.geany.org/commit/5b41c005eb359ffc77035b598ec4b709d08e64db Log Message: ----------- Renew homepage carousel screenshots Use variants of the screenshots which are cropped by hand to fit the dimensions best and have a mostly equal height. Modified Paths: -------------- geany/templates/home.html Modified: geany/templates/home.html 24 lines changed, 3 insertions(+), 21 deletions(-) =================================================================== @@ -67,51 +67,33 @@

    Geany - The Flyweight IDE

  • -
  • -
  • -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 16 21:20:56 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 16 Jun 2019 21:20:56 -0000 Subject: [geany/www.geany.org] fd99ff: Ignore Mezzanine PageDown future warning Message-ID: <20190620104314.0B0B21EB19E@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 16 Jun 2019 21:20:56 UTC Commit: fd99ff2011b5bc6b83c818440e17d8e00f32ae10 https://github.com/geany/www.geany.org/commit/fd99ff2011b5bc6b83c818440e17d8e00f32ae10 Log Message: ----------- Ignore Mezzanine PageDown future warning We cannot fix the reason for the warning, so we silence it. Modified Paths: -------------- geany/settings.py Modified: geany/settings.py 11 lines changed, 10 insertions(+), 1 deletions(-) =================================================================== @@ -16,6 +16,7 @@ import logging import os +import warnings from django.utils.translation import ugettext_lazy as _ @@ -576,7 +577,15 @@ ################### SILENCED_SYSTEM_CHECKS = ( ) - +# ignore warnings we cannot fix: +# FutureWarning: mezzanine/core/templatetags/mezzanine_tags.py:492: +# mezzanine_pagedown.filters.custom needs to ensure that any untrusted inputs are properly escaped +warnings.filterwarnings( + action='ignore', + message='^mezzanine_pagedown.filters.custom needs to ensure that any untrusted inputs.*', + category=FutureWarning, + module='mezzanine.core.templatetags.mezzanine_tags', + lineno=492) ################## # LOCAL SETTINGS # -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Thu Jun 20 10:38:30 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Thu, 20 Jun 2019 10:38:30 -0000 Subject: [geany/www.geany.org] 42fe19: Replace deprecated 'imp' module by 'importlib' Message-ID: <20190620104314.4ADC71EB1AA@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Thu, 20 Jun 2019 10:38:30 UTC Commit: 42fe1997b5bb55a1156d2d76b47bd66cd5600b0f https://github.com/geany/www.geany.org/commit/42fe1997b5bb55a1156d2d76b47bd66cd5600b0f Log Message: ----------- Replace deprecated 'imp' module by 'importlib' Modified Paths: -------------- geany/settings.py Modified: geany/settings.py 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -600,10 +600,10 @@ filename = os.path.join(PROJECT_APP_PATH, 'local_settings.py') # pylint: disable=invalid-name if os.path.exists(filename): import sys - import imp + from importlib.util import module_from_spec, spec_from_file_location module_name = '{}.local_settings'.format(PROJECT_APP) # pylint: disable=invalid-name - module = imp.new_module(module_name) # pylint: disable=invalid-name - module.__file__ = filename + spec = spec_from_file_location(module_name, filename) # pylint: disable=invalid-name + module = module_from_spec(spec) # pylint: disable=invalid-name sys.modules[module_name] = module exec(open(filename, 'rb').read()) # pylint: disable=exec-used -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Thu Jun 20 10:42:49 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Thu, 20 Jun 2019 10:42:49 -0000 Subject: [geany/www.geany.org] 46e1aa: Center headings of feature boxes on homepage Message-ID: <20190620104314.C853F1EB1AB@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Thu, 20 Jun 2019 10:42:49 UTC Commit: 46e1aaec788059e498e98e3178e60edf414e3dde https://github.com/geany/www.geany.org/commit/46e1aaec788059e498e98e3178e60edf414e3dde Log Message: ----------- Center headings of feature boxes on homepage Modified Paths: -------------- geany/templates/home.html Modified: geany/templates/home.html 12 lines changed, 6 insertions(+), 6 deletions(-) =================================================================== @@ -111,12 +111,12 @@

    Geany - The Flyweight IDE

    -

    News

    +

    News

    {% get_recent_news %}
    -

    Fast & Small

    +

    Fast & Small

    One the primary reasons for Geany's existence is that there is a need for a decent, GUI, lightweight, cross-platform, flexible and powerful IDE/editor. Many editors meet one or more of these @@ -127,7 +127,7 @@

    Fast & Small

    -

    Great Community

    +

    Great Community

    Geany is Good Ol' Fashioned Free Software. Using the GPL v2 license, @@ -148,7 +148,7 @@

    Great Community

    -

    Easily Customizable

    +

    Easily Customizable

    Many parts of Geany are heavily customizable like color themes (Geany Themes project) or @@ -161,7 +161,7 @@

    Easily Customizable

    -

    Many Filetypes

    +

    Many Filetypes

    Many supported filetypes including popular programming languages like C, Java, PHP, HTML, JavaScript, Python or Perl. @@ -175,7 +175,7 @@

    Many Filetypes

    -

    Many Plugins

    +

    Many Plugins

    With Geany's plugin system, users can get more features into Geany and developers can easily add new features and/or improve existing ones. -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Fri Jun 21 12:26:03 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Fri, 21 Jun 2019 12:26:03 -0000 Subject: [geany/www.geany.org] a889c9: Fix generated links in Pastebin documentation Message-ID: <20190621133541.8547D1EAE8F@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Fri, 21 Jun 2019 12:26:03 UTC Commit: a889c9365a375e17e27537cd31336528a5c45a3f https://github.com/geany/www.geany.org/commit/a889c9365a375e17e27537cd31336528a5c45a3f Log Message: ----------- Fix generated links in Pastebin documentation Modified Paths: -------------- pastebin/templates/pastebin/api.html pastebin/templates/pastebin/help.html Modified: pastebin/templates/pastebin/api.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -27,7 +27,7 @@

    API

    fields.append(('lexer', 'python')) encoded_data = urllib.parse.urlencode(fields).encode('utf-8') request = urllib.request.Request( - 'https://{{ request.site.domain }}{% url 'snippet_api' %}', + '{{ request.scheme }}://{{ request.get_host }}{% url 'snippet_api' %}', encoded_data, ) response = urllib.request.urlopen(request) Modified: pastebin/templates/pastebin/help.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -13,7 +13,7 @@

    What is pastebin?

    most people use it like this:

    • submit a code fragment to pastebin, -getting a url like https://{{ request.site.domain }}/p/abc1234
    • +getting a url like {{ request.scheme }}://{{ request.get_host }}{% url 'snippet_details' 'abc1234' %}
    • paste the url into an IRC or IM conversation
    • someone responds by reading and perhaps submitting a modification of your code
    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Fri Jun 21 12:38:26 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Fri, 21 Jun 2019 12:38:26 -0000 Subject: [geany/www.geany.org] e1e98e: Remove obsolete settings Message-ID: <20190621133541.BF6631EAE90@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Fri, 21 Jun 2019 12:38:26 UTC Commit: e1e98ee04a7b4e479ca1d68fed34726cb8ac761a https://github.com/geany/www.geany.org/commit/e1e98ee04a7b4e479ca1d68fed34726cb8ac761a Log Message: ----------- Remove obsolete settings Modified Paths: -------------- geany/settings.py geany/sitemaps.py Modified: geany/settings.py 3 lines changed, 0 insertions(+), 3 deletions(-) =================================================================== @@ -171,9 +171,6 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = True SITE_ID = 1 -SITE_DOMAIN_WWW = 'www.geany.org' -SITE_DOMAIN_PASTEBIN = 'pastebin.geany.org' -SITE_DOMAIN_NIGHTLY = 'nightly.geany.org' # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. Modified: geany/sitemaps.py 3 lines changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -155,7 +155,8 @@ def __init__(self): # ---------------------------------------------------------------------- def add(self, generator_class, url_patterns, site_domain=None): if site_domain is None: - site_domain = settings.SITE_DOMAIN_WWW + site = Site.objects.get(id=settings.SITE_ID) + site_domain = site.domain sitemap_generator_item = (generator_class, url_patterns, site_domain) self._sitemap_generators.append(sitemap_generator_item) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Fri Jun 21 15:41:19 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Fri, 21 Jun 2019 15:41:19 -0000 Subject: [geany/www.geany.org] da5f6a: Fix header filename on nightly builds page Message-ID: <20190621154234.86C541EAE91@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Fri, 21 Jun 2019 15:41:19 UTC Commit: da5f6a73719d1b807c1900cb7ea32414b7b053f9 https://github.com/geany/www.geany.org/commit/da5f6a73719d1b807c1900cb7ea32414b7b053f9 Log Message: ----------- Fix header filename on nightly builds page Modified Paths: -------------- nightlybuilds/templatetags/nightlybuilds_tags.py Modified: nightlybuilds/templatetags/nightlybuilds_tags.py 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -50,7 +50,7 @@ def get_build_log(nightly_build, log_type): # ---------------------------------------------------------------------- @register.simple_tag def get_details(nightly_build): - header_txt = os.path.join(BASE_DIR, nightly_build.nightly_build_target.folder, 'HEADER.txt') + header_txt = os.path.join(BASE_DIR, nightly_build.nightly_build_target.folder, 'header.html') if os.path.exists(header_txt): return format_html( 'Details', -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Fri Jun 21 15:42:23 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Fri, 21 Jun 2019 15:42:23 -0000 Subject: [geany/www.geany.org] aa5414: Update legacy URL redirects Message-ID: <20190621154235.109A01EAE92@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Fri, 21 Jun 2019 15:42:23 UTC Commit: aa54145d99f3392ef4f39fefb417f4b774ef8821 https://github.com/geany/www.geany.org/commit/aa54145d99f3392ef4f39fefb417f4b774ef8821 Log Message: ----------- Update legacy URL redirects Modified Paths: -------------- geany/urls_legacy.py Modified: geany/urls_legacy.py 15 lines changed, 15 insertions(+), 0 deletions(-) =================================================================== @@ -18,13 +18,16 @@ URL_MAPPING = { # old urls mapped to new ones + '/Category/DocumentationToDo': 'https://github.com/geany/geany/issues/', + '/Category/Manual': '/documentation/manual/', '/Contribute/Developers': '/contribute/development/', '/Contribute/Documentation': '/contribute/documentation/', '/Contribute/Support': '/contribute/support/', '/Contribute/Translators': '/contribute/translation/', '/i18n/': '/contribute/translation/statistics/', '/Developers/Developers': '/contribute/development/', '/Documentation/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped + '/Documentation/Documentation': '/documentation/manual/', '/Documentation/FAQ': '/documentation/faq/', '/Documentation/FAQdata': '/documentation/faq/', '/Documentation/Manual': '/documentation/manual/', @@ -36,13 +39,15 @@ '/Download/Extras': 'https://wiki.geany.org/', # page dropped '/Download/Git': '/download/git/', '/Download/OldExtras': 'https://wiki.geany.org/', # page dropped + '/Download/': '/download/releases/', '/Download/Releases': '/download/releases/', '/Download/SVN': '/download/git/', '/Download/ThirdPartyPackages': '/download/third-party/', '/Gallery/Main': '/documentation/screenshots/', '/Gallery/Test': '/documentation/screenshots/', '/Geany/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped '/Geany/FAQ': '/documentation/faq/', + '/Geany/Screenshots': '/documentation/screenshots/', '/Geany/Support': '/support/', '/Main/About': '/about/geany/', '/Main/AboutThisSite': '/', @@ -51,9 +56,11 @@ '/Main/Blog': '/news/', '/Main/BlogArchive': '/news/', '/Main/HomePage': '/', + '/main/homepage': '/', '/Main/Reviews': '/', # page dropped '/Main/Thanks': '/', # page dropped '/Main/WikiSandbox': '/', # page dropped + '/Site/AllRecentChanges/': '/news/feed/', '/Support/Bugs': '/support/bugs/', '/Support/BuildingFromSource': 'https://www.geany.org/manual/index.html#installation', '/Support/BuildingOnWin32': 'https://wiki.geany.org/howtos/win32/msys2', @@ -70,6 +77,11 @@ '/Support/RunningOnWindows': 'https://wiki.geany.org/howtos/win32/running', '/Support/VerifyGPGSignature': '/support/verify-gpg-signature/', + # various old deep links (catch all) + '/images/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', + '/uploads/Gallery/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', + '/PmWiki/.*': '/', + # migrated news items '/Main/20060117': '/news/geany-in-linuxuser/', '/Main/20060128': '/news/geany-05-is-out/', @@ -149,6 +161,9 @@ '/Main/20180225': '/news/geany-133-is-out/', '/Main/20181216': '/news/geany-134-is-out/', '/Main/20190104': '/news/geany-1341-is-out/', + '/Main/20190428': '/news/geany-135-is-out/', + # catch all for everything else (spiders tend to query even non-existent URLs) + '/Main/.*': '/news/geany-135-is-out/', } -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 22 21:53:39 2019 From: git-noreply at xxxxx (=?utf-8?q?suntong?=) Date: Sat, 22 Jun 2019 21:53:39 -0000 Subject: [geany/geany-themes] b77a43: Add preview to the screenshot folder (for #29) (#30) Message-ID: <20190622215342.D40341E60FA@mail.geany.org> Branch: refs/heads/master Author: suntong Committer: Matthew Brush Date: Sat, 22 Jun 2019 21:53:39 UTC Commit: b77a43c9c496dec9f36bf225b47198fdc036a2e8 https://github.com/geany/geany-themes/commit/b77a43c9c496dec9f36bf225b47198fdc036a2e8 Log Message: ----------- Add preview to the screenshot folder (for #29) (#30) * Create README.md * Update README.md As per #30's new requirement Modified Paths: -------------- screenshots/README.md Modified: screenshots/README.md 232 lines changed, 232 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,232 @@ + +### [The Bespin Theme](../colorschemes/bespin.conf) + +[![bespin.png](bespin.png)](bespin.png "The Bespin Theme") + +[The Bespin Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/bespin.conf) + + +### [The Black Theme](../colorschemes/black.conf) + +[![black.png](black.png)](black.png "The Black Theme") + +[The Black Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/black.conf) + + +### [The Darcula Theme](../colorschemes/darcula.conf) + +[![darcula.png](darcula.png)](darcula.png "The Darcula Theme") + +[The Darcula Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/darcula.conf) + + +### [The DarkColors Theme](../colorschemes/dark-colors.conf) + +[![dark-colors.png](dark-colors.png)](dark-colors.png "The DarkColors Theme") + +[The DarkColors Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-colors.conf) + + +### [The DarkFruitSalad Theme](../colorschemes/dark-fruit-salad.conf) + +[![dark-fruit-salad.png](dark-fruit-salad.png)](dark-fruit-salad.png "The DarkFruitSalad Theme") + +[The DarkFruitSalad Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-fruit-salad.conf) + + +### [The Dark Theme](../colorschemes/dark.conf) + +[![dark.png](dark.png)](dark.png "The Dark Theme") + +[The Dark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark.conf) + + +### [The DeltDark Theme](../colorschemes/delt-dark.conf) + +[![delt-dark.png](delt-dark.png)](delt-dark.png "The DeltDark Theme") + +[The DeltDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/delt-dark.conf) + + +### [The Epsilon Theme](../colorschemes/epsilon.conf) + +[![epsilon.png](epsilon.png)](epsilon.png "The Epsilon Theme") + +[The Epsilon Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/epsilon.conf) + + +### [The Fluffy Theme](../colorschemes/fluffy.conf) + +[![fluffy.png](fluffy.png)](fluffy.png "The Fluffy Theme") + +[The Fluffy Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/fluffy.conf) + + +### [The Gedit Theme](../colorschemes/gedit.conf) + +[![gedit.png](gedit.png)](gedit.png "The Gedit Theme") + +[The Gedit Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/gedit.conf) + + +### [The Github Theme](../colorschemes/github.conf) + +[![github.png](github.png)](github.png "The Github Theme") + +[The Github Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/github.conf) + + +### [The Himbeere Theme](../colorschemes/himbeere.conf) + +[![himbeere.png](himbeere.png)](himbeere.png "The Himbeere Theme") + +[The Himbeere Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/himbeere.conf) + + +### [The Inkpot Theme](../colorschemes/inkpot.conf) + +[![inkpot.png](inkpot.png)](inkpot.png "The Inkpot Theme") + +[The Inkpot Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/inkpot.conf) + + +### [The Mc Theme](../colorschemes/mc.conf) + +[![mc.png](mc.png)](mc.png "The Mc Theme") + +[The Mc Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/mc.conf) + + +### [The MetallicBottle Theme](../colorschemes/metallic-bottle.conf) + +[![metallic-bottle.png](metallic-bottle.png)](metallic-bottle.png "The MetallicBottle Theme") + +[The MetallicBottle Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/metallic-bottle.conf) + + +### [The Monokai Theme](../colorschemes/monokai.conf) + +[![monokai.png](monokai.png)](monokai.png "The Monokai Theme") + +[The Monokai Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/monokai.conf) + + +### [The NotepadPlusPlus Theme](../colorschemes/notepad-plus-plus.conf) + +[![notepad-plus-plus.png](notepad-plus-plus.png)](notepad-plus-plus.png "The NotepadPlusPlus Theme") + +[The NotepadPlusPlus Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/notepad-plus-plus.conf) + + +### [The Oblivion2 Theme](../colorschemes/oblivion2.conf) + +[![oblivion2.png](oblivion2.png)](oblivion2.png "The Oblivion2 Theme") + +[The Oblivion2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/oblivion2.conf) + + +### [The Pygments Theme](../colorschemes/pygments.conf) + +[![pygments.png](pygments.png)](pygments.png "The Pygments Theme") + +[The Pygments Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/pygments.conf) + + +### [The Railcasts2 Theme](../colorschemes/railcasts2.conf) + +[![railcasts2.png](railcasts2.png)](railcasts2.png "The Railcasts2 Theme") + +[The Railcasts2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/railcasts2.conf) + + +### [The Retro Theme](../colorschemes/retro.conf) + +[![retro.png](retro.png)](retro.png "The Retro Theme") + +[The Retro Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/retro.conf) + + +### [The SleepyPastel Theme](../colorschemes/sleepy-pastel.conf) + +[![sleepy-pastel.png](sleepy-pastel.png)](sleepy-pastel.png "The SleepyPastel Theme") + +[The SleepyPastel Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/sleepy-pastel.conf) + + +### [The Slushpoppies Theme](../colorschemes/slushpoppies.conf) + +[![slushpoppies.png](slushpoppies.png)](slushpoppies.png "The Slushpoppies Theme") + +[The Slushpoppies Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/slushpoppies.conf) + + +### [The SolarizedDark Theme](../colorschemes/solarized-dark.conf) + +[![solarized-dark.png](solarized-dark.png)](solarized-dark.png "The SolarizedDark Theme") + +[The SolarizedDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-dark.conf) + + +### [The SolarizedLight Theme](../colorschemes/solarized-light.conf) + +[![solarized-light.png](solarized-light.png)](solarized-light.png "The SolarizedLight Theme") + +[The SolarizedLight Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-light.conf) + + +### [The SpyderDark Theme](../colorschemes/spyder-dark.conf) + +[![spyder-dark.png](spyder-dark.png)](spyder-dark.png "The SpyderDark Theme") + +[The SpyderDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/spyder-dark.conf) + + +### [The Steampunk Theme](../colorschemes/steampunk.conf) + +[![steampunk.png](steampunk.png)](steampunk.png "The Steampunk Theme") + +[The Steampunk Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/steampunk.conf) + + +### [The TangoDark Theme](../colorschemes/tango-dark.conf) + +[![tango-dark.png](tango-dark.png)](tango-dark.png "The TangoDark Theme") + +[The TangoDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-dark.conf) + + +### [The TangoLight Theme](../colorschemes/tango-light.conf) + +[![tango-light.png](tango-light.png)](tango-light.png "The TangoLight Theme") + +[The TangoLight Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-light.conf) + + +### [The Tinge Theme](../colorschemes/tinge.conf) + +[![tinge.png](tinge.png)](tinge.png "The Tinge Theme") + +[The Tinge Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tinge.conf) + + +### [The Ubuntu Theme](../colorschemes/ubuntu.conf) + +[![ubuntu.png](ubuntu.png)](ubuntu.png "The Ubuntu Theme") + +[The Ubuntu Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/ubuntu.conf) + + +### [The VibrantInk Theme](../colorschemes/vibrant-ink.conf) + +[![vibrant-ink.png](vibrant-ink.png)](vibrant-ink.png "The VibrantInk Theme") + +[The VibrantInk Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/vibrant-ink.conf) + + +### [The Zenburn Theme](../colorschemes/zenburn.conf) + +[![zenburn.png](zenburn.png)](zenburn.png "The Zenburn Theme") + +[The Zenburn Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/zenburn.conf) + + -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 22 22:34:55 2019 From: git-noreply at xxxxx (=?utf-8?q?Matthew_Brush?=) Date: Sat, 22 Jun 2019 22:34:55 -0000 Subject: [geany/geany-themes] 318070: Add a script to generate screenshots/README.md Message-ID: <20190622223709.6AA971E60FA@mail.geany.org> Branch: refs/heads/gen-screenshot-readme Author: Matthew Brush Committer: Matthew Brush Date: Sat, 22 Jun 2019 22:34:55 UTC Commit: 318070abc9cd7799f9e1da26dae6e1e1f51c33e6 https://github.com/geany/geany-themes/commit/318070abc9cd7799f9e1da26dae6e1e1f51c33e6 Log Message: ----------- Add a script to generate screenshots/README.md Modified Paths: -------------- Makefile screenshots/README.md scripts/screenshots-readme.py Modified: Makefile 5 lines changed, 4 insertions(+), 1 deletions(-) =================================================================== @@ -10,7 +10,7 @@ MISMATCH_MESSAGE = Warning: Possible wrong version of Geany installed ARCHIVE_NAME = geany-themes-$(THEMES_VERSION).tar.bz2 ARCHIVE_TEMP_DIR = geany-themes-$(THEMES_VERSION) -all: autobump index +all: autobump index screenshots/README.md install: mkdir -p $(COLORSCHEME_DIR) @@ -27,6 +27,9 @@ index: scripts/versions.log autobump: $(THEMES) python scripts/autobump.py +screenshots/README.md: $(THEMES) + python scripts/screenshots-readme.py > $@ + clean: make -C index clean Modified: screenshots/README.md 126 lines changed, 66 insertions(+), 60 deletions(-) =================================================================== @@ -1,3 +1,9 @@ +### [The Monokai Theme](../colorschemes/monokai.conf) + +[![monokai.png](monokai.png)](monokai.png "The Monokai Theme") + +[The Monokai Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/monokai.conf) + ### [The Bespin Theme](../colorschemes/bespin.conf) @@ -6,11 +12,11 @@ [The Bespin Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/bespin.conf) -### [The Black Theme](../colorschemes/black.conf) +### [The Black Scheme Theme](../colorschemes/black.conf) -[![black.png](black.png)](black.png "The Black Theme") +[![black.png](black.png)](black.png "The Black Scheme Theme") -[The Black Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/black.conf) +[The Black Scheme Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/black.conf) ### [The Darcula Theme](../colorschemes/darcula.conf) @@ -20,18 +26,18 @@ [The Darcula Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/darcula.conf) -### [The DarkColors Theme](../colorschemes/dark-colors.conf) +### [The Dark Colors Theme](../colorschemes/dark-colors.conf) -[![dark-colors.png](dark-colors.png)](dark-colors.png "The DarkColors Theme") +[![dark-colors.png](dark-colors.png)](dark-colors.png "The Dark Colors Theme") -[The DarkColors Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-colors.conf) +[The Dark Colors Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-colors.conf) -### [The DarkFruitSalad Theme](../colorschemes/dark-fruit-salad.conf) +### [The Dark Fruit Salad Theme](../colorschemes/dark-fruit-salad.conf) -[![dark-fruit-salad.png](dark-fruit-salad.png)](dark-fruit-salad.png "The DarkFruitSalad Theme") +[![dark-fruit-salad.png](dark-fruit-salad.png)](dark-fruit-salad.png "The Dark Fruit Salad Theme") -[The DarkFruitSalad Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-fruit-salad.conf) +[The Dark Fruit Salad Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark-fruit-salad.conf) ### [The Dark Theme](../colorschemes/dark.conf) @@ -41,11 +47,11 @@ [The Dark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/dark.conf) -### [The DeltDark Theme](../colorschemes/delt-dark.conf) +### [The Delt Dark Theme](../colorschemes/delt-dark.conf) -[![delt-dark.png](delt-dark.png)](delt-dark.png "The DeltDark Theme") +[![delt-dark.png](delt-dark.png)](delt-dark.png "The Delt Dark Theme") -[The DeltDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/delt-dark.conf) +[The Delt Dark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/delt-dark.conf) ### [The Epsilon Theme](../colorschemes/epsilon.conf) @@ -69,11 +75,11 @@ [The Gedit Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/gedit.conf) -### [The Github Theme](../colorschemes/github.conf) +### [The GitHub Theme](../colorschemes/github.conf) -[![github.png](github.png)](github.png "The Github Theme") +[![github.png](github.png)](github.png "The GitHub Theme") -[The Github Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/github.conf) +[The GitHub Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/github.conf) ### [The Himbeere Theme](../colorschemes/himbeere.conf) @@ -83,46 +89,46 @@ [The Himbeere Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/himbeere.conf) -### [The Inkpot Theme](../colorschemes/inkpot.conf) +### [The InkPot Theme](../colorschemes/inkpot.conf) -[![inkpot.png](inkpot.png)](inkpot.png "The Inkpot Theme") +[![inkpot.png](inkpot.png)](inkpot.png "The InkPot Theme") -[The Inkpot Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/inkpot.conf) +[The InkPot Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/inkpot.conf) -### [The Mc Theme](../colorschemes/mc.conf) +### [The Kugel Theme](../colorschemes/kugel.conf) -[![mc.png](mc.png)](mc.png "The Mc Theme") +[![kugel.png](kugel.png)](kugel.png "The Kugel Theme") -[The Mc Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/mc.conf) +[The Kugel Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/kugel.conf) -### [The MetallicBottle Theme](../colorschemes/metallic-bottle.conf) +### [The Ralesk's MC Theme](../colorschemes/mc.conf) -[![metallic-bottle.png](metallic-bottle.png)](metallic-bottle.png "The MetallicBottle Theme") +[![mc.png](mc.png)](mc.png "The Ralesk's MC Theme") -[The MetallicBottle Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/metallic-bottle.conf) +[The Ralesk's MC Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/mc.conf) -### [The Monokai Theme](../colorschemes/monokai.conf) +### [The Metallic Bottle Theme](../colorschemes/metallic-bottle.conf) -[![monokai.png](monokai.png)](monokai.png "The Monokai Theme") +[![metallic-bottle.png](metallic-bottle.png)](metallic-bottle.png "The Metallic Bottle Theme") -[The Monokai Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/monokai.conf) +[The Metallic Bottle Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/metallic-bottle.conf) -### [The NotepadPlusPlus Theme](../colorschemes/notepad-plus-plus.conf) +### [The Notepad-plus-plus Theme](../colorschemes/notepad-plus-plus.conf) -[![notepad-plus-plus.png](notepad-plus-plus.png)](notepad-plus-plus.png "The NotepadPlusPlus Theme") +[![notepad-plus-plus.png](notepad-plus-plus.png)](notepad-plus-plus.png "The Notepad-plus-plus Theme") -[The NotepadPlusPlus Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/notepad-plus-plus.conf) +[The Notepad-plus-plus Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/notepad-plus-plus.conf) -### [The Oblivion2 Theme](../colorschemes/oblivion2.conf) +### [The Oblivion 2 Theme](../colorschemes/oblivion2.conf) -[![oblivion2.png](oblivion2.png)](oblivion2.png "The Oblivion2 Theme") +[![oblivion2.png](oblivion2.png)](oblivion2.png "The Oblivion 2 Theme") -[The Oblivion2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/oblivion2.conf) +[The Oblivion 2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/oblivion2.conf) ### [The Pygments Theme](../colorschemes/pygments.conf) @@ -132,11 +138,11 @@ [The Pygments Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/pygments.conf) -### [The Railcasts2 Theme](../colorschemes/railcasts2.conf) +### [The Railcasts 2 Theme](../colorschemes/railcasts2.conf) -[![railcasts2.png](railcasts2.png)](railcasts2.png "The Railcasts2 Theme") +[![railcasts2.png](railcasts2.png)](railcasts2.png "The Railcasts 2 Theme") -[The Railcasts2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/railcasts2.conf) +[The Railcasts 2 Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/railcasts2.conf) ### [The Retro Theme](../colorschemes/retro.conf) @@ -146,39 +152,39 @@ [The Retro Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/retro.conf) -### [The SleepyPastel Theme](../colorschemes/sleepy-pastel.conf) +### [The Sleepy Pastel Theme](../colorschemes/sleepy-pastel.conf) -[![sleepy-pastel.png](sleepy-pastel.png)](sleepy-pastel.png "The SleepyPastel Theme") +[![sleepy-pastel.png](sleepy-pastel.png)](sleepy-pastel.png "The Sleepy Pastel Theme") -[The SleepyPastel Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/sleepy-pastel.conf) +[The Sleepy Pastel Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/sleepy-pastel.conf) -### [The Slushpoppies Theme](../colorschemes/slushpoppies.conf) +### [The Slush and Poppies Theme](../colorschemes/slushpoppies.conf) -[![slushpoppies.png](slushpoppies.png)](slushpoppies.png "The Slushpoppies Theme") +[![slushpoppies.png](slushpoppies.png)](slushpoppies.png "The Slush and Poppies Theme") -[The Slushpoppies Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/slushpoppies.conf) +[The Slush and Poppies Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/slushpoppies.conf) -### [The SolarizedDark Theme](../colorschemes/solarized-dark.conf) +### [The Solarized (dark) Theme](../colorschemes/solarized-dark.conf) -[![solarized-dark.png](solarized-dark.png)](solarized-dark.png "The SolarizedDark Theme") +[![solarized-dark.png](solarized-dark.png)](solarized-dark.png "The Solarized (dark) Theme") -[The SolarizedDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-dark.conf) +[The Solarized (dark) Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-dark.conf) -### [The SolarizedLight Theme](../colorschemes/solarized-light.conf) +### [The Solarized (light) Theme](../colorschemes/solarized-light.conf) -[![solarized-light.png](solarized-light.png)](solarized-light.png "The SolarizedLight Theme") +[![solarized-light.png](solarized-light.png)](solarized-light.png "The Solarized (light) Theme") -[The SolarizedLight Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-light.conf) +[The Solarized (light) Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/solarized-light.conf) -### [The SpyderDark Theme](../colorschemes/spyder-dark.conf) +### [The Spyder Dark Theme](../colorschemes/spyder-dark.conf) -[![spyder-dark.png](spyder-dark.png)](spyder-dark.png "The SpyderDark Theme") +[![spyder-dark.png](spyder-dark.png)](spyder-dark.png "The Spyder Dark Theme") -[The SpyderDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/spyder-dark.conf) +[The Spyder Dark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/spyder-dark.conf) ### [The Steampunk Theme](../colorschemes/steampunk.conf) @@ -188,18 +194,18 @@ [The Steampunk Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/steampunk.conf) -### [The TangoDark Theme](../colorschemes/tango-dark.conf) +### [The Tango Theme](../colorschemes/tango-dark.conf) -[![tango-dark.png](tango-dark.png)](tango-dark.png "The TangoDark Theme") +[![tango-dark.png](tango-dark.png)](tango-dark.png "The Tango Theme") -[The TangoDark Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-dark.conf) +[The Tango Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-dark.conf) -### [The TangoLight Theme](../colorschemes/tango-light.conf) +### [The Tango Light Theme](../colorschemes/tango-light.conf) -[![tango-light.png](tango-light.png)](tango-light.png "The TangoLight Theme") +[![tango-light.png](tango-light.png)](tango-light.png "The Tango Light Theme") -[The TangoLight Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-light.conf) +[The Tango Light Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/tango-light.conf) ### [The Tinge Theme](../colorschemes/tinge.conf) @@ -216,11 +222,11 @@ [The Ubuntu Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/ubuntu.conf) -### [The VibrantInk Theme](../colorschemes/vibrant-ink.conf) +### [The Vibrant Theme](../colorschemes/vibrant-ink.conf) -[![vibrant-ink.png](vibrant-ink.png)](vibrant-ink.png "The VibrantInk Theme") +[![vibrant-ink.png](vibrant-ink.png)](vibrant-ink.png "The Vibrant Theme") -[The VibrantInk Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/vibrant-ink.conf) +[The Vibrant Theme Direct Download](https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/vibrant-ink.conf) ### [The Zenburn Theme](../colorschemes/zenburn.conf) Modified: scripts/screenshots-readme.py 59 lines changed, 59 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +""" +Generates the screenshots/README.md file. +""" + +import os +import sys +from geanyscheme.confparse import ConfParse + +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +THEME_DIR = os.path.join(BASE_DIR, "colorschemes") +SCREENSHOT_DIR = os.path.join(BASE_DIR, "screenshots") +RAW_URL = 'https://raw.githubusercontent.com/geany/geany-themes/master/colorschemes/' + +class ColorScheme: + def __init__(self, name, theme, screenshot): + self.name = name + self.theme = theme + self.screenshot = screenshot + + @property + def title(self): + return "The %s Theme" % self.name + + @property + def theme_url(self): + return RAW_URL + os.path.basename(self.theme) + + @property + def markdown(self): + code = '### [%s](%s)\n' % (self.title, self.theme) + code += '\n' + code += '[![%s](%s)](%s "%s")\n' % ( + self.screenshot, self.screenshot, self.screenshot, self.title) + code += '\n' + code += '[%s Direct Download](%s)\n' % (self.title, self.theme_url) + code += '\n\n' + return code + +def list_colorschemes(): + schemes = [] + for fn in os.listdir(THEME_DIR): + path = os.path.join(THEME_DIR, fn) + conf = ConfParse(path) + scheme = ColorScheme( + conf.get("theme_info", "name"), + os.path.join("..", "colorschemes", fn), + os.path.splitext(fn)[0] + ".png") + schemes.append(scheme) + return schemes + +def main(args): + for scheme in list_colorschemes(): + sys.stdout.write(scheme.markdown) + return 0 + +if __name__ == "__main__": + sys.exit(main(sys.argv)) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 09:09:55 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 09:09:55 -0000 Subject: [geany/www.geany.org] 9ff5dd: Add some more catchalls for redirecting old deep links Message-ID: <20190623091736.A51211E6124@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 09:09:55 UTC Commit: 9ff5ddd476b267d4243799eafede8f02ed4cdec2 https://github.com/geany/www.geany.org/commit/9ff5ddd476b267d4243799eafede8f02ed4cdec2 Log Message: ----------- Add some more catchalls for redirecting old deep links Modified Paths: -------------- geany/urls_legacy.py Modified: geany/urls_legacy.py 12 lines changed, 11 insertions(+), 1 deletions(-) =================================================================== @@ -49,6 +49,7 @@ '/Geany/FAQ': '/documentation/faq/', '/Geany/Screenshots': '/documentation/screenshots/', '/Geany/Support': '/support/', + '/Geany/Troubleshooting': '/support/', '/Main/About': '/about/geany/', '/Main/AboutThisSite': '/', '/Main/AllFiletypes': '/about/filetypes/', @@ -61,6 +62,7 @@ '/Main/Thanks': '/', # page dropped '/Main/WikiSandbox': '/', # page dropped '/Site/AllRecentChanges/': '/news/feed/', + '/Site/Authors': '/about/geany/', '/Support/Bugs': '/support/bugs/', '/Support/BuildingFromSource': 'https://www.geany.org/manual/index.html#installation', '/Support/BuildingOnWin32': 'https://wiki.geany.org/howtos/win32/msys2', @@ -80,7 +82,15 @@ # various old deep links (catch all) '/images/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', '/uploads/Gallery/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', - '/PmWiki/.*': '/', + '/Category.*': '/', + '/Developers.*': '/', + '/Documentation.*': '/', + '/Download.*': '/', + '/Geany.*': '/', + '/PmWiki.*': '/', + '/Profiles.*': '/', + '/Site.*': '/', + '/Support.*': '/', # migrated news items '/Main/20060117': '/news/geany-in-linuxuser/', -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 09:12:47 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 09:12:47 -0000 Subject: [geany/www.geany.org] 0be960: Add trailing slashes for old deep link redirects Message-ID: <20190623091736.DE6C21E6125@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 09:12:47 UTC Commit: 0be9605106fdf340aac60d45629c56a19c5abae9 https://github.com/geany/www.geany.org/commit/0be9605106fdf340aac60d45629c56a19c5abae9 Log Message: ----------- Add trailing slashes for old deep link redirects This increases matching as some clients (probably bots and spiders) sometimes add trailing slashes themselves and Django adds the slashes in the first place as well if there is no match without the slash. Modified Paths: -------------- geany/urls_legacy.py Modified: geany/urls_legacy.py 112 lines changed, 56 insertions(+), 56 deletions(-) =================================================================== @@ -18,66 +18,66 @@ URL_MAPPING = { # old urls mapped to new ones - '/Category/DocumentationToDo': 'https://github.com/geany/geany/issues/', - '/Category/Manual': '/documentation/manual/', - '/Contribute/Developers': '/contribute/development/', - '/Contribute/Documentation': '/contribute/documentation/', - '/Contribute/Support': '/contribute/support/', - '/Contribute/Translators': '/contribute/translation/', + '/Category/DocumentationToDo/': 'https://github.com/geany/geany/issues/', + '/Category/Manual/': '/documentation/manual/', + '/Contribute/Developers/': '/contribute/development/', + '/Contribute/Documentation/': '/contribute/documentation/', + '/Contribute/Support/': '/contribute/support/', + '/Contribute/Translators/': '/contribute/translation/', '/i18n/': '/contribute/translation/statistics/', - '/Developers/Developers': '/contribute/development/', - '/Documentation/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped - '/Documentation/Documentation': '/documentation/manual/', - '/Documentation/FAQ': '/documentation/faq/', - '/Documentation/FAQdata': '/documentation/faq/', - '/Documentation/Manual': '/documentation/manual/', - '/Documentation/Questions': '/documentation/faq/', - '/Documentation/ReleaseNotes': '/documentation/releasenotes/', - '/Documentation/ReleaseNotesOld': '/documentation/releasenotes/', - '/Documentation/Screenshots': '/documentation/screenshots/', - '/Documentation/ToDo': 'https://github.com/geany/geany/issues/', - '/Download/Extras': 'https://wiki.geany.org/', # page dropped - '/Download/Git': '/download/git/', - '/Download/OldExtras': 'https://wiki.geany.org/', # page dropped + '/Developers/Developers/': '/contribute/development/', + '/Documentation/ChangeLog/': 'https://github.com/geany/geany/commits/master', # page dropped + '/Documentation/Documentation/': '/documentation/manual/', + '/Documentation/FAQ/': '/documentation/faq/', + '/Documentation/FAQdata/': '/documentation/faq/', + '/Documentation/Manual/': '/documentation/manual/', + '/Documentation/Questions/': '/documentation/faq/', + '/Documentation/ReleaseNotes/': '/documentation/releasenotes/', + '/Documentation/ReleaseNotesOld/': '/documentation/releasenotes/', + '/Documentation/Screenshots/': '/documentation/screenshots/', + '/Documentation/ToDo/': 'https://github.com/geany/geany/issues/', + '/Download/Extras/': 'https://wiki.geany.org/', # page dropped + '/Download/Git/': '/download/git/', + '/Download/OldExtras/': 'https://wiki.geany.org/', # page dropped '/Download/': '/download/releases/', - '/Download/Releases': '/download/releases/', - '/Download/SVN': '/download/git/', - '/Download/ThirdPartyPackages': '/download/third-party/', - '/Gallery/Main': '/documentation/screenshots/', - '/Gallery/Test': '/documentation/screenshots/', - '/Geany/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped - '/Geany/FAQ': '/documentation/faq/', - '/Geany/Screenshots': '/documentation/screenshots/', - '/Geany/Support': '/support/', - '/Geany/Troubleshooting': '/support/', - '/Main/About': '/about/geany/', - '/Main/AboutThisSite': '/', - '/Main/AllFiletypes': '/about/filetypes/', - '/Main/Authors': '/about/geany/', - '/Main/Blog': '/news/', - '/Main/BlogArchive': '/news/', - '/Main/HomePage': '/', - '/main/homepage': '/', - '/Main/Reviews': '/', # page dropped - '/Main/Thanks': '/', # page dropped - '/Main/WikiSandbox': '/', # page dropped + '/Download/Releases/': '/download/releases/', + '/Download/SVN/': '/download/git/', + '/Download/ThirdPartyPackages/': '/download/third-party/', + '/Gallery/Main/': '/documentation/screenshots/', + '/Gallery/Test/': '/documentation/screenshots/', + '/Geany/ChangeLog/': 'https://github.com/geany/geany/commits/master', # page dropped + '/Geany/FAQ/': '/documentation/faq/', + '/Geany/Screenshots/': '/documentation/screenshots/', + '/Geany/Support/': '/support/', + '/Geany/Troubleshooting/': '/support/', + '/Main/About/': '/about/geany/', + '/Main/AboutThisSite/': '/', + '/Main/AllFiletypes/': '/about/filetypes/', + '/Main/Authors/': '/about/geany/', + '/Main/Blog/': '/news/', + '/Main/BlogArchive/': '/news/', + '/Main/HomePage/': '/', + '/main/homepage/': '/', + '/Main/Reviews/': '/', # page dropped + '/Main/Thanks/': '/', # page dropped + '/Main/WikiSandbox/': '/', # page dropped '/Site/AllRecentChanges/': '/news/feed/', - '/Site/Authors': '/about/geany/', - '/Support/Bugs': '/support/bugs/', - '/Support/BuildingFromSource': 'https://www.geany.org/manual/index.html#installation', - '/Support/BuildingOnWin32': 'https://wiki.geany.org/howtos/win32/msys2', - '/Support/Contributions': '/contribute/', - '/Support/CrossCompile': 'https://wiki.geany.org/howtos/win32/crosscompile', - '/Support/Developers': '/contribute/development/', - '/Support/Hacking': '/documentation/hacking/', - '/Support/I18N': '/contribute/translation/', - '/Support/IRC': '/support/irc/', - '/Support/MailingList': '/support/mailing-lists/', - '/Support/PluginWishlist': + '/Site/Authors/': '/about/geany/', + '/Support/Bugs/': '/support/bugs/', + '/Support/BuildingFromSource/': 'https://www.geany.org/manual/index.html#installation', + '/Support/BuildingOnWin32/': 'https://wiki.geany.org/howtos/win32/msys2', + '/Support/Contributions/': '/contribute/', + '/Support/CrossCompile/': 'https://wiki.geany.org/howtos/win32/crosscompile', + '/Support/Developers/': '/contribute/development/', + '/Support/Hacking/': '/documentation/hacking/', + '/Support/I18N/': '/contribute/translation/', + '/Support/IRC/': '/support/irc/', + '/Support/MailingList/': '/support/mailing-lists/', + '/Support/PluginWishlist/': 'https://github.com/geany/geany-plugins/issues?q=is%%3Aissue+label%%3Afeature+', - '/Support/Plugins': '/support/plugins/', - '/Support/RunningOnWindows': 'https://wiki.geany.org/howtos/win32/running', - '/Support/VerifyGPGSignature': '/support/verify-gpg-signature/', + '/Support/Plugins/': '/support/plugins/', + '/Support/RunningOnWindows/': 'https://wiki.geany.org/howtos/win32/running', + '/Support/VerifyGPGSignature/': '/support/verify-gpg-signature/', # various old deep links (catch all) '/images/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 09:26:40 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 09:26:40 -0000 Subject: [geany/www.geany.org] 5171e3: Add Geany-Themes page with theme preview Message-ID: <20190623092657.874861E6124@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 09:26:40 UTC Commit: 5171e31573551a6f318936474378acd637ca61c7 https://github.com/geany/www.geany.org/commit/5171e31573551a6f318936474378acd637ca61c7 Log Message: ----------- Add Geany-Themes page with theme preview The themes in the preview list are loaded from the Geany-Themes repository on Github on the fly (but cached for one hour). Modified Paths: -------------- page_content/download/themes.md static_docs/github_client.py static_docs/templates/pages/download/themes.html static_docs/urls.py static_docs/views.py Modified: page_content/download/themes.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +## Geany Themes + +Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. +These schemes are compatible with Geany 1.22 and greater. + +To use one the themes below, download the configuration file and save it to the folder `colorschemes` in your Geany configuration directory (usually `~/.config/geany/colorschemes/`). + +For more information and detailed configuration instructions, see https://github.com/geany/geany-themes. + + Modified: static_docs/github_client.py 8 lines changed, 5 insertions(+), 3 deletions(-) =================================================================== @@ -30,9 +30,11 @@ class GitHubApiClient: """""" # ---------------------------------------------------------------------- - def get_file_contents(self, filename): - url_parameters = dict(user=GITHUB_USER, - repository=GITHUB_REPOSITORY, + def get_file_contents(self, filename, user=None, repository=None): + user = user or GITHUB_USER + repository = repository or GITHUB_REPOSITORY + url_parameters = dict(user=user, + repository=repository, filename=filename) url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ url_parameters Modified: static_docs/templates/pages/download/themes.html 65 lines changed, 65 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,65 @@ +{% extends "pages/richtextpage.html" %} + +{% load mezzanine_tags pages_tags static %} + +{% block extra_css %} + + +{% endblock %} + +{% block richtext_content %} +{{ block.super }} + +

    Available Themes

    + +
    + +{% for theme in theme_index.values|dictsort:"name" %} +
    +
    +
    + {{ theme.name }} + Download +
    + +
    +
    + + {% if forloop.counter|divisibleby:3 %} +
    +
    + {% endif %} +{% endfor %} +
    + +{% endblock %} + +{% block extra_js %} +{{ block.super }} + + +{% endblock %} Modified: static_docs/urls.py 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -14,10 +14,12 @@ from django.conf.urls import url -from static_docs.views import I18NStatisticsView, ReleaseNotesView, ToDoView +from static_docs.views import I18NStatisticsView, ReleaseNotesView, ThemesView, ToDoView urlpatterns = ( # pylint: disable=invalid-name + url(r'^download/themes/$', ThemesView.as_view(), name='themes'), + url(r'^documentation/todo/$', ToDoView.as_view(), name='todo'), url(r'^documentation/releasenotes/$', ReleaseNotesView.as_view(), name='releasenotes'), Modified: static_docs/views.py 29 lines changed, 27 insertions(+), 2 deletions(-) =================================================================== @@ -56,9 +56,9 @@ def __init__(self, *args, **kwargs): self._file_contents = None # ---------------------------------------------------------------------- - def _fetch_file_via_github_api(self, filename): + def _fetch_file_via_github_api(self, filename, user=None, repository=None): client = GitHubApiClient() - self._file_contents = client.get_file_contents(filename) + self._file_contents = client.get_file_contents(filename, user=user, repository=repository) class ReleaseNotesView(StaticDocsView): @@ -240,3 +240,28 @@ def _get_i18n_statistics(self): settings.STATIC_DOCS_GEANY_I18N_STATISTICS_FILENAME) with open(filename) as input_file: return json.load(input_file) + + +class ThemesView(StaticDocsView): + """ + Fetch the Geany-Themes index from https://github.com/geany/geany-themes/tree/master/index + """ + + template_name = "pages/download/themes.html" + + # ---------------------------------------------------------------------- + def get_context_data(self, **kwargs): + theme_index = self._get_theme_index() + context = super(ThemesView, self).get_context_data(**kwargs) + context['theme_index'] = theme_index + return context + + # ---------------------------------------------------------------------- + @cache_function(CACHE_TIMEOUT_1HOUR) + def _get_theme_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + return self._parse_themes_index() + + # ---------------------------------------------------------------------- + def _parse_themes_index(self): + return json.loads(self._file_contents) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 11:34:55 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 11:34:55 -0000 Subject: [geany/infrastructure] cf33cd: Add GPLv2 license text and add missing license references in scripts Message-ID: <20190623113513.47E9A1E6125@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 11:34:55 UTC Commit: cf33cd8020337c5596e88c00b71cb4e03349ac24 https://github.com/geany/infrastructure/commit/cf33cd8020337c5596e88c00b71cb4e03349ac24 Log Message: ----------- Add GPLv2 license text and add missing license references in scripts Closes #4. Modified Paths: -------------- COPYING README.md github-backup/backup.sh github-backup/create_or_update_virtualenv.sh scripts/git_hooks/garbage_collect_repositories.sh Modified: COPYING 340 lines changed, 340 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Modified: README.md 6 lines changed, 6 insertions(+), 0 deletions(-) =================================================================== @@ -65,3 +65,9 @@ In the directory ircbot-plugins there are two plugins for the IRC bot Supybot The plugins enhance the used Supybot instance on #geany by various useful and funny features like a bunch of !commands. For details, read the source code. + + +License +=============== +Unless stated otherwise all code in this repository is licensed of under the terms +of the GNU General Public License version 2 (see COPYING in this repository). Modified: github-backup/backup.sh 5 lines changed, 4 insertions(+), 1 deletions(-) =================================================================== @@ -1,5 +1,8 @@ #!/bin/sh - +# +# Author: Enrico Tröger +# License: GPLv2 +# # backup almost everything from Github except the GIT repositories itself as we have git.geany.org # read the token Modified: github-backup/create_or_update_virtualenv.sh 5 lines changed, 4 insertions(+), 1 deletions(-) =================================================================== @@ -1,5 +1,8 @@ #!/bin/sh - +# +# Author: Enrico Tröger +# License: GPLv2 +# # initial setup of the Python virtualenv for github-backup (github.com/josegonzalez/python-github-backup) # or just update it if it already exists Modified: scripts/git_hooks/garbage_collect_repositories.sh 5 lines changed, 4 insertions(+), 1 deletions(-) =================================================================== @@ -1,5 +1,8 @@ #!/bin/bash - +# +# Author: Enrico Tröger +# License: GPLv2 +# # Geany GIT mirror repository cleaner (executed once a week as cronjob) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 09:37:39 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 09:37:39 -0000 Subject: [geany/www.geany.org] a780df: Name the "sitemap.xml" URL to fix Django's auto detection Message-ID: <20190623172557.19FFF1E6124@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 09:37:39 UTC Commit: a780dfd36d3ed1993dc3672d523954ae67dac1ca https://github.com/geany/www.geany.org/commit/a780dfd36d3ed1993dc3672d523954ae67dac1ca Log Message: ----------- Name the "sitemap.xml" URL to fix Django's auto detection This is necessary for the "ping_google" management command. Modified Paths: -------------- geany/urls.py Modified: geany/urls.py 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -48,7 +48,7 @@ # Geany patterns urlpatterns += ( # use our custom sitemap implementation - url(r"^sitemap\.xml$", sitemap, sitemaps), + url(r"^sitemap\.xml$", sitemap, sitemaps, name='django.contrib.sitemaps.views.sitemap'), # Release Notes, NEWS, etc. url(r"^", include("static_docs.urls")), -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 15:15:23 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 15:15:23 -0000 Subject: [geany/www.geany.org] 1dc453: Document why NakedHtmlFormatter exists Message-ID: <20190623172558.1A0581E6124@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 15:15:23 UTC Commit: 1dc453bfcf46c6dbe8058c6a3a889070063580ba https://github.com/geany/www.geany.org/commit/1dc453bfcf46c6dbe8058c6a3a889070063580ba Log Message: ----------- Document why NakedHtmlFormatter exists Also rename an argument name to fix a PyLint warning about different argument names. Modified Paths: -------------- pastebin/highlight.py Modified: pastebin/highlight.py 5 lines changed, 3 insertions(+), 2 deletions(-) =================================================================== @@ -50,14 +50,15 @@ class NakedHtmlFormatter(HtmlFormatter): + """Do not wrap the code in
    or tags (Pygments default)""" # ---------------------------------------------------------------------- def wrap(self, source, outfile): return self._wrap_code(source) # ---------------------------------------------------------------------- - def _wrap_code(self, source): - for code, text in source: + def _wrap_code(self, inner): + for code, text in inner: yield code, text -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 11:02:34 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 11:02:34 -0000 Subject: [geany/www.geany.org] ef82ca: Add catch all URL mappings last to preserve the matching order Message-ID: <20190623172557.553A01E6125@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 11:02:34 UTC Commit: ef82cae07e0f470e29163a922b3c80ee4f44c857 https://github.com/geany/www.geany.org/commit/ef82cae07e0f470e29163a922b3c80ee4f44c857 Log Message: ----------- Add catch all URL mappings last to preserve the matching order Modified Paths: -------------- geany/urls_legacy.py Modified: geany/urls_legacy.py 52 lines changed, 33 insertions(+), 19 deletions(-) =================================================================== @@ -79,19 +79,6 @@ '/Support/RunningOnWindows/': 'https://wiki.geany.org/howtos/win32/running', '/Support/VerifyGPGSignature/': '/support/verify-gpg-signature/', - # various old deep links (catch all) - '/images/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', - '/uploads/Gallery/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', - '/Category.*': '/', - '/Developers.*': '/', - '/Documentation.*': '/', - '/Download.*': '/', - '/Geany.*': '/', - '/PmWiki.*': '/', - '/Profiles.*': '/', - '/Site.*': '/', - '/Support.*': '/', - # migrated news items '/Main/20060117': '/news/geany-in-linuxuser/', '/Main/20060128': '/news/geany-05-is-out/', @@ -172,15 +159,42 @@ '/Main/20181216': '/news/geany-134-is-out/', '/Main/20190104': '/news/geany-1341-is-out/', '/Main/20190428': '/news/geany-135-is-out/', +} + + +URL_MAPPING_CATCH_ALL = { + # various old deep links (catch all) + '/images/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', + '/uploads/Gallery/.*.png/': '/media/uploads/screenshots/geany_light_2019-05-20.png', + '/Category.*': '/', + '/Developers.*': '/', + '/Documentation.*': '/', + '/Download.*': '/', + '/Geany.*': '/', + '/PmWiki.*': '/', + '/Profiles.*': '/', + '/Site.*': '/', + '/Support.*': '/', + '/ToDo.*': '/', # catch all for everything else (spiders tend to query even non-existent URLs) '/Main/.*': '/news/geany-135-is-out/', } -urlpatterns = [] # pylint: disable=invalid-name -for old_url, new_url in URL_MAPPING.items(): - if old_url.startswith('/'): - old_url = old_url[1:] +# ---------------------------------------------------------------------- +def _add_url_mappings(mapping, urlpatterns_): + for old_url, new_url in mapping.items(): + if old_url.startswith('/'): + old_url = old_url[1:] + + url_pattern = url( + r'^{}$'.format(old_url), + RedirectView.as_view(url=new_url, permanent=True)) + urlpatterns_.append(url_pattern) - url_pattern = url(r'^{}$'.format(old_url), RedirectView.as_view(url=new_url, permanent=True)) - urlpatterns.append(url_pattern) + +urlpatterns = [] # pylint: disable=invalid-name +# first add specific items to let them match first +_add_url_mappings(URL_MAPPING, urlpatterns) +# now add catch all items +_add_url_mappings(URL_MAPPING_CATCH_ALL, urlpatterns) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 15:33:36 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 15:33:36 -0000 Subject: [geany/www.geany.org] ab121c: Fix line number of silenced warning Message-ID: <20190623172558.8EC251E6128@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 15:33:36 UTC Commit: ab121cfad689cfa45e79300ca29fbe6ca3e9e8af https://github.com/geany/www.geany.org/commit/ab121cfad689cfa45e79300ca29fbe6ca3e9e8af Log Message: ----------- Fix line number of silenced warning The previous line number was of a different development version. Modified Paths: -------------- geany/settings.py Modified: geany/settings.py 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -582,7 +582,7 @@ message='^mezzanine_pagedown.filters.custom needs to ensure that any untrusted inputs.*', category=FutureWarning, module='mezzanine.core.templatetags.mezzanine_tags', - lineno=492) + lineno=488) ################## # LOCAL SETTINGS # -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 11:08:00 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 11:08:00 -0000 Subject: [geany/www.geany.org] e8ec8a: Improve trailing slash handling in legacy URL mapping Message-ID: <20190623172557.D226D1E6126@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 11:08:00 UTC Commit: e8ec8ada06bf6f2f30fa364a6675bb44a0162b32 https://github.com/geany/www.geany.org/commit/e8ec8ada06bf6f2f30fa364a6675bb44a0162b32 Log Message: ----------- Improve trailing slash handling in legacy URL mapping The trailing slash only variant didn't work in all cases, so explicitly add both variants to the final URL mapping. Modified Paths: -------------- geany/urls_legacy.py Modified: geany/urls_legacy.py 122 lines changed, 64 insertions(+), 58 deletions(-) =================================================================== @@ -18,66 +18,66 @@ URL_MAPPING = { # old urls mapped to new ones - '/Category/DocumentationToDo/': 'https://github.com/geany/geany/issues/', - '/Category/Manual/': '/documentation/manual/', - '/Contribute/Developers/': '/contribute/development/', - '/Contribute/Documentation/': '/contribute/documentation/', - '/Contribute/Support/': '/contribute/support/', - '/Contribute/Translators/': '/contribute/translation/', - '/i18n/': '/contribute/translation/statistics/', - '/Developers/Developers/': '/contribute/development/', - '/Documentation/ChangeLog/': 'https://github.com/geany/geany/commits/master', # page dropped - '/Documentation/Documentation/': '/documentation/manual/', - '/Documentation/FAQ/': '/documentation/faq/', - '/Documentation/FAQdata/': '/documentation/faq/', - '/Documentation/Manual/': '/documentation/manual/', - '/Documentation/Questions/': '/documentation/faq/', - '/Documentation/ReleaseNotes/': '/documentation/releasenotes/', - '/Documentation/ReleaseNotesOld/': '/documentation/releasenotes/', - '/Documentation/Screenshots/': '/documentation/screenshots/', - '/Documentation/ToDo/': 'https://github.com/geany/geany/issues/', - '/Download/Extras/': 'https://wiki.geany.org/', # page dropped - '/Download/Git/': '/download/git/', - '/Download/OldExtras/': 'https://wiki.geany.org/', # page dropped - '/Download/': '/download/releases/', - '/Download/Releases/': '/download/releases/', - '/Download/SVN/': '/download/git/', - '/Download/ThirdPartyPackages/': '/download/third-party/', - '/Gallery/Main/': '/documentation/screenshots/', - '/Gallery/Test/': '/documentation/screenshots/', - '/Geany/ChangeLog/': 'https://github.com/geany/geany/commits/master', # page dropped - '/Geany/FAQ/': '/documentation/faq/', - '/Geany/Screenshots/': '/documentation/screenshots/', - '/Geany/Support/': '/support/', - '/Geany/Troubleshooting/': '/support/', - '/Main/About/': '/about/geany/', - '/Main/AboutThisSite/': '/', - '/Main/AllFiletypes/': '/about/filetypes/', - '/Main/Authors/': '/about/geany/', - '/Main/Blog/': '/news/', - '/Main/BlogArchive/': '/news/', - '/Main/HomePage/': '/', - '/main/homepage/': '/', - '/Main/Reviews/': '/', # page dropped - '/Main/Thanks/': '/', # page dropped - '/Main/WikiSandbox/': '/', # page dropped - '/Site/AllRecentChanges/': '/news/feed/', - '/Site/Authors/': '/about/geany/', - '/Support/Bugs/': '/support/bugs/', - '/Support/BuildingFromSource/': 'https://www.geany.org/manual/index.html#installation', - '/Support/BuildingOnWin32/': 'https://wiki.geany.org/howtos/win32/msys2', - '/Support/Contributions/': '/contribute/', - '/Support/CrossCompile/': 'https://wiki.geany.org/howtos/win32/crosscompile', - '/Support/Developers/': '/contribute/development/', - '/Support/Hacking/': '/documentation/hacking/', - '/Support/I18N/': '/contribute/translation/', - '/Support/IRC/': '/support/irc/', - '/Support/MailingList/': '/support/mailing-lists/', + '/Category/DocumentationToDo': 'https://github.com/geany/geany/issues/', + '/Category/Manual': '/documentation/manual/', + '/Contribute/Developers': '/contribute/development/', + '/Contribute/Documentation': '/contribute/documentation/', + '/Contribute/Support': '/contribute/support/', + '/Contribute/Translators': '/contribute/translation/', + '/i18n': '/contribute/translation/statistics/', + '/Developers/Developers': '/contribute/development/', + '/Documentation/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped + '/Documentation/Documentation': '/documentation/manual/', + '/Documentation/FAQ': '/documentation/faq/', + '/Documentation/FAQdata': '/documentation/faq/', + '/Documentation/Manual': '/documentation/manual/', + '/Documentation/Questions': '/documentation/faq/', + '/Documentation/ReleaseNotes': '/documentation/releasenotes/', + '/Documentation/ReleaseNotesOld': '/documentation/releasenotes/', + '/Documentation/Screenshots': '/documentation/screenshots/', + '/Documentation/ToDo': 'https://github.com/geany/geany/issues/', + '/Download/Extras': 'https://wiki.geany.org/', # page dropped + '/Download/Git': '/download/git/', + '/Download/OldExtras': 'https://wiki.geany.org/', # page dropped + '/Download': '/download/releases/', + '/Download/Releases': '/download/releases/', + '/Download/SVN': '/download/git/', + '/Download/ThirdPartyPackages': '/download/third-party/', + '/Gallery/Main': '/documentation/screenshots/', + '/Gallery/Test': '/documentation/screenshots/', + '/Geany/ChangeLog': 'https://github.com/geany/geany/commits/master', # page dropped + '/Geany/FAQ': '/documentation/faq/', + '/Geany/Screenshots': '/documentation/screenshots/', + '/Geany/Support': '/support/', + '/Geany/Troubleshooting': '/support/', + '/Main/About': '/about/geany/', + '/Main/AboutThisSite': '/', + '/Main/AllFiletypes': '/about/filetypes/', + '/Main/Authors': '/about/geany/', + '/Main/Blog': '/news/', + '/Main/BlogArchive': '/news/', + '/Main/HomePage': '/', + '/main/homepage': '/', + '/Main/Reviews': '/', # page dropped + '/Main/Thanks': '/', # page dropped + '/Main/WikiSandbox': '/', # page dropped + '/Site/AllRecentChanges': '/news/feed/', + '/Site/Authors': '/about/geany/', + '/Support/Bugs': '/support/bugs/', + '/Support/BuildingFromSource': 'https://www.geany.org/manual/index.html#installation', + '/Support/BuildingOnWin32': 'https://wiki.geany.org/howtos/win32/msys2', + '/Support/Contributions': '/contribute/', + '/Support/CrossCompile': 'https://wiki.geany.org/howtos/win32/crosscompile', + '/Support/Developers': '/contribute/development/', + '/Support/Hacking': '/documentation/hacking/', + '/Support/I18N': '/contribute/translation/', + '/Support/IRC': '/support/irc/', + '/Support/MailingList': '/support/mailing-lists/', '/Support/PluginWishlist/': 'https://github.com/geany/geany-plugins/issues?q=is%%3Aissue+label%%3Afeature+', - '/Support/Plugins/': '/support/plugins/', - '/Support/RunningOnWindows/': 'https://wiki.geany.org/howtos/win32/running', - '/Support/VerifyGPGSignature/': '/support/verify-gpg-signature/', + '/Support/Plugins': '/support/plugins/', + '/Support/RunningOnWindows': 'https://wiki.geany.org/howtos/win32/running', + '/Support/VerifyGPGSignature': '/support/verify-gpg-signature/', # migrated news items '/Main/20060117': '/news/geany-in-linuxuser/', @@ -191,6 +191,12 @@ def _add_url_mappings(mapping, urlpatterns_): r'^{}$'.format(old_url), RedirectView.as_view(url=new_url, permanent=True)) urlpatterns_.append(url_pattern) + # add pattern variant with trailing slash + if old_url[-1] != '/': + url_pattern = url( + r'^{}/$'.format(old_url), + RedirectView.as_view(url=new_url, permanent=True)) + urlpatterns_.append(url_pattern) urlpatterns = [] # pylint: disable=invalid-name -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 15:25:51 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 15:25:51 -0000 Subject: [geany/www.geany.org] 9d8197: Run linting and static code analysis with Tox and Travis Message-ID: <20190623172558.571551E6127@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 15:25:51 UTC Commit: 9d8197be9e0e779f5b4829b460a0b77b2849293e https://github.com/geany/www.geany.org/commit/9d8197be9e0e779f5b4829b460a0b77b2849293e Log Message: ----------- Run linting and static code analysis with Tox and Travis Still no unit tests but at least linting checks and PyLint. Modified Paths: -------------- .travis.yml tox.ini Modified: .travis.yml 26 lines changed, 26 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,26 @@ +# LICENCE: This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +os: linux +dist: xenial +sudo: false +language: python +cache: pip + +python: + - "3.5" + - "3.6" + - "3.7" + +install: pip install tox-travis +script: tox Modified: tox.ini 84 lines changed, 84 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,84 @@ +# LICENCE: This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +[tox] +skip_missing_interpreters = true +skipsdist = true +envlist = + py35,py36,py37 + +geany_modules = geany latest_version news nightlybuilds pastebin static_docs + +[testenv] +deps = + flake8 + isort + pylint + pylint-django + -r{toxinidir}/requirements.txt +commands = + {envbindir}/flake8 {[tox]geany_modules} + {envbindir}/isort --check-only --diff --recursive {[tox]geany_modules} + {envbindir}/pylint --rcfile=tox.ini {[tox]geany_modules} + +[flake8] +exclude = build,.git,docs,local_settings.py +ignore = E127,E128, +max-line-length = 100 + +[isort] +line_length = 100 +indent = 4 +multi_line_output = 3 +length_sort = false +force_alphabetical_sort_within_sections = true +sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER +lines_after_imports = 2 +from_first = true +include_trailing_comma = true +skip = local_settings.py + +# the following secions are for pylint +[MASTER] +ignore=.git +ignore-patterns=local_settings.py +persistent=no +load-plugins=pylint_django + +[MESSAGES CONTROL] +disable= + empty-docstring, + logging-format-interpolation, + missing-docstring, + no-else-return, + no-self-use + +[REPORTS] +output-format=parseable +files-output=no +reports=no + +[FORMAT] +max-line-length=100 + +[VARIABLES] +dummy-variables-rgx=_|dummy + +[DESIGN] +min-public-methods=0 +max-attributes=10 +max-args=7 +max-parents=9 + +[EXCEPTIONS] +overgeneral-exceptions= -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 17:30:04 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 23 Jun 2019 17:30:04 -0000 Subject: [geany/www.geany.org] e90042: Add Geany-Themes page with theme preview Message-ID: <20190623173019.1B8771E6124@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 23 Jun 2019 17:30:04 UTC Commit: e90042b42918bb8917b0b25b38f3aaac159dd41e https://github.com/geany/www.geany.org/commit/e90042b42918bb8917b0b25b38f3aaac159dd41e Log Message: ----------- Add Geany-Themes page with theme preview The themes in the preview list are loaded from the Geany-Themes repository on Github on the fly (but cached for one hour). Modified Paths: -------------- page_content/download/themes.md static_docs/github_client.py static_docs/templates/pages/download/themes.html static_docs/urls.py static_docs/views.py Modified: page_content/download/themes.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +## Geany Themes + +Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. +These schemes are compatible with Geany 1.22 and greater. + +To use one the themes below, download the configuration file and save it to the folder `colorschemes` in your Geany configuration directory (usually `~/.config/geany/colorschemes/`). + +For more information and detailed configuration instructions, see https://github.com/geany/geany-themes. + + Modified: static_docs/github_client.py 8 lines changed, 5 insertions(+), 3 deletions(-) =================================================================== @@ -30,9 +30,11 @@ class GitHubApiClient: """""" # ---------------------------------------------------------------------- - def get_file_contents(self, filename): - url_parameters = dict(user=GITHUB_USER, - repository=GITHUB_REPOSITORY, + def get_file_contents(self, filename, user=None, repository=None): + user = user or GITHUB_USER + repository = repository or GITHUB_REPOSITORY + url_parameters = dict(user=user, + repository=repository, filename=filename) url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ url_parameters Modified: static_docs/templates/pages/download/themes.html 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,63 @@ +{% extends "pages/richtextpage.html" %} + +{% load mezzanine_tags pages_tags static %} + +{% block extra_css %} + + +{% endblock %} + +{% block richtext_content %} +{{ block.super }} + +

    Available Themes

    + +
    + +{% for theme in theme_index.values|dictsort:"name" %} +
    +
    +
    + {{ theme.name }} + Download +
    + +
    +
    + + {% if forloop.counter|divisibleby:3 %} +
    +
    + {% endif %} +{% endfor %} +
    + +{% endblock %} + +{% block extra_js %} +{{ block.super }} + + +{% endblock %} Modified: static_docs/urls.py 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -14,10 +14,12 @@ from django.conf.urls import url -from static_docs.views import I18NStatisticsView, ReleaseNotesView, ToDoView +from static_docs.views import I18NStatisticsView, ReleaseNotesView, ThemesView, ToDoView urlpatterns = ( # pylint: disable=invalid-name + url(r'^download/themes/$', ThemesView.as_view(), name='themes'), + url(r'^documentation/todo/$', ToDoView.as_view(), name='todo'), url(r'^documentation/releasenotes/$', ReleaseNotesView.as_view(), name='releasenotes'), Modified: static_docs/views.py 29 lines changed, 27 insertions(+), 2 deletions(-) =================================================================== @@ -56,9 +56,9 @@ def __init__(self, *args, **kwargs): self._file_contents = None # ---------------------------------------------------------------------- - def _fetch_file_via_github_api(self, filename): + def _fetch_file_via_github_api(self, filename, user=None, repository=None): client = GitHubApiClient() - self._file_contents = client.get_file_contents(filename) + self._file_contents = client.get_file_contents(filename, user=user, repository=repository) class ReleaseNotesView(StaticDocsView): @@ -240,3 +240,28 @@ def _get_i18n_statistics(self): settings.STATIC_DOCS_GEANY_I18N_STATISTICS_FILENAME) with open(filename) as input_file: return json.load(input_file) + + +class ThemesView(StaticDocsView): + """ + Fetch the Geany-Themes index from https://github.com/geany/geany-themes/tree/master/index + """ + + template_name = "pages/download/themes.html" + + # ---------------------------------------------------------------------- + def get_context_data(self, **kwargs): + theme_index = self._get_theme_index() + context = super(ThemesView, self).get_context_data(**kwargs) + context['theme_index'] = theme_index + return context + + # ---------------------------------------------------------------------- + @cache_function(CACHE_TIMEOUT_1HOUR) + def _get_theme_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + return self._parse_themes_index() + + # ---------------------------------------------------------------------- + def _parse_themes_index(self): + return json.loads(self._file_contents) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 23 20:21:58 2019 From: git-noreply at xxxxx (=?utf-8?q?Matthew_Brush?=) Date: Sun, 23 Jun 2019 20:21:58 -0000 Subject: [geany/geany-themes] 2780c5: Change thumbnail size in the index to 128x128 pixels Message-ID: <20190623202401.3F7561E6124@mail.geany.org> Branch: refs/heads/larger-thumbnails Author: Matthew Brush Committer: Matthew Brush Date: Sun, 23 Jun 2019 20:21:58 UTC Commit: 2780c5fbc5ade53f5bea2f894e8e9fce371f47d8 https://github.com/geany/geany-themes/commit/2780c5fbc5ade53f5bea2f894e8e9fce371f47d8 Log Message: ----------- Change thumbnail size in the index to 128x128 pixels Also, since I can't remember where the screenshot-missing.png icon came from, replace it with the 'image missing' icon from Tango[0] [0]: https://commons.wikimedia.org/wiki/Tango_icons#/media/File:Image-missing.svg Modified Paths: -------------- index/README.md index/index.json index/index.json.md5 screenshots/screenshot-missing.png scripts/mkindex.py Modified: index/README.md 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -4,7 +4,7 @@ Geany Themes Index File README The `index.json` file is auto-generated using the `make index` command. The `index` rule of the Makefile runs the `scripts/mkindex.py` script which reads the colour schemes' info, generates screenshot and download -URLs, base64 encoded 64x64 thumbnails and stores it all into a JSON +URLs, base64 encoded 128x128 thumbnails and stores it all into a JSON formatted text file. File Format @@ -73,12 +73,12 @@ image. #### thumbnail -This is a thumbnail image, 64 pixels wide and 64 pixels high, in PNG +This is a thumbnail image, 128 pixels wide and 128 pixels high, in PNG format, base64 encoded (for storing in text file). This is a small icon of the preview screenshot suitable for displaying for example in a GUI list of schemes. This maybe be an empty string if the colour scheme doesn't have a screenshot or it maybe be a generic "screenshit missing" -icon that is 64 pixels wide and tall. +icon that is 128 pixels wide and tall. #### version Modified: index/index.json 72 lines changed, 36 insertions(+), 36 deletions(-) =================================================================== No diff available, check online Modified: index/index.json.md5 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1 +1 @@ -f8100bdab45f1627a33bde393dbb63f1 index.json +861793e9be8d3f9ca27dcda0ce5caa95 index.json Modified: screenshots/screenshot-missing.png 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online Modified: scripts/mkindex.py 3 lines changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -14,6 +14,7 @@ import StringIO from PIL import Image, ImageDraw, ImageOps, ImageFilter +THUMBNAIL_SIZE = (128, 128) SCREENSHOT_BASE = 'https://raw.github.com/geany/geany-themes/master/screenshots/' SCHEMES_BASE = 'https://raw.github.com/geany/geany-themes/master/colorschemes/' @@ -36,7 +37,7 @@ def generate_thumbnail(conf_fn, screenshot_dir='screenshots'): else: img = Image.open(png_file) img = img.crop((2,2,img.size[1]-2,img.size[1]-2)) - img.thumbnail((64,64), Image.ANTIALIAS) + img.thumbnail(THUMBNAIL_SIZE, Image.ANTIALIAS) #-- set to True to save thumbs into screenshots/.thumbs do_thumbs = False if do_thumbs: -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 08:15:25 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 08:15:25 -0000 Subject: [geany/www.geany.org] 6a0317: Log request duration of Github API calls Message-ID: <20190629081719.534831E615B@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 08:15:25 UTC Commit: 6a0317bba2727d909c84f25f9da74d251168c224 https://github.com/geany/www.geany.org/commit/6a0317bba2727d909c84f25f9da74d251168c224 Log Message: ----------- Log request duration of Github API calls Modified Paths: -------------- static_docs/github_client.py Modified: static_docs/github_client.py 9 lines changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -41,6 +41,7 @@ def get_file_contents(self, filename, user=None, repository=None): with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: response_json = response.json() self._log_rate_limit(response) + self._log_request(response) # parse response return self._parse_fetch_file_response(response_json) @@ -51,6 +52,14 @@ def _log_rate_limit(self, response): rate_limit = response.headers['X-RateLimit-Limit'] logger.info('Github rate limits: %s/%s', rate_limit_remaining, rate_limit) + # ---------------------------------------------------------------------- + def _log_request(self, response): + logger.info( + 'Requesting "{} {}" took {}s'.format( + response.request.method, + response.request.url, + response.elapsed.total_seconds())) + # ---------------------------------------------------------------------- def _parse_fetch_file_response(self, response_json): content = response_json['content'] -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 08:13:56 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 08:13:56 -0000 Subject: [geany/www.geany.org] c5a124: Theme preview: Refetch theme index only if MD5 hash has changed Message-ID: <20190629081718.E5E591E614C@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 08:13:56 UTC Commit: c5a12415d902bdcb5d66538a885e1ca90ea52d88 https://github.com/geany/www.geany.org/commit/c5a12415d902bdcb5d66538a885e1ca90ea52d88 Log Message: ----------- Theme preview: Refetch theme index only if MD5 hash has changed Instead of fetching the whole theme index each hour, fetch the MD5 hash and compare it to the hash of the last change and then fetch the theme index only if the hash has changed. Modified Paths: -------------- static_docs/views.py Modified: static_docs/views.py 45 lines changed, 40 insertions(+), 5 deletions(-) =================================================================== @@ -19,6 +19,7 @@ import re from django.conf import settings +from django.core.cache import cache from django.http import Http404 from django.views.generic.base import TemplateView from mezzanine_pagedown.filters import plain as markdown_plain @@ -30,6 +31,9 @@ RELEASE_REGEXP = re.compile(r'^Geany (?P[0-9\.]+) \((?P.*)\)$') DATE_PATTERNS_TO_BE_IGNORED = ('TBD', 'TBA', 'unreleased') +CACHE_KEY_THEME_INDEX_MD5_HASH = 'THEME_INDEX_MD5_HASH' +CACHE_KEY_THEME_INDEX = 'THEME_INDEX' + logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -257,11 +261,42 @@ def get_context_data(self, **kwargs): return context # ---------------------------------------------------------------------- - @cache_function(CACHE_TIMEOUT_1HOUR) def _get_theme_index(self): - self._fetch_file_via_github_api('index/index.json', repository='geany-themes') - return self._parse_themes_index() + """ + Refresh the theme index by: + - querying the MD5 hash from Github + - compare the freshly retrieved MD5 hash against the cached one + - load the whole theme index if: + - the MD5 hashes differ + - the MD5 hash was not retrieved yet or has been expired from cache + - the theme index was not retrieved yet or has been expired from cache + - after loading the whole theme index cache it long (24 hours) + - store the freshly retrieved MD5 hash in the cache + """ + theme_index_md5_hash = self._query_theme_index_md5_hash() + cached_theme_index_md5_hash = cache.get(CACHE_KEY_THEME_INDEX_MD5_HASH) + theme_index = cache.get(CACHE_KEY_THEME_INDEX) + + # theme index has been changed remotely? + if theme_index_md5_hash != cached_theme_index_md5_hash or theme_index is None: + logger.debug('Refresh theme index from Github (MD5: {})'.format(theme_index_md5_hash)) + # query whole theme index + theme_index = self._query_parse_themes_index() + # cache it for later + cache.set(CACHE_KEY_THEME_INDEX, theme_index, CACHE_TIMEOUT_24HOURS) + + # cache MD5 hash + cache.set(CACHE_KEY_THEME_INDEX_MD5_HASH, theme_index_md5_hash, CACHE_TIMEOUT_24HOURS) + + return theme_index # ---------------------------------------------------------------------- - def _parse_themes_index(self): - return json.loads(self._file_contents) + def _query_theme_index_md5_hash(self): + self._fetch_file_via_github_api('index/index.json.md5', repository='geany-themes') + return self._file_contents.strip() + + # ---------------------------------------------------------------------- + def _query_parse_themes_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + theme_index = json.loads(self._file_contents) + return theme_index -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 08:22:04 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 08:22:04 -0000 Subject: [geany/www.geany.org] c6f443: Homepage: Change themes link to the preview page Message-ID: <20190629082213.7A2F91E614C@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 08:22:04 UTC Commit: c6f4436ca108ebc32b87a028efe690d49bda7f5b https://github.com/geany/www.geany.org/commit/c6f4436ca108ebc32b87a028efe690d49bda7f5b Log Message: ----------- Homepage: Change themes link to the preview page Modified Paths: -------------- geany/templates/home.html Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -151,7 +151,7 @@

    Great Community

    Easily Customizable

    Many parts of Geany are heavily customizable like color themes - (Geany Themes project) or + (Geany Themes) or adding new filetypes.

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Tue Jun 25 16:55:00 2019 From: git-noreply at xxxxx (=?utf-8?q?andy5995?=) Date: Tue, 25 Jun 2019 16:55:00 -0000 Subject: [geany/www.geany.org] c01822: templates/home.html:correct spelling of "hobbyists" Message-ID: <20190629102849.C7A6B1E614C@mail.geany.org> Branch: refs/heads/master Author: andy5995 Committer: andy5995 Date: Tue, 25 Jun 2019 16:55:00 UTC Commit: c01822acc68bf490157c714fdbd38ea621a96d53 https://github.com/geany/www.geany.org/commit/c01822acc68bf490157c714fdbd38ea621a96d53 Log Message: ----------- templates/home.html:correct spelling of "hobbyists" Modified Paths: -------------- geany/templates/home.html Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -133,7 +133,7 @@

    Great Community

    Using the GPL v2 license, Geany assures that not only can you customize and hack it, but that everyone benefits from changes the community makes. Geany - has a vibrant community of professionals and hobbiests alike + has a vibrant community of professionals and hobbyists alike that contribute improvements and fixes across numerous platforms including The Mailing Lists, -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 10:28:46 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 10:28:46 -0000 Subject: [geany/www.geany.org] 9bd8f9: Merge pull request #11 from andy5995/hobbyists Message-ID: <20190629102850.075161E615B@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: GitHub Date: Sat, 29 Jun 2019 10:28:46 UTC Commit: 9bd8f9b5564953cbd4f0c0d817a691454813fc5e https://github.com/geany/www.geany.org/commit/9bd8f9b5564953cbd4f0c0d817a691454813fc5e Log Message: ----------- Merge pull request #11 from andy5995/hobbyists templates/home.html:correct spelling of "hobbyists" Modified Paths: -------------- geany/templates/home.html Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -133,7 +133,7 @@

    Great Community

    Using the GPL v2 license, Geany assures that not only can you customize and hack it, but that everyone benefits from changes the community makes. Geany - has a vibrant community of professionals and hobbiests alike + has a vibrant community of professionals and hobbyists alike that contribute improvements and fixes across numerous platforms including The Mailing Lists, -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 10:42:25 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 10:42:25 -0000 Subject: [geany/www.geany.org] 0b7249: Provide better contact possibilities on About page Message-ID: <20190629104234.1BBBF1E614C@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 10:42:25 UTC Commit: 0b724996c1898c83e36ab4d15b582668b0ac25b7 https://github.com/geany/www.geany.org/commit/0b724996c1898c83e36ab4d15b582668b0ac25b7 Log Message: ----------- Provide better contact possibilities on About page Closes #10. Modified Paths: -------------- page_content/about/geany.md Modified: page_content/about/geany.md 8 lines changed, 7 insertions(+), 1 deletions(-) =================================================================== @@ -33,8 +33,14 @@ The code is licensed under the terms of the [GNU General Public Licence][3]. - Jiří Techet (regular contributor, MacOS expert) - and many other contributors, translators and patch writers -To contact all of us for general questions or feedback, please use the address <team (at) geany (dot) org>. This address will forward your email to all of us. +## Contact + +To contact us for general questions or feedback, either use one of our [mailing lists][4], the [IRC channel][5] or the [Github issue tracker][6]. + [1]: /about/filetypes/ [2]: /support/plugins/ [3]: https://www.gnu.org/licenses/gpl-2.0.en.html + [4]: /support/mailing-lists + [5]: /support/irc + [6]: https://github.com/geany/geany/issues -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 11:03:04 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 11:03:04 -0000 Subject: [geany/www.geany.org] 6e53e1: Add "CC BY-SA" notice to footer Message-ID: <20190629110403.662071E614C@mail.geany.org> Branch: refs/heads/issue6_content_license Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 11:03:04 UTC Commit: 6e53e146429b88e9544053271740b51e173a5bec https://github.com/geany/www.geany.org/commit/6e53e146429b88e9544053271740b51e173a5bec Log Message: ----------- Add "CC BY-SA" notice to footer Closes #6. Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -58,7 +58,9 @@

    Privacy Statement - - Contents Copyright {% now "Y" %} ‐ The Geany development team + ‐ Contents Copyright {% now "Y" %} + ‐ Licensed under CC BY-SA + ‐ The Geany development team

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 11:20:10 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sat, 29 Jun 2019 11:20:10 -0000 Subject: [geany/www.geany.org] 05e217: Footer: Replace "development team" by "contributors" and change order Message-ID: <20190629112018.AE6701E614C@mail.geany.org> Branch: refs/heads/issue6_content_license Author: Enrico Tröger Committer: Enrico Tröger Date: Sat, 29 Jun 2019 11:20:10 UTC Commit: 05e217608e9a5f895b2cbd4610744124a87b9dd9 https://github.com/geany/www.geany.org/commit/05e217608e9a5f895b2cbd4610744124a87b9dd9 Log Message: ----------- Footer: Replace "development team" by "contributors" and change order Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -59,8 +59,8 @@

    Privacy Statement ‐ Contents Copyright {% now "Y" %} + ‐ The Geany contributors ‐ Licensed under CC BY-SA - ‐ The Geany development team

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sat Jun 29 16:33:23 2019 From: git-noreply at xxxxx (=?utf-8?q?Matthew_Brush?=) Date: Sat, 29 Jun 2019 16:33:23 -0000 Subject: [geany/geany-themes] aacc91: Change thumbnail size in the index to 128x128 pixels (#32) Message-ID: <20190629163326.A28EF1E615B@mail.geany.org> Branch: refs/heads/master Author: Matthew Brush Committer: GitHub Date: Sat, 29 Jun 2019 16:33:23 UTC Commit: aacc9141c05f61ef6663daf7460d080cb100cedc https://github.com/geany/geany-themes/commit/aacc9141c05f61ef6663daf7460d080cb100cedc Log Message: ----------- Change thumbnail size in the index to 128x128 pixels (#32) Also, since I can't remember where the screenshot-missing.png icon came from, replace it with the 'image missing' icon from Tango[0] [0]: https://commons.wikimedia.org/wiki/Tango_icons#/media/File:Image-missing.svg Modified Paths: -------------- index/README.md index/index.json index/index.json.md5 screenshots/screenshot-missing.png scripts/mkindex.py Modified: index/README.md 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -4,7 +4,7 @@ Geany Themes Index File README The `index.json` file is auto-generated using the `make index` command. The `index` rule of the Makefile runs the `scripts/mkindex.py` script which reads the colour schemes' info, generates screenshot and download -URLs, base64 encoded 64x64 thumbnails and stores it all into a JSON +URLs, base64 encoded 128x128 thumbnails and stores it all into a JSON formatted text file. File Format @@ -73,12 +73,12 @@ image. #### thumbnail -This is a thumbnail image, 64 pixels wide and 64 pixels high, in PNG +This is a thumbnail image, 128 pixels wide and 128 pixels high, in PNG format, base64 encoded (for storing in text file). This is a small icon of the preview screenshot suitable for displaying for example in a GUI list of schemes. This maybe be an empty string if the colour scheme doesn't have a screenshot or it maybe be a generic "screenshit missing" -icon that is 64 pixels wide and tall. +icon that is 128 pixels wide and tall. #### version Modified: index/index.json 72 lines changed, 36 insertions(+), 36 deletions(-) =================================================================== No diff available, check online Modified: index/index.json.md5 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1 +1 @@ -f8100bdab45f1627a33bde393dbb63f1 index.json +861793e9be8d3f9ca27dcda0ce5caa95 index.json Modified: screenshots/screenshot-missing.png 0 lines changed, 0 insertions(+), 0 deletions(-) =================================================================== No diff available, check online Modified: scripts/mkindex.py 3 lines changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -14,6 +14,7 @@ import StringIO from PIL import Image, ImageDraw, ImageOps, ImageFilter +THUMBNAIL_SIZE = (128, 128) SCREENSHOT_BASE = 'https://raw.github.com/geany/geany-themes/master/screenshots/' SCHEMES_BASE = 'https://raw.github.com/geany/geany-themes/master/colorschemes/' @@ -36,7 +37,7 @@ def generate_thumbnail(conf_fn, screenshot_dir='screenshots'): else: img = Image.open(png_file) img = img.crop((2,2,img.size[1]-2,img.size[1]-2)) - img.thumbnail((64,64), Image.ANTIALIAS) + img.thumbnail(THUMBNAIL_SIZE, Image.ANTIALIAS) #-- set to True to save thumbs into screenshots/.thumbs do_thumbs = False if do_thumbs: -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:06:58 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:06:58 -0000 Subject: [geany/www.geany.org] 44e6a4: Add "CC BY-SA" notice to footer Message-ID: <20190630120710.C9F341E612A@mail.geany.org> Branch: refs/heads/issue6_content_license Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:06:58 UTC Commit: 44e6a40fcbd922d6034c93300826652ae2394390 https://github.com/geany/www.geany.org/commit/44e6a40fcbd922d6034c93300826652ae2394390 Log Message: ----------- Add "CC BY-SA" notice to footer Closes #6. Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -58,7 +58,9 @@

    Privacy Statement - - Contents Copyright {% now "Y" %} ‐ The Geany development team + ‐ Contents Copyright {% now "Y" %} + ‐ The Geany contributors + ‐ Licensed under CC BY-SA

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:08:45 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:08:45 -0000 Subject: [geany/www.geany.org] 52941f: Log request duration of Github API calls Message-ID: <20190630120901.19D491E615F@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:08:45 UTC Commit: 52941f97ac36ae834b4ecd65c93bdab7f034372c https://github.com/geany/www.geany.org/commit/52941f97ac36ae834b4ecd65c93bdab7f034372c Log Message: ----------- Log request duration of Github API calls Modified Paths: -------------- static_docs/github_client.py Modified: static_docs/github_client.py 9 lines changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -41,6 +41,7 @@ def get_file_contents(self, filename, user=None, repository=None): with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: response_json = response.json() self._log_rate_limit(response) + self._log_request(response) # parse response return self._parse_fetch_file_response(response_json) @@ -51,6 +52,14 @@ def _log_rate_limit(self, response): rate_limit = response.headers['X-RateLimit-Limit'] logger.info('Github rate limits: %s/%s', rate_limit_remaining, rate_limit) + # ---------------------------------------------------------------------- + def _log_request(self, response): + logger.info( + 'Requesting "{} {}" took {}s'.format( + response.request.method, + response.request.url, + response.elapsed.total_seconds())) + # ---------------------------------------------------------------------- def _parse_fetch_file_response(self, response_json): content = response_json['content'] -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:08:45 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:08:45 -0000 Subject: [geany/www.geany.org] 668492: Add Geany-Themes page with theme preview Message-ID: <20190630120858.9683E1E612A@mail.geany.org> Branch: refs/heads/issue5_geany_themes_preview Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:08:45 UTC Commit: 668492803592cde2c30254b0dbc5fb61001187f7 https://github.com/geany/www.geany.org/commit/668492803592cde2c30254b0dbc5fb61001187f7 Log Message: ----------- Add Geany-Themes page with theme preview The themes in the preview list are loaded from the Geany-Themes repository on Github on the fly (but cached for one hour). Modified Paths: -------------- geany/templates/home.html page_content/download/themes.md static_docs/github_client.py static_docs/templates/pages/download/themes.html static_docs/urls.py static_docs/views.py Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -151,7 +151,7 @@

    Great Community

    Easily Customizable

    Many parts of Geany are heavily customizable like color themes - (Geany Themes project) or + (Geany Themes) or adding new filetypes.

    Modified: page_content/download/themes.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +## Geany Themes + +Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. +These schemes are compatible with Geany 1.22 and greater. + +To use one the themes below, download the configuration file and save it to the folder `colorschemes` in your Geany configuration directory (usually `~/.config/geany/colorschemes/`). + +For more information and detailed configuration instructions, see https://github.com/geany/geany-themes. + + Modified: static_docs/github_client.py 8 lines changed, 5 insertions(+), 3 deletions(-) =================================================================== @@ -30,9 +30,11 @@ class GitHubApiClient: """""" # ---------------------------------------------------------------------- - def get_file_contents(self, filename): - url_parameters = dict(user=GITHUB_USER, - repository=GITHUB_REPOSITORY, + def get_file_contents(self, filename, user=None, repository=None): + user = user or GITHUB_USER + repository = repository or GITHUB_REPOSITORY + url_parameters = dict(user=user, + repository=repository, filename=filename) url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ url_parameters Modified: static_docs/templates/pages/download/themes.html 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,63 @@ +{% extends "pages/richtextpage.html" %} + +{% load mezzanine_tags pages_tags static %} + +{% block extra_css %} + + +{% endblock %} + +{% block richtext_content %} +{{ block.super }} + +

    Available Themes

    + +
    + +{% for theme in theme_index.values|dictsort:"name" %} +
    +
    +
    + {{ theme.name }} + Download +
    + +
    +
    + + {% if forloop.counter|divisibleby:3 %} +
    +
    + {% endif %} +{% endfor %} +
    + +{% endblock %} + +{% block extra_js %} +{{ block.super }} + + +{% endblock %} Modified: static_docs/urls.py 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -14,10 +14,12 @@ from django.conf.urls import url -from static_docs.views import I18NStatisticsView, ReleaseNotesView, ToDoView +from static_docs.views import I18NStatisticsView, ReleaseNotesView, ThemesView, ToDoView urlpatterns = ( # pylint: disable=invalid-name + url(r'^download/themes/$', ThemesView.as_view(), name='themes'), + url(r'^documentation/todo/$', ToDoView.as_view(), name='todo'), url(r'^documentation/releasenotes/$', ReleaseNotesView.as_view(), name='releasenotes'), Modified: static_docs/views.py 64 lines changed, 62 insertions(+), 2 deletions(-) =================================================================== @@ -19,6 +19,7 @@ import re from django.conf import settings +from django.core.cache import cache from django.http import Http404 from django.views.generic.base import TemplateView from mezzanine_pagedown.filters import plain as markdown_plain @@ -30,6 +31,9 @@ RELEASE_REGEXP = re.compile(r'^Geany (?P[0-9\.]+) \((?P.*)\)$') DATE_PATTERNS_TO_BE_IGNORED = ('TBD', 'TBA', 'unreleased') +CACHE_KEY_THEME_INDEX_MD5_HASH = 'THEME_INDEX_MD5_HASH' +CACHE_KEY_THEME_INDEX = 'THEME_INDEX' + logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -56,9 +60,9 @@ def __init__(self, *args, **kwargs): self._file_contents = None # ---------------------------------------------------------------------- - def _fetch_file_via_github_api(self, filename): + def _fetch_file_via_github_api(self, filename, user=None, repository=None): client = GitHubApiClient() - self._file_contents = client.get_file_contents(filename) + self._file_contents = client.get_file_contents(filename, user=user, repository=repository) class ReleaseNotesView(StaticDocsView): @@ -240,3 +244,59 @@ def _get_i18n_statistics(self): settings.STATIC_DOCS_GEANY_I18N_STATISTICS_FILENAME) with open(filename) as input_file: return json.load(input_file) + + +class ThemesView(StaticDocsView): + """ + Fetch the Geany-Themes index from https://github.com/geany/geany-themes/tree/master/index + """ + + template_name = "pages/download/themes.html" + + # ---------------------------------------------------------------------- + def get_context_data(self, **kwargs): + theme_index = self._get_theme_index() + context = super(ThemesView, self).get_context_data(**kwargs) + context['theme_index'] = theme_index + return context + + # ---------------------------------------------------------------------- + def _get_theme_index(self): + """ + Refresh the theme index by: + - querying the MD5 hash from Github + - compare the freshly retrieved MD5 hash against the cached one + - load the whole theme index if: + - the MD5 hashes differ + - the MD5 hash was not retrieved yet or has been expired from cache + - the theme index was not retrieved yet or has been expired from cache + - after loading the whole theme index cache it long (24 hours) + - store the freshly retrieved MD5 hash in the cache + """ + theme_index_md5_hash = self._query_theme_index_md5_hash() + cached_theme_index_md5_hash = cache.get(CACHE_KEY_THEME_INDEX_MD5_HASH) + theme_index = cache.get(CACHE_KEY_THEME_INDEX) + + # theme index has been changed remotely? + if theme_index_md5_hash != cached_theme_index_md5_hash or theme_index is None: + logger.debug('Refresh theme index from Github (MD5: {})'.format(theme_index_md5_hash)) + # query whole theme index + theme_index = self._query_parse_themes_index() + # cache it for later + cache.set(CACHE_KEY_THEME_INDEX, theme_index, CACHE_TIMEOUT_24HOURS) + + # cache MD5 hash + cache.set(CACHE_KEY_THEME_INDEX_MD5_HASH, theme_index_md5_hash, CACHE_TIMEOUT_24HOURS) + + return theme_index + + # ---------------------------------------------------------------------- + def _query_theme_index_md5_hash(self): + self._fetch_file_via_github_api('index/index.json.md5', repository='geany-themes') + return self._file_contents.strip() + + # ---------------------------------------------------------------------- + def _query_parse_themes_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + theme_index = json.loads(self._file_contents) + return theme_index -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:06:58 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:06:58 -0000 Subject: [geany/www.geany.org] 44e6a4: Add "CC BY-SA" notice to footer Message-ID: <20190630121030.7FC501E615F@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:06:58 UTC Commit: 44e6a40fcbd922d6034c93300826652ae2394390 https://github.com/geany/www.geany.org/commit/44e6a40fcbd922d6034c93300826652ae2394390 Log Message: ----------- Add "CC BY-SA" notice to footer Closes #6. Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -58,7 +58,9 @@

    Privacy Statement - - Contents Copyright {% now "Y" %} ‐ The Geany development team + ‐ Contents Copyright {% now "Y" %} + ‐ The Geany contributors + ‐ Licensed under CC BY-SA

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:10:27 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:10:27 -0000 Subject: [geany/www.geany.org] a6909b: Merge pull request #12 from geany/issue6_content_license Message-ID: <20190630121030.BA4751E6162@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: GitHub Date: Sun, 30 Jun 2019 12:10:27 UTC Commit: a6909bc60cca88c564af78bfb8a61a039febf50f https://github.com/geany/www.geany.org/commit/a6909bc60cca88c564af78bfb8a61a039febf50f Log Message: ----------- Merge pull request #12 from geany/issue6_content_license Add "CC BY-SA" notice to footer Modified Paths: -------------- geany/templates/skel.html Modified: geany/templates/skel.html 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -58,7 +58,9 @@

    Privacy Statement - - Contents Copyright {% now "Y" %} ‐ The Geany development team + ‐ Contents Copyright {% now "Y" %} + ‐ The Geany contributors + ‐ Licensed under CC BY-SA

    -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:08:45 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:08:45 -0000 Subject: [geany/www.geany.org] 668492: Add Geany-Themes page with theme preview Message-ID: <20190630121121.62E621E612A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:08:45 UTC Commit: 668492803592cde2c30254b0dbc5fb61001187f7 https://github.com/geany/www.geany.org/commit/668492803592cde2c30254b0dbc5fb61001187f7 Log Message: ----------- Add Geany-Themes page with theme preview The themes in the preview list are loaded from the Geany-Themes repository on Github on the fly (but cached for one hour). Modified Paths: -------------- geany/templates/home.html page_content/download/themes.md static_docs/github_client.py static_docs/templates/pages/download/themes.html static_docs/urls.py static_docs/views.py Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -151,7 +151,7 @@

    Great Community

    Easily Customizable

    Many parts of Geany are heavily customizable like color themes - (Geany Themes project) or + (Geany Themes) or adding new filetypes.

    Modified: page_content/download/themes.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +## Geany Themes + +Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. +These schemes are compatible with Geany 1.22 and greater. + +To use one the themes below, download the configuration file and save it to the folder `colorschemes` in your Geany configuration directory (usually `~/.config/geany/colorschemes/`). + +For more information and detailed configuration instructions, see https://github.com/geany/geany-themes. + + Modified: static_docs/github_client.py 8 lines changed, 5 insertions(+), 3 deletions(-) =================================================================== @@ -30,9 +30,11 @@ class GitHubApiClient: """""" # ---------------------------------------------------------------------- - def get_file_contents(self, filename): - url_parameters = dict(user=GITHUB_USER, - repository=GITHUB_REPOSITORY, + def get_file_contents(self, filename, user=None, repository=None): + user = user or GITHUB_USER + repository = repository or GITHUB_REPOSITORY + url_parameters = dict(user=user, + repository=repository, filename=filename) url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ url_parameters Modified: static_docs/templates/pages/download/themes.html 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,63 @@ +{% extends "pages/richtextpage.html" %} + +{% load mezzanine_tags pages_tags static %} + +{% block extra_css %} + + +{% endblock %} + +{% block richtext_content %} +{{ block.super }} + +

    Available Themes

    + +
    + +{% for theme in theme_index.values|dictsort:"name" %} +
    +
    +
    + {{ theme.name }} + Download +
    + +
    +
    + + {% if forloop.counter|divisibleby:3 %} +
    +
    + {% endif %} +{% endfor %} +
    + +{% endblock %} + +{% block extra_js %} +{{ block.super }} + + +{% endblock %} Modified: static_docs/urls.py 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -14,10 +14,12 @@ from django.conf.urls import url -from static_docs.views import I18NStatisticsView, ReleaseNotesView, ToDoView +from static_docs.views import I18NStatisticsView, ReleaseNotesView, ThemesView, ToDoView urlpatterns = ( # pylint: disable=invalid-name + url(r'^download/themes/$', ThemesView.as_view(), name='themes'), + url(r'^documentation/todo/$', ToDoView.as_view(), name='todo'), url(r'^documentation/releasenotes/$', ReleaseNotesView.as_view(), name='releasenotes'), Modified: static_docs/views.py 64 lines changed, 62 insertions(+), 2 deletions(-) =================================================================== @@ -19,6 +19,7 @@ import re from django.conf import settings +from django.core.cache import cache from django.http import Http404 from django.views.generic.base import TemplateView from mezzanine_pagedown.filters import plain as markdown_plain @@ -30,6 +31,9 @@ RELEASE_REGEXP = re.compile(r'^Geany (?P[0-9\.]+) \((?P.*)\)$') DATE_PATTERNS_TO_BE_IGNORED = ('TBD', 'TBA', 'unreleased') +CACHE_KEY_THEME_INDEX_MD5_HASH = 'THEME_INDEX_MD5_HASH' +CACHE_KEY_THEME_INDEX = 'THEME_INDEX' + logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -56,9 +60,9 @@ def __init__(self, *args, **kwargs): self._file_contents = None # ---------------------------------------------------------------------- - def _fetch_file_via_github_api(self, filename): + def _fetch_file_via_github_api(self, filename, user=None, repository=None): client = GitHubApiClient() - self._file_contents = client.get_file_contents(filename) + self._file_contents = client.get_file_contents(filename, user=user, repository=repository) class ReleaseNotesView(StaticDocsView): @@ -240,3 +244,59 @@ def _get_i18n_statistics(self): settings.STATIC_DOCS_GEANY_I18N_STATISTICS_FILENAME) with open(filename) as input_file: return json.load(input_file) + + +class ThemesView(StaticDocsView): + """ + Fetch the Geany-Themes index from https://github.com/geany/geany-themes/tree/master/index + """ + + template_name = "pages/download/themes.html" + + # ---------------------------------------------------------------------- + def get_context_data(self, **kwargs): + theme_index = self._get_theme_index() + context = super(ThemesView, self).get_context_data(**kwargs) + context['theme_index'] = theme_index + return context + + # ---------------------------------------------------------------------- + def _get_theme_index(self): + """ + Refresh the theme index by: + - querying the MD5 hash from Github + - compare the freshly retrieved MD5 hash against the cached one + - load the whole theme index if: + - the MD5 hashes differ + - the MD5 hash was not retrieved yet or has been expired from cache + - the theme index was not retrieved yet or has been expired from cache + - after loading the whole theme index cache it long (24 hours) + - store the freshly retrieved MD5 hash in the cache + """ + theme_index_md5_hash = self._query_theme_index_md5_hash() + cached_theme_index_md5_hash = cache.get(CACHE_KEY_THEME_INDEX_MD5_HASH) + theme_index = cache.get(CACHE_KEY_THEME_INDEX) + + # theme index has been changed remotely? + if theme_index_md5_hash != cached_theme_index_md5_hash or theme_index is None: + logger.debug('Refresh theme index from Github (MD5: {})'.format(theme_index_md5_hash)) + # query whole theme index + theme_index = self._query_parse_themes_index() + # cache it for later + cache.set(CACHE_KEY_THEME_INDEX, theme_index, CACHE_TIMEOUT_24HOURS) + + # cache MD5 hash + cache.set(CACHE_KEY_THEME_INDEX_MD5_HASH, theme_index_md5_hash, CACHE_TIMEOUT_24HOURS) + + return theme_index + + # ---------------------------------------------------------------------- + def _query_theme_index_md5_hash(self): + self._fetch_file_via_github_api('index/index.json.md5', repository='geany-themes') + return self._file_contents.strip() + + # ---------------------------------------------------------------------- + def _query_parse_themes_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + theme_index = json.loads(self._file_contents) + return theme_index -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:08:45 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:08:45 -0000 Subject: [geany/www.geany.org] 52941f: Log request duration of Github API calls Message-ID: <20190630121121.DE70D1E612A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:08:45 UTC Commit: 52941f97ac36ae834b4ecd65c93bdab7f034372c https://github.com/geany/www.geany.org/commit/52941f97ac36ae834b4ecd65c93bdab7f034372c Log Message: ----------- Log request duration of Github API calls Modified Paths: -------------- static_docs/github_client.py Modified: static_docs/github_client.py 9 lines changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -41,6 +41,7 @@ def get_file_contents(self, filename, user=None, repository=None): with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: response_json = response.json() self._log_rate_limit(response) + self._log_request(response) # parse response return self._parse_fetch_file_response(response_json) @@ -51,6 +52,14 @@ def _log_rate_limit(self, response): rate_limit = response.headers['X-RateLimit-Limit'] logger.info('Github rate limits: %s/%s', rate_limit_remaining, rate_limit) + # ---------------------------------------------------------------------- + def _log_request(self, response): + logger.info( + 'Requesting "{} {}" took {}s'.format( + response.request.method, + response.request.url, + response.elapsed.total_seconds())) + # ---------------------------------------------------------------------- def _parse_fetch_file_response(self, response_json): content = response_json['content'] -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:11:17 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:11:17 -0000 Subject: [geany/www.geany.org] 1ab6c2: Merge pull request #8 from geany/issue5_geany_themes_preview Message-ID: <20190630121122.5C9B11E612A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: GitHub Date: Sun, 30 Jun 2019 12:11:17 UTC Commit: 1ab6c22629c745106a4debb44f3903ef0a7e5b5b https://github.com/geany/www.geany.org/commit/1ab6c22629c745106a4debb44f3903ef0a7e5b5b Log Message: ----------- Merge pull request #8 from geany/issue5_geany_themes_preview Add Geany-Themes page with theme preview Modified Paths: -------------- geany/templates/home.html page_content/download/themes.md static_docs/github_client.py static_docs/templates/pages/download/themes.html static_docs/urls.py static_docs/views.py Modified: geany/templates/home.html 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -151,7 +151,7 @@

    Great Community

    Easily Customizable

    Many parts of Geany are heavily customizable like color themes - (Geany Themes project) or + (Geany Themes) or adding new filetypes.

    Modified: page_content/download/themes.md 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +## Geany Themes + +Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. +These schemes are compatible with Geany 1.22 and greater. + +To use one the themes below, download the configuration file and save it to the folder `colorschemes` in your Geany configuration directory (usually `~/.config/geany/colorschemes/`). + +For more information and detailed configuration instructions, see https://github.com/geany/geany-themes. + + Modified: static_docs/github_client.py 17 lines changed, 14 insertions(+), 3 deletions(-) =================================================================== @@ -30,15 +30,18 @@ class GitHubApiClient: """""" # ---------------------------------------------------------------------- - def get_file_contents(self, filename): - url_parameters = dict(user=GITHUB_USER, - repository=GITHUB_REPOSITORY, + def get_file_contents(self, filename, user=None, repository=None): + user = user or GITHUB_USER + repository = repository or GITHUB_REPOSITORY + url_parameters = dict(user=user, + repository=repository, filename=filename) url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ url_parameters with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: response_json = response.json() self._log_rate_limit(response) + self._log_request(response) # parse response return self._parse_fetch_file_response(response_json) @@ -49,6 +52,14 @@ def _log_rate_limit(self, response): rate_limit = response.headers['X-RateLimit-Limit'] logger.info('Github rate limits: %s/%s', rate_limit_remaining, rate_limit) + # ---------------------------------------------------------------------- + def _log_request(self, response): + logger.info( + 'Requesting "{} {}" took {}s'.format( + response.request.method, + response.request.url, + response.elapsed.total_seconds())) + # ---------------------------------------------------------------------- def _parse_fetch_file_response(self, response_json): content = response_json['content'] Modified: static_docs/templates/pages/download/themes.html 63 lines changed, 63 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,63 @@ +{% extends "pages/richtextpage.html" %} + +{% load mezzanine_tags pages_tags static %} + +{% block extra_css %} + + +{% endblock %} + +{% block richtext_content %} +{{ block.super }} + +

    Available Themes

    + +
    + +{% for theme in theme_index.values|dictsort:"name" %} +
    +
    +
    + {{ theme.name }} + Download +
    + +
    +
    + + {% if forloop.counter|divisibleby:3 %} +
    +
    + {% endif %} +{% endfor %} +
    + +{% endblock %} + +{% block extra_js %} +{{ block.super }} + + +{% endblock %} Modified: static_docs/urls.py 4 lines changed, 3 insertions(+), 1 deletions(-) =================================================================== @@ -14,10 +14,12 @@ from django.conf.urls import url -from static_docs.views import I18NStatisticsView, ReleaseNotesView, ToDoView +from static_docs.views import I18NStatisticsView, ReleaseNotesView, ThemesView, ToDoView urlpatterns = ( # pylint: disable=invalid-name + url(r'^download/themes/$', ThemesView.as_view(), name='themes'), + url(r'^documentation/todo/$', ToDoView.as_view(), name='todo'), url(r'^documentation/releasenotes/$', ReleaseNotesView.as_view(), name='releasenotes'), Modified: static_docs/views.py 64 lines changed, 62 insertions(+), 2 deletions(-) =================================================================== @@ -19,6 +19,7 @@ import re from django.conf import settings +from django.core.cache import cache from django.http import Http404 from django.views.generic.base import TemplateView from mezzanine_pagedown.filters import plain as markdown_plain @@ -30,6 +31,9 @@ RELEASE_REGEXP = re.compile(r'^Geany (?P[0-9\.]+) \((?P.*)\)$') DATE_PATTERNS_TO_BE_IGNORED = ('TBD', 'TBA', 'unreleased') +CACHE_KEY_THEME_INDEX_MD5_HASH = 'THEME_INDEX_MD5_HASH' +CACHE_KEY_THEME_INDEX = 'THEME_INDEX' + logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -56,9 +60,9 @@ def __init__(self, *args, **kwargs): self._file_contents = None # ---------------------------------------------------------------------- - def _fetch_file_via_github_api(self, filename): + def _fetch_file_via_github_api(self, filename, user=None, repository=None): client = GitHubApiClient() - self._file_contents = client.get_file_contents(filename) + self._file_contents = client.get_file_contents(filename, user=user, repository=repository) class ReleaseNotesView(StaticDocsView): @@ -240,3 +244,59 @@ def _get_i18n_statistics(self): settings.STATIC_DOCS_GEANY_I18N_STATISTICS_FILENAME) with open(filename) as input_file: return json.load(input_file) + + +class ThemesView(StaticDocsView): + """ + Fetch the Geany-Themes index from https://github.com/geany/geany-themes/tree/master/index + """ + + template_name = "pages/download/themes.html" + + # ---------------------------------------------------------------------- + def get_context_data(self, **kwargs): + theme_index = self._get_theme_index() + context = super(ThemesView, self).get_context_data(**kwargs) + context['theme_index'] = theme_index + return context + + # ---------------------------------------------------------------------- + def _get_theme_index(self): + """ + Refresh the theme index by: + - querying the MD5 hash from Github + - compare the freshly retrieved MD5 hash against the cached one + - load the whole theme index if: + - the MD5 hashes differ + - the MD5 hash was not retrieved yet or has been expired from cache + - the theme index was not retrieved yet or has been expired from cache + - after loading the whole theme index cache it long (24 hours) + - store the freshly retrieved MD5 hash in the cache + """ + theme_index_md5_hash = self._query_theme_index_md5_hash() + cached_theme_index_md5_hash = cache.get(CACHE_KEY_THEME_INDEX_MD5_HASH) + theme_index = cache.get(CACHE_KEY_THEME_INDEX) + + # theme index has been changed remotely? + if theme_index_md5_hash != cached_theme_index_md5_hash or theme_index is None: + logger.debug('Refresh theme index from Github (MD5: {})'.format(theme_index_md5_hash)) + # query whole theme index + theme_index = self._query_parse_themes_index() + # cache it for later + cache.set(CACHE_KEY_THEME_INDEX, theme_index, CACHE_TIMEOUT_24HOURS) + + # cache MD5 hash + cache.set(CACHE_KEY_THEME_INDEX_MD5_HASH, theme_index_md5_hash, CACHE_TIMEOUT_24HOURS) + + return theme_index + + # ---------------------------------------------------------------------- + def _query_theme_index_md5_hash(self): + self._fetch_file_via_github_api('index/index.json.md5', repository='geany-themes') + return self._file_contents.strip() + + # ---------------------------------------------------------------------- + def _query_parse_themes_index(self): + self._fetch_file_via_github_api('index/index.json', repository='geany-themes') + theme_index = json.loads(self._file_contents) + return theme_index -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:19:49 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:19:49 -0000 Subject: [geany/www.geany.org] 23cb6f: Add new, clean URL for querying the latest version: /service/version/ Message-ID: <20190630214113.2F3B11E612A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:19:49 UTC Commit: 23cb6f471f60938418a31914e93523f5fafabcfb https://github.com/geany/www.geany.org/commit/23cb6f471f60938418a31914e93523f5fafabcfb Log Message: ----------- Add new, clean URL for querying the latest version: /service/version/ This URL is used by the UpdateChecker plugin. Modified Paths: -------------- latest_version/urls.py Modified: latest_version/urls.py 9 lines changed, 7 insertions(+), 2 deletions(-) =================================================================== @@ -19,11 +19,16 @@ urlpatterns = ( # pylint: disable=invalid-name - # compat / special url for the UpdateChecker Geany plugin + # special url for the UpdateChecker Geany plugin url( - r'^service/version.php', + r'^service/version/', TemplateView.as_view(template_name='latest_version.txt', content_type='text/plain'), name='latest_version'), + # legacy url for the UpdateChecker Geany plugin + url( + r'^service/version.php', + TemplateView.as_view(template_name='latest_version.txt', content_type='text/plain'), + name='latest_version_legacy'), ) # register our urlpatterns to the global sitemap generator -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 12:46:03 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 12:46:03 -0000 Subject: [geany/www.geany.org] 3b62ba: Exclude API or legacy URLs from /sitemap.xml Message-ID: <20190630214113.6DACA1E615F@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 12:46:03 UTC Commit: 3b62baf048984a1bf60549470c360403f9283a52 https://github.com/geany/www.geany.org/commit/3b62baf048984a1bf60549470c360403f9283a52 Log Message: ----------- Exclude API or legacy URLs from /sitemap.xml Those URLs cannot or should not be called directly and so also not indexed by search engines. Modified Paths: -------------- geany/sitemaps.py latest_version/urls.py pastebin/urls.py Modified: geany/sitemaps.py 24 lines changed, 16 insertions(+), 8 deletions(-) =================================================================== @@ -92,9 +92,10 @@ class StaticSitemap(sitemaps.Sitemap): priority = 0.5 # ---------------------------------------------------------------------- - def __init__(self, domain, patterns): + def __init__(self, domain, patterns, exclude_views=None): self._domain = domain self._patterns = patterns + self._exclude_views = exclude_views or list() self._site = None self._url_mapping = {} self._get_site() @@ -111,7 +112,8 @@ def get_static_items(self): # ---------------------------------------------------------------------- def _initialize(self): for pattern in self._patterns: - if getattr(pattern, 'name', None) is not None: + view_name = getattr(pattern, 'name', None) + if view_name is not None and view_name not in self._exclude_views: url_resolved = self._resolve_url(pattern.name) if url_resolved: self._url_mapping[pattern.name] = url_resolved @@ -153,11 +155,11 @@ def __init__(self): self._static_items = None # ---------------------------------------------------------------------- - def add(self, generator_class, url_patterns, site_domain=None): + def add(self, generator_class, url_patterns, site_domain=None, exclude_views=None): if site_domain is None: site = Site.objects.get(id=settings.SITE_ID) site_domain = site.domain - sitemap_generator_item = (generator_class, url_patterns, site_domain) + sitemap_generator_item = (generator_class, url_patterns, site_domain, exclude_views) self._sitemap_generators.append(sitemap_generator_item) # ---------------------------------------------------------------------- @@ -176,17 +178,23 @@ def get_all_items(self): # ---------------------------------------------------------------------- def _get_static_items(self): static_items = list() - for sitemap_generator_class, url_patterns, site_domain in self._sitemap_generators: - generator = sitemap_generator_class(site_domain, url_patterns) + for generator_class, url_patterns, site_domain, exclude_views in self._sitemap_generators: + generator = generator_class( + site_domain, + url_patterns, + exclude_views=exclude_views) items = generator.get_static_items() static_items.extend(items) return static_items # ---------------------------------------------------------------------- def _get_dynamic_items(self): dynamic_items = list() - for sitemap_generator_class, url_patterns, site_domain in self._sitemap_generators: - generator = sitemap_generator_class(site_domain, url_patterns) + for generator_class, url_patterns, site_domain, exclude_views in self._sitemap_generators: + generator = generator_class( + site_domain, + url_patterns, + exclude_views=exclude_views) items = generator.get_dynamic_items() dynamic_items.extend(items) return dynamic_items Modified: latest_version/urls.py 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -32,4 +32,4 @@ ) # register our urlpatterns to the global sitemap generator -sitemap_registry.add(StaticSitemap, urlpatterns) +sitemap_registry.add(StaticSitemap, urlpatterns, exclude_views=['latest_version_legacy']) Modified: pastebin/urls.py 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -57,4 +57,4 @@ # Sitemap framework -sitemap_registry.add(StaticSitemap, urlpatterns) +sitemap_registry.add(StaticSitemap, urlpatterns, exclude_views=['snippet_api']) -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 21:34:26 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 21:34:26 -0000 Subject: [geany/www.geany.org] 16a8f5: Improve error handling on Github API requests Message-ID: <20190630214113.AD6631E612A@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 21:34:26 UTC Commit: 16a8f5c38e7213b7fb07cb79e91d81763320bb9c https://github.com/geany/www.geany.org/commit/16a8f5c38e7213b7fb07cb79e91d81763320bb9c Log Message: ----------- Improve error handling on Github API requests Before any HTTP or Github API errors were ignored and the code crashed later on processing the missing responses. Now, "requests" raises an appropriate error and we stop trying to process a missing response. Also use a common method for making requests to reduce code duplication. Modified Paths: -------------- static_docs/github_client.py Modified: static_docs/github_client.py 54 lines changed, 34 insertions(+), 20 deletions(-) =================================================================== @@ -33,19 +33,33 @@ class GitHubApiClient: def get_file_contents(self, filename, user=None, repository=None): user = user or GITHUB_USER repository = repository or GITHUB_REPOSITORY - url_parameters = dict(user=user, - repository=repository, - filename=filename) - url = 'https://api.github.com/repos/%(user)s/%(repository)s/contents/%(filename)s' % \ - url_parameters - with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: - response_json = response.json() - self._log_rate_limit(response) - self._log_request(response) + url = '{api_base_url}repos/{user}/{repository}/contents/{filename}'.format( + api_base_url=GITHUB_API_URL, + user=user, + repository=repository, + filename=filename) + response = self._request(url) + response_json = response.json() # parse response return self._parse_fetch_file_response(response_json) + # ---------------------------------------------------------------------- + def _request(self, url, status_404_expected=False): + try: + with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: + self._log_rate_limit(response) + self._log_request(response) + # error out on 4xx and 5xx status codes + response.raise_for_status() + except requests.exceptions.HTTPError as exc: + if exc.response.status_code == 404 and status_404_expected: + return None + else: + raise + + return response + # ---------------------------------------------------------------------- def _log_rate_limit(self, response): rate_limit_remaining = response.headers['X-RateLimit-Remaining'] @@ -71,26 +85,26 @@ def _parse_fetch_file_response(self, response_json): # ---------------------------------------------------------------------- def get_release_by_tag(self, tag_name): - url = 'https://api.github.com/repos/{user}/{repository}/releases/tags/{tag_name}'.format( + url = '{api_base_url}repos/{user}/{repository}/releases/tags/{tag_name}'.format( + api_base_url=GITHUB_API_URL, user=GITHUB_USER, repository=GITHUB_REPOSITORY, tag_name=tag_name) - with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: - response_json = response.json() - self._log_rate_limit(response) - if response.status_code == 404: - return None + response = self._request(url, status_404_expected=True) + if response: + response_json = response.json() + return response_json - return response_json + return None # ---------------------------------------------------------------------- def get_latest_release(self): - url = 'https://api.github.com/repos/{user}/{repository}/releases/latest'.format( + url = '{api_base_url}repos/{user}/{repository}/releases/latest'.format( + api_base_url=GITHUB_API_URL, user=GITHUB_USER, repository=GITHUB_REPOSITORY) - with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: - response_json = response.json() - self._log_rate_limit(response) + response = self._request(url) + response_json = response.json() return response_json -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure). From git-noreply at xxxxx Sun Jun 30 21:39:52 2019 From: git-noreply at xxxxx (=?utf-8?q?Enrico_Tr=C3=B6ger?=) Date: Sun, 30 Jun 2019 21:39:52 -0000 Subject: [geany/www.geany.org] b79915: Improve logging of Github API requests Message-ID: <20190630214114.37AE81E615F@mail.geany.org> Branch: refs/heads/master Author: Enrico Tröger Committer: Enrico Tröger Date: Sun, 30 Jun 2019 21:39:52 UTC Commit: b79915df440a371cee1135cdaa20045bce0ee37e https://github.com/geany/www.geany.org/commit/b79915df440a371cee1135cdaa20045bce0ee37e Log Message: ----------- Improve logging of Github API requests Log warnings for non-200 HTTP status codes and add the API error message to the log message. Also log a warning if the API rate limiting is exceeded. Modified Paths: -------------- static_docs/github_client.py Modified: static_docs/github_client.py 41 lines changed, 32 insertions(+), 9 deletions(-) =================================================================== @@ -48,8 +48,8 @@ def get_file_contents(self, filename, user=None, repository=None): def _request(self, url, status_404_expected=False): try: with requests.get(url, timeout=HTTP_REQUEST_TIMEOUT, stream=False) as response: + self._log_request(response, status_404_expected) self._log_rate_limit(response) - self._log_request(response) # error out on 4xx and 5xx status codes response.raise_for_status() except requests.exceptions.HTTPError as exc: @@ -62,17 +62,40 @@ def _request(self, url, status_404_expected=False): # ---------------------------------------------------------------------- def _log_rate_limit(self, response): - rate_limit_remaining = response.headers['X-RateLimit-Remaining'] + rate_limit_remaining = int(response.headers['X-RateLimit-Remaining']) rate_limit = response.headers['X-RateLimit-Limit'] - logger.info('Github rate limits: %s/%s', rate_limit_remaining, rate_limit) + log_message = 'Github rate limits: {}/{}'.format(rate_limit_remaining, rate_limit) + if rate_limit_remaining > 0: + logger.info(log_message) + else: + logger.warning(log_message) # ---------------------------------------------------------------------- - def _log_request(self, response): - logger.info( - 'Requesting "{} {}" took {}s'.format( - response.request.method, - response.request.url, - response.elapsed.total_seconds())) + def _log_request(self, response, status_404_expected): + # try to parse response as JSON (if it is a API error) and set the message + # as reason or just use the plain text from the response + if response.status_code >= 400: + try: + response_json = response.json() + reason = response_json.get('message') + except ValueError: + reason = response.text() + else: + reason = response.reason + + log_message = 'Requesting "{} {}" took {}s: {} ({})'.format( + response.request.method, + response.request.url, + response.elapsed.total_seconds(), + response.status_code, + reason) + + if response.status_code == 200: + logger.info(log_message) + elif response.status_code == 404 and status_404_expected: + logger.info(log_message) + else: + logger.warning(log_message) # ---------------------------------------------------------------------- def _parse_fetch_file_response(self, response_json): -------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).