This commit is contained in:
Francesco Mecca 2023-05-10 19:08:15 +02:00
parent a1339bbd9f
commit 7aaa5663c2
13 changed files with 330 additions and 14325 deletions

2
.flake8 Normal file
View File

@ -0,0 +1,2 @@
ignore = E302
max-line-length = 10000

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,6 @@ Let me hold it close and keep it here with me<br></em>
<ul> <ul>
<li><a href="bsg.html">Battlestar Galactica: a guide for watching the show</a></li> <li><a href="bsg.html">Battlestar Galactica: a guide for watching the show</a></li>
<li><a href="primer.html">Capire il film Primer</a></li> <li><a href="primer.html">Capire il film Primer</a></li>
<li><a href="borderlands2.html">Tutta la verità su Borderlands 2 (WIP)</a></li>
<li><a href="memefinance.html">MEMEFINANCE (WIP)</a></li> <li><a href="memefinance.html">MEMEFINANCE (WIP)</a></li>
<li><a href="capodanno22.html">Capodanno 2022</a></li> <li><a href="capodanno22.html">Capodanno 2022</a></li>
<li><a href="capodanno23.html">Capodanno 2022 + 1</a></li> <li><a href="capodanno23.html">Capodanno 2022 + 1</a></li>

View File

@ -1,7 +1,8 @@
#+AUTHOR: bparodi #+AUTHOR: bparodi
#+TITLE: Tutta la verità su Borderlands 2 (WIP) #+TITLE: Borderlands 2
#+options: html-style:nil html-scripts:nil date:nil created:nil #+FILETAGS: :games:pc:borderlands:
#+HTML_HEAD: <link rel="stylesheet" href="articles.css"> # #+options: html-style:nil html-scripts:nil date:nil created:nil
# #+HTML_HEAD: <link rel="stylesheet" href="articles.css">
* Borderlands2 per lezzi * Borderlands2 per lezzi
Borderlands 2 e` un gioco che se affrontato con i giusti obiettivi Borderlands 2 e` un gioco che se affrontato con i giusti obiettivi

View File

@ -1,4 +1,4 @@
#+TITLE: CEMU #+TITLE: CEMU
#+FILETAGS: :emulator:nintendo: #+FILETAGS: :emulation:
#+AUTHOR: bparodi #+AUTHOR: bparodi
Latest used version: [[./files/cemu-2.0-36-windows-x64.zip][Cemu 2.0-36 (Experimental) Pre-release]] Latest used version: [[./files/cemu-2.0-36-windows-x64.zip][Cemu 2.0-36 (Experimental) Pre-release]]

View File

@ -1,5 +1,5 @@
#+TITLE: Mario Kart 8 #+TITLE: Mario Kart 8
#+FILETAGS: :game:wiiu:mario: #+FILETAGS: :games:wiiu:mario:
#+AUTHOR: bparodi #+AUTHOR: bparodi
Works with default configurations provided that you have support for vulkan Works with default configurations provided that you have support for vulkan
async compile. async compile.

224
gamewiki/meta/nintendo.html Normal file
View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2023-05-10 Wed 13:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Nintendo</title>
<meta name="author" content="user" />
<meta name="generator" content="Org Mode" />
<style>
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }
</style>
</head>
<body>
<div id="content" class="content">
<h1 class="title">Nintendo</h1>
<div id="table-of-contents" role="doc-toc">
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="#org1b89164">1. Pages in this category</a></li>
</ul>
</div>
</div>
<div id="outline-container-org1b89164" class="outline-2">
<h2 id="org1b89164"><span class="section-number-2">1.</span> Pages in this category</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li><a href="../wiiu.html">Nintendo Wii U</a></li>
<li><a href="../nus.html">NUS Downloader</a></li>
</ul>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: user</p>
<p class="date">Created: 2023-05-10 Wed 13:56</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
#+TITLE: Nintendo
#+FILETAGS: :nintendo:
** Pages in this category
- [[../wiiu.org][Nintendo Wii U]]
- [[../nus.org][NUS Downloader]]

View File

@ -1,5 +1,5 @@
#+TITLE: New Super Luigi U #+TITLE: New Super Luigi U
#+FILETAGS: :game:wiiu:mario: #+FILETAGS: :games:wiiu:mario:
#+AUTHOR: bparodi #+AUTHOR: bparodi
Refer to [[./newsupermariobrosu.org][New Super Mario Bros U]] page. Refer to [[./newsupermariobrosu.org][New Super Mario Bros U]] page.
** Differences between New Super Mario Bros U ** Differences between New Super Mario Bros U

View File

@ -1,5 +1,5 @@
#+TITLE: New Super Mario Bros U #+TITLE: New Super Mario Bros U
#+FILETAGS: :game:wiiu:mario: #+FILETAGS: :games:wiiu:mario:
#+AUTHOR: bparodi #+AUTHOR: bparodi
Unless you enable the "Crash Fix" graphicPack in the Workarounds section, the Unless you enable the "Crash Fix" graphicPack in the Workarounds section, the
game will crash without the Compatibility Files. game will crash without the Compatibility Files.

89
gamewiki/parser.py Normal file
View File

@ -0,0 +1,89 @@
import glob
class WikiArticle:
def __init__(self, filename):
def tags(content):
for line in content:
if line.startswith('#+FILETAGS:'):
tags = line.replace(' ', '').strip().split(":")[1:]
tags = list(filter(identity, tags))
return tags
raise Exception(f'no tags in {filename}')
def title(content):
for line in content:
if line.startswith('#+TITLE:'):
res = line.strip().replace(' ', '', 1).split(':')
if len(res) > 2: raise Exception(f'Invalid title in {filename}')
return res[-1]
raise Exception(f'No title in {filename}')
with open(filename, 'r') as f:
content = f.readlines()
self.content = [c.strip() for c in content]
self.title = title(content)
self.tags = tags(content)
self.filename = filename
def __repr__(self):
return f'{type(self).__name__}({self.title}, {self.filename}, {self.tags})'
class ContentArticle(WikiArticle): pass
class MetaPage(WikiArticle):
def __init__(self, filename):
self.header = '** Pages in this category'
super().__init__(filename)
if len(self.tags) > 1:
raise Exception(f'Multiple tags in metapage: {self.filename}')
self.meta = self.tags[0]
correct_section = list(filter(lambda l: l == self.header, self.content))
if len(correct_section) != 1:
raise Exception(f'Invalid meta section in {filename}')
def replace_content(self, wikiarticles):
content = map(identity, self.content)
def rep():
for line in content:
if line == self.header: break
else: yield line
yield self.header
for w in wikiarticles:
yield f'- [[../{w.filename}][{w.title}]]'
return rep()
identity = lambda x: x
def merge(d1, d2):
d1.update(d2)
return d1
def files():
return filter(lambda f: f not in {'todo.org'}, glob.glob('*.org'))
def metafiles():
return glob.glob('meta/*.org')
def invert_map(map_: list[WikiArticle]):
'''from {a: [1, 2], b: [2, 3]} to {1: [a], 2: [a, b], 3: [b]}'''
keys = set(i for e in map_ for i in e.tags)
res = dict()
for k in keys:
res[k] = res.get(k, []) + [w for w in map_ if k in w.tags]
return res
def write_meta_page(m: MetaPage, content: list[str]):
with open(m.filename, 'w') as f:
f.writelines(map(lambda l: l+'\n', content))
if __name__ == '__main__':
files = [ContentArticle(f) for f in files()]
meta = [MetaPage(f) for f in metafiles()]
meta = {m.meta: m for m in meta}
print(meta)
tags = invert_map(files)
for t, articles in tags.items():
if t in meta:
newcontent = meta[t].replace_content(articles)
write_meta_page(meta[t], newcontent)

View File

@ -1,5 +1,5 @@
#+TITLE: Playing games for the Wii U #+TITLE: Nintendo Wii U
#+FILETAGS: :guide:emulation: #+FILETAGS: :guide:emulation:nintendo:
#+AUTHOR: bparodi #+AUTHOR: bparodi
We use [[./cemu.org][CEMU]] to emulate the Wii U platform and play the games on the pc. We use [[./cemu.org][CEMU]] to emulate the Wii U platform and play the games on the pc.
The biggest difference compared to other emulators is the workflow to play a The biggest difference compared to other emulators is the workflow to play a

1
htmx.min.js vendored

File diff suppressed because one or more lines are too long