mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-25 05:54:25 -04:00
(pl)(census) handle edge cases (hide histogram of age by age, hide comparison with last year if not available)
This commit is contained in:
parent
2faf01072f
commit
e1c131fb76
@ -61,7 +61,7 @@ Osoby niebinarne są niebinarne, niezależnie jaką płeć im przypisało społe
|
||||
Natomiast niezaprzeczalnie istnieją różnice w socjalizacji – chcemy zbadać jak mocno, o ile w ogóle,
|
||||
wpływają one na czyjąś tożsamość, decyzje oraz podejście do niebinarności.
|
||||
|
||||
{census_comparisons}
|
||||
{census_comparisons:by_location,by_agab}
|
||||
|
||||
{graph=/docs-local/spis-2024/%group%/age}
|
||||
|
||||
@ -228,18 +228,17 @@ Na pierwszy rzut oka, wyniki pytania nt. form używanych w mowie są bardzo podo
|
||||
{census_groups}
|
||||
|
||||
{json=spis-2024/%group%/stats.json=pronounGroups.unikanie form nacechowanych płciowo}% osób respondenckich
|
||||
używa wobec siebie [form unikających deklarowania płci](/unikanie),
|
||||
({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroups.unikanie form nacechowanych płciowo} p.p. w stosunku do zeszłego roku).
|
||||
używa wobec siebie [form unikających deklarowania płci](/unikanie){optional}, ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroups.unikanie form nacechowanych płciowo} p.p. w stosunku do zeszłego roku){/optional}.
|
||||
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: binarne}% osób używa form binarnych (rodzaj męski i/lub żeński) ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: binarne} p.p.),
|
||||
ale tylko {json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: wyłącznie binarne}% _wyłącznie_ form binarnych ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: wyłącznie binarne} p.p.).
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: binarne zamiennie}% osób używa zamienne form męskich i żeńskich ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: binarne zamiennie} p.p.).
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: binarne}% osób używa form binarnych (rodzaj męski i/lub żeński){optional} ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: binarne} p.p.){/optional},
|
||||
ale tylko {json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: wyłącznie binarne}% _wyłącznie_ form binarnych{optional} ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: wyłącznie binarne} p.p.){/optional}.
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: binarne zamiennie}% osób używa zamienne form męskich i żeńskich{optional} ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: binarne zamiennie} p.p.){/optional}.
|
||||
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: niebinarne}% osób używa form niebinarnych (dokładnie tyle samo, co w zeszłorocznym spisie),
|
||||
przy czym {json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: wyłącznie niebinarne}% _wyłącznie_ form niebinarnych ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: wyłącznie niebinarne} p.p.).
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: niebinarne}% osób używa form niebinarnych{optional} (dokładnie tyle samo, co w zeszłorocznym spisie){/optional},
|
||||
przy czym {json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: wyłącznie niebinarne}% _wyłącznie_ form niebinarnych{optional} ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: wyłącznie niebinarne} p.p.){/optional}.
|
||||
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: mnogie}% osób używa którejś z (lub kilku) form mnogich ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: mnogie} p.p.).
|
||||
Spadek ich popularności o {json=spis-2024/%group%/stats.json=^diff.spis-2022.pronounGroupsAggr.łącznie: mnogie} punkta procentowego to najistotniejsza różnica w stosunku do odpowiedzi na pytanie nt. mowy z zeszłorocznego spisu.
|
||||
{json=spis-2024/%group%/stats.json=pronounGroupsAggr.łącznie: mnogie}% osób używa którejś z (lub kilku) form mnogich{optional} ({json=spis-2024/%group%/stats.json=@diff.spis-2023.pronounGroupsAggr.łącznie: mnogie} p.p.){/optional}.
|
||||
{optional}Spadek ich popularności o {json=spis-2024/%group%/stats.json=^diff.spis-2022.pronounGroupsAggr.łącznie: mnogie} punkta procentowego to najistotniejsza różnica w stosunku do odpowiedzi na pytanie nt. mowy z zeszłorocznego spisu.{/optional}
|
||||
|
||||
{/census_groups}
|
||||
|
||||
|
@ -2,13 +2,22 @@ let jsons = undefined;
|
||||
let census_groups = {};
|
||||
let census_comparisons = {};
|
||||
|
||||
const mainPlusDetails = (dict, wide) => (_, content) => {
|
||||
const mainPlusDetails = (dict, wide) => (_, keys, content) => {
|
||||
let selectedDict = {};
|
||||
if (keys === undefined) {
|
||||
selectedDict = dict;
|
||||
} else {
|
||||
for (let key of keys.substring(1).split(',')) {
|
||||
selectedDict[key] = dict[key];
|
||||
}
|
||||
}
|
||||
|
||||
return `
|
||||
<div class="${wide ? 'wide-escape' : ''}">
|
||||
<p>${content.replace(/%group%/g, 'general').replace(/<iframe class="graph" /g, '<iframe class="graph border" ')}</p>${
|
||||
Object.keys(dict).map((group) => `
|
||||
<details class="border mb-3">
|
||||
<summary class="bg-light px-2 py-1" onclick="this.parentElement.querySelector('iframe.graph').contentDocument.location.reload()">${dict[group]}</summary>
|
||||
Object.keys(selectedDict).map((group) => `
|
||||
<details class="border mb-3" open>
|
||||
<summary class="bg-light px-2 py-1" onclick="this.parentElement.querySelector('iframe.graph').contentDocument.location.reload()">${selectedDict[group]}</summary>
|
||||
<div class="border-top p-md-3 bg-white">${content.replace(/%group%/g, group)}</div>
|
||||
</details>`)
|
||||
.join('\n')
|
||||
@ -106,7 +115,7 @@ export default async function parseMarkdown(markdown, translator) {
|
||||
.replace(/<table>/g, '<div class="table-responsive"><table class="table table-striped small">')
|
||||
.replace(/<\/table>/g, '</table></div>')
|
||||
.replace(/<a href="http/g, '<a target="_blank" rel="noopener" href="http')
|
||||
.replace(/<p>{details=(.+?)}<\/p>(.+?)<p>{\/details}<\/p>/gms, '<details class="border mb-3"><summary class="bg-light p-3">$1</summary><div class="border-top p-3 bg-white">$2</div></details>')
|
||||
.replace(/<p>{details=(.+?)}<\/p>(.+?)<p>{\/details}<\/p>/gms, '<details open class="border mb-3"><summary class="bg-light p-3">$1</summary><div class="border-top p-3 bg-white">$2</div></details>')
|
||||
.replace(/<img (.*?)>/g, (_, attrs) => {
|
||||
let classNames = 'border';
|
||||
const m = attrs.match(/alt="\{(.*)\}/);
|
||||
@ -128,9 +137,8 @@ export default async function parseMarkdown(markdown, translator) {
|
||||
census_comparisons = JSON.parse(value.replace(/"/g, '"'));
|
||||
return '';
|
||||
})
|
||||
|
||||
.replace(/<p>{census_groups}<\/p>(.+?)<p>{\/census_groups}<\/p>/gms, mainPlusDetails(census_groups, false))
|
||||
.replace(/<p>{census_comparisons}<\/p>(.+?)<p>{\/census_comparisons}<\/p>/gms, mainPlusDetails(census_comparisons, true))
|
||||
.replace(/<p>{census_groups(:.+?)?}<\/p>(.+?)<p>{\/census_groups}<\/p>/gms, mainPlusDetails(census_groups, false))
|
||||
.replace(/<p>{census_comparisons(:.+?)?}<\/p>(.+?)<p>{\/census_comparisons}<\/p>/gms, mainPlusDetails(census_comparisons, true))
|
||||
|
||||
.replace(/{json=([^=}]+)=([^=}]+)}/g, fetchJson)
|
||||
.replace(/<h1 id="🏳️🌈-/g, '<h1 id="') // license header
|
||||
@ -141,6 +149,11 @@ export default async function parseMarkdown(markdown, translator) {
|
||||
|
||||
content = content.replace(/{table_of_contents}/g, generateToC(content, translator));
|
||||
|
||||
content = content.replace(/{optional}(.+?){\/optional}/gms, (_, content) => {
|
||||
if (content.includes('badge bg-danger')) { return ''; }
|
||||
return content;
|
||||
});
|
||||
|
||||
const titleMatch = content.match('<h1[^>]*>(.+?)</h1>');
|
||||
const title = titleMatch ? titleMatch[1] : null;
|
||||
const imgMatch = content.match('<img src="([^"]+)"[^>]*>');
|
||||
|
Loading…
x
Reference in New Issue
Block a user