diff --git a/Assets/WebsiteAssets/rss.xml b/Assets/WebsiteAssets/rss.xml index 3847ef84e8..cb31a8b4e6 100644 --- a/Assets/WebsiteAssets/rss.xml +++ b/Assets/WebsiteAssets/rss.xml @@ -1,4 +1,4 @@ -<![CDATA[Joplin]]>https://joplinapp.orgRSS for NodeFri, 03 Jun 2022 12:21:35 GMT<![CDATA[Joplin received 6 Contributor Projects for GSoC 2022!]]>We are glad to announce that Google allocated us six projects this year for Google Summer of Code! So this is six contributors who will be working on various parts of the apps, both desktop and mobile, over the summer.

+<![CDATA[Joplin]]>https://joplinapp.orgRSS for NodeSun, 22 May 2022 00:00:00 GMTSun, 22 May 2022 00:00:00 GMT<![CDATA[Joplin received 6 Contributor Projects for GSoC 2022!]]>We are glad to announce that Google allocated us six projects this year for Google Summer of Code! So this is six contributors who will be working on various parts of the apps, both desktop and mobile, over the summer.

Over the next few weeks, till 13 June, will be the Community Bonding Period during which GSoC contributors get to know mentors, read documentation, and get up to speed to begin working on their projects.

Here's the full list of projects, contributors and mentors.

@@ -105,7 +105,7 @@

https://joplinapp.org/changelog_android/

https://joplinapp.org/changelog_ios/

https://joplinapp.org/changelog_cli/

-]]>https://joplinapp.org/news/20211217-120324/20211217-120324Fri, 17 Dec 2021 00:00:00 GMT<![CDATA[Potential breaking change in next Joplin Server update (2.5.10)]]>Just a head up that the next Joplin Server update could potentially include a breaking change, depending on your data.

+]]>
https://joplinapp.org/news/20211217-120324/20211217-120324Fri, 17 Dec 2021 12:03:24 GMT
<![CDATA[Potential breaking change in next Joplin Server update (2.5.10)]]>Just a head up that the next Joplin Server update could potentially include a breaking change, depending on your data.

One of the database migration is going to add an "owner_id" column to the "items" table (where all notes, notebooks, etc. are stored), and automatically populate it. Normally that shouldn't take too long but you might want to make sure you won't need the server right away when you process this.

The second database migration will add a unique constraint on items.name and items.owner_id and that's where the breaking change might be. Normally this data is already unique because that's enforced by the application but in some rare cases, due a race condition, there could be duplicate data in there. If that happens the migration will fail and the server will not start.

If that happens, you'll need to decide what to do with the data, as it's not possible to automatically decide. You can find all duplicates using this query:

@@ -118,7 +118,7 @@
  • Or, just delete the data directly in the database. You'll want to delete the corresponding item_id from the user_items table too.
  • But really in most cases you should be fine. Especially if you don't have that many notes it's unlikely you have duplicates.

    -]]>
    https://joplinapp.org/news/20211102-150403/20211102-150403Tue, 02 Nov 2021 00:00:00 GMT
    <![CDATA[Joplin v2.5 is available for desktop and mobile!]]>Joplin v2.5 is now available for desktop, mobile and CLI! Here's an overview of the changes:

    +]]>
    https://joplinapp.org/news/20211102-150403/20211102-150403Tue, 02 Nov 2021 15:04:03 GMT
    <![CDATA[Joplin v2.5 is available for desktop and mobile!]]>Joplin v2.5 is now available for desktop, mobile and CLI! Here's an overview of the changes:

    Support for Markdown + Front Matter🔗

    Markdown + Front Matter is a format that allows attaching metadata, such as tags, creation date, or geolocation to a Markdown file. This is done by adding a block of YAML code (a "front matter") at the top of the file.

    Thansk to Caleb John's efforts the Joplin desktop and CLI applications now support importing and exporting these files. When exporting, we try to preserve as much metadata as possible, while still keeping it the formatting user friendly.

    @@ -146,7 +146,7 @@

    As always the mobile apps (to be released soon) benefit from several of the above changes since they share the same codebase as the desktop app.

    Specific to the mobile version 2.5 are some improvements to the beta editor - in particular the layout has been cleaned up, and the first word of sentences is now automatically capitalised, which makes typing notes easier. If you haven't tried the beta editor yet, you can enable it from the Configuration screen.

    The full changelog is available there: https://joplinapp.org/changelog/

    -]]>
    https://joplinapp.org/news/20211031-115215/20211031-115215Sun, 31 Oct 2021 00:00:00 GMT
    <![CDATA["Certificate has expired" error with Joplin Cloud, and workaround]]>Some of you might be experiencing an error "Certificate has expired" when synchronising with Joplin Cloud (and possibly other services) when using the desktop application.

    +]]>
    https://joplinapp.org/news/20211031-115215/20211031-115215Sun, 31 Oct 2021 11:52:15 GMT
    <![CDATA["Certificate has expired" error with Joplin Cloud, and workaround]]>Some of you might be experiencing an error "Certificate has expired" when synchronising with Joplin Cloud (and possibly other services) when using the desktop application.

    This is due to Let's Encrypt root certificate that expired on 30 September, and the new method they are using is not compatible with the Joplin desktop application.

    This actually affects thousands of applications, not just Joplin, so various solutions are being considered right now and hopefully a fix will be available relatively soon.

    For now, as a workaround, you can simply check "Ignore TLS certificate errors" in Configuration > Synchronisation > Advanced Options

    @@ -155,7 +155,7 @@

    - Issue with Electron and expired root on Let's Encrypt

    - Let's Encrypt root CA isn't working properly on Electron GitHub repository

    Update: I have implemented a temporary fix on Joplin Cloud which should solve the issue for now. If you're still having some issues please let me know. An updated desktop app will be available later on with a more permanent fix.

    -]]>
    https://joplinapp.org/news/20210930-163458/20210930-163458Thu, 30 Sep 2021 00:00:00 GMT
    <![CDATA[Joplin 2.4 is available!]]>Joplin 2.4 is now available on desktop, mobile and CLI. Here's what's new in this release:

    +]]>
    https://joplinapp.org/news/20210930-163458/20210930-163458Thu, 30 Sep 2021 16:34:58 GMT
    <![CDATA[Joplin 2.4 is available!]]>Joplin 2.4 is now available on desktop, mobile and CLI. Here's what's new in this release:

    Sync Wizard Dialog🔗

    A new Sync Wizard Dialog has been added to simplify setting up sync on new clients.

    The dialog shows the main sync targets, their differences, and makes it easy to choose one and start synchronising. This is mostly aimed at new users or those perhaps less technical. Those who are self hosting or using complex setups will still easily find what they need from a link on that dialog (or in Config > Synchronisation like before).

    @@ -181,22 +181,22 @@

    This release also includes about 30 various bug fixes and improvements.

    A notable one is a fix for GotoAnything, which recently wasn't working on first try.

    The plugin screen has also been improved so that search works even when GitHub is down or blocked, as it is in China in particular.

    -]]>
    https://joplinapp.org/news/20210929-144036/20210929-144036Wed, 29 Sep 2021 00:00:00 GMT
    <![CDATA[Introducing recommended plugins in the next Joplin version]]>A common request from new users is how to know which plugin is safe to install or not. In fact probably all of them are safe but as a new user that's not necessarily easy to know. So to help with this, the next version of Joplin will support recommended plugins - those will be plugins that meet our standards of quality and performance, and they will be indicated by a small crown tag inside the plugin box. Recommended plugins will also appear on top when searching.

    +]]>
    https://joplinapp.org/news/20210929-144036/20210929-144036Wed, 29 Sep 2021 14:40:36 GMT
    <![CDATA[Introducing recommended plugins in the next Joplin version]]>A common request from new users is how to know which plugin is safe to install or not. In fact probably all of them are safe but as a new user that's not necessarily easy to know. So to help with this, the next version of Joplin will support recommended plugins - those will be plugins that meet our standards of quality and performance, and they will be indicated by a small crown tag inside the plugin box. Recommended plugins will also appear on top when searching.

    For now, since we don't have a review process, the recommended plugins are those developed by the Joplin team and frequent contributors, because we know those are safe to use.

    Later we might have a review process and add more recommended plugins. That being said, in the meantime even if a plugin is not marked as recommended, there's a good chance it is still safe and have good performance too. Often you can search for it on the forum and if it's active with many users commenting, you're most likely good to go.

    But if there's any doubt, the recommended tag is a good way to be sure.

    -]]>
    https://joplinapp.org/news/20210901-113415/20210901-113415Wed, 01 Sep 2021 00:00:00 GMT
    <![CDATA[Joplin Cloud is officially production ready!]]>Joplin Cloud has been out of beta for a few weeks now and since then it has been quietly running without any troubles. There is no known bugs and the service is running smoothly so it's now safe to say that it is production ready!

    +]]>
    https://joplinapp.org/news/20210901-113415/20210901-113415Wed, 01 Sep 2021 11:34:15 GMT
    <![CDATA[Joplin Cloud is officially production ready!]]>Joplin Cloud has been out of beta for a few weeks now and since then it has been quietly running without any troubles. There is no known bugs and the service is running smoothly so it's now safe to say that it is production ready!

    As a reminder, Joplin Cloud is meant to provide a more seamless Joplin experience - if you want to quickly get started, it's as easy as downloading the app and getting a Joplin Cloud account. Besides improved sync performance, that will give you the ability to collaborate on notebooks with others, as well as publishing and sharing notes.

    Of course Joplin still supports other sync options such as Nextcloud, Dropbox and OneDrive or AWS S3. You can also self host using Joplin Server. The advantage of Joplin Cloud being that you don't need to maintain a server yourself - for a small fee you'll get that taken care of.

    Additionally, subscribing to Joplin Cloud is a great way to support the project as a whole, including the open source applications. Such support is needed in the long term to provide bug and security fixes, add new features, and provide support.

    At some level it is also an experiment, to see if such a service is financially viable and can allow me to work full time on the project. This is certainly something I would like, and perhaps Joplin Cloud combined with your donations will allow that.

    -]]>
    https://joplinapp.org/news/20210831-154354/20210831-154354Tue, 31 Aug 2021 00:00:00 GMT
    <![CDATA[How to start your subscription if you have a free Joplin Cloud Beta account]]>For anyone with a beta account, if you would like to keep using it after the end of the trial period, there is now a button to do this from the Joplin Cloud home page:

    +]]>
    https://joplinapp.org/news/20210831-154354/20210831-154354Tue, 31 Aug 2021 15:43:54 GMT
    <![CDATA[How to start your subscription if you have a free Joplin Cloud Beta account]]>For anyone with a beta account, if you would like to keep using it after the end of the trial period, there is now a button to do this from the Joplin Cloud home page:

    If you click on it you will be sent to the Plans page via a special link. Then once you click on "Buy now" you will be sent to the Stripe page where you can start the subscription.

    As mentioned in the message, the process takes into account your remaining beta trial days. So for example, if your beta account expires in 60 days, the subscription will have a free 60 days trial period. This is so you don't lose any of the beta trial days no matter when you start the subscription.

    If you have any question about it, please let me know.

    -]]>
    https://joplinapp.org/news/20210804-085003/20210804-085003Wed, 04 Aug 2021 00:00:00 GMT
    <![CDATA[New beta editor for the mobile app]]>The latest Android pre-release 24 features an improved beta editor, which I hope could become a replacement for the very basic editor we have at the moment.

    +]]>
    https://joplinapp.org/news/20210804-085003/20210804-085003Wed, 04 Aug 2021 08:50:03 GMT
    <![CDATA[New beta editor for the mobile app]]>The latest Android pre-release 24 features an improved beta editor, which I hope could become a replacement for the very basic editor we have at the moment.

    It's still experimental because it's based on the equally experimental CodeMirror 6, however for simple editing tasks it seems to work fine. At the moment the improvements are:

    - Syntax highlighting for various tags such as bold, italic and headings.

    - List continuation for ordered and unordered lists (I didn't try checklists but I assume it doesn't work)

    @@ -204,7 +204,7 @@

    - Maybe better handling of large documents? CodeMirror 6 has a demo that loads a document with millions of lines, so maybe that will solve the performance issues that some users were having

    If everything works well, later on we should be able to add things like a toolbar, spellchecking and other features that are impossible with the current editor.

    If you find any bug, feel free to report here. Also make sure you backup your notes regularly in case there's an issue!

    -]]>
    https://joplinapp.org/news/20210729-103234/20210729-103234Thu, 29 Jul 2021 00:00:00 GMT
    <![CDATA[The Jopin Cloud beta is now closed]]>The beta program helped narrow down a few issues and should make Joplin Cloud (and Joplin Server) more reliable. More precisely:

    +]]>
    https://joplinapp.org/news/20210729-103234/20210729-103234Thu, 29 Jul 2021 10:32:34 GMT
    <![CDATA[The Jopin Cloud beta is now closed]]>The beta program helped narrow down a few issues and should make Joplin Cloud (and Joplin Server) more reliable. More precisely:

    • About 7 bugs have been fixed, including two major ones regarding sharing, and one security issue.

      @@ -216,7 +216,7 @@

      As promised if you have a beta account you can keep using it and it will remain free for the three months after the account was created. After that, you will receive a link to start the Stripe subscription if you wish to keep using the account.

      If you have sent me an email before the end of the beta and I didn't reply yet, I will do so soon, and will send you the confirmation email.

      Thanks everyone for participating!

      -]]>https://joplinapp.org/news/20210718-103538/20210718-103538Sun, 18 Jul 2021 00:00:00 GMT<![CDATA[New website is ready!]]>The new website is finally ready at https://joplinapp.org

      +]]>
      https://joplinapp.org/news/20210718-103538/20210718-103538Sun, 18 Jul 2021 10:35:38 GMT
      <![CDATA[New website is ready!]]>The new website is finally ready at https://joplinapp.org

      The previous website had been built organically over the past few years. It had a lot of useful content but finding your way was tricky and, for new users, it wasn't clear what Joplin was about. Finding out how to install the app wasn't obvious since the download buttons were lost in the clutter of information.

      So the new website includes a front page with clear goals:

      @@ -235,14 +235,14 @@

    Also many thanks to everyone who voted and contributed to the tagline discussion! It helped narrow down what the tagline should be, along with the equally important description below. If you have any question or notice any issue with the website let me know!

    -]]>
    https://joplinapp.org/news/20210711-095626/20210711-095626Sun, 11 Jul 2021 00:00:00 GMT
    <![CDATA[Poll: What should Joplin tagline be?]]>Thanks everyone for your tagline suggestions - there were lots of good ideas in there. I've compiled a few of them and create a poll in the forum, so please cast your vote! And if you have any other suggestions on what would make a good tagline, feel free to post over there or here.

    +]]>
    https://joplinapp.org/news/20210711-095626/20210711-095626Sun, 11 Jul 2021 09:56:26 GMT
    <![CDATA[Poll: What should Joplin tagline be?]]>Thanks everyone for your tagline suggestions - there were lots of good ideas in there. I've compiled a few of them and create a poll in the forum, so please cast your vote! And if you have any other suggestions on what would make a good tagline, feel free to post over there or here.

    https://discourse.joplinapp.org/t/poll-what-should-joplin-tagline-be/18487

    -]]>
    https://joplinapp.org/news/20210706-140228/20210706-140228Tue, 06 Jul 2021 00:00:00 GMT
    <![CDATA[Any ideas for a Joplin tagline?]]>I'm going to update the website front page to better showcase the application. I have most of the sections right, but the part I'm still not sure about is the top tagline, so I'm wondering if anyone had any suggestion about it?

    +]]>
    https://joplinapp.org/news/20210706-140228/20210706-140228Tue, 06 Jul 2021 14:02:28 GMT
    <![CDATA[Any ideas for a Joplin tagline?]]>I'm going to update the website front page to better showcase the application. I have most of the sections right, but the part I'm still not sure about is the top tagline, so I'm wondering if anyone had any suggestion about it?

    From what I can see on Google Keep or Evernote for example it should be something like "Use our app to get X or Y benefit", it should be a sentence that directly speaks to the user essentially.

    So far I have "Your notes, anywhere you are" but I'm not certain that's particularly inspiring. Any other idea about what tagline could be used?

    -]]>
    https://joplinapp.org/news/20210705-094247/20210705-094247Mon, 05 Jul 2021 00:00:00 GMT
    <![CDATA[Poll: What's the size of your note collection?]]>Poll is on the forum:

    +]]>
    https://joplinapp.org/news/20210705-094247/20210705-094247Mon, 05 Jul 2021 09:42:47 GMT
    <![CDATA[Poll: What's the size of your note collection?]]>Poll is on the forum:

    https://discourse.joplinapp.org/t/poll-whats-the-size-of-your-note-collection/18191

    -]]>
    https://joplinapp.org/news/20210624-171844/20210624-171844Thu, 24 Jun 2021 00:00:00 GMT
    <![CDATA[Share notebooks and collaborate on them using Joplin Server 2.0]]>Since a few versions Joplin Server includes a way to share notebooks between users and collaborate on them - i.e. any participant can view or modify notes in the shared notebook. It's been present since version 2.x and the feature is getting close to be stable.

    +]]>
    https://joplinapp.org/news/20210624-171844/20210624-171844Thu, 24 Jun 2021 17:18:44 GMT
    <![CDATA[Share notebooks and collaborate on them using Joplin Server 2.0]]>Since a few versions Joplin Server includes a way to share notebooks between users and collaborate on them - i.e. any participant can view or modify notes in the shared notebook. It's been present since version 2.x and the feature is getting close to be stable.

    How does it work?

    When connected to Joplin Server (or the upcoming Joplin Cloud service), a new "Share notebook" menu item is available when right-clicking on a notebook.

    @@ -276,4 +276,4 @@

    Another possible use, which has been requested many times, is to support multiple profiles. You could create a main profile that have access to all notes, and in there create a Work and Personal notebook. Then you would create a separate account for work. You can then share your Work notebook with that other account. That way the work account will only have access to the Work notebooks. You can use this technique in various ways to split your notebooks between multiple accounts and ensure strict separation between datasets.

    -]]>
    https://joplinapp.org/news/20210621-104753/20210621-104753Mon, 21 Jun 2021 00:00:00 GMT
    \ No newline at end of file +]]>https://joplinapp.org/news/20210621-104753/20210621-104753Mon, 21 Jun 2021 10:47:53 GMT \ No newline at end of file diff --git a/packages/tools/website/updateNews.ts b/packages/tools/website/updateNews.ts index c2526c5c09..66b0b4a95c 100644 --- a/packages/tools/website/updateNews.ts +++ b/packages/tools/website/updateNews.ts @@ -8,7 +8,7 @@ import { rootDir } from '../tool-utils'; import fetch from 'node-fetch'; import { compileWithFrontMatter, MarkdownAndFrontMatter, stripOffFrontMatter } from './utils/frontMatter'; import { markdownToHtml } from './utils/render'; -import { getNewsDateString } from './utils/news'; +import { getNewsDate } from './utils/news'; const RSS = require('rss'); interface ApiConfig { @@ -133,24 +133,22 @@ const getForumTopPostByExternalId = async (externalId: string): Promise { - const feed = new RSS({ - title: 'Joplin', - description: 'Joplin, the open source note-taking application', - feed_url: 'https://joplinapp.org/rss.xml', - site_url: 'https://joplinapp.org', - }); - + let pubDate = null; let postCount = 0; + const feedItems: any[] = []; for (const post of posts.reverse()) { const content = await getPostContent(post); + const postDate = getNewsDate(content.parsed, post.path); const html = markdownToHtml(content.body); - feed.item({ + if (pubDate === null) pubDate = postDate; + + feedItems.push({ title: content.title, description: html, url: `https://joplinapp.org/news/${post.id}/`, guid: post.id, - date: getNewsDateString(content.parsed, post.path), + date: postDate, custom_elements: [ { 'twitter-text': content.parsed.tweet }, ], @@ -160,7 +158,23 @@ const generateRssFeed = async (posts: Post[]) => { if (postCount >= 20) break; } - return feed.xml() as string; + const feed = new RSS({ + title: 'Joplin', + description: 'Joplin, the open source note-taking application', + feed_url: 'https://joplinapp.org/rss.xml', + site_url: 'https://joplinapp.org', + pubDate, + }); + + for (const feedItem of feedItems) feed.item(feedItem); + + let xml = feed.xml() as string; + + // Change the build date otherwise it changes even when nothing has changed. + // https://github.com/dylang/node-rss/pull/52 + xml = xml.replace(/(.*?)<\/lastBuildDate>/, `${pubDate.toUTCString()}`); + + return xml; }; const main = async () => { diff --git a/packages/tools/website/utils/news.ts b/packages/tools/website/utils/news.ts index 85a6263155..992319e3a4 100644 --- a/packages/tools/website/utils/news.ts +++ b/packages/tools/website/utils/news.ts @@ -5,14 +5,18 @@ import { basename } from 'path'; const moment = require('moment'); export const getNewsDateString = (info: MarkdownAndFrontMatter, mdFilePath: string): string => { + return moment(getNewsDate(info, mdFilePath)).format('D MMM YYYY'); +}; + +export const getNewsDate = (info: MarkdownAndFrontMatter, mdFilePath: string): Date => { // If the date is set in the metadata, we get it from there. Otherwise we // derive it from the filename (eg. 20220224-release-2-7.md) if (info.created) { - return moment(info.created).format('D MMM YYYY'); + return info.created; } else { const filenameNoExt = basename(mdFilePath, '.md'); const s = filenameNoExt.split('-'); - return moment(s[0], 'YYYYMMDD').format('D MMM YYYY'); + return moment.utc(s[0], 'YYYYMMDD').toDate(); } };