Compare commits

..

12 Commits

Author SHA1 Message Date
OniriCorpe
1b9a98ba3d Merge branch 'add-schema-link-toml' of https://github.com/YunoHost/apps into add-schema-link-toml 2024-03-08 00:03:31 +01:00
OniriCorpe
589b4b5adf add the schema link in toml files
create & add a schema to graveyard.tom

tag kavita with "paid-content"

aaaaa the autoformater

tag kavita with "paid-content"

aaaaa the autoformater

add the schema link in toml files

create & add a schema to antifeatures.toml

add 'draft' property to the wishlist schema
2024-03-08 00:03:17 +01:00
OniriCorpe
674b3028f1 add 'draft' property to the wishlist schema 2024-03-07 23:39:49 +01:00
OniriCorpe
4f7452ff89 create & add a schema to antifeatures.toml 2024-03-07 23:39:49 +01:00
OniriCorpe
827f62a230 create & add a schema to graveyard.tom 2024-03-07 23:39:49 +01:00
OniriCorpe
8ee7e265d6 aaaaa the autoformater 2024-03-07 23:39:49 +01:00
OniriCorpe
71c4a44296 tag kavita with "paid-content" 2024-03-07 23:39:49 +01:00
OniriCorpe
003edc6966 add the schema link in toml files 2024-03-07 23:39:49 +01:00
OniriCorpe
41baf91965 aaaaa the autoformater 2024-03-07 23:39:49 +01:00
OniriCorpe
cfd19f5592 tag kavita with "paid-content" 2024-03-07 23:39:49 +01:00
OniriCorpe
cd93e552ee aaaaa the autoformater 2024-03-07 23:00:24 +01:00
OniriCorpe
676af5ec58 tag kavita with "paid-content" 2024-03-07 22:57:02 +01:00
15 changed files with 151 additions and 49 deletions

View File

@ -1,6 +1,6 @@
# YunoHost application catalog # YunoHost application catalog
<img alt="YunoHost logo" src="https://avatars.githubusercontent.com/u/1519495?s=200&v=4" width=80><img alt="Package logo" src="https://yunohost.org/user/images/yunohost_package.png" width=80> <img src="https://avatars.githubusercontent.com/u/1519495?s=200&v=4" width=80><img src="https://yunohost.org/user/images/yunohost_package.png" width=80>
This repository contains the default YunoHost app catalog, as well as related This repository contains the default YunoHost app catalog, as well as related
tools that can be run manually or automatically. tools that can be run manually or automatically.
@ -16,7 +16,7 @@ them such as their category or maintenance state. This file is regularly read by
- You can browse [the contributor documentation](https://yunohost.org/contributordoc) - You can browse [the contributor documentation](https://yunohost.org/contributordoc)
- If you are not familiar with Git/GitHub, you can have a look at our [homemade guide](https://yunohost.org/packaging_apps_git) - If you are not familiar with Git/GitHub, you can have a look at our [homemade guide](https://yunohost.org/packaging_apps_git)
- Don't hesitate to reach for help on the dedicated [application packaging chatroom](https://yunohost.org/chat_rooms)... we can even schedule an audio meeting to help you get started! - Don't hesitate to reach for help on the dedicated [application packaging chatroom](https://yunohost.org/chat_rooms) ... we can even schedule an audio meeting to help you get started!
## How to add your app to the application catalog ## How to add your app to the application catalog
@ -46,9 +46,9 @@ App example addition:
```toml ```toml
[your_app] [your_app]
antifeatures = [ "deprecated-software" ] # Replace with the appropriate category id found in antifeatures.toml, remove if no relevant antifeature applies antifeatures = [ "deprecated-software" ] # Remove if no relevant antifeature applies
potential_alternative_to = [ "YouTube" ] # Indicate if your app can be thought of as an alternative to popular proprietary services (or remove if none applies) potential_alternative_to = [ "YouTube" ] # Indicate if your app can be thought of as an alternative to popular proprietary services (or remove if none applies)
category = "foobar" # Replace with the appropriate category id found in categories.toml, don't invent a category category = "foobar" # Replace with the appropriate category id found in categories.toml
state = "working" state = "working"
url = "https://github.com/YunoHost-Apps/your_app_ynh" url = "https://github.com/YunoHost-Apps/your_app_ynh"
``` ```

View File

@ -1,3 +1,5 @@
#:schema https://github.com/YunoHost/apps/blob/master/schemas/antifeatures.toml.schema.json
[tracking] [tracking]
icon = "user-secret" icon = "user-secret"
title.en = "Tracking" title.en = "Tracking"

View File

@ -1,3 +1,5 @@
#:schema https://github.com/YunoHost/apps/raw/master/schemas/apps.toml.schema.json
[13ft] [13ft]
category = "reading" category = "reading"
level = 7 level = 7
@ -502,13 +504,6 @@ state = "working"
subtags = [ "wiki" ] subtags = [ "wiki" ]
url = "https://github.com/YunoHost-Apps/cowyo_ynh" url = "https://github.com/YunoHost-Apps/cowyo_ynh"
[crabfit]
category = "productivity_and_management"
potential_alternative_to = [ "Doodle", "OpenSondage" ]
state = "working"
subtags = [ "poll" ]
url = "https://github.com/YunoHost-Apps/crabfit_ynh"
[cryptpad] [cryptpad]
category = "office" category = "office"
level = 8 level = 8

View File

@ -1,3 +1,5 @@
#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/categories.toml.schema.json
[synchronization] [synchronization]
icon = "cloud" icon = "cloud"
title.en = "Synchronization" title.en = "Synchronization"

View File

@ -1,3 +1,5 @@
#:schema https://github.com/YunoHost/apps/raw/master/schemas/graveyard.toml.schema.json
[anfora] [anfora]
category = "social_media" category = "social_media"
subtags = [ "pictures" ] subtags = [ "pictures" ]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,63 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://github.com/YunoHost/apps/blob/master/schemas/antifeatures.toml.schema.json",
"title": "Yunohost's antifeatures.toml schema",
"version": "0",
"$defs": {
"translated_string": {
"type": "object",
"required": [
"en"
],
"additionalProperties": false,
"patternProperties": {
"^[a-z]{2}$": {
"type": "string"
}
}
}
},
"type": "object",
"required": [],
"additionalProperties": false,
"patternProperties": {
"^[a-z0-9_-]*$": {
"type": "object",
"required": [
"icon",
"title",
"description"
],
"additionalProperties": false,
"properties": {
"icon": {
"type": "string"
},
"title": {
"$ref": "#/$defs/translated_string"
},
"description": {
"$ref": "#/$defs/translated_string"
},
"subtags": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[a-z_]*$": {
"type": "object",
"required": [
"title"
],
"additionalProperties": false,
"properties": {
"title": {
"$ref": "#/$defs/translated_string"
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,48 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://github.com/YunoHost/apps/blob/master/schemas/graveyard.toml.schema.json",
"title": "Yunohost's graveyard.toml schema",
"version": "0",
"type": "object",
"required": [],
"additionalProperties": false,
"patternProperties": {
"^[a-z0-9_-]*$": {
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"category": {
"type": "string"
},
"subtags": {
"type": "array",
"items": {
"type": "string"
},
"additionalItems": false
},
"url": {
"type": "string",
"format": "url"
},
"antifeatures": {
"type": "array",
"items": {
"type": "string"
},
"additionalItems": false
},
"potential_alternative_to": {
"type": "array",
"items": {
"type": "string"
},
"additionalItems": false
}
}
}
}
}

View File

@ -3,14 +3,16 @@
"$id": "https://github.com/YunoHost/apps/blob/master/schemas/wishlist.toml.schema.json", "$id": "https://github.com/YunoHost/apps/blob/master/schemas/wishlist.toml.schema.json",
"title": "Yunohost's wishlist.toml schema", "title": "Yunohost's wishlist.toml schema",
"version": "0", "version": "0",
"type": "object", "type": "object",
"required": [], "required": [],
"additionalProperties": false, "additionalProperties": false,
"patternProperties": { "patternProperties": {
"^[a-z0-9_-]*$": { "^[a-z0-9_-]*$": {
"type": "object", "type": "object",
"required": ["name", "upstream"], "required": [
"name",
"upstream"
],
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"name": { "name": {
@ -26,9 +28,12 @@
"website": { "website": {
"type": "string", "type": "string",
"format": "url" "format": "url"
},
"draft": {
"type": "string",
"format": "url"
} }
} }
} }
} }
} }

View File

@ -8,21 +8,19 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-03-05 19:36+0100\n" "POT-Creation-Date: 2024-03-05 19:36+0100\n"
"PO-Revision-Date: 2024-03-09 17:32+0000\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n"
"Last-Translator: cri <cri@cri.cl>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish <https://translate.yunohost.org/projects/yunohost/" "Language-Team: es <LL@li.org>\n"
"apps/es/>\n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#: app.py:150 #: app.py:150
msgid "App %(app_id) not found" msgid "App %(app_id) not found"
msgstr "App %(app_id) no encontrada" msgstr ""
#: app.py:152 #: app.py:152
msgid "You must be logged in to be able to star an app" msgid "You must be logged in to be able to star an app"

View File

@ -8,16 +8,15 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-03-05 19:36+0100\n" "POT-Creation-Date: 2024-03-05 19:36+0100\n"
"PO-Revision-Date: 2024-03-09 04:14+0000\n" "PO-Revision-Date: 2024-02-27 19:19+0000\n"
"Last-Translator: OniriCorpe <oniricorpe@disroot.org>\n" "Last-Translator: OniriCorpe <oniricorpe@disroot.org>\n"
"Language-Team: French <https://translate.yunohost.org/projects/yunohost/apps/"
"fr/>\n"
"Language: fr\n" "Language: fr\n"
"Language-Team: French "
"<https://translate.yunohost.org/projects/yunohost/apps/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#: app.py:150 #: app.py:150
@ -255,7 +254,7 @@ msgstr "Documentation officielle pour les admins"
#: templates/app.html:142 #: templates/app.html:142
msgid "Official user documentation" msgid "Official user documentation"
msgstr "Documentation officielle d'utilisation" msgstr "Documentation officielle pour les utilisateur·ice·s"
#: templates/app.html:143 #: templates/app.html:143
msgid "Official code repository" msgid "Official code repository"
@ -395,8 +394,8 @@ msgid ""
"advise against their installation and advise users to find alternatives." "advise against their installation and advise users to find alternatives."
msgstr "" msgstr ""
"Cela signifie que le développeur ne les mettra plus à jour. Nous " "Cela signifie que le développeur ne les mettra plus à jour. Nous "
"décourageons fortement leur installation et vous conseillons de vous tourner " "décourageons fortement leur installation et conseillons aux utilisateurs "
"vers des alternatives." "de se tourner vers des alternatives."
#: templates/index.html:10 #: templates/index.html:10
msgid "Application Store" msgid "Application Store"
@ -461,8 +460,8 @@ msgstr "Vous devez être connecté·e pour proposer une app pour la liste de sou
#: templates/wishlist_add.html:40 #: templates/wishlist_add.html:40
msgid "Due to abuses, only one proposal every 15 days per user is allowed." msgid "Due to abuses, only one proposal every 15 days per user is allowed."
msgstr "" msgstr ""
"En raison d'abus, la proposition d'app est limitée à une tous les 15 jours " "En raison d'abus, la proposition d'app est limitée à une tous les 15 "
"par personne." "jours par utilisateur·ice."
#: templates/wishlist_add.html:43 #: templates/wishlist_add.html:43
msgid "" msgid ""
@ -528,3 +527,4 @@ msgstr "Envoyer"
#~ msgid "Please check the license of the app your are proposing" #~ msgid "Please check the license of the app your are proposing"
#~ msgstr "Merci de vérifier la licence de l'app que vous proposez" #~ msgstr "Merci de vérifier la licence de l'app que vous proposez"

View File

@ -6,7 +6,7 @@ import os
from pathlib import Path from pathlib import Path
from copy import deepcopy from copy import deepcopy
from typing import Dict, Optional, List, Tuple from typing import Dict, Optional, List
import toml import toml
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
@ -51,22 +51,7 @@ def generate_READMEs(app_path: Path):
env = Environment(loader=FileSystemLoader(Path(__file__).parent / "templates")) env = Environment(loader=FileSystemLoader(Path(__file__).parent / "templates"))
# parse available README template and generate a list in the form of: for lang, lang_suffix in [("en", ""), ("fr", "_fr")]:
# > [("en", ""), ("fr", "_fr"), ...]
available_langs: List[Tuple[str, str]] = [("en", "")]
for README_template in (Path(__file__).parent / "templates").iterdir():
# we only want README_{lang}.md.j2 files
if README_template.name == "README.md.j2":
continue
if not README_template.name.endswith(".j2") or not README_template.name.startswith("README_"):
continue
language_code = README_template.name.split("_")[1].split(".")[0]
available_langs.append((language_code, "_" + language_code))
for lang, lang_suffix in available_langs:
template = env.get_template(f"README{lang_suffix}.md.j2") template = env.get_template(f"README{lang_suffix}.md.j2")
if (app_path / "doc" / f"DESCRIPTION{lang_suffix}.md").exists(): if (app_path / "doc" / f"DESCRIPTION{lang_suffix}.md").exists():

View File

@ -1,3 +1,5 @@
#:schema https://github.com/YunoHost/apps/raw/master/schemas/wishlist.toml.schema.json
[access-to-memory-atom] [access-to-memory-atom]
name = "Access to Memory (AtoM)" name = "Access to Memory (AtoM)"
description = "Standards-based archival description and access in a multilingual, multi-repository environment." description = "Standards-based archival description and access in a multilingual, multi-repository environment."