61 lines
2.8 KiB
Markdown
61 lines
2.8 KiB
Markdown
# Editor DIZ
|
|
|
|
|
|
## Situació
|
|
|
|
En el meu dia a dia com a `SysOp` d'un `BBS`, necessito informar el contingut dels fitxers que poso a disposició dels meus usuaris a les diferents àrees de fitxers.
|
|
|
|
Per a tal efecte es va crear fa molts anys el format `file_id.diz`[^1], àmpliament reconegut i establert com a estàndard, amb una especificació tècnica [^2] ben definida.
|
|
|
|
Per tant, cada fitxer en la meva base de fitxers hauria de tenir inclòs un fitxer de tipus `file_id.diz` descrivint el seu contingut.
|
|
|
|
I aquests fitxers `file_id.diz`s'han de crear i editar.
|
|
|
|
|
|
## Problema
|
|
|
|
Hi ha disponibles infinitats d'editors de text, de tota mena i tecnologia, però cap d'específic per a tractar aquest tipus de fitxers. Dels pocs que hi ha, o són de tipus privatiu, o només funcionen en entorns `MS Windows`.
|
|
|
|
Pel que fa als editors generalistes, no permeten -o no he sabut trobar-ho- establir un format d'edició que preservi les dues grans condicions dels fitxers `file_id.diz`: un màxim de 10 línies, i un màxim de 45 caràcters per línia.
|
|
|
|
|
|
## Solució
|
|
|
|
Necessitava un editor multiplataforma, de codi obert, que permetés crear i editar els fitxers de tipus `file_id.diz`, que respectés els condicionants del seu format, i que fos usable i intuïtiu per al `SysOp` que el fes servir.
|
|
|
|
Per tant, he desenvolupat un *script* en `python`, que dona resposta a tots aquests requeriments. Donades les meves limitacions com a desenvolupador, m'he basat en la llibreria estàndard `tkinter`[^3] per a proveir una interfície gràfica -simple però efectiva- que doni aquesta usabilitat i funcionalitat.
|
|
|
|
Aquest *script* permet:
|
|
|
|
- Arrencar un `GUI` amb font monoespai per a visibilitzar uniformement les línies.
|
|
- Accedir a un panell d'exploració de fitxers navegable.
|
|
- Obrir, desar, visualitzar i editar textos de 10 línies i 45 caràcters per línia.
|
|
- Un comptador per línia amb els caràcters escrits en temps real sobre els 45 permesos.
|
|
- Línies independents entre sí, de manera que es pugui editar un text lliurement[^4].
|
|
- Tractar aquests textos com a `file_id.diz` o `elnomquesigui.diz`.
|
|
- Executar-se en qualsevol plataforma que diposi de `Python`, la biblioteca estàndard `tkinter` (i s'entén que un *Entorn d'Escriptori*[^5).
|
|
|
|
|
|
|
|
## Execució
|
|
|
|
Des de l'intèrpret de comandes:
|
|
|
|
```bash
|
|
python diz-editor-py
|
|
```
|
|
|
|
o en funció del vostre entorn:
|
|
|
|
```bash
|
|
python3 diz-editor-py
|
|
```
|
|
|
|
`<EOF>`
|
|
|
|
|
|
[^1]: https://en.wikipedia.org/wiki/FILE_ID.DIZ
|
|
[^2]: En aquest mateix repositori: [FILEID.TXT](https://shipyard.thefreebay.net/eotb/gui-diz-editor/src/branch/main/FILEID.TXT "FILE_ID.DIZ Specification v1.9 by Richard Holler")
|
|
[^3]: https://docs.python.org/3/library/tkinter.html
|
|
[^4]: Tot i que no es recomana, aprofitar les línies per fer [Art ASCII](https://ca.wikipedia.org/wiki/Art_ASCII "Viquipèdia").
|
|
[^5]: https://ca.wikipedia.org/wiki/Entorn_d%27escriptori |