Nová verze phanpy

This commit is contained in:
2026-02-07 19:49:28 +01:00
parent ba8d95710d
commit 9b2b68c60a
62 changed files with 345 additions and 54 deletions

View File

@@ -1,44 +0,0 @@
# Phanpy - Fork projektu
Toto je fork projektu [Phanpy](https://github.com/cheeaun/phanpy)., minimalistického webového klienta pro Mastodon. Cílem tohoto forku je pracovat na různých vylepšeních a úpravách.
## Popis
Phanpy je minimalistický a názorový webový klient pro Mastodon. Tento fork byl vytvořen, aby umožnil další experimenty a úpravy projektu.
## Funkce
- 👪 Podpora více účtů
- 🪟 Vyskakovací a zasouvací okno pro psaní příspěvků
- 🌗 Světlý/tmavý/automatický režim
- 🔔 Seskupené notifikace
- 🪺 Vnořené vlákna komentářů
- 📬 Obnova neodeslaných konceptů
- 🎠 Karusel pro boosty™
- ⚡ Zkratky™ s režimy zobrazení jako multi-sloupcový nebo s tabulkovým panelem
- #⃣ Časová osa s více hashtagy
## Vylepšení
- Akce u statusů (odpovědět, boost, oblíbené, záložka, atd.) jsou ve výchozím nastavení skryté.
- Objevují se pouze na individuální stránce statusu. Toto je zamýšleno ke snížení nepořádku a rozptylování. Může to vést k nižší angažovanosti, ale nehoníme se za čísly.
- Boost je reprezentován ikonou rakety.
- Zelená dvojitá šipka (retweet pro Twitter) neodpovídá termínu "boost". Zelená raketa vypadá divně, takže používám fialovou.
- Krátká uživatelská jména (@username) jsou zobrazena v časové ose místo úplného uživatelského jména (@username@instance).
- Navzdory zmíněné směrnici, že "decentralizace musí být uživateli transparentní", nemyslím si, že bychom to měli uživateli cpát do tváře pokaždé. Existují také některé problémy s přístupností pro čtečky obrazovky s úplným uživatelským jménem, ačkoli tato webová aplikace bohužel ještě není přístupná.
- Žádné automatické přehrávání videí/GIFů/čehokoliv v časové ose.
- Časová osa je již velký nepořádek s mnoha lidmi, značkami, zprávami a médii, které se snaží upoutat vaši pozornost. Nezhoršujme to. (Současná výjimka jsou animované emoji.)
- URL založené na hashe.
- Tato webová aplikace není zamýšlena jako plnohodnotná náhrada za stávající front-end Mastodonu. Neexistuje zde žádné SEO, databáze, serverless nebo jakékoliv dlouhodobě běžící servery. Možná se jednou mýlím.
## Instalace
Postup instalace a používání této verze je stejný jako u původního projektu. Další informace najdete v původní dokumentaci [zde](https://github.com/cheeaun/phanpy).
## Licence
Tento projekt je licencován pod licencí MIT. Původní autor projektu je Lim Chee Aun. Úpravy a experimenty provádí [Archos].
## Poznámka
Tento fork byl vytvořen za účelem dalšího vývoje a experimentů s projektem Phanpy. Pokud máte jakékoliv dotazy nebo připomínky, neváhejte nás kontaktovat.

View File

@@ -1,2 +1,2 @@
/
Link: <assets/style-C1LMFgTp.css>; rel=preload; as=style
Link: <assets/style-By2IJF-L.css>; rel=preload; as=style

2
assets/ICONS-C5h6VnP9.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
import{aq as v,ar as _,a as g,d as r,a3 as y,y as c,V as T,ai as m,u as e,T as t,U as I,B as C,as as x,at as A,av as E,H as L}from"./pwa-viewport-7HQOd5MC.js";v();_();window.opener&&(console=window.opener.console);function P(){const{_:o}=g(),[s,l]=r("default"),[a,u]=r(null),{editStatus:d,replyToStatus:i,replyMode:p,draftStatus:w,quoteStatus:f}=window.__COMPOSE__||{};return y(o(d?{id:"Txus+H"}:i?{id:"03vjxE",values:{0:i.account?.acct||i.account?.username}}:{id:"QOhkyl"})),c(()=>{const n=T();u(!!n),n&&m()},[]),c(()=>{if(s==="closed"){try{window.opener.focus()}catch{}window.close()}},[s]),s==="closed"?e("div",{class:"box",children:[e("p",{children:e(t,{id:"mBdQnV"})}),e("p",{children:e("button",{onClick:()=>{window.close()},children:e(t,{id:"rf8fiC"})})})]}):a===!1?e("div",{class:"box",children:[e("h1",{children:e(t,{id:"SlfejT"})}),e("p",{children:e(t,{id:"D3vX+9"})}),e("p",{children:e("a",{href:"/",children:e(t,{id:"iWpEwy"})})})]}):a?e(I,{editStatus:d,replyToStatus:i,replyMode:p||"all",draftStatus:w,quoteStatus:f,standalone:!0,hasOpener:window.opener,onClose:n=>{const{newStatus:h,fn:S=()=>{}}=n||{};try{h&&window.opener.__STATES__.reloadStatusPage++,S(),l("closed")}catch{}}}):e("div",{class:"box",children:e(C,{})})}x(e(A,{i18n:L,children:e(E,{children:e(P,{})})}),document.getElementById("app-standalone"));
//# sourceMappingURL=compose-B2QtYPN0.js.map

File diff suppressed because one or more lines are too long

2
assets/dom-BGTnaPi8.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

View File

@@ -0,0 +1 @@
const l={width:24,height:24,body:'<g fill="none" fill-rule="evenodd"><path d="M24 0v24H0V0h24ZM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018Zm.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022Zm-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01l-.184-.092Z"/><path fill="currentColor" d="M13.574 3.137a1.01 1.01 0 0 0-1.097 1.409a6 6 0 0 1-7.931 7.931a1.01 1.01 0 0 0-1.409 1.097A9 9 0 0 0 21 12c0-4.434-3.206-8.118-7.426-8.863Zm1.307 2.481A7.002 7.002 0 0 1 12 19a7.002 7.002 0 0 1-6.382-4.12a8 8 0 0 0 9.263-9.263Z"/></g>'};export{l as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

30
assets/main-BIy8J6P1.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,12 +4,12 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Compose / Phanpy</title>
<link rel="stylesheet" crossorigin href="../assets/style-C1LMFgTp.css"><link rel="icon" type="image/x-icon" href="../favicon.ico" />
<link rel="stylesheet" crossorigin href="../assets/style-By2IJF-L.css"><link rel="icon" type="image/x-icon" href="../favicon.ico" />
<meta name="color-scheme" content="light dark" />
<meta name="google" content="notranslate" />
<meta name="referrer" content="origin">
<script type="module" crossorigin src="../assets/compose-BkIkwW6b.js"></script>
<link rel="modulepreload" crossorigin href="../assets/pwa-viewport-CJ-1bFP1.js">
<script type="module" crossorigin src="../assets/compose-B2QtYPN0.js"></script>
<link rel="modulepreload" crossorigin href="../assets/pwa-viewport-7HQOd5MC.js">
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:inline-sw">if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})}</script></head>
<body>

View File

@@ -26,7 +26,7 @@
--csstools-color-scheme--light: ;
}
</style>
<link rel="stylesheet" crossorigin href="./assets/style-C1LMFgTp.css"><link rel="icon" type="image/x-icon" href="./favicon.ico" />
<link rel="stylesheet" crossorigin href="./assets/style-By2IJF-L.css"><link rel="icon" type="image/x-icon" href="./favicon.ico" />
<link rel="apple-touch-icon" href="./apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="Phanpy" />
<meta name="apple-mobile-web-app-capable" content="yes" />
@@ -59,10 +59,10 @@
<meta name="google" content="notranslate" />
<link rel="me" href="https://hachyderm.io/@phanpy" />
<meta name="referrer" content="origin">
<script type="module" crossorigin src="./assets/main-0n0W_4XT.js"></script>
<link rel="modulepreload" crossorigin href="./assets/pwa-viewport-CJ-1bFP1.js">
<link rel="modulepreload" crossorigin href="./assets/ICONS-DaAGffIM.js">
<link rel="modulepreload" crossorigin href="./assets/ScheduledAtField-C2dSuh6f.js">
<script type="module" crossorigin src="./assets/main-BIy8J6P1.js"></script>
<link rel="modulepreload" crossorigin href="./assets/pwa-viewport-7HQOd5MC.js">
<link rel="modulepreload" crossorigin href="./assets/ICONS-C5h6VnP9.js">
<link rel="modulepreload" crossorigin href="./assets/ScheduledAtField-B9b7q7O5.js">
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:inline-sw">if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})}</script></head>
<body>

View File

@@ -1 +1 @@
{"buildTime":"2026-01-07T13:04:22.650Z","commitHash":"2e1d0c4"}
{"buildTime":"2026-01-31T12:54:18.004Z","commitHash":"8b98d5a"}