Projects page updated.
This commit is contained in:
parent
a63b3ad10d
commit
ae33211414
|
@ -7,10 +7,7 @@ _filedir = os.path.dirname(_absfile)
|
|||
|
||||
sys.path.insert(0, _filedir)
|
||||
|
||||
try:
|
||||
import mege.wsgi
|
||||
except ImportError:
|
||||
pass#sys.path.insert(0, os.path.join(_filedir, 'mege'))
|
||||
#import mege.wsgi
|
||||
import mege.wsgi
|
||||
|
||||
os.chdir(_filedir)
|
||||
application = mege.wsgi.create_application()
|
||||
|
|
|
@ -0,0 +1,502 @@
|
|||
/* BASICS */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Dejavu Sans', 'Nimbus Sans', Helvetica, Arial, Verdana, sans-serif;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#bodyend {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#metadata {
|
||||
margin: 10px 0;
|
||||
border-style: dashed;
|
||||
border-color: #ccc;
|
||||
border-width: 4px 0 0 0;
|
||||
background: #aaa url('/static/metadata.png') no-repeat right bottom;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#metadata table, #metadata td, #metadata th {
|
||||
border: None;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#toc {
|
||||
background-color: #ddd;
|
||||
border: 2px dotted #aaa;
|
||||
display: inline-block;
|
||||
padding: 4px 9px;
|
||||
margin: 2px 0 10px 4px;
|
||||
}
|
||||
|
||||
#toc li.level1 {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#toc li.level2 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#toc li.level3 {
|
||||
margin-left: 19px;
|
||||
}
|
||||
|
||||
#toc li.level4 {
|
||||
margin-left: 27px;
|
||||
}
|
||||
|
||||
#toc li.level5 {
|
||||
margin-left: 34px;
|
||||
}
|
||||
|
||||
#toc li.level6 {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
|
||||
/* LINKS */
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: #004a7f;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #200cff;
|
||||
}
|
||||
|
||||
/* HEADINGS */
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Dejavu Serif', FreeSerif, 'Nimbus Roman', Georgia, serif;
|
||||
font-weight: normal;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 16px 0 5px 0;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
h1:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 14px 0 5px 0 ;
|
||||
font-size: 25px;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 9px 0 3px 0;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 7px 0 2px 0;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin-top: 5px 0 1px 0;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 3px 0 1px 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Misc. elements */
|
||||
|
||||
p {
|
||||
text-align: justify;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.caption {
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
caption, div.caption > p {
|
||||
background-color: #ddd;
|
||||
padding: 3px;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.caption.center-float img {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
div.caption.left-float img {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.caption.center-float {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.caption.center-float p {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
tt, code, samp, pre, var {
|
||||
font-family: Inconsolata, 'Dejavu Sans Mono', monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin-top: 10px;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
cite, quote {
|
||||
border-bottom: 1px dashed yellow;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 5px 0 5px 20px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
acronym, abbreviation {
|
||||
border-bottom: 1px dashed green;
|
||||
}
|
||||
|
||||
kbd {
|
||||
background-color: #fff;
|
||||
padding: 1px 2px;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
ins {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
|
||||
ul, ol {
|
||||
margin-top: 5px;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
ul > ul, ul > ol, ol > ul, ol > ol {
|
||||
margin-left: 17px;
|
||||
margin-bottom: 0;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
ul > ul, ol > ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
ul > * > ul, ol > * > ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
ul > * * > ul, ol > * * > ul {
|
||||
list-style-type: disc; ! important
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ol > ol, ul > ol {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
|
||||
ol > * > ol, ul > * > ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
ol > * * > ol, ul > * * > ol {
|
||||
list-style-type: decimal; ! important
|
||||
}
|
||||
|
||||
|
||||
/* Definition lists */
|
||||
|
||||
dd {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
dl > dl {
|
||||
margin-left: 21px;
|
||||
padding-left: 5px;
|
||||
border-left: 4px solid #000;
|
||||
}
|
||||
|
||||
|
||||
/* Tables */
|
||||
|
||||
table {
|
||||
margin: 5px auto;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, thead, tbody, tfoot, td, th {
|
||||
border-style: inset;
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
td, th {
|
||||
margin: 0 5px;
|
||||
padding: 1px 3px;
|
||||
border-width: 0 2px 0 0;
|
||||
}
|
||||
|
||||
td:last-child, th:last-child {
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
table, tbody {
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
thead {
|
||||
border-width: 0 0 2px 0;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-width: 2px 0 0 0;
|
||||
}
|
||||
|
||||
thead, tfoot {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Math */
|
||||
|
||||
.math {
|
||||
position: relative;
|
||||
top: 14px;
|
||||
}
|
||||
|
||||
.block.math {
|
||||
position: static;
|
||||
top: 0;
|
||||
margin: 10px auto 0 auto;
|
||||
}
|
||||
|
||||
|
||||
/* Formatting-related classes */
|
||||
|
||||
.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.emph {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.center-align, .center-align > * {
|
||||
text-align: center; ! important
|
||||
}
|
||||
|
||||
.right-align, .right-align > * {
|
||||
text-align: right; ! important
|
||||
}
|
||||
|
||||
.left-align, .left-align > * {
|
||||
text-align: left; ! important
|
||||
}
|
||||
|
||||
.center-float {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.right-float {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.left-float {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.right-float, img.right-float, video.right-float, audio.right-float {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
div.left-float, img.left-float, video.left-float, audio.left-float {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.inline {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.noclear, div.caption.noclear {
|
||||
clear: none; ! important
|
||||
}
|
||||
|
||||
.huge, .huge * {
|
||||
font-size: 25px; ! important
|
||||
}
|
||||
|
||||
.large, .large * {
|
||||
font-size: 18px; ! important
|
||||
}
|
||||
|
||||
.medium, .medium * {
|
||||
font-size: 14px; ! important
|
||||
}
|
||||
|
||||
.small, .small * {
|
||||
font-size: 11px; ! important
|
||||
}
|
||||
|
||||
.tiny, .tiny * {
|
||||
font-size: 9px; ! important
|
||||
}
|
||||
|
||||
|
||||
/* Code highlighting */
|
||||
|
||||
.highlight {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.highlighttable {
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
|
||||
.highlighttable pre {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.highlighttable, .highlighttable .code {
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.linenos {
|
||||
border-width: 0 1px 0 0;
|
||||
border-style: solid;
|
||||
border-size: black;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Projects boxes */
|
||||
|
||||
.projectboxes li {
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 10px 10px 0;
|
||||
width: 230px;
|
||||
overflow: hidden;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.projectboxes li a {
|
||||
display: block;
|
||||
padding: 2px 3px;
|
||||
height: 115px;
|
||||
overflow: hidden;
|
||||
background-position: 0 20px;
|
||||
background-repeat: no-repeat;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.projectboxes li a:link, .projectboxes li a:visited {
|
||||
color: #ffff00;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.projectboxes li a:hover {
|
||||
background-color: #ffff00;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.projectboxes li dfn {
|
||||
display: block;
|
||||
padding: 2px 3px;
|
||||
height: 35px;
|
||||
overflow: hidden;
|
||||
font-style: normal;
|
||||
color: #fff;
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
/* Misc. classes */
|
||||
|
||||
.warning {
|
||||
background-color: #ffa400;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 0 5px;
|
||||
border: 1px outset black;
|
||||
}
|
||||
|
||||
.note {
|
||||
background-color: #c3cfcf;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 0 5px;
|
||||
border: 1px outset black;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
.notice p, .note p, .warning p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#minilogo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.highlighttable .code {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.viewsource {
|
||||
display: none;
|
||||
}
|
|
@ -10,9 +10,6 @@ page_bg = '#e8efef'
|
|||
|
||||
body {
|
||||
/*@preval 'background-color: ' + page_bg + ';\n'@*/
|
||||
font-family: 'Dejavu Sans', 'Nimbus Sans', Helvetica, Arial, Verdana, sans-serif;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#minilogo {
|
||||
|
@ -86,25 +83,6 @@ ul#menulinks {
|
|||
width: auto;
|
||||
}
|
||||
|
||||
#bodyend {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#metadata {
|
||||
margin: 10px 0;
|
||||
border-style: dashed;
|
||||
border-color: #ccc;
|
||||
border-width: 4px 0 0 0;
|
||||
background: #aaa url('/static/metadata.png') no-repeat right bottom;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#metadata table, #metadata td, #metadata th {
|
||||
border: None;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#logo {
|
||||
margin-top: 10px;
|
||||
background: #111111;
|
||||
|
@ -121,419 +99,7 @@ ul#menulinks {
|
|||
" url('/static/metanohi-logo.png') no-repeat center;\n"@*/
|
||||
}
|
||||
|
||||
#toc {
|
||||
background-color: #ddd;
|
||||
border: 2px dotted #aaa;
|
||||
display: inline-block;
|
||||
padding: 4px 9px;
|
||||
margin: 2px 0 10px 4px;
|
||||
}
|
||||
|
||||
#toc li.level1 {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#toc li.level2 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#toc li.level3 {
|
||||
margin-left: 19px;
|
||||
}
|
||||
|
||||
#toc li.level4 {
|
||||
margin-left: 27px;
|
||||
}
|
||||
|
||||
#toc li.level5 {
|
||||
margin-left: 34px;
|
||||
}
|
||||
|
||||
#toc li.level6 {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
|
||||
/* LINKS */
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: #004a7f;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #200cff;
|
||||
}
|
||||
|
||||
/* HEADINGS */
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Dejavu Serif', FreeSerif, 'Nimbus Roman', Georgia, serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 16px 0 5px 0;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
h1:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 14px 0 5px 0 ;
|
||||
font-size: 25px;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 9px 0 3px 0;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 7px 0 2px 0;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin-top: 5px 0 1px 0;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 3px 0 1px 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Misc. elements */
|
||||
|
||||
p {
|
||||
text-align: justify;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.caption {
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
caption, div.caption > p {
|
||||
background-color: #ddd;
|
||||
padding: 3px;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.caption.center-float img {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
div.caption.left-float img {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.caption.center-float {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.caption.center-float p {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
tt, code, samp, pre, var {
|
||||
font-family: Inconsolata, 'Dejavu Sans Mono', monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin-top: 10px;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
cite, quote {
|
||||
border-bottom: 1px dashed yellow;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 5px 20px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
acronym, abbreviation {
|
||||
border-bottom: 1px dashed green;
|
||||
}
|
||||
|
||||
kbd {
|
||||
background-color: #fff;
|
||||
padding: 1px 2px;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
ins {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
|
||||
ul, ol {
|
||||
margin-top: 5px;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
ul > ul, ul > ol, ol > ul, ol > ol {
|
||||
margin-left: 17px;
|
||||
margin-bottom: 0;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
ul > ul, ol > ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
ul > * > ul, ol > * > ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
ul > * * > ul, ol > * * > ul {
|
||||
list-style-type: disc; ! important
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ol > ol, ul > ol {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
|
||||
ol > * > ol, ul > * > ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
ol > * * > ol, ul > * * > ol {
|
||||
list-style-type: decimal; ! important
|
||||
}
|
||||
|
||||
|
||||
/* Definition lists */
|
||||
|
||||
dd {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
dl > dl {
|
||||
margin-left: 21px;
|
||||
padding-left: 5px;
|
||||
border-left: 4px solid #000;
|
||||
}
|
||||
|
||||
|
||||
/* Tables */
|
||||
|
||||
table {
|
||||
margin: 5px auto;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, td, th {
|
||||
border: 2px inset black;
|
||||
}
|
||||
|
||||
td, th {
|
||||
margin: 0 5px;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
|
||||
thead, tfoot {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Math */
|
||||
|
||||
.math {
|
||||
position: relative;
|
||||
top: 14px;
|
||||
}
|
||||
|
||||
.block.math {
|
||||
position: static;
|
||||
top: 0;
|
||||
margin: 10px auto 0 auto;
|
||||
}
|
||||
|
||||
|
||||
/* Formatting-related classes */
|
||||
|
||||
.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.emph {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.center-align, .center-align > * {
|
||||
text-align: center; ! important
|
||||
}
|
||||
|
||||
.right-align, .right-align > * {
|
||||
text-align: right; ! important
|
||||
}
|
||||
|
||||
.left-align, .left-align > * {
|
||||
text-align: left; ! important
|
||||
}
|
||||
|
||||
.center-float {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.right-float {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.left-float {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.right-float, img.right-float, video.right-float, audio.right-float {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
div.left-float, img.left-float, video.left-float, audio.left-float {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.inline {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.noclear, div.caption.noclear {
|
||||
clear: none; ! important
|
||||
}
|
||||
|
||||
.huge, .huge * {
|
||||
font-size: 25px; ! important
|
||||
}
|
||||
|
||||
.large, .large * {
|
||||
font-size: 18px; ! important
|
||||
}
|
||||
|
||||
.medium, .medium * {
|
||||
font-size: 14px; ! important
|
||||
}
|
||||
|
||||
.small, .small * {
|
||||
font-size: 11px; ! important
|
||||
}
|
||||
|
||||
.tiny, .tiny * {
|
||||
font-size: 9px; ! important
|
||||
}
|
||||
|
||||
|
||||
/* Code highlighting */
|
||||
|
||||
.highlight {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.highlighttable {
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
|
||||
.highlighttable pre {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.highlighttable, .highlighttable .code {
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.highlighttable .code {
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.linenos {
|
||||
border-width: 0 1px 0 0;
|
||||
border-style: solid;
|
||||
border-size: black;
|
||||
vertical-align: top;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Misc. classes */
|
||||
|
||||
.warning {
|
||||
background-color: #ffa400;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 0 5px;
|
||||
border: 1px outset black;
|
||||
}
|
||||
|
||||
.note {
|
||||
background-color: #c3cfcf;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 0 5px;
|
||||
border: 1px outset black;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
.notice p, .note p, .warning p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,14 +20,15 @@ if page.is_dynamic:
|
|||
<meta name='keywords'
|
||||
content='programming, hacking, nqpz, portfolio' />
|
||||
<meta name='generator' content='http://metanohi.org/projects/mege/' />
|
||||
<link rel='stylesheet' type='text/css' media='screen, tv'
|
||||
<link rel='stylesheet' type='text/css' href='/static/general.css' />
|
||||
<link rel='stylesheet' type='text/css' media='screen, tv, handheld'
|
||||
href='/static/screen.css' />
|
||||
<link rel='stylesheet' type='text/css' media='print'
|
||||
href='/static/print.css' />
|
||||
<!-- <link rel='stylesheet' type='text/css' media='handheld' -->
|
||||
<!-- href='/static/handheld.css' /> -->
|
||||
<link rel='stylesheet' type='text/css' media='tty'
|
||||
href='/static/tty.css' />
|
||||
<link rel='stylesheet' type='text/css' media='handheld'
|
||||
href='/static/handheld.css' />
|
||||
<link rel='stylesheet' type='text/css' media='print'
|
||||
href='/static/print.css' />
|
||||
<link href='/atom.xml' type='application/atom+xml' rel='alternate'
|
||||
title='metanohi atom feed' />
|
||||
<link rel='schema.DCTERMS' href='http://purl.org/dc/terms/' />
|
||||
|
@ -89,7 +90,7 @@ for x in('projects', 'writings', 'about', 'sitemap'):
|
|||
<!--@eval run_macros(page.metadata_html)@-->
|
||||
<!--@exec
|
||||
if page.is_dynamic:
|
||||
print("<p><a href='{}' rel='nofollow'>View source</a></p>".format(page.sourcepath), end='')@-->
|
||||
print("<p><a href='{}' rel='nofollow' class='viewsource'>View source</a></p>".format(page.sourcepath), end='')@-->
|
||||
</div>
|
||||
</div>
|
||||
<div id='logo'>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#minilogo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.highlighttable .code {
|
||||
width: 100%;
|
||||
}
|
|
@ -32,6 +32,7 @@ redirect {evolution,projects/evolution} http://projects.metanohi.name/evolution/
|
|||
redirect {snake,projects/snake} http://projects.metanohi.name/snake/
|
||||
redirect {words,projects/words} http://projects.metanohi.name/words/
|
||||
redirect {cln,cli} projects/cln/
|
||||
redirect nanonote projects/nanonote/
|
||||
redirect writings/Na.html writings/na
|
||||
redirect writings/digital-sikring.html writings/digital-sikring
|
||||
|
||||
|
|
|
@ -39,6 +39,13 @@ If you take something from metanohi that is not under a public-domain-like
|
|||
license, you are required to attribute Niels Serup and metanohi. When doing
|
||||
that, write something like "Niels Serup, [[http://metanohi.name/][metanohi.name]]".
|
||||
|
||||
A few pages, like [[/projects/][this one]], have a lot of Python code for in-page evaluation
|
||||
and execution. This might not be the most secure thing to allow, but since only
|
||||
one person can change it, it is deemed safe enough. Any such nontrivial code is
|
||||
licensed under the same license as [[/projects/mege/][mege]], i.e. AGPLv3+, unless otherwise
|
||||
noted. This might seem like overkill in some situations, but with only one
|
||||
license in use, simplicity is achieved.
|
||||
|
||||
** Source
|
||||
|
||||
If you wish to use [[/projects/mege/][mege]] for a website, you may wish to use metanohi as a
|
||||
|
@ -59,6 +66,11 @@ Get the subsites:
|
|||
metanohi was created in 2009 as a spinoff of earlier projects with equally
|
||||
undefined purposes.
|
||||
|
||||
*Note:* While most of the content from the old metanohi has been ported to this
|
||||
improved version, the modification times have not been saved. This is why old
|
||||
projects from 2009 and 2010 appear to have been created in July or
|
||||
August, 2011.
|
||||
|
||||
*** "Why the name?"
|
||||
|
||||
There are several reasons:
|
||||
|
|
|
@ -2,12 +2,189 @@
|
|||
#&summary
|
||||
Where all the prominent projects are listed.
|
||||
#&
|
||||
#+license: bysa
|
||||
#+license: cc0
|
||||
#&fullpage
|
||||
#&toc
|
||||
|
||||
* Projects
|
||||
|
||||
<boxes go here>
|
||||
These are my projects, new and old.
|
||||
|
||||
#++exec
|
||||
#+BEGIN_SRC python3
|
||||
top_projs = (
|
||||
'desurveil',
|
||||
'aeltei',
|
||||
('roptoligs', 'roptoligs', 'RPG project with planned modules and games',
|
||||
'http://roptoligs.metanohi.name/'),
|
||||
'sadbipws',
|
||||
('suum', 'SUUM', 'Webcomic drawn in the art style of <em>banal naivism</em>',
|
||||
'http://suum.metanohi.name/'),
|
||||
'alart',
|
||||
'forbi',
|
||||
'shadowloss',
|
||||
'alp',
|
||||
'electruth',
|
||||
'kvigall',
|
||||
'naghni',
|
||||
'forestquest',
|
||||
'dililatum',
|
||||
'noncrawl',
|
||||
'enigma',
|
||||
'wordwork',
|
||||
'simplechat',
|
||||
('nohix', 'nohiX', 'Small web experiments, some of them useful', 'http://nohix.metanohi.name/'),
|
||||
'movact',
|
||||
'wontofor',
|
||||
'totxt',
|
||||
('natur', "Niels' Nature", 'Watch Niels as he spouts nonsense about nature', 'http://nature.metanohi.name/'),
|
||||
('films', 'nohifilms', "Niels' films", 'http://films.metanohi.name/'),
|
||||
)
|
||||
|
||||
other_projs = (
|
||||
'nanonote',
|
||||
('pdfsplit', 'A small Python script to split PDF files on a page-basis',
|
||||
'http://projects.metanohi.name/misc/pdfsplit.tar.gz'),
|
||||
('poemgen', 'A poem generator using Identi.ca blog posts as its source',
|
||||
'http://projects.metanohi.name/poemgen/'),
|
||||
'dotbox',
|
||||
'vit',
|
||||
'qvikconfig',
|
||||
'htmlentitiesdecode',
|
||||
('gadon', 'Creates scary cirle animations reminiscent of heartbeats',
|
||||
'http://projects.metanohi.name/misc/gadon.tgz'),
|
||||
('colchs', 'A simple GTK color chooser',
|
||||
'http://projects.metanohi.name/misc/colchs.tgz'),
|
||||
('wikiaq', 'A quiz system using Wikipedia articles',
|
||||
'http://projects.metanohi.name/misc/wikiaq-0.1.tar.gz'),
|
||||
('BiBBoB 0.1.1', "A simple sound wave generator (older versions: \
|
||||
<a href='http://projects.metanohi.name/misc/bibbob-0.1.tar.gz'>BiBBoB 0.1</a>)",
|
||||
'http://projects.metanohi.name/misc/bibbob-0.1.1.tar.gz'),
|
||||
('data2wav', 'Converts all data to sound (and back again)',
|
||||
'http://projects.metanohi.name/misc/data2wav.tgz'),
|
||||
('pitivi-smil', "A workaround to make PiTiVi XPTV files get rendered using \
|
||||
Kino. No support for PiTiVi's more advanced features.",
|
||||
'http://projects.metanohi.name/misc/pitivi-smil.tgz'),
|
||||
('googolplex', 'A program that attempts to print one googolplex. \
|
||||
If saved to a file, this requires 1 googol + 1 bytes.',
|
||||
'http://projects.metanohi.name/misc/googolplex.c'),
|
||||
('Japanese web apps', 'Javascript/CSS experiments with a theme',
|
||||
'http://projects.metanohi.name/jap/'),
|
||||
('data2png', 'Save data as a png file, and restore the data from the png file.',
|
||||
'http://projects.metanohi.name/misc/data2png.tar.gz'),
|
||||
('stanimate', 'A bash script to aid in the creation of stop motion films.',
|
||||
'http://projects.metanohi.name/misc/stanimate.gz'),
|
||||
('mssrnm (mass rename)', 'A bash script to rename a bunch of files into files \
|
||||
"001.jpg", "002.jpg", "003.jpg", etc.',
|
||||
'http://projects.metanohi.name/misc/mmsrnm.gz'),
|
||||
)
|
||||
|
||||
old_top_projs = (
|
||||
('words', 'words', 'Words and sentences. Not a blog.', 'http://words.metanohi.name/'),
|
||||
('pictures', 'Pictures', 'Pictures uploaded by me', 'http://pictures.metanohi.name/'),
|
||||
('eonaton', 'Eon Aton', 'An underdeveloped RPG-style JS system and a story', 'http://projects.metanohi.name/eonaton/'),
|
||||
'zita',
|
||||
'cln',
|
||||
('algo', 'Algo', 'A JavaScript window manager', 'http://projects.metanohi.name/algo/'),
|
||||
'an5w',
|
||||
('canvas', 'Experimenting with canvas', 'Old HTML canvas element experiments', 'http://projects.metanohi.name/canvas/'),
|
||||
('bsq', 'Brainy Stickman Quiz', 'Sidescroller/quiz based on the HTML canvas element', 'http://projects.metanohi.name/bsq/'),
|
||||
('snake', 'JavaScript Snake', 'Arrow keys to move, PageUp and PageDown to adjust speed.', 'http://projects.metanohi.name/snake/'),
|
||||
('gt3000', 'GT 3000', 'Retro JS mini racing game.', 'http://projects.metanohi.name/gt3000/'),
|
||||
('sq', "Satan's Quest", 'Retro RPG-style JS minigame. You are Gabruel.', 'http://projects.metanohi.name/sq/'),
|
||||
('evolution', 'Evolution', 'Notice the intelligence.', 'http://projects.metanohi.name/evolution/'),
|
||||
)
|
||||
|
||||
other_old_projs = (
|
||||
'bito',
|
||||
'nalgh',
|
||||
('Graphical web experiments',
|
||||
"Some of them'll work, while some of them might crash your browser.",
|
||||
'http://projects.metanohi.name/x/'),
|
||||
('cheatbibtex', '''\
|
||||
Provides an alternative way of dealing with BiBTeX bibliographies. Use BiBLaTeX
|
||||
instead of cheatbibtex (cheatbibtex isn't that great, while BiBLaTeX is quite
|
||||
the LaTeX package).''', 'http://projects.metanohi.name/misc/cheatbibtex-0.1.tar.gz'),
|
||||
('dsktp', 'A JS wm like Algo',
|
||||
'http://projects.metanohi.name/dsktp/'),
|
||||
('webCLI', 'A CLI lookalike in JavaScript with XML',
|
||||
'http://projects.metanohi.name/webcli/'),
|
||||
('lapyrint', 'A stupid maze solver. Includes example labyrinths.',
|
||||
'http://projects.metanohi.name/misc/lapyrint.tar.gz'),
|
||||
('problist', "Probalistic list generator (isn't as intelligent as it sounds).",
|
||||
'http://projects.metanohi.name/misc/problist.tar.gz'),
|
||||
('The Life of a Snowman', "Life can be cruel towards snowmen. This is proof.",
|
||||
'http://projects.metanohi.name/snowman/'),
|
||||
('Katten Pedro (Pedro the Cat)', "A comic I drew during a vacation in Mallorca.",
|
||||
'http://projects.metanohi.name/pedro/'),
|
||||
('Misc.', 'Very old stuff.',
|
||||
'http://projects.metanohi.name/misc/'),
|
||||
)
|
||||
|
||||
#################################
|
||||
|
||||
boxtemplate = '''\
|
||||
<li>
|
||||
<a href='{url}' style='background-image: url(img/{name}.png);'>
|
||||
{title}
|
||||
</a>
|
||||
<dfn>{description}</dfn>
|
||||
</li>
|
||||
'''
|
||||
|
||||
listtemplate = '''\
|
||||
<dt><a href='{url}'>{title}</a></dt>
|
||||
<dd>{description}</dd>
|
||||
'''
|
||||
|
||||
def getparts(name, no_name=False):
|
||||
if isinstance(name, tuple):
|
||||
if no_name:
|
||||
title, desc, url = name
|
||||
else:
|
||||
name, title, desc, url = name
|
||||
else:
|
||||
orgpath = misc.get_org_path(os.path.join(page.pathdir, name))
|
||||
url = './{name}'.format(name=name)
|
||||
if orgpath.endswith('index.org'):
|
||||
url += '/'
|
||||
a = htmlgen.org_to_abstract(orgpath, isfile=True, only_metadata=True)
|
||||
title, desc = a.title, a.summary
|
||||
if no_name:
|
||||
return title, desc, url
|
||||
else:
|
||||
return name, title, desc, url
|
||||
|
||||
def boxprojs(projs):
|
||||
print("<ul class='projectboxes'>")
|
||||
for name in projs:
|
||||
name, title, desc, url = getparts(name)
|
||||
print(boxtemplate.format(name=name, url=url, title=title, description=desc))
|
||||
print('</ul>')
|
||||
|
||||
def listprojs(projs):
|
||||
print("<dl>")
|
||||
for name in projs:
|
||||
title, desc, url = getparts(name, True)
|
||||
print(listtemplate.format(url=url, title=title, description=desc))
|
||||
print('</dl>')
|
||||
#+END_SRC
|
||||
|
||||
** Relatively new
|
||||
|
||||
<@exec boxprojs(top_projs) @>
|
||||
|
||||
*** Others
|
||||
|
||||
<@exec listprojs(other_projs) @>
|
||||
|
||||
|
||||
#+mark: old
|
||||
** Old
|
||||
|
||||
<@exec boxprojs(old_top_projs) @>
|
||||
|
||||
*** Others
|
||||
|
||||
<@exec listprojs(other_old_projs) @>
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
|
@ -0,0 +1,16 @@
|
|||
#+title: My NanoNote
|
||||
#&summary
|
||||
I have a NanoNote.
|
||||
#&
|
||||
#+license: bysa
|
||||
|
||||
* My NanoNote
|
||||
|
||||
#&img;url=glorious-nanonote.jpg, alt=Glorious NanoNote, center
|
||||
|
||||
I own a [[http://sharism.cc/][NanoNote]]. I think it's
|
||||
cool (though I haven't found much use for it yet). The default NanoNote
|
||||
distro comes with an [[http://openwrt.org/][OpenWRT]]-based. It's also possible to run Debian on it
|
||||
(with only 32 MiB RAM..), but it's slow.
|
||||
|
||||
(Originally, this page was meant to have a purpose.)
|
|
@ -0,0 +1,290 @@
|
|||
#+title: Na
|
||||
#&summary
|
||||
A new spoken and written language in development.
|
||||
#&
|
||||
#+license: bysa
|
||||
#&toc
|
||||
|
||||
* Na
|
||||
|
||||
** Introduction
|
||||
|
||||
Na is a probalistic language. The more details you use when explaining an
|
||||
event, the more probable it is that the recipient understands you. This is not
|
||||
very different from typical languages ("a blue building" is more precise than
|
||||
"a building"), but the new thing in Na is that this guesswork is everywhere.
|
||||
|
||||
** Alphabet
|
||||
|
||||
Optimally, Na should have its own alphabet. To aid in its spreading, a subset
|
||||
of the Latin alphabet has been chosen instead:
|
||||
|
||||
: . A E I O B D F G K L N S T V
|
||||
|
||||
All of these letters are pronounced as "short sounds", i.e. "A" is not
|
||||
pronounced as "AAY", but just "AE". This is the same for all wovels. There are
|
||||
two types of correct syllables: those of the form <consonant><wovel> and those
|
||||
of the form <wovel>: "LO" is legal, "LOO", "LLA", "LOI", "AV", and "AEV" are
|
||||
not. Aside from letters, only the period (".") character and space between
|
||||
characters are used. No commas, no colons, no semicolons, nothing else. Also,
|
||||
there is no difference between uppercase and lowercase letters. Sentences are
|
||||
read left-to-right (numbers are written right-to-left; more about that later).
|
||||
|
||||
With only 4 wovels and 10 consonants pronouncations can be very varied and
|
||||
still correct. According to the rules laid out above there are 40 different
|
||||
single-syllable words, 40^2 = 1,600 two-syllable words, 40^3 = 64,000
|
||||
three-syllable words, 40^4 = 2,560,000 four-syllable words, etc. At ten
|
||||
syllables (an extreme case) there are 10,485,760,000,000,000 different
|
||||
10-syllable words and a total number of 10,754,625,641,025,640
|
||||
any-number-of-syllables-less-or-equal-to-10 words.
|
||||
|
||||
|
||||
*** TODO IPA/SAMPA
|
||||
|
||||
The author of this document is not very familiar with IPA, SAMPA, or any other
|
||||
phonetic alphabet.
|
||||
|
||||
** Goals
|
||||
|
||||
Na wants to be a useful language somewhat usable by people. Na has been
|
||||
designed to be fairly global, but since the creator of Na is fluent only in
|
||||
Germanic languages (Danish and English), and because the Latin alphabet is
|
||||
used, Na is non-global. Nevertheless, it /wants/ to be global.
|
||||
|
||||
** Basics
|
||||
|
||||
Na has no nouns, no verbs, no adjectives, no adverbiums, no pronouns, etc. In
|
||||
Na, the core of everything is a word more or less equivalent to the English
|
||||
word "existence". This word is *BA*. All other words are based on this base
|
||||
word (in object oriented programming language terminology, this is equivalent
|
||||
to subclassing classes).
|
||||
|
||||
The groups at the first levels of heritance are:
|
||||
|
||||
+ Existence :: BA
|
||||
+ Number :: BE
|
||||
+ Real number :: BEBA
|
||||
+ Integer :: BEBE
|
||||
+ Fraction :: BEBI
|
||||
+ Imaginary number :: BEBO
|
||||
+ Complex number :: BEDA
|
||||
+ Symbol :: BI
|
||||
+ Letter :: BIBA
|
||||
+ Shape :: BO
|
||||
+ Relation :: DA
|
||||
+ Identity :: DE
|
||||
+ Absolute combiner :: DO
|
||||
+ Identifier :: FA
|
||||
+ Relative combiner :: FE
|
||||
|
||||
|
||||
TODO: Improve on groups.
|
||||
|
||||
These have been chosen not because of perfection, but because Na was designed
|
||||
for human beings (who are not perfect). Nevertheless, these groups should
|
||||
suffice for the time being.
|
||||
|
||||
*Note:* These groups are few on purpose. Many words fit into several
|
||||
groups. Groups are only good for basic things; more complex meanings do not
|
||||
have to be placed in any group.
|
||||
|
||||
Na uses a combination of numbers, identifiers and further subclassing to
|
||||
achieve (some) usability. In Na, what is written as one sentence in
|
||||
e.g. English, can often become more than one sentence. To make a statement in
|
||||
Na, one splits one's sentence into Na sentences, the first ones consisting of
|
||||
definitions and assignments (named variables), and the final one consisting of
|
||||
everything put together in the right order. Often, the order does not matter,
|
||||
and the purpose of the final sentence is really just to point out what
|
||||
definitions you have chosen to use, and that you are done.
|
||||
|
||||
For example, to write "I see a table." in Na, you first extract the objects (in
|
||||
Na, everything is an object) from the sentence. This gives us:
|
||||
|
||||
+ I, the subject
|
||||
+ see, the verb
|
||||
+ a table, the object
|
||||
|
||||
In Na, this is simplified further into:
|
||||
|
||||
+ I
|
||||
+ to see
|
||||
+ table, 1
|
||||
|
||||
The only two possible sense-making combinations using all the words would be to
|
||||
say "I see a table" or "The table sees me". To stress that the first version is
|
||||
wanted, we first combine "I" and "to see", which we then combine with a
|
||||
definition of "table, 1". Finally, we throw the definitions together, so that
|
||||
people will understand that the sentence is over.
|
||||
|
||||
To specify "I", we use one of the members from the identity (*DE*) group. "to
|
||||
see" is also an abstraction, because the "I" can see in different ways (if it's
|
||||
a camera, it doesn't use a human brain to see, for example). Other,
|
||||
non-generalized terms are also available, but they are not part of the
|
||||
abstraction group.
|
||||
|
||||
To create a variable to hold "table, 1", you combine the number 1 with a
|
||||
generic table defined using the shape (*BO*) group.
|
||||
|
||||
A sentence where you combine words into a new word has this structure:
|
||||
|
||||
: <word 1> <word 2>[ <word 3>[...]] DO <new word>.
|
||||
|
||||
This is an absolute combination. It is also possible to make relative
|
||||
combinations where word mixes are not saved in new words:
|
||||
|
||||
: <word 1> <word 2>[...] FE <word(s)>[ ...].
|
||||
|
||||
In these relative cases, the words before an FE mark are evaluated when FE is
|
||||
reached. If FE is left out from such sentences, everything will be evaluated at
|
||||
once. Programmers might find it helpful to think of FE as a stack resetter.
|
||||
|
||||
When you do not use the *DO* or *FE* combiner, you state something:
|
||||
|
||||
: <word 1>[ <word 2>[...]].
|
||||
|
||||
In real languages, this is the equivalent of actually expressing something ---
|
||||
combines do not express anything, they merely aid in preparing for later
|
||||
expressions.
|
||||
|
||||
** Example 1: I see a table
|
||||
|
||||
One can write "I see a table." in two ways: the absolute way with *DO* or the
|
||||
relative way with *FE*.
|
||||
|
||||
Words for "I", "to see", and "table" have not yet been made, but we assume they
|
||||
are BIGUHA, NULASE, and GAVOTI, respectively. The integer 1 is FA BEBE B.
|
||||
|
||||
*** Absolute way
|
||||
|
||||
+ Step 1 :: Combine "I" and "to see" into a sentence using combinations from
|
||||
different groups. Give it a name, e.g. VAVO.
|
||||
+ Step 2 :: Combine the number 1 from the integer (*BEBE*) group with the table
|
||||
from the shape group. Give it a name, e.g. GALO.
|
||||
+ Step 3 :: a) Write VAVO GALO, or b) combine VAVO and GALO into e.g. VALO
|
||||
(could be any word) and go to step four.
|
||||
+ Step 4 :: Write VALO.
|
||||
|
||||
So:
|
||||
|
||||
: biguha nulase do vavo. gavoti fa bebe b do galo. vavo galo do valo. valo.
|
||||
|
||||
or, shorter:
|
||||
|
||||
: biguha nulase do vavo. gavoti fa bebe b do galo. vavo galo.
|
||||
|
||||
The advantage of the first variation is that VALO can be reused again and again
|
||||
until people have forgotten what its temporary meaning is. For example, if you
|
||||
are telling a story where the main character often sees a table, you could do
|
||||
this:
|
||||
|
||||
: valo. valo. valo. valo. valo.
|
||||
|
||||
It is not necessary to define new combinations all the time. Na comes with a
|
||||
small built-in set of combinations which is required learning for all Na
|
||||
speakers. These built-in definitions should be used whenever possible,
|
||||
eventually in subclassed or changed forms, to make it easier to write --- and
|
||||
especially speak --- Na.
|
||||
|
||||
*** Relative way
|
||||
|
||||
The relative way is a bit simpler, shorter and easier to say:
|
||||
|
||||
: biguha nulase fa bebe b fe gavoti.
|
||||
|
||||
In fact, this relative sentence can be made into an absolute sentence:
|
||||
|
||||
: biguha nulase fa bebe b fe gavoti do valo. valo.
|
||||
|
||||
*** Notes
|
||||
|
||||
In speech the relative way is much more useful than the absolute one. Both are
|
||||
useful, though.
|
||||
|
||||
|
||||
** Identifiers
|
||||
|
||||
Some of the groups can be used as identifiers. When an identifier is used one
|
||||
or more arguments are expected. The integer identifier requires one argument
|
||||
(the number), the real number identifier requires two arguments (before and
|
||||
after the point), and the letter identifier requires one argument. To use a
|
||||
group as an identifier, prefix it with *FA*.
|
||||
|
||||
** Numbers
|
||||
|
||||
Numbers in Na are duodecimal, i.e. base 12. The alphabet is used as numbers. A
|
||||
is used for zero, the consonants range from 1 to 10, and O is used for 11. When
|
||||
specifying a number, it should be prefixed with *FA BEBA* (real numbers) or any
|
||||
other name from a subclassed number identifier, and it should be written with
|
||||
the least important bit first (LSB). To pronounce a number, speak the letters
|
||||
of the number one by one.
|
||||
|
||||
Examples:
|
||||
|
||||
+ FA BEBE GB = 16
|
||||
+ FA BEBE D = 2
|
||||
+ FA BEBA D AT = 2.108
|
||||
|
||||
TODO: Improve this strange system
|
||||
|
||||
|
||||
** Example 2: We transported the ship into another dimension
|
||||
|
||||
This sentence is a bit tricky. We start by splitting the sentence into
|
||||
meaningful parts:
|
||||
|
||||
+ we transport (in the past)
|
||||
+ <something specific> ship
|
||||
+ into
|
||||
+ another dimension
|
||||
|
||||
Again, base words have not been defined yet, so we assume that "we (generic)"
|
||||
(we do not know if it is an exclusive or inclusive we) is GELO, "transport" is
|
||||
LOLOTI, the past is BATATO, something specific is SESE, "ship" is MOLOTE,
|
||||
"into" is NIKO, "another" is KOBO, and "dimension" is TILE.
|
||||
|
||||
It appears that it is actually quite easy to create a relative sentence now:
|
||||
|
||||
: batato gelo loloti fe sese molote niko fe fe tile kobo.
|
||||
|
||||
Notice the two FE in the end. Without the second FE, the sentence could also
|
||||
mean "We transported another dimension into the ship.". It would not be wrong
|
||||
to omit the FE, but it would create an ambigious sentence (which can be
|
||||
useful).
|
||||
|
||||
Remember that the following sentence means excactly the same as the previous:
|
||||
|
||||
: loloti batato gelo fe niko molote sese fe fe kobo tile.
|
||||
|
||||
Word order is only important in the case of identifiers and their arguments.
|
||||
|
||||
|
||||
** Example 3: 33+2.4i
|
||||
|
||||
33+2.4i is a complex number. The x+yi notation doesn't fit well in Na. Instead,
|
||||
the *FA BEDA* identifier is used (33+2.4i = 33.0+2.4i):
|
||||
|
||||
: fa beda td a d g.
|
||||
|
||||
Again, this is not perfect.
|
||||
|
||||
|
||||
** TODO Foreign words
|
||||
|
||||
Foreign words present a problem in Na.
|
||||
|
||||
|
||||
** TODO Built-ins
|
||||
|
||||
~1000 words needed to begin with.
|
||||
|
||||
|
||||
** Miscellaneous
|
||||
|
||||
Since there are only 16 characters (14 letters, the period, and space), one
|
||||
character can be stored in only 4 bits, and 2 characters can be stored in one
|
||||
byte.
|
||||
|
||||
Because of the infinitely many relatively different ways to say the same thing,
|
||||
texts and speech can be varied a great deal. This could be quite useful in
|
||||
e.g. poems.
|
||||
|
Loading…
Reference in New Issue