diff --git a/build.ts b/build.ts new file mode 100644 index 0000000..872643e --- /dev/null +++ b/build.ts @@ -0,0 +1,92 @@ +#!/usr/bin/env bun +import data from "./sources.json"; + +const leaningLabels: Record = { + left: "left", + "center-left": "center-left", + center: "center", + "center-right": "center-right", + right: "right", + state: "state-controlled", +}; + +function escapeHtml(str: string): string { + return str + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """); +} + +function generateNav(): string { + const links = data.regions + .map((r) => `${r.name}`) + .join("\n "); + return ``; +} + +function generateCountry(country: { name: string; sources: Array<{ name: string; url: string; leaning: string; description: string }> }): string { + const sources = country.sources + .map((s) => { + const leaningClass = s.leaning.replace("-", "-"); + const leaningText = leaningLabels[s.leaning] || s.leaning; + return `
+ ${escapeHtml(s.name)} + ${leaningText} +
${escapeHtml(s.description)}
+
`; + }) + .join("\n"); + return `
+

${escapeHtml(country.name)}

+${sources} +
`; +} + +function generateRegion(region: { name: string; countries: Array<{ name: string; sources: Array<{ name: string; url: string; leaning: string; description: string }> }> }): string { + const countries = region.countries.map(generateCountry).join("\n"); + return `
+

${escapeHtml(region.name)}

+${countries} +
`; +} + +function generateHtml(): string { + const nav = generateNav(); + const regions = data.regions.map(generateRegion).join("\n\n"); + const totalSources = data.regions.reduce( + (acc, r) => acc + r.countries.reduce((a, c) => a + c.sources.length, 0), + 0 + ); + const totalCountries = data.regions.reduce((acc, r) => acc + r.countries.length, 0); + + return ` + + + + + world news sources + + + +
+

world news sources

+

${totalSources} sources from ${totalCountries} countries

+

news from journalists in their own countries, not filtered through us media

+
+ + ${nav} + +${regions} + + + +`; +} + +const html = generateHtml(); +await Bun.write("index.html", html); +console.log("built index.html"); diff --git a/index.html b/index.html index e7c0bb8..39c0388 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,1321 @@ -

world news sources

-

loading...

+
+

world news sources

+

199 sources from 91 countries

+

news from journalists in their own countries, not filtered through us media

+
+ + + +
+

Europe

+
+

United Kingdom

+
+ BBC News + center +
Britain's public broadcaster, one of the world's largest news organizations
+
+
+ The Guardian + center-left +
Major British daily known for investigative journalism
+
+
+ The Times + center-right +
Britain's newspaper of record
+
+
+ The Telegraph + right +
Conservative broadsheet
+
+
+ Financial Times + center-right +
Leading business newspaper with global reach
+
+
+
+

France

+
+ Le Monde + center-left +
France's newspaper of record
+
+
+ Le Figaro + center-right +
France's oldest national daily
+
+
+ France 24 + center +
French international news network in English
+
+
+
+

Germany

+
+ Deutsche Welle + center +
Germany's public international broadcaster in English
+
+
+ Der Spiegel + center-left +
Weekly magazine known for investigative journalism
+
+
+ Frankfurter Allgemeine + center-right +
Liberal-conservative quality daily
+
+
+
+

Spain

+
+ El País + center-left +
Spain's newspaper of record with English edition
+
+
+ El Mundo + center-right +
Spain's second largest newspaper
+
+
+
+

Italy

+
+ Corriere della Sera + center +
Italy's largest circulation newspaper
+
+
+ La Repubblica + center-left +
Italy's second-largest newspaper
+
+
+
+

Netherlands

+
+ NOS + center +
Dutch public broadcaster trusted by 89% of population
+
+
+ NRC Handelsblad + center-left +
Progressive liberal quality newspaper
+
+
+
+

Poland

+
+ Gazeta Wyborcza + center-left +
Leading liberal voice on democracy issues
+
+
+ Notes from Poland + center +
English-language outlet for international readers
+
+
+
+

Sweden

+
+ SVT + center +
Swedish public broadcaster
+
+
+ The Local Sweden + center +
English-language news for expats
+
+
+
+

Norway

+
+ NRK + center +
Norway's public broadcaster, most trusted news brand
+
+
+
+

Denmark

+
+ DR + center +
Danish public broadcaster
+
+
+
+

Ireland

+
+ RTÉ + center +
Ireland's public broadcaster
+
+
+ The Irish Times + center-left +
Ireland's newspaper of record
+
+
+
+

Switzerland

+
+ Swissinfo + center +
Swiss public broadcaster's international service in 10 languages
+
+
+ Neue Zürcher Zeitung + center-right +
Prestigious daily with English geopolitics section
+
+
+
+

Belgium

+
+ VRT + center +
Flemish public broadcaster
+
+
+ RTBF + center +
French-speaking Belgium's public broadcaster
+
+
+
+

Austria

+
+ ORF + center +
Austria's public broadcaster
+
+
+ Der Standard + center-left +
Social-liberal quality newspaper
+
+
+
+

Portugal

+
+ RTP + center +
Portugal's public broadcaster
+
+
+ Público + center +
Independent quality newspaper
+
+
+
+

Greece

+
+ Kathimerini + center-right +
Leading Greek daily with English edition
+
+
+
+

Czech Republic

+
+ Prague Morning + center +
English-language news for international readers
+
+
+
+

Hungary

+
+ Telex + center-left +
Independent outlet founded after government media takeover
+
+
+ 444.hu + center-left +
Independent online news with fact-checking
+
+
+
+

Romania

+
+ Digi24 + center-left +
Popular news platform, most trusted in Romania
+
+
+ HotNews + center-left +
Online outlet with Reuters and DW partnerships
+
+
+
+

Finland

+
+ Yle + center +
Finnish public broadcaster, most trusted in Finland
+
+
+ Helsinki Times + center +
English-language weekly
+
+
+
+

Russia

+
+ Meduza + center +
Independent Russian news from exile in Latvia
+
+
+ The Moscow Times + center +
Leading independent English-language publication
+
+
+ Novaya Gazeta + center-left +
Nobel Prize-winning independent newspaper
+
+
+ TASS + state-controlled +
Russian state-owned news agency
+
+
+ RT + state-controlled +
Russian government-funded television network
+
+
+
+

Ukraine

+
+ Kyiv Independent + center +
Leading English-language independent news outlet
+
+
+ Ukrainska Pravda + center +
Major Ukrainian online newspaper with English section
+
+
+ Kyiv Post + center +
Ukraine's oldest English-language newspaper
+
+
+
+

Belarus

+
+ Belsat + center +
Independent TV channel broadcasting from Poland
+
+
+ BelTA + state-controlled +
Belarusian state-owned news agency
+
+
+
+ +
+

Middle East

+
+

Israel

+
+ Haaretz + center-left +
Israel's oldest daily, known for liberal stance
+
+
+ The Jerusalem Post + center-right +
Israel's most-read English news website
+
+
+ The Times of Israel + center +
Online-only newspaper, no partisan affiliation
+
+
+ Israel Hayom + right +
Free daily with pro-Netanyahu stance
+
+
+ +972 Magazine + left +
Independent magazine by Israeli and Palestinian journalists
+
+
+
+

Iran

+
+ Iran International + center-right +
London-based network critical of Iranian government
+
+
+ Press TV + state-controlled +
Iranian state-owned English news network
+
+
+ Tehran Times + state-controlled +
English daily owned by Islamic Propagation Organisation
+
+
+
+

Saudi Arabia

+
+ Arab News + state-controlled +
Saudi Arabia's leading English newspaper
+
+
+ Al Arabiya English + state-controlled +
24-hour Saudi-owned TV news channel
+
+
+
+

Turkey

+
+ Daily Sabah + right +
Pro-government English daily aligned with AKP
+
+
+ Hürriyet Daily News + center-right +
Turkey's oldest English daily
+
+
+
+

UAE

+
+ Gulf News + state-controlled +
Most widely sold English newspaper in the UAE
+
+
+ The National + state-controlled +
Abu Dhabi-based with in-depth regional reporting
+
+
+
+

Qatar

+
+ Al Jazeera English + center-left +
International news network reaching 450+ million people
+
+
+ Doha News + center +
Independent English-language news site
+
+
+
+

Egypt

+
+ Mada Masr + center-left +
Independent investigative outlet (blocked in Egypt)
+
+
+ Ahram Online + state-controlled +
English website of Al-Ahram, government-owned
+
+
+
+

Jordan

+
+ The Jordan Times + center +
English daily since 1975
+
+
+
+

Lebanon

+
+ L'Orient Today + center +
English section of L'Orient-Le Jour
+
+
+ Naharnet + center +
Lebanon's leading English news destination
+
+
+
+

Iraq

+
+ Rudaw + center-right +
Kurdistan-based broadcast and digital news
+
+
+ Shafaq News + center +
Iraqi news covering security, economy, politics
+
+
+
+

Palestine

+
+ Ma'an News Agency + center +
Independent NGO media network in West Bank and Gaza
+
+
+ WAFA + state-controlled +
Official news agency of Palestinian Authority
+
+
+
+

Kuwait

+
+ Kuwait Times + center +
First English paper in the Persian Gulf region
+
+
+
+

Yemen

+
+ Yemen Press Agency + center +
English-language coverage of Yemen
+
+
+
+ +
+

Asia

+
+

Japan

+
+ The Japan Times + center +
Japan's oldest English-language daily
+
+
+ NHK World-Japan + center +
Japan's public broadcaster in English
+
+
+ Nikkei Asia + center +
Business-focused English outlet from leading financial paper
+
+
+
+

South Korea

+
+ The Korea Herald + center-right +
South Korea's largest English-language daily
+
+
+ The Korea Times + center-left +
Korea's oldest English daily
+
+
+ Yonhap News + center +
South Korea's national news wire service
+
+
+
+

China

+
+ Xinhua + state-controlled +
Official state news agency of China
+
+
+ Global Times + state-controlled +
Nationalist English tabloid under People's Daily
+
+
+ CGTN + state-controlled +
China's international television network
+
+
+ China Daily + state-controlled +
National English-language newspaper
+
+
+
+

India

+
+ The Hindu + center-left +
Major national daily known for critical coverage
+
+
+ The Indian Express + center-left +
National broadsheet known for investigative journalism
+
+
+ The Times of India + center-right +
India's largest English-language daily
+
+
+ Hindustan Times + center +
Major national daily
+
+
+
+

Indonesia

+
+ The Jakarta Post + center-left +
Indonesia's leading English daily
+
+
+ Tempo English + center +
English edition of respected newsweekly
+
+
+
+

Thailand

+
+ Bangkok Post + center-right +
Thailand's leading English daily
+
+
+ Khaosod English + center-left +
Online English edition with critical coverage
+
+
+
+

Vietnam

+
+ VnExpress International + state-controlled +
English edition of Vietnam's most-read online paper
+
+
+ Vietnam News + state-controlled +
Official English-language daily
+
+
+
+

Philippines

+
+ Rappler + center-left +
Independent outlet founded by Nobel laureate Maria Ressa
+
+
+ Philippine Daily Inquirer + center-left +
Philippines' newspaper of record
+
+
+ ABS-CBN News + center +
News division of largest media network
+
+
+
+

Malaysia

+
+ Malaysiakini + center-left +
Independent online news portal with critical coverage
+
+
+ The Star + center-right +
Malaysia's largest English daily
+
+
+
+

Singapore

+
+ The Straits Times + center-right +
Singapore's newspaper of record
+
+
+ Channel NewsAsia + center-right +
Singapore's 24-hour news channel
+
+
+
+

Taiwan

+
+ Taipei Times + center-left +
Taiwan's only printed English daily
+
+
+ Focus Taiwan + center +
English service of Taiwan's Central News Agency
+
+
+ Taiwan News + center +
English-language news on Taiwan and cross-strait relations
+
+
+
+

Hong Kong

+
+ South China Morning Post + center-left +
Hong Kong's newspaper of record since 1903
+
+
+ Hong Kong Free Press + center +
Independent nonprofit English newspaper
+
+
+
+

Pakistan

+
+ Dawn + center-left +
Pakistan's largest English newspaper, founded by Jinnah
+
+
+ The Express Tribune + center-left +
English daily affiliated with NY Times
+
+
+
+

Bangladesh

+
+ The Daily Star + center-left +
Bangladesh's largest English daily
+
+
+ Dhaka Tribune + center +
Leading English daily with neutral coverage
+
+
+
+

Myanmar

+
+ The Irrawaddy + center-left +
Independent exile media opposed to military rule
+
+
+ Myanmar Now + center-left +
Independent news critical of military government
+
+
+
+

Nepal

+
+ The Kathmandu Post + center +
Nepal's largest English daily
+
+
+
+

Sri Lanka

+
+ Daily Mirror + center +
Sri Lanka's best-selling English newspaper
+
+
+
+ +
+

Africa

+
+

South Africa

+
+ Mail & Guardian + center-left +
Independent weekly known for investigative journalism
+
+
+ Daily Maverick + center +
Independent online publication, rated least biased
+
+
+ News24 + center +
South Africa's largest digital news platform
+
+
+
+

Nigeria

+
+ The Punch + center +
One of Nigeria's most trusted newspapers
+
+
+ Premium Times + center +
Leading investigative newspaper
+
+
+ Vanguard + center +
Independent daily committed to rule of law
+
+
+
+

Kenya

+
+ Daily Nation + center +
Kenya's largest and most influential newspaper
+
+
+ The Standard + center +
Kenya's oldest newspaper
+
+
+ Business Daily + center +
East Africa's leading business newspaper
+
+
+
+

Egypt

+
+ Mada Masr + center-left +
Independent investigative outlet (blocked in Egypt)
+
+
+ Daily News Egypt + center +
Egypt's only independent English daily
+
+
+
+

Morocco

+
+ Morocco World News + center +
English-language news for international audiences
+
+
+ Hespress + center +
Most visited Moroccan news website
+
+
+
+

Algeria

+
+ El Watan + center-left +
Independent French-language newspaper promoting democracy
+
+
+ TSA + center +
Independent news website, most credible in Algeria
+
+
+
+

Ghana

+
+ Citi Newsroom + center +
Ghana's most comprehensive independent news website
+
+
+ Joy Online + center +
One of Ghana's most trusted independent media outlets
+
+
+
+

Ethiopia

+
+ Addis Standard + center +
Independent tri-lingual media, not politically affiliated
+
+
+ The Reporter + center +
Private weekly in English and Amharic
+
+
+
+

Tanzania

+
+ The Citizen + center +
One of Tanzania's most authoritative English dailies
+
+
+
+

Uganda

+
+ Daily Monitor + center-left +
Privately owned, known for critical journalism
+
+
+ New Vision + state-controlled +
Uganda's largest newspaper, 53% government-owned
+
+
+
+

Rwanda

+
+ The New Times + center-right +
Rwanda's oldest English-language newspaper
+
+
+
+

Senegal

+
+ Seneweb + center +
Most popular French-language online news in Senegal
+
+
+
+

Tunisia

+
+ Nawaat + center-left +
Independent citizen journalism platform
+
+
+
+

Zimbabwe

+
+ NewsDay + center +
Independent daily, alternative to state media
+
+
+ Daily News + center +
Independent newspaper known for critical journalism
+
+
+
+

Botswana

+
+ Mmegi + center +
Leading independent newspaper since 1984
+
+
+
+ +
+

Americas

+
+

Canada

+
+ CBC News + center-left +
Canada's public broadcaster
+
+
+ The Globe and Mail + center +
Canada's national newspaper of record
+
+
+ National Post + center-right +
National newspaper with conservative perspective
+
+
+
+

Mexico

+
+ El Universal + center +
One of Mexico's oldest and most respected newspapers
+
+
+ Reforma + center +
Renowned for investigative journalism
+
+
+ Mexico News Daily + center-left +
English-language news on Mexican issues
+
+
+
+

Brazil

+
+ Folha de S.Paulo + center +
One of Brazil's newspapers of record
+
+
+ O Globo + center-right +
Part of Brazil's largest media conglomerate
+
+
+
+

Argentina

+
+ Clarín + center-right +
Argentina's largest newspaper
+
+
+ La Nación + center-right +
Argentina's leading conservative newspaper
+
+
+ Página/12 + left +
Left-leaning perspective distinct from mainstream
+
+
+
+

Colombia

+
+ El Tiempo + center +
Colombia's most read newspaper
+
+
+ El Espectador + center-left +
Renowned for investigative journalism
+
+
+ Colombia Reports + center +
English-language independent news source
+
+
+
+

Chile

+
+ El Mercurio + right +
Chile's oldest newspaper with conservative line
+
+
+ BioBioChile + center +
One of Chile's most visited online news portals
+
+
+
+

Peru

+
+ El Comercio + center-right +
Peru's oldest privately owned newspaper
+
+
+ La República + center-left +
Known for opposition to Fujimori
+
+
+
+

Venezuela

+
+ Efecto Cocuyo + center +
Independent digital outlet by veteran journalists
+
+
+ El Pitazo + center +
Independent digital news amid press restrictions
+
+
+ Caracas Chronicles + center +
English-language news explaining Venezuelan affairs
+
+
+
+

Cuba

+
+ 14ymedio + center +
Cuba's first independent digital news outlet
+
+
+ Granma + state-controlled +
Official organ of the Communist Party of Cuba
+
+
+
+

Ecuador

+
+ El Universo + center +
One of Ecuador's most widely circulated publications
+
+
+
+

Bolivia

+
+ El Deber + center-right +
Known for investigative reporting
+
+
+ Los Tiempos + center +
Independent newspaper with broad coverage
+
+
+
+

Uruguay

+
+ El País + center-right +
Uruguay's largest circulation newspaper
+
+
+ La Diaria + center-left +
Known for investigative journalism
+
+
+
+

Costa Rica

+
+ The Tico Times + center +
Costa Rica's largest English-language newspaper
+
+
+
+

Panama

+
+ La Prensa + center-right +
Panama's newspaper of record, known for investigative journalism
+
+
+
+

Guatemala

+
+ Prensa Libre + center +
Guatemala's newspaper of record
+
+
+ Plaza Pública + center-left +
Digital investigative journalism outlet
+
+
+
+

Jamaica

+
+ The Jamaica Gleaner + center +
Jamaica's oldest newspaper, renowned for political reporting
+
+
+
+ +
+

Oceania

+
+

Australia

+
+ ABC News Australia + center-left +
Australia's public broadcaster, most trusted news source
+
+
+ The Sydney Morning Herald + center-left +
Australia's oldest continuously published newspaper
+
+
+ The Australian + center-right +
News Corp national newspaper
+
+
+ SBS News + center +
Multicultural public broadcaster
+
+
+
+

New Zealand

+
+ RNZ + center +
New Zealand's public broadcaster, highest trust scores
+
+
+ New Zealand Herald + center +
New Zealand's largest newspaper
+
+
+ Stuff + center-left +
Major NZ digital news platform
+
+
+
+

Fiji

+
+ The Fiji Times + center +
Fiji's oldest and most established newspaper
+
+
+
+

Papua New Guinea

+
+ The National + center +
PNG's top-selling newspaper
+
+
+ Post-Courier + center +
PNG's leading daily since 1969
+
+
+
+ +
+

International

+
+

Wire Services

+
+ Reuters + center +
Global wire service rated least biased, 80+ bureaus worldwide
+
+
+ Associated Press + center +
Non-profit cooperative with 243 bureaus in 120 countries
+
+
+ AFP + center +
Third-largest global wire service, 200 bureaus in 150 countries
+
+
+
+

International Broadcasters

+
+ BBC World Service + center +
British public broadcaster's international service in 40+ languages
+
+
+ Deutsche Welle + center +
Germany's international broadcaster in 30 languages
+
+
+ Al Jazeera English + center-left +
Qatar-based network with Global South perspectives
+
+
+
+

Regional

+
+ Euronews + center +
Multilingual pan-European news network
+
+
+ The Diplomat + center +
Asia-Pacific current affairs magazine
+
+
+ AllAfrica + center +
Largest aggregator of African news from 110+ organizations
+
+
+ Africanews + center +
Pan-African news channel, sister to Euronews
+
+
+
+ + - + \ No newline at end of file diff --git a/index.ts b/index.ts deleted file mode 100644 index f67b2c6..0000000 --- a/index.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello via Bun!"); \ No newline at end of file diff --git a/style.css b/style.css index 9a70918..4ba1d57 100644 --- a/style.css +++ b/style.css @@ -6,8 +6,24 @@ body { line-height: 1.5; } +header { + margin-bottom: 2rem; +} + h1 { - margin-bottom: 0.5rem; + margin-bottom: 0.25rem; +} + +.subtitle { + margin: 0; + font-size: 0.9rem; + color: #666; +} + +.intro { + margin: 0.5rem 0 0 0; + font-style: italic; + color: #555; } h2 { @@ -67,3 +83,20 @@ nav a { nav a:hover { background: #e5e7eb; } + +h3 { + margin: 1rem 0 0.5rem 0; + font-size: 1.1rem; +} + +footer { + margin-top: 3rem; + padding-top: 1rem; + border-top: 1px solid #ddd; + font-size: 0.85rem; + color: #666; +} + +footer p { + margin: 0.25rem 0; +}