Author Topic: Проблемы с греческой политоникой  (Read 12771 times)

Offline Квас

  • Ветеран
  • *****
  • Posts: 1438
  • Карма: +424/-16
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #60 on: 27 July 2022, 22:23:28 »
  • 0
  • 0
Любой порядок легко закодить предварительной сортировкой модификаторов.
И после этого заменяется отсортированный вариант.
Ага, я тоже так думал.

Надо нам Кецаля нашего припрячь. :lol: Упражнение с практической пользой.

Offline Квас

  • Ветеран
  • *****
  • Posts: 1438
  • Карма: +424/-16
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #61 on: 27 July 2022, 23:51:06 »
  • 0
  • 0
Кстати, а комбинируемые оксии всякие бывают? Или комбинируемый акут можно использовать вместо оксии?

Я думаю, можно (опционально) сделать, чтобы недопаршенная диакритика превращалась бы в комбинируемую. Кстати, полезный юзкейс - макрон + ударение.

Offline Квас

  • Ветеран
  • *****
  • Posts: 1438
  • Карма: +424/-16
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #62 on: 27 July 2022, 23:54:13 »
  • 0
  • 0
Кстати, префиксная и постфиксная - это неудобно, но жить можно. А настоящий дебилизм - ' используется для апострофа и для бреве.

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #63 on: 27 July 2022, 23:55:17 »
  • 0
  • 0
Кстати, а комбинируемые оксии всякие бывают?
ἄἌἔἕἜἝἤἥἬἭἴἵἼἽὄὅὌὍὔὕὝὤὥὬὭ
ᾄᾅᾌᾍᾔᾕᾜᾝᾤᾥᾬᾭᾴῄΐΰῴ
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.

Offline I. G.

  • Вне лингвополитики
  • Трижды герой
  • *
  • Posts: 12273
  • Карма: +325/-1391
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #64 on: 28 July 2022, 09:44:49 »
  • 0
  • 0
ἄἌἔἕἜἝἤἥἬἭἴἵἼἽὄὅὌὍὔὕὝὤὥὬὭ
ᾄᾅᾌᾍᾔᾕᾜᾝᾤᾥᾬᾭᾴῄΐΰῴ

Господи, как хорошо, что мы это все писали мелом на доске или ручкой в тетрадке.

Offline Квас

  • Ветеран
  • *****
  • Posts: 1438
  • Карма: +424/-16
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #65 on: 28 July 2022, 13:53:34 »
  • 0
  • 0
ἄἌἔἕἜἝἤἥἬἭἴἵἼἽὄὅὌὍὔὕὝὤὥὬὭ
ᾄᾅᾌᾍᾔᾕᾜᾝᾤᾥᾬᾭᾴῄΐΰῴ

Не, это же вроде прекомбинированные?

Комбинируемые ударения можно было бы ставить над макронами.

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #66 on: 28 July 2022, 14:20:28 »
  • 0
  • 0
А, отдельные имелись в виду. Пардон, недопонял-съ.
Тут Уникод разницы пока не делает:
U+0300 COMBINING GRAVE ACCENT : Greek varia
U+0301 COMBINING ACUTE ACCENT : stress mark, Greek oxia, tonos
U+0308 COMBINING DIAERESIS : double dot above, umlaut, Greek dialytika, double derivative
U+0313 COMBINING COMMA ABOVE : Greek psili, smooth breathing mark
U+0314 COMBINING REVERSED COMMA ABOVE : Greek dasia, rough breathing mark


Но с нестандартными не так:
U+0342 COMBINING GREEK PERISPOMENI
U+0343 COMBINING GREEK KORONIS
U+0344 COMBINING GREEK DIALYTIKA TONOS
U+0345 COMBINING GREEK YPOGEGRAMMENI : iota subscript


Я, правда, не понял, что это за зверь такой: комбинируемый коронис, ну да ладно.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 32353
  • Карма: +4460/-426
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #67 on: 28 July 2022, 14:47:01 »
  • 0
  • 0
я не понял, а зачем эти все комбинирующиеся обсуждаются?

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #68 on: 28 July 2022, 14:57:51 »
  • 0
  • 0
Затем, что в Ваших картинках с текстами для уроков встречались буквы с макронами и ударениями одновременно.
И если буквы с макронами в Уникоде есть (ᾱῑῡ), то вот их сочетаний с оксиями и прочими диакритиками пока нету.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 32353
  • Карма: +4460/-426
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #69 on: 28 July 2022, 15:08:45 »
  • 0
  • 0
а вы практически пробовали комбинировать макрон с акутом? потому что мне надо было и я пробовал. Так как результат получился отстойный, я пожертвовал макроном. Так прежде чем бурно инвестировать в запрограмирование этих комбинаций, может, лучше сначала установить, а сто́ит ли оно того?  :)

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #70 on: 28 July 2022, 15:11:41 »
  • 0
  • 0
Вы так распинаетесь, как будто я это сделал не первый :lol:.
Хотя, ЕМНИП, ещё в самом первом тексте мне пришлось удалить нафиг макрон с картинки, так как на нём сидела оксия.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 32353
  • Карма: +4460/-426
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #71 on: 28 July 2022, 15:19:48 »
  • 0
  • 0
но дискуссия комбинирующихся символов почему-то продолжается?  :-\

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #72 on: 28 July 2022, 15:42:27 »
  • 0
  • 0
Никогда не знаешь, где найдёшь, где потеряешь :dunno:.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.

Offline Квас

  • Ветеран
  • *****
  • Posts: 1438
  • Карма: +424/-16
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #73 on: 28 July 2022, 17:31:07 »
  • 1
  • 0
Комбинирующиеся лучше оставить до следующей версии. Добавлять все варианты макрона плюс ударения-придыхания - возня. (Их лучше бы кодопородить, но это тоже возня.)

Тем временем, у меня что-то работает. Репу я сделаю. А пока - шарахнул вебпаком, можно юзать как-то так:
Code: [Select]
<script>
var BetaCode;(()=>{"use strict";var e={d:(A,H)=>{for(var W in H)e.o(H,W)&&!e.o(A,W)&&Object.defineProperty(A,W,{enumerable:!0,get:H[W]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},A={};e.r(A),e.d(A,{BetaCodeDecoder:()=>r,betaCodeToPolytonic:()=>o});const H=/\*[)(/\\=|+]*[ABGDEZHQIKLMNCOPRSTUFXYW]|[AEHIORUWR][)(/\\=|+&]*|s[123]|./g,W=/\*[)(/\\=|+]*[abgdezhqiklmncoprstufxywABGDEZHQIKLMNCOPRSTUFXYW]|[aehioruwrAEHIORUWR][)(/\\=|+&]*|[sS][123]|./g;let t={"(*/A":"Ἅ","(*/E":"Ἕ","(*/H":"Ἥ","(*/I":"Ἵ","(*/O":"Ὅ","(*/U":"Ὕ","(*/W":"Ὥ","(*/A|":"ᾍ","(*/A|":"ᾍ","(*/H|":"ᾝ","(*/H|":"ᾝ","(*/W|":"ᾭ","(*/W|":"ᾭ","(*=A":"Ἇ","(*=H":"Ἧ","(*=I":"Ἷ","(*=U":"Ὗ","(*=W":"Ὧ","(*=A|":"ᾏ","(*=A|":"ᾏ","(*=H|":"ᾟ","(*=H|":"ᾟ","(*=W|":"ᾯ","(*=W|":"ᾯ","(*\\A":"Ἃ","(*\\E":"Ἓ","(*\\H":"Ἣ","(*\\I":"Ἳ","(*\\O":"Ὃ","(*\\U":"Ὓ","(*\\W":"Ὣ","(*\\A|":"ᾋ","(*\\A|":"ᾋ","(*\\H|":"ᾛ","(*\\H|":"ᾛ","(*\\W|":"ᾫ","(*\\W|":"ᾫ","(*A":"Ἁ","(*E":"Ἑ","(*H":"Ἡ","(*I":"Ἱ","(*O":"Ὁ","(*R":"Ῥ","(*U":"Ὑ","(*W":"Ὡ","(*A|":"ᾉ","(*A|":"ᾉ","(*H|":"ᾙ","(*H|":"ᾙ","(*W|":"ᾩ","(*W|":"ᾩ",")*/A":"Ἄ",")*/E":"Ἔ",")*/H":"Ἤ",")*/I":"Ἴ",")*/O":"Ὄ",")*/W":"Ὤ",")*/A|":"ᾌ",")*/A|":"ᾌ",")*/H|":"ᾜ",")*/H|":"ᾜ",")*/W|":"ᾬ",")*/W|":"ᾬ",")*=A":"Ἆ",")*=H":"Ἦ",")*=I":"Ἶ",")*=W":"Ὦ",")*=A|":"ᾎ",")*=A|":"ᾎ",")*=H|":"ᾞ",")*=H|":"ᾞ",")*=W|":"ᾮ",")*=W|":"ᾮ",")*\\A":"Ἂ",")*\\E":"Ἒ",")*\\H":"Ἢ",")*\\I":"Ἲ",")*\\O":"Ὂ",")*\\W":"Ὢ",")*\\A|":"ᾊ",")*\\A|":"ᾊ",")*\\H|":"ᾚ",")*\\H|":"ᾚ",")*\\W|":"ᾪ",")*\\W|":"ᾪ",")*A":"Ἀ",")*E":"Ἐ",")*H":"Ἠ",")*I":"Ἰ",")*O":"Ὀ",")*W":"Ὠ",")*A|":"ᾈ",")*A|":"ᾈ",")*H|":"ᾘ",")*H|":"ᾘ",")*W|":"ᾨ",")*W|":"ᾨ","*+I":"Ϊ","*+U":"Ϋ","*/A":"Ά","*/E":"Έ","*/H":"Ή","*/I":"Ί","*/O":"Ό","*/U":"Ύ","*/W":"Ώ","*\\A":"Ὰ","*\\E":"Ὲ","*\\H":"Ὴ","*\\I":"Ὶ","*\\O":"Ὸ","*\\U":"Ὺ","*\\W":"Ὼ","*A":"Α","(*A":"Ἁ","(*/A":"Ἅ","(*/A|":"ᾍ","(*=A":"Ἇ","(*=A|":"ᾏ","(*\\A":"Ἃ","(*\\A|":"ᾋ","(*A|":"ᾉ",")*A":"Ἀ",")*/A":"Ἄ",")*/A|":"ᾌ",")*=A":"Ἆ",")*=A|":"ᾎ",")*\\A":"Ἂ",")*\\A|":"ᾊ",")*A|":"ᾈ","*/A":"Ά","*\\A":"Ὰ","*A|":"ᾼ","*B":"Β","*C":"Ξ","*D":"Δ","*E":"Ε","(*E":"Ἑ","(*/E":"Ἕ","(*\\E":"Ἓ",")*E":"Ἐ",")*/E":"Ἔ",")*\\E":"Ἒ","*/E":"Έ","*\\E":"Ὲ","*F":"Φ","*G":"Γ","*H":"Η","(*H":"Ἡ","(*/H":"Ἥ","(*/H|":"ᾝ","(*=H":"Ἧ","(*=H|":"ᾟ","(*\\H":"Ἣ","(*\\H|":"ᾛ","(*H|":"ᾙ",")*H":"Ἠ",")*/H":"Ἤ",")*/H|":"ᾜ",")*=H":"Ἦ",")*=H|":"ᾞ",")*\\H":"Ἢ",")*\\H|":"ᾚ",")*H|":"ᾘ","*/H":"Ή","*\\H":"Ὴ","*H|":"ῌ","*I":"Ι","(*I":"Ἱ","(*/I":"Ἵ","(*=I":"Ἷ","(*\\I":"Ἳ",")*I":"Ἰ",")*/I":"Ἴ",")*=I":"Ἶ",")*\\I":"Ἲ","*+I":"Ϊ","*/I":"Ί","*\\I":"Ὶ","*J":"Σ","*K":"Κ","*L":"Λ","*M":"Μ","*N":"Ν","*O":"Ο","(*O":"Ὁ","(*/O":"Ὅ","(*\\O":"Ὃ",")*O":"Ὀ",")*/O":"Ὄ",")*\\O":"Ὂ","*/O":"Ό","*\\O":"Ὸ","*P":"Π","*Q":"Θ","*R":"Ρ","(*R":"Ῥ","*S":"Σ","*1S":"Σ","*2S":"Σ","*3S":"Ϲ","*T":"Τ","*U":"Υ","(*U":"Ὑ","(*/U":"Ὕ","(*=U":"Ὗ","(*\\U":"Ὓ","*+U":"Ϋ","*/U":"Ύ","*\\U":"Ὺ","*V":"Ϝ","*W":"Ω","(*W":"Ὡ","(*/W":"Ὥ","(*/W|":"ᾭ","(*=W":"Ὧ","(*=W|":"ᾯ","(*\\W":"Ὣ","(*\\W|":"ᾫ","(*W|":"ᾩ",")*W":"Ὠ",")*/W":"Ὤ",")*/W|":"ᾬ",")*=W":"Ὦ",")*=W|":"ᾮ",")*\\W":"Ὢ",")*\\W|":"ᾪ",")*W|":"ᾨ","*/W":"Ώ","*\\W":"Ὼ","*W|":"ῼ","*X":"Χ","*Y":"Ψ","*Z":"Ζ","*A|":"ᾼ","*H|":"ῌ","*W|":"ῼ",".":".","/":" ́",":":"·",_:"—","'":"’",A:"α","(A":"ἁ","(/A":"ἅ","(/A|":"ᾅ","(=A":"ἇ","(=A|":"ᾇ","(\\A":"ἃ","(\\A|":"ᾃ","(A|":"ᾁ",")A":"ἀ",")/A":"ἄ",")/A|":"ᾄ",")=A":"ἆ",")=A|":"ᾆ",")\\A":"ἂ",")\\A|":"ᾂ",")A|":"ᾀ","/A":"ά","/A|":"ᾴ","=A":"ᾶ","=A|":"ᾷ","\\A":"ὰ","\\A|":"ᾲ","A|":"ᾳ","&A":"ᾱ",B:"β",C:"ξ",D:"δ",E:"ε","(E":"ἑ","(/E":"ἕ","(\\E":"ἓ",")E":"ἐ",")/E":"ἔ",")\\E":"ἒ","/E":"έ","\\E":"ὲ",F:"φ",G:"γ",H:"η","(H":"ἡ","(/H":"ἥ","(/H|":"ᾕ","(=H":"ἧ","(=H|":"ᾗ","(\\H":"ἣ","(\\H|":"ᾓ","(H|":"ᾑ",")H":"ἠ",")/H":"ἤ",")/H|":"ᾔ",")=H":"ἦ",")=H|":"ᾖ",")\\H":"ἢ",")\\H|":"ᾒ",")H|":"ᾐ","/H":"ή","/H|":"ῄ","=H":"ῆ","=H|":"ῇ","\\H":"ὴ","\\H|":"ῂ","H|":"ῃ",I:"ι","(I":"ἱ","(/I":"ἵ","(=I":"ἷ","(\\I":"ἳ",")I":"ἰ",")/I":"ἴ",")=I":"ἶ",")\\I":"ἲ","+I":"ϊ","/I":"ί","+/I":"ΐ","=I":"ῖ","+=I":"ῗ","\\I":"ὶ","+\\I":"ῒ",K:"κ",L:"λ",M:"μ",N:"ν",O:"ο","(O":"ὁ","(/O":"ὅ","(\\O":"ὃ",")O":"ὀ",")/O":"ὄ",")\\O":"ὂ","/O":"ό","\\O":"ὸ",P:"π",Q:"θ",R:"ρ","(R":"ῥ",")R":"ῤ",T:"τ",U:"υ","(U":"ὑ","(/U":"ὕ","(=U":"ὗ","(\\U":"ὓ",")U":"ὐ",")/U":"ὔ",")=U":"ὖ",")\\U":"ὒ","+U":"ϋ","/U":"ύ","+/U":"ΰ","=U":"ῦ","+=U":"ῧ","\\U":"ὺ","+\\U":"ῢ",V:"ϝ",W:"ω","(W":"ὡ","(/W":"ὥ","(/W|":"ᾥ","(=W":"ὧ","(=W|":"ᾧ","(\\W":"ὣ","(\\W|":"ᾣ","(W|":"ᾡ",")W":"ὠ",")/W":"ὤ",")/W|":"ᾤ",")=W":"ὦ",")=W|":"ᾦ",")\\W":"ὢ",")\\W|":"ᾢ",")W|":"ᾠ","/W":"ώ","/W|":"ῴ","=W":"ῶ","=W|":"ῷ","\\W":"ὼ","\\W|":"ῲ","W|":"ῳ",X:"χ",Y:"ψ",Z:"ζ"};function n(e,A){const H=e.length>1?e.split("").sort().join(""):e;return A.caseInsensitive?H.toUpperCase():H}function o(e,A){A.autoFinalSigma&&(e=function(e,A){return A.caseInsensitive?e.replace(/[sS]([abgdezhqiklmncoprstufxywABGDEZHQIKLMNCOPRSTUFXYW])/,"S1$1"):e.replace(/S([ABGDEZHQIKLMNCOPRSTUFXYW])/,"S1$1")}(e,A));const o=A.caseInsensitive?W:H;return e.match(o).map((e=>function(e,A){if(""===e)return e;const H=e[0];return"S"===H||"s"===H||"J"===H||"j"===H?function(e,A){return A.caseInsensitive&&(e=e.toUpperCase()),"S1"===e?"σ":"S2"===e?"ς":"S3"===e?"ϲ":"J"===e&&A.jFinalSigma?"ς":"S"===e?A.autoFinalSigma?"ς":"σ":e}(e,A):"*"===H?function(e,A){const H=t[n(e,A)];return void 0!==H?H:e}(e,A):function(e,A){const H=t[n(e,A)];if(null!=H)return H;const W=e.length;for(let H=0;H<=W;++H){const W=e.slice(0,-H),o=t[n(W,A)];if(null!=o)return`${o}${e.slice(H)}`}return e}(e,A)}(e,A))).join("")}class r{constructor(e){this.config=e}decode(e){return o(e,this.config)}}BetaCode=A})();
</script>
Использование:
Code: [Select]
const decoderConfig = {
  autoFinalSigma: true,
  jFinalSigma: true,
  caseInsensitive: true
}
const decoder = new BetaCode.BetaCodeDecoder(decoderConfig)
const encoded = 'fo/o\\ba=r'
const decoded = decoder.decode(encoded) // φόὸβᾶρ
Тестов, конечно, нету. Upliner, есть желание форум поломать? ;D

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 6734
  • Карма: +2273/-349
    • View Profile
Re: Проблемы с греческой политоникой
« Reply #74 on: 28 July 2022, 17:43:11 »
  • 0
  • 0
У меня это точно работать не станет.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный
Ceterum censeo gebniam esse delendam.