Merge branch 'master' into master

revert-4113-patch-1
Ivanq 4 years ago committed by GitHub
commit da86ae8952
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      CONTRIBUTING.md
  2. 2
      MaksimSkhomenko.yaml
  3. 40
      README_AR.md
  4. 3
      README_KO.md
  5. 26
      _data/emoji.yaml
  6. 2
      _data/signed/0xF6.yaml
  7. 2
      _data/signed/3n3a.yaml
  8. 2
      _data/signed/AlekseyAndreev.yaml
  9. 2
      _data/signed/AndreiKazantsev.yaml
  10. 0
      _data/signed/AntonRudkovsky.yaml
  11. 2
      _data/signed/Art-2.yaml
  12. 2
      _data/signed/BelegCuthalion.yaml
  13. 2
      _data/signed/Bzzzou.yaml
  14. 2
      _data/signed/CrazyPython.yaml
  15. 0
      _data/signed/EgorNalobin.yaml
  16. 2
      _data/signed/Ilya-Ballet.yaml
  17. 0
      _data/signed/JackBattersby.yaml
  18. 0
      _data/signed/JenyaTarkach.yaml
  19. 2
      _data/signed/JuanPedroSanchezNula.yaml
  20. 2
      _data/signed/Kry0geniX.yaml
  21. 0
      _data/signed/LawCyberInc.yaml
  22. 0
      _data/signed/LightGameStudio.yaml
  23. 0
      _data/signed/MamkinXakepAnton.yaml
  24. 2
      _data/signed/ManuelBuenavista.yaml
  25. 2
      _data/signed/MichaelKargas.yaml
  26. 2
      _data/signed/MikhailMaxutov.yaml
  27. 2
      _data/signed/PomDziad.yaml
  28. 0
      _data/signed/PotapovIlya.yaml
  29. 2
      _data/signed/Ricardo1980.yaml
  30. 0
      _data/signed/ShmyrVasily.yaml
  31. 2
      _data/signed/SimonBright.yaml
  32. 2
      _data/signed/Skrepec.yaml
  33. 2
      _data/signed/StunIsLove.yaml
  34. 2
      _data/signed/Tirifto.yaml
  35. 2
      _data/signed/VasyaSmolyar.yaml
  36. 2
      _data/signed/abluedot.yaml
  37. 2
      _data/signed/alexmonk.yaml
  38. 2
      _data/signed/bernd-paysan.yaml
  39. 2
      _data/signed/bkqtnte10.yaml
  40. 2
      _data/signed/dld-r00f.yaml
  41. 2
      _data/signed/eulalio.yaml
  42. 2
      _data/signed/fmonti.yaml
  43. 2
      _data/signed/fuhye.yaml
  44. 2
      _data/signed/ghalvorsen.yaml
  45. 2
      _data/signed/grobza.yaml
  46. 2
      _data/signed/handicraftsman.yaml
  47. 2
      _data/signed/hkostn.yaml
  48. 2
      _data/signed/ikapelyukhin.yaml
  49. 2
      _data/signed/internationalizationist.yaml
  50. 2
      _data/signed/jacksmirk.yaml
  51. 2
      _data/signed/jo3ght.yaml
  52. 2
      _data/signed/jose423.yaml
  53. 2
      _data/signed/juanparati.yaml
  54. 2
      _data/signed/kalehmann.yaml
  55. 2
      _data/signed/karem34.yaml
  56. 2
      _data/signed/kbaryshnikov.yaml
  57. 2
      _data/signed/konickss.yaml
  58. 2
      _data/signed/kovleventer.yaml
  59. 2
      _data/signed/loop28.yaml
  60. 2
      _data/signed/modrobert.yaml
  61. 2
      _data/signed/moncruist.yaml
  62. 2
      _data/signed/ndsrf.yaml
  63. 2
      _data/signed/nordine.vallas.yaml
  64. 2
      _data/signed/nouvellesystem.yaml
  65. 2
      _data/signed/nquxii.yaml
  66. 2
      _data/signed/psep.yaml
  67. 2
      _data/signed/rebornjumpman.yaml
  68. 2
      _data/signed/renegate.yaml
  69. 2
      _data/signed/rubleva.yaml
  70. 2
      _data/signed/sackmotion.yaml
  71. 2
      _data/signed/saymondzen.yaml
  72. 2
      _data/signed/swiperflue.yaml
  73. 2
      _data/signed/themusicgod1.yaml
  74. 2
      _data/signed/wolfer.yaml
  75. 2
      _data/signed/xFA25E.yaml
  76. 2
      _data/signed/xavier83.yaml
  77. 2
      _data/signed/yukra.yaml
  78. 14
      _includes/translations.html
  79. 56
      _translations/index_ar.md
  80. 1
      _translations/index_de.md
  81. 1
      _translations/index_es.md
  82. 1
      _translations/index_fa.md
  83. 1
      _translations/index_fr.md
  84. 1
      _translations/index_id.md
  85. 7
      _translations/index_it.md
  86. 6
      _translations/index_ko.md
  87. 2
      _translations/index_nl.md
  88. 1
      _translations/index_pl.md
  89. 1
      _translations/index_pt_br.md
  90. 1
      _translations/index_ro.md
  91. 2
      _translations/index_rs.md
  92. 2
      _translations/index_ru.md
  93. 4
      _translations/index_tl.md
  94. 1
      _translations/index_tr.md
  95. 2
      _translations/index_ua.md
  96. 1
      _translations/index_vi.md
  97. 1
      _translations/index_zh_cn.md
  98. 111
      check-signatures-format.py
  99. 1
      index.md
  100. 2
      kuuusama.yaml

@ -5,17 +5,19 @@
To translate the letter, copy `index.md` into `_translation/`
and name it `index_lang.md` where `lang` is language code you are going to translate into.
Then you can start translating this file.
To display translation in the translations list, simply add `emoji` attribute to the document as follows:
Make sure to set `locale` to the appropriate language code. Then you can start translating this file.
For example: `_translations/index_de.md`
```md
---
layout: signed
...
emoji: 🇩🇪
title: An open letter in support of Richard M. Stallman
description: An open letter in support of Richard Matthew Stallman being reinstated by the Free Software Foundation
image: /assets/social-media-preview.png
locale: de_DE
twitter:
card: summary_large_image
---
2021-03-23
@ -25,4 +27,4 @@ Richard M. Stallman, ...
There are lots of translation already, if you feel lost, be sure to check out how its done in other ones.
When you translated the text, added emoji attribut you can commit your change and make pull request.
When you translated the text you can commit your change and make pull request.

@ -0,0 +1,2 @@
name: Maksim Skhomenko
link: https://tvoy-site.com

@ -0,0 +1,40 @@
# رسالة مفتوحة في دعم rms.
للتسجيل **اضغط [هنا](https://github.com/rms-support-letter/rms-support-letter.github.io/new/master/_data/signed)** وسمي الملف `<username>.yaml` (بدل `<username>` باسمك مع المحتوى التالي:)
```yaml
name: <your name here (optional organization or company)>
link: <link to your profile or site>
```
بدون ال `<>`.
مثال:
```yaml
name: Example name (Good company)
link: https://github.com/example_username
```
لا تستخدم `<>` في هذا الملف, اضافة الى رموز ليست ascii في اسم الملف.
اذا استخدمت ايميلك كرابط, اضف في بدياته `mailto:`.
اذا تستطيع, الرجاء استخدام اسمك الحقيقي واضافة مشاريع ومؤسسات في اقواس.
واضغط **click "Propose new file"** واذهب عبر الصحفات اللاحقة لتأليف merge request.
لنبقي النبرة حازمة, لكن احترافية.
اذا تستطيع, الرجاء نشر هذا الرسالة على مواقع التواصل الاجتماع والمنتديات وابلاغ الصحفيين الذين قد يكونوا مساعدين لقضيتنا.
**الpull requests تمزج في خلال 12 ساعة - بسبب وجود عدد كبير منهم سيتم مزجهم في دفعات**
بدلا عن ذلك, فرع وانسخ المشروع, وانشاء ملف `_data/signed/<username>.yaml` يدويا, وتسليم الpr.
اذا اردت دعم هذا الرسالة بدون استخدام غيت هاب, اذهب هنا:
https://codeberg.org/rms-support-letter/rms-support-letter/issues/1,
او ارسل رقعة موقعة الى [signrms@prog.cf](mailto:signrms@prog.cf) او [~tyil/rms-support@lists.sr.ht](mailto:~tyil/rms-support@lists.sr.ht).
## غرف دردشة
- **Matrix.org:** #free-rms:matrix.org
- **IRC:** #free-rms at chat.freenode.net
- **Discord:** https://discord.gg/7FWkxG4CsU
- **Telegram:** https://t.me/free_rms

@ -29,10 +29,11 @@ link: https://example.com/
위 방법 대신에 이 저장소를 fork 하여 clone 한 후, `_data/signed/<username>.yaml` 를 직접 만들고 commit 한 후에 PR 을 제출하셔도 됩니다.
Github 을 사용하지 않고 이 공개 서한을 지지하고 싶으시다면 다음을 참고하시기 바랍니다: https://codeberg.org/rms-support-letter/rms-support-letter/issues/1
Github 을 사용하지 않고 이 공개 서한을 지지하고 싶으시다면 다음을 참고하시기 바랍니다: https://codeberg.org/rms-support-letter/rms-support-letter/issues/1 혹은 서명된 패치를 [signrms@prog.cf](mailto:signrms@prog.cf) 혹은 [~tyil/rms-support@lists.sr.ht](mailto:~tyil/rms-support@lists.sr.ht) 으로 주셔도 서명하실 수 있습니다.
## Chatrooms
- **Matrix.org:** #free-rms:matrix.org
- **IRC:** chat.freenode.net 서버의 #free-rms 채널
- **Discord:** https://discord.gg/7FWkxG4CsU
- **Telegram:** https://t.me/free_rms

@ -0,0 +1,26 @@
a: 🇦
b: 🇧
c: 🇨
d: 🇩
e: 🇪
f: 🇫
g: 🇬
h: 🇭
i: 🇮
j: 🇯
k: 🇰
l: 🇱
m: 🇲
n: 🇳
o: 🇴
p: 🇵
q: 🇶
r: 🇷
s: 🇸
t: 🇹
u: 🇺
v: 🇻
w: 🇼
x: 🇽
y: 🇾
z: 🇿

@ -0,0 +1,2 @@
name: Yuuki Wesp
link: https://0xf6.moe/

@ -0,0 +1,2 @@
name: Enea
link: https://github.com/3n3a

@ -0,0 +1,2 @@
name: Aleksey Andreev
link: https://github.com/liuch

@ -0,0 +1,2 @@
name: Andrei Kazantsev
link: https://github.com/T-helper

@ -0,0 +1,2 @@
name: Arturo Martínez
link: https://github.com/Art-2

@ -0,0 +1,2 @@
name: Beleg Cuthalion
link: https://github.com/BelegCuthalion

@ -0,0 +1,2 @@
name: Mikhail Sobolev
link: mailto:mihail.sobolev.90@mail.ru

@ -0,0 +1,2 @@
name: CrazyPython
link: https://github.com/CrazyPython

@ -0,0 +1,2 @@
name: Ilya Ballet
link: https://github.com/Fenex330

@ -0,0 +1,2 @@
name: Juan Pedro Sanchez Nula
link: https://github.com/juan-pe

@ -0,0 +1,2 @@
name: Kry0geniX
link: https://github.com/Kry0geniX

@ -0,0 +1,2 @@
name: Manuel Buenavista
link: https://github.com/VasyaSmolyar

@ -0,0 +1,2 @@
name: Michael Kargas
link: https://github.com/optimus6128

@ -0,0 +1,2 @@
name: Mikhail Maxutov
link: https://github.com/MaxutovMihail

@ -0,0 +1,2 @@
name: PomPom
link: https://github.com/PomDziad

@ -0,0 +1,2 @@
name: Ricardo Ruiz Lopez
link: https://github.com/Ricardo1980

@ -0,0 +1,2 @@
name: Simon Bright (F-Sync and Futex2 Debian kernels, with support for Ashmem and Binder for Anbox)
link: https://www.youtube.com/channel/UCnQfpqJI9wjcqW-4JS8k-Rg/

@ -0,0 +1,2 @@
name: Skrepec
link: https://t.me/Dhjxdj

@ -0,0 +1,2 @@
name: Stanislav Koshevoy
link: https://github.com/StunIsLove

@ -0,0 +1,2 @@
name: Tirifto
link: https://miniwa.moe/tirifto

@ -0,0 +1,2 @@
name: Vasily Smolyar
link: https://github.com/VasyaSmolyar

@ -0,0 +1,2 @@
name: Ryo Cook
link: https://fosstodon.org/@ryo

@ -0,0 +1,2 @@
name: Alex Monk
link: https://github.com/alexmonk

@ -0,0 +1,2 @@
name: Bernd Paysan (Gforth maintainer)
link: https://github.com/forthy42

@ -0,0 +1,2 @@
name: Bkqtnte10
link: https://github.com/bkqtnte10

@ -0,0 +1,2 @@
name: Цимбалов Сергей
link: https://github.com/dld-r00f

@ -0,0 +1,2 @@
name: Eulalio Barbero
link: https://eulaliobe.wordpress.com/

@ -0,0 +1,2 @@
name: F. Monti
link: https://fmonti.neocities.org/

@ -0,0 +1,2 @@
name: Charlie Co
link: https://github.com/fuhye

@ -0,0 +1,2 @@
name: Gunnar K. Halvorsen
link: https://www.ux.uis.no/~gunnar/

@ -0,0 +1,2 @@
name: Konstantin Shirokov
link: https://github.com/grobza

@ -0,0 +1,2 @@
name: handicraftsman
link: https://github.com/handicraftsman

@ -0,0 +1,2 @@
name: Konstantin Korshunov
link: https://github.com/hkostn

@ -0,0 +1,2 @@
name: Ivan Kapelyukhin (openSUSE member)
link: https://github.com/ikapelyukhin

@ -0,0 +1,2 @@
name: Vladislav Baranovsky
link: https://github.com/internationalizationist

@ -0,0 +1,2 @@
name: Juan González
link: https://github.com/jacksmirk

@ -0,0 +1,2 @@
name: JoeCo
link: https://github.com/jo3ght

@ -0,0 +1,2 @@
name: Jose Gonzalez
link: https://github.com/jose423

@ -0,0 +1,2 @@
name: Juan Lago
link: https://github.com/juanparati

@ -0,0 +1,2 @@
name: Karsten Lehmann
link: https://kalehmann.de

@ -0,0 +1,2 @@
name: Kareem Abduljaleel
link: https://github.com/Karem34

@ -0,0 +1,2 @@
name: Konstantin Baryshnikov
link: https://github.com/kbaryshnikov

@ -0,0 +1,2 @@
name: KoNicks
link: https://github.com/konickss

@ -0,0 +1,2 @@
name: Kovleventer
link: https://kovleventer.com/

@ -0,0 +1,2 @@
name: Elias Mardaus
link: https://github.com/loop28

@ -0,0 +1,2 @@
name: Robert
link: https://github.com/modrobert

@ -0,0 +1,2 @@
name: Konstantin Zhukov
link: https://github.com/moncruist

@ -0,0 +1,2 @@
name: Javier
link: https://github.com/ndsrf

@ -0,0 +1,2 @@
name: Nordine VALLAS
link: https://mastodon.etalab.gouv.fr/@galileo

@ -0,0 +1,2 @@
name: NouvelleSystem
link: https://github.com/NouvelleSystem

@ -0,0 +1,2 @@
name: Nebu Sixe
link: https://github.com/Nquxii

@ -0,0 +1,2 @@
name: Pablo Sepúlveda
link: https://github.com/psep

@ -0,0 +1,2 @@
name: Dan Scott
link: https://github.com/rebornjumpman

@ -0,0 +1,2 @@
name: Viacheslav G.
link: https://github.com/Renegate

@ -0,0 +1,2 @@
name: Alexandra Rubleva
link: https://github.com/matryoshkababushka

@ -0,0 +1,2 @@
name: Angel Carpintero
link: https://github.com/sackmotion

@ -0,0 +1,2 @@
name: Semyon Poklad
link: https://www.linkedin.com/in/pokladsemen/

@ -0,0 +1,2 @@
name: Eryk Ablegama
link: https://github.com/swiperflue

@ -0,0 +1,2 @@
name: Jeff Cliff
link: https://mamot.fr/@jeffcliff

@ -0,0 +1,2 @@
name: Sergey Fedosov
link: https://github.com/Wolfer

@ -0,0 +1,2 @@
name: Valeriy Litkovskyy
link: https://github.com/xFA25E

@ -0,0 +1,2 @@
name: Infanta Xavier
link: https://github.com/xavier83

@ -0,0 +1,2 @@
name: Yuri Kurilkin
link: https://github.com/yukra

@ -2,8 +2,14 @@
<p>Translations:</p>
<a class="translation" href='/'>🇺🇸</a>
{% for translation in site.translations %}
<a class="translation" href="{{ translation.url }}">{{ translation.emoji }}</a>
{% if forloop.index == 11 %}
<br>
{% endif %}{% endfor %}
<a class="translation" href="{{ translation.url }}">
{%- assign langcode = translation.locale | split: "_" | last | downcase -%}
{%- assign c1 = langcode | slice: 0, 1 -%}
{%- assign c2 = langcode | slice: 1, 1 -%}
{{- site.data.emoji[c1] -}}{{- site.data.emoji[c2] -}}
</a>
{% if forloop.index == 11 %}
<br>
{% endif %}{% endfor %}
{% endfor %}
</div>

@ -0,0 +1,56 @@
---
layout: signed
title: رسالة مفتوحة في دعم ريتشارد م. ستالمان
description: رسالة مفتوحة في دعم ريتشارد م. ستالمان واعادته الى مؤسسة البرمجيات الحرة
image: /assets/social-media-preview.png
locale: ar_AE
twitter:
card: summary_large_image
---
2021-03-23
ريتشارد م. سالتمان, معروف عادة بRMS,
كان قوى دافعة في حركة البرمجيات الحرة لعقود, مع
مساهمات تتضمن نظام التشغيل جنو و ايماكس.
حديثا, كانت هنا هجوم حقير عبر الانترنت
لازالته من مجلس ادارة مؤسسة البرمجيات الحرة
لتعبيره عن اراءه الخاصة.
لقد شاهدنا هذا يحدث من قبل في طرق منظمة مع اخرين
نشطاء ومبرمجين البرمجيات الحرة.
لن نقف مكتوفي الايدي, عندما يهاجم رمز هذا المجتمع
مؤسسة البرمجيات الحرة هي هيئة مستقلة قادرة على معاملة افرادها في طرق عادلة وغير منحازة
ولا يجوز الاستسلام لضغط اجتماعي خارجي.
نحن نحث مؤسسة البرمجيات الحرة للنظر في الحجج ضد rms بموضوعية
ولمعرفة معاني كلماته وافعاله بصدق.
تاريخيا, rms كان يعبر عن نظراته في طرق
تزعج اشخاصا عديدة.
فهو عادة يركز على الاسس الفلسفية, والسعي وراء الحقيقة الموضوعية والنقاء اللغوي, بينما يستخف باراء الناس عن الشيء الذي يعلق عليه.
وهذا يجعل حجته عرضة لسوء الفهم والتحريف,
وهو شيء نحس انه يحدث في الرسالة المفتوحة التي تتطلب ازالته.
كلماته يجب ان تفسر في سياق الكلام واخذ بالاعتبار ان في اكثر الاحيان,
انه لا يريد ان تصاغ الاشياء دبلوماسيا.
بغض النظر, اراء ستالمان عن القضايا التي يقاضي علها ليس لها علاقة بقدرته على قيادة مجتمع مثل مؤسسة البرمجيات الحرة.
بالاضافة, فهو يحق له اراءه مثل اي شخص اخر.
الاعضاء والداعمين ليس عليهم الاتفاق مع اراءه, لكن عليهم احترام حريته في الفكر والكلام
**الى مؤسسة البرمجيات الحرة:**
ازالة ستالمان سيضر صورة المؤسسة وسوف يسبب ضربة كبيرة الى زخم حركة البرمجيات الحرة.
نحن نحث في التفكير بافعالكم بحرص,
فما ستحددون له تأثير خطير في مستقبل صناعة البرمجيات.
**الى كمين الحشد الذين يتحالفون ضد ريتشارد ستالمان حول
حجج معقولة في المناقشة واراء ومعتقدات مختلفة قالها في عقود من كونه شخصية عامة:**
ليس لديكم اي مشاركة في اختيار القيادة لأي مجتمع.
خصيصا عبر هجوم حشدي الذي لا يمثل مناظرة عادلة
كما مثل اشخاص افضل مثل ريتشارد ستالمان.
للتسجيل, الرجاء [ارسال pull request](https://github.com/rms-support-letter/rms-support-letter.github.io/pulls)
او [~tyil/rms-support@lists.sr.ht](mailto:~tyil/rms-support@lists.sr.ht).

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: de_DE
twitter:
card: summary_large_image
emoji: 🇩🇪
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: es_ES
twitter:
card: summary_large_image
emoji: 🇪🇸
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: fa_IR
twitter:
card: summary_large_image
emoji: 🇮🇷
---
۱۴۰۰/۱/۳

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: fr_FR
twitter:
card: summary_large_image
emoji: 🇫🇷
---
2021-03-23

@ -1,6 +1,5 @@
---
layout: signed
title: Surat Dukungan Terbuka untuk Richard M. Stallman
description: Surat Dukungan Terbuka untuk kembalinya Richard Matthew Stallman di Yayasan Perangkat Lunak Bebas
image: /assets/social-media-preview.png

@ -1,6 +1,11 @@
---
layout: signed
emoji: 🇮🇹
title: An open letter in support of Richard M. Stallman
description: An open letter in support of Richard Matthew Stallman being reinstated by the Free Software Foundation
image: /assets/social-media-preview.png
locale: it_IT
twitter:
card: summary_large_image
---
23-03-2021

@ -1,13 +1,11 @@
---
layout: signed
title: Richard M. Stallman을 지지하는 공개 서한
description: 자유 소프트웨어 재단에 복직하는 Richard Matthew Stallman 을 지지하는 공개 서한
image: /assets/social-media-preview.png
locale: ko_KR
twitter:
card: summary_large_image
emoji: 🇰🇷
---
2021-03-23
@ -62,3 +60,7 @@ RMS를 퇴출하는 것은 FSF의 이미지에 상처를 낼 것이며, 자유
한다면 더더욱 그 자격은 없다 할 것이다.
서명을 하시려면 [풀 리퀘스트를 보내 주세요](https://github.com/rms-support-letter/rms-support-letter.github.io/pulls).
Github를 사용하지 않고 사인하시려면:
- 서명된 패치를 [signrms@prog.cf](mailto:signrms@prog.cf) 혹은
- [~tyil/rms-support@lists.sr.ht](mailto:~tyil/rms-support@lists.sr.ht) 으로 보내주시거나,
- [https://codeberg.org/rms-support-letter/rms-support-letter/issues/1](https://codeberg.org/rms-support-letter/rms-support-letter/issues/1) 에 서명을 추가해주세요.

@ -1,6 +1,5 @@
---
layout: signed
title: Een open brief ter steun van Richard M. Stallman
description: |
Een open brief ter steun van Richard Matthew Stallman's terugkomst in de
@ -9,7 +8,6 @@ image: /assets/social-media-preview.png
locale: nl_NL
twitter:
card: summary_large_image
emoji: 🇳🇱
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: pl_PL
twitter:
card: summary_large_image
emoji: 🇵🇱
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: pt_BR
twitter:
card: summary_large_image
emoji: 🇧🇷
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: ro_RO
twitter:
card: summary_large_image
emoji: 🇷🇴
---
2021-03-23

@ -1,13 +1,11 @@
---
layout: signed
title: Отворено писмо подршке Ричарду М. Сталману
description: Отворено писмо подршке поновном постављању Ричарда Метјуа Сталмана на позицију у Задужбини слободног софтвера
image: /assets/social-media-preview.png
locale: sr_RS
twitter:
card: summary_large_image
emoji: 🇷🇸
---
2021-03-23

@ -1,13 +1,11 @@
---
layout: signed
title: Открытое письмо в поддержку Ричарда Столлмана
description: Открытое письмо в поддержку восстановления Ричарда Мэттью Столлмана в Фонде свободного программного обеспечения
image: /assets/social-media-preview.png
locale: ru_RU
twitter:
card: summary_large_image
emoji: 🇷🇺
---
2021-03-23

@ -1,13 +1,11 @@
---
layout: signed
title: Isang bukas na liham para suportahan si Richard M. Stallman
description: Isang bukas na liham para suportahan si Richard Matthew Stallman sa kanyang muling pagbabalik sa Pundasyon para sa Malayang Software
image: /assets/social-media-preview.png
locale: tl
locale: tl_PH
twitter:
card: summary_large_image
emoji: 🇵🇭
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: tr_TR
twitter:
card: summary_large_image
emoji: 🇹🇷
---
2021-03-23

@ -1,13 +1,11 @@
---
layout: signed
title: Відкритий лист у підтримку Річарда Столмена
description: Відкритий лист у підтримку поновлення Річарда Метью Столмена у Фонді вільного програмного забезпечення
image: /assets/social-media-preview.png
locale: uk_UA
twitter:
card: summary_large_image
emoji: 🇺🇦
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: vi_VN
twitter:
card: summary_large_image
emoji: 🇻🇳
---
2021-03-23

@ -6,7 +6,6 @@ image: /assets/social-media-preview.png
locale: zh_CN
twitter:
card: summary_large_image
emoji: 🇨🇳
---
2021-03-23

@ -2,18 +2,111 @@ import os
import re
regex = re.compile(r"name: (\S+\s)*\S+\nlink: (/#|(https?://|mailto:)[a-zA-Z0-9_().@:%\+~#?&//=-]+)\n{,2}")
ok = True
def report(arg):
global ok
ok = False
print(arg)
for file_name in sorted(os.listdir("_data/signed")):
if not file_name.endswith(".yaml") or file_name[:-5] != file_name[:-5].strip():
print(file_name, "has invalid name")
ok = False
if not file_name.endswith(".yaml"):
report(f"{file_name} has invalid extension: expected .yaml.")
if " " in file_name:
report(f"{file_name} file name contains spaces. Please remove them.")
if any(c.lower() not in "abcdefghijklmnopqrstuvwxyz0123456789_-. " for c in file_name):
report(f"{file_name} file name contains special characters, which may render the file unusable for Windows users. Please remove these characters.")
with open(f"_data/signed/{file_name}") as f:
contents = f.read()
if not re.fullmatch(regex, contents):
print(file_name, "has invalid format")
ok = False
contents = f.read().replace("\r", "")
if "\n\n" in contents.rstrip("\n") or contents.startswith("\n"):
report(f"{file_name} contains empty lines. Please remove them.")
if contents.endswith("\n\n\n"):
report(f"{file_name} contains too many trailing empty lines. Please remove them.")
existing_keys = set()
for i, line in enumerate(contents.split("\n")):
if not line:
continue
if line.strip() == "":
report(f"{file_name} has an empty line {i + 1} with whitespace. Please remove this line.")
continue
if line != line.rstrip():
report(f"{file_name} has excess whitespace at the end of line {i + 1}.")
if line != line.lstrip():
report(f"{file_name} has excess whitespace at the beginning of line {i + 1}.")
line = line.strip()
if ":" in line:
key = line[:line.index(":")]
value = line[line.index(":") + 1:]
if key.strip() == "" or any(c.lower() not in "abcdefghijklmnopqrstuvwxyz" for c in key):
key = None
value = line
else:
key = None
value = line
if key is None:
report(f"{file_name} has line {i + 1} which does not seem to specify a key, such as 'name:' or 'link:'. Please prepend the line with key or remove the line entirely.")
continue
if key != key.strip():
report(f"{file_name} contains a space between the key '{key}' and the colon, please remove it.")
key = key.strip()
if key != key.lower():
report(f"{file_name} contains a non-lowercase key {key} on line {i + 1}. Please convert it to lowercase.")
key = key.lower()
if not value.startswith(" "):
report(f"A space is missing after '{key}:' in {file_name} on line {i + 1}. Please add it.")
value = value[1:]
if value != value.strip():
report(f"{file_name} contains too many spaces after '{key}:' on line {i + 1}, please keep exactly one space.")
value = value.strip()
if value == "":
report(f"{file_name} contains an empty '{key}:' on line {i + 1}, please fix this.")
continue
if key in existing_keys:
report(f"{file_name} contains duplicate key '{key}'.")
existing_keys.add(key.lower())
if key == "name":
if any(c.strip() == "" and c != " " for c in value):
report(f"{file_name} contains an unexpected special whitespace character on line {i + 1}. Please replace it with a space.")
if len(" ".join(value.split())) < len(value):
report(f"{file_name} contains double space on line {i + 1}. Please keep a single space.")
elif key == "link":
if any(c.strip() == "" for c in value):
report(f"{file_name} contains unexpected whitespace on line {i + 1}. Please remove whitespace from the link.")
if value.startswith("mailto:"):
if "@" not in value:
report(f"{file_name} uses mailto: on line {i + 1}, but the part that follows doesn't look like e-mail and does not contain '@' character. Please fix the address.")
elif "://" in value:
protocol = value.split("://")[0]
if protocol not in ("http", "https"):
report(f"{file_name} uses a strange protocol '{protocol}' on line {i + 1}. Please use https:// or http://.")
elif "@" in value and not value.startswith("mailto:"):
report(f"{file_name} seems to use a e-mail in a link on line {i + 1}. Please add 'mailto:' before the e-mail.")
elif value == "/#":
pass
else:
report(f"{file_name} doesn't specify any link protocol on line {i + 1}. Please add https:// or http://.")
else:
report(f"{file_name} contains an unrecognized key {key} on line {i + 1}. Only 'name:' and 'link:' are supported.")
if "name" not in existing_keys:
report(f"{file_name} doesn't contain a name. Please specify your name or your alias.")
if "link" not in existing_keys:
report(f"{file_name} doesn't contain a link. Please specify a link to your online profile, e.g. on GitHub. If you really don't have a link, use /#")
if not ok:
raise SystemExit(1)

@ -1,6 +1,5 @@
---
layout: signed
title: An open letter in support of Richard M. Stallman
description: An open letter in support of Richard Matthew Stallman being reinstated by the Free Software Foundation
image: /assets/social-media-preview.png

@ -0,0 +1,2 @@
name: Sergei Chernoiarov
link: https://github.com/kuuusama
Loading…
Cancel
Save