Vés al contingut

Tema de Usuari Discussió:Vriullop/Fitxer de Discussions Estructurades 1

Amadalvarez (discussiócontribucions)

Bona nit. Fa dies que estic mirar de explorar les possibilitats de la {{wikidata list}}.

Volia mirar de crear mapes com aquest generat amb la wikidata list.

Però tot i funcionar-me la part de la wikidata list, no em funcionava el mapa i em donava un error de JSON, com quan els paràmetres estan malament.

Mitjançant el debug, he detectat que el problema era que la row_template que faig servir a la wikidata list per editar a mida el resultat (cosa necessària per construir els geotype, en lloc de tenir una taula wiki, com fa el wikidata list) no eren interpretades correctament pel map draw i ajuntava els paràmetres d'una instància amb els de la següent.

Com que la row template és un mica complexa (Especial:PermanentLink/26668350), amb codi wiki i amb un formateig HTML per generar el title de cada municipi, he passat a fer una prova simple, deixant a banda el wikidata list, amb menys contingut i fins i tot sense format HTML. He provat també que no fos un embolic entre les barres (|) de separadors de paràmetres del map draw vs els del codi wiki. I res, canviava lleugerament el comportament, però en essència no li agraden les plantilles.

Llavors he fet la prova amb la versió més elemental (Especial:PermanentLink/26668784). Té dos geoshape escrits igual al mapa inicial fet manualment + un tercer geoshape escrit, no generat amb codi, al que -per fer-ho més senzill- li he tret el formateig HTML i ho he encapsulat dins una plantilla (Especial:PermanentLink/26669025). La resposta és que els geoshape manual es veuen i el que està dins la plantilla no el mostra. Sembla com si fos un problema de sincronia entre l'expansió de la plantilla i el funcionament del map draw. Com que per treballar amb el wikidata list cal que generi els paràmetres dins de les row-templates. Per tant, em cal que el map draw entengui les plantilles.

Disculpa l'extensió però com que porto fetes moltes proves, volia contextualitzar-ho per mirar de focalitzar el punt on he arribat quan demano ajuda.

No és urgent.

Merci,

Amadalvarez (discussiócontribucions)

Bon dia,

M'he anat a dormir i m'ha vingut la memòria. Aquest cas és cosí germà de Tema:Vzmt5hwlfzkmkq6b , no obstant, en aquella ocasió pretenia generar el codi mentre anava recuperant dades, dinàmicament.

Ara, per contra, la crida al map draw ja té el contingut quan la crido, però està encapsulat dins una plantilla.

Bé, ja et deixo pensar.

Vriullop (discussiócontribucions)

No és problema del map draw sinó de substitució i expansió de plantilles. Si proves {{#switch:{{{1}}} | {{Wikidata list/municipis mapa}} }}, suposant que totes les dades ja són en la plantilla interna, doncs no funciona perquè la plantilla només té text que insereix com a paràmetre únic. En canvi, sí funcionaria {{#switch:{{{1}}} | {{subst:Wikidata list/municipis mapa}} }}, substitueix i després expandeix. Però això no es pot usar directament. Sobre com usar aquesta via ja no n'estic segur, en:Help:Substitution i l'equivalent a Meta em semblen esotèrics.

Vriullop (discussiócontribucions)

Seguint aquest fil, ja tens el teu mapa de proves: Especial:Permalink/26682412. De passada he trobat que el mapa estàtic no es genera en l'espai d'usuari però sí en l'espai Viquipèdia.

El tema és fer substitucions recursives, primer substituir text i al final expandir-lo. Primer pas: Usuari:Vriullop/proves3 genera text. Segon pas: Usuari:Vriullop/proves2 amb safesubst no expandit. Tercer pas és expandir-ho amb un subst de la plantilla. Problema, ho substitueix i cada vegada que es vulgui regenerar cal tornar a posar el codi amb subst.

Amadalvarez (discussiócontribucions)

No me'n surto amb l'invent. El primer pas -en el cas real- no és tan simple com Usuari:Vriullop/proves3, perquè la generació dels codis de cada geotype es fa mitjançant el wikidata list, que crida la Plantilla:Wikidata list/municipis mapa per construir les files a Usuari:Amadalvarez/traduccions 3.1. Ara bé, tot i que visualment ja tenim els geotypes correctes, en realitat no tenim expandit el text, ja que el que tenim són una colla de crides a la row-template amb uns paràmetres aportats per la wikidata list.

A partir d'aquí, ja tot va pel pedregar.

He provat de fer el pas 2 amb {{safesubst:<noinclude/>Usuari:Amadalvarez/traduccions 3.1}}, què òbviament, no funciona. Està a Usuari:Amadalvarez/traduccions 3.6

En fi. Si vols intentar-ho,... en tot cas, el pla B és agafar el text que mostra special:permalink/26681365 que és la versió de Usuari:Amadalvarez/traduccions 3.1 amb una header template que li posa el codi inicial del map draw, i pegar-lo a l'article final. El problema ena quest cas no és tant la manualitat, com el fet que estem posant un codi final que no es refrescarà amb el listeriabot. Però això també passava amb la solució del subst.

Merci

Amadalvarez (discussiócontribucions)

Bé. Funciona en el cas simplificat, perquè la plantilla només té el text amb valors finals.

Ara bé, quan ho faig amb la plantilla que té el codi per generar els paràmetres de map draw, posa tot el codi de la plantilla abans d'executar-lo i només substitueix els noms dels paràmetres pel seu valor. A banda que multiplicar 40 vegades el codi no sembla massa eficient, el resultat tampoc s'executa, per tant, per l'objectiu desitjat, tenim el mateix.

Llavors he pensat que quan s'executaven les plantilles, les parts textuals, com ara "geotype2 = geoshape | ids2 = Q15389....", eren traslladables tal qual a una crida al map draw, però les imatges i el codi html, l'executava la plantilla i no em mostrava el codi que s'esperaria el map draw, sinó un resultat el·laborat. He posat entre nowiki tot allò que era interpretable per la plantilla i el resultat és un immens string: Special:permalink/26678225. És a dir, em deixa un codi que "només" cal copiar-pegar allà on vulgui.

Què és un nyap?, pot ser, sí. L'automatisme de crear el bloc de dades i de fer-ho regularment és exactament el mateix, però perquè es vegi, li cal un "toc especial", diguem-ne.

A partir d'aquí, vaig a veure com descric el procediment per a que sigui escalable.

S'hi penses alguna altra idea, ja saps.

Merci per tot.

Amadalvarez (discussiócontribucions)

Bon dia,

Remenant sobre el tema, he arribat a la {{Mapa llista coordenades}} com a opció per fer mapes multipunt repescant les coord.

No sabia que una de les opcions era cridar Map draw. He mirat de fer-la servir amb Llista de monuments d'Andorra i no m'ha funcionat.

Per descartar si era un problema d'aquesta plantilla (que no m'ho ha semblat), he cridat directament:

{{map draw|frameless=y|geotype=named|from=Llista_de_monuments_d'Andorra|marker-size=small|height=270|width=270|align=center}} i no guixa res.

He mirat de trobar un exemple, però amb l'insource no he trobat cap que no sigui l'esmentada plantilla.

Hauria de funcionar ?

Merci

Vriullop (discussiócontribucions)

Pots veure Tema:Vr3mclmyoxaob954. Només funciona si la pàgina té plantilles coord perquè el que fa és processar el text wiki de la pàgina. Els exemples que hi vaig enllaçar cal veure'ls en previsualització per generar-los de nou. En el cas de les llistes de monuments no funciona perquè les coord es generen indirectament. Ho pots provar en viu a Mar#Llista de mars afegint maplink=y o mapframe=y. Ara bé, hi ha alguna cosa que falla, suposo que per culpa dels mapes dinàmics o estàtics. Una vegada desat el mapframe no mostra els punts al mapa, tot i que quan ho vaig provar anava perfectament, no ho he investigat més. Amb maplink sí funciona perquè el genera dinàmic sobre la marxa.

Tot plegat és una via a explorar amb possibilitats inaudites fins ara. Gràcies al Mòdul:Transcluder es pot obtenir el text wiki d'una pàgina. El mòdul Map ho processa per quedar-se amb les coordenades. No hi he volgut afegir les coordenades d'altres plantilles que no siguin la coord perquè ja són casos particulars, però via Lua es podria processar, a mida i amb dedicació, qualsevol cosa del text wiki.

Amadalvarez (discussiócontribucions)

Val. Doncs si no funciona amb les pàgines de monuments, tampoc em funcionaria en casos en que les coordenades es generessin dins la row_template.

Ho he posat a Usuari:Isidre blanc/proves/Llista de cabanes de volta de Torà i no mostrava l'enllaç a "wikimedia" com si ho fa amb llista de mars. Solució: li mancava type: nom=

A tenir-ho en compte.

Vaig a fer més proves, perquè si en comptes de generar les coord dins el row_template, les genero al SPARQL, ja estarien de forma directa dins el codi generat pel wikidata list.

Seguiré informant. Moltes gràcies

Amadalvarez (discussiócontribucions)

Ja tenim el cas resolt d'invocació a map draw amb geotype=named dins d'una wikidata list: special:permalink/26698787

En essència consisteix a crear la crida a {{coord}} al SPARQL per poder-li posar nom= amb tot allò que es vulgui mostrar, ja que la coord per defecte que genera la wikidat list no té nom= i, si fem servir una row_template per afegir-li, llavors no les veurà el map draw, com passa amb les llistes de proteccions.

És un codi una mica feixuc perquè l'SPARQL no és el millor del món per editar dades i fer parsering. Ell només entén de recuperar dades. A més, per posar-li més complexitat i que tinguéssim una mostra més completa, li he formatat el contingut com si fos una taula.

Per cert, he aprés (amb el dolor de dedicar-li tot el dia a aquesta broma) que el CONCAT només accepta format strings i que si vols concatenar una variable que tingui una altra format, abans l'has de convertir (el cas de coordenades i quantitats) o netejar per treure-li els complements que la fan visible ("http://commons.wikimedia.org/wiki/Special:FilePath/" per imatges; "http://www.wikidata.org/entity/" per l'item. També que el CONCAT no funciona (sense donar error de sintaxi) si li hi poses una variable que no hagi estat definida en alguna sentència que la carregui, com una terna o un BIND.


Bé, ara m'hi posaré amb la fórmula de substitucions recursives que m'has preparat.

Salut !

Resposta a «Map draw i l'expansió de plantilles»