diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | DND/PsionicSchools.html | 495 | ||||
-rw-r--r-- | DND/SoP.txt | 226 | ||||
-rw-r--r-- | HACKING.md | 1 | ||||
-rw-r--r-- | Makefile | 46 | ||||
m--------- | WaterdeepBazaar (renamed from DND/WaterdeepBazaar) | 0 | ||||
-rwxr-xr-x | bin/index | 14 | ||||
-rw-r--r-- | bin/index.atom.erb | 25 | ||||
-rw-r--r-- | bin/index.md.erb | 13 | ||||
-rwxr-xr-x | bin/page | 10 | ||||
-rw-r--r-- | bin/page.html.erb | 32 | ||||
-rw-r--r-- | bin/pandoc.rb | 95 | ||||
-rwxr-xr-x | bin/post-commit | 25 | ||||
-rw-r--r-- | bin/util.rb | 111 | ||||
-rwxr-xr-x | bin/write-atomic | 21 | ||||
-rwxr-xr-x | bin/write-ifchanged | 25 | ||||
-rwxr-xr-x | git-setup | 6 | ||||
-rw-r--r-- | index.html | 79 | ||||
-rw-r--r-- | src/Andrew.md (renamed from Andrew.txt) | 0 | ||||
-rw-r--r-- | src/DND/Background.orig.png (renamed from images/Background.png) | bin | 4791704 -> 4791704 bytes | |||
-rw-r--r-- | src/DND/Background.orig.small.png (renamed from DND/Background2.png) | bin | 1302911 -> 1302911 bytes | |||
-rw-r--r-- | src/DND/Background.png (renamed from DND/Background3.png) | bin | 2403525 -> 2403525 bytes | |||
-rw-r--r-- | src/DND/PsionicSchools.css | 9 | ||||
-rw-r--r-- | src/DND/PsionicSchools.org (renamed from org/PsionicSchools.org) | 9 | ||||
-rw-r--r-- | src/DND/Psionist.html (renamed from DND/Psionist.html) | 0 | ||||
-rw-r--r-- | src/DND/SpellGauntlet.org (renamed from DND/SpellGauntlet.txt) | 0 | ||||
-rw-r--r-- | src/DND/Tastavi.html (renamed from DND/Tastavi.html) | 0 | ||||
-rw-r--r-- | src/favicon.gif (renamed from ADM.gif) | bin | 260 -> 260 bytes | |||
-rw-r--r-- | src/favicon.ico (renamed from ADM.ico) | bin | 626 -> 626 bytes | |||
-rw-r--r-- | src/index.md | 30 | ||||
-rw-r--r-- | src/main.css (renamed from main.css) | 27 | ||||
-rw-r--r-- | src/main.js (renamed from main.js) | 14 |
32 files changed, 472 insertions, 842 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6a3417b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/out/ diff --git a/DND/PsionicSchools.html b/DND/PsionicSchools.html deleted file mode 100644 index 9ba00dc..0000000 --- a/DND/PsionicSchools.html +++ /dev/null @@ -1,495 +0,0 @@ -<?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>
-<title>PsionicSchools</title>
-<!-- 2016-12-28 Wed 21:09 -->
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-<meta name="generator" content="Org-mode" />
-<style type="text/css">
- <!--/*--><![CDATA[/*><!--*/
- .title { text-align: center; }
- .todo { font-family: monospace; color: red; }
- .done { color: green; }
- .tag { background-color: #eee; font-family: monospace;
- padding: 2px; font-size: 80%; font-weight: normal; }
- .timestamp { color: #bebebe; }
- .timestamp-kwd { color: #5f9ea0; }
- .right { margin-left: auto; margin-right: 0px; text-align: right; }
- .left { margin-left: 0px; margin-right: auto; text-align: left; }
- .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 #ccc;
- box-shadow: 3px 3px 3px #eee;
- padding: 8pt;
- font-family: monospace;
- overflow: auto;
- margin: 1.2em;
- }
- pre.src {
- position: relative;
- overflow: visible;
- padding-top: 1.2em;
- }
- pre.src:before {
- display: none;
- position: absolute;
- background-color: white;
- top: -10px;
- right: 10px;
- padding: 3px;
- border: 1px solid black;
- }
- pre.src:hover:before { display: inline;}
- pre.src-sh:before { content: 'sh'; }
- pre.src-bash:before { content: 'sh'; }
- pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
- pre.src-R:before { content: 'R'; }
- pre.src-perl:before { content: 'Perl'; }
- pre.src-java:before { content: 'Java'; }
- pre.src-sql:before { content: 'SQL'; }
-
- table { border-collapse:collapse; }
- caption.t-above { caption-side: top; }
- caption.t-bottom { caption-side: bottom; }
- td, th { vertical-align:top; }
- th.right { text-align: center; }
- th.left { text-align: center; }
- th.center { text-align: center; }
- td.right { text-align: right; }
- td.left { text-align: left; }
- td.center { text-align: center; }
- dt { font-weight: bold; }
- .footpara:nth-child(2) { display: inline; }
- .footpara { display: block; }
- .footdef { margin-bottom: 1em; }
- .figure { padding: 1em; }
- .figure p { text-align: center; }
- .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; }
- /*]]>*/-->
-</style>
-<style type="text/css">#content { padding: 0px 16%; width: 68%; } body { background: url(Background3.png) repeat-y; background-size: 100%;} </style>
-<script type="text/javascript">
-/*
-@licstart The following is the entire license notice for the
-JavaScript code in this tag.
-
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
-
-The JavaScript code in this tag is free software: you can
-redistribute it and/or modify it under the terms of the GNU
-General Public License (GNU GPL) as published by the Free Software
-Foundation, either version 3 of the License, or (at your option)
-any later version. The code is distributed WITHOUT ANY WARRANTY;
-without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
-
-As additional permission under GNU GPL version 3 section 7, you
-may distribute non-source (e.g., minimized or compacted) forms of
-that code without the copy of the GNU GPL normally required by
-section 4, provided you include this license notice and a URL
-through which recipients can access the Corresponding Source.
-
-
-@licend The above is the entire license notice
-for the JavaScript code in this tag.
-*/
-<!--/*--><![CDATA[/*><!--*/
- function CodeHighlightOn(elem, id)
- {
- var target = document.getElementById(id);
- if(null != target) {
- elem.cacheClassElem = elem.className;
- elem.cacheClassTarget = target.className;
- target.className = "code-highlighted";
- elem.className = "code-highlighted";
- }
- }
- function CodeHighlightOff(elem, id)
- {
- var target = document.getElementById(id);
- if(elem.cacheClassElem)
- elem.className = elem.cacheClassElem;
- if(elem.cacheClassTarget)
- target.className = elem.cacheClassTarget;
- }
-/*]]>*///-->
-</script>
-</head>
-<body>
-<div id="content">
-<h1 class="title">PsionicSchools</h1>
-<p>
-<code>=</code> Schools of Psionics <code>=</code>
-</p>
-
-<p>
-From what I've seen, the most recent few 5e Unearthed Arcana dealing
-with "Psionics and the Mystic" have been getting somewhat mixed
-reviews. I don't think this is because of the mechanics–or rather
-not COMPLETELY because of the mechanics. Mechanics for psionics have
-always been weird, and the 5e style is good for D&D, so maintaining
-that is good and won't get any gripes from me.
-</p>
-
-<p>
-But I think that no matter what purely mechanical tweaks the UA team
-has planned for the Mystic, the general lukewarm reception isn't going
-to change unless we get something else squared away first. Something
-a little deeper–something that helps us grasp Psionics in the same
-way we grasp Magic: with a complete and intuitive system.
-</p>
-
-<p>
-With Weave-based magic there are schools which somewhat delineate
-magical effects (conjuration, divination, etc), but that's not exactly
-what I mean. Not to bash the magical schools (any system will have
-inconsistencies–mine notwithstanding), few people really
-understand what it means to be a wizard by what school of magic they
-specialize in. An enchantment wizard isn't fundamentally different
-from an evocation one. But a wizard is different than a bard or a
-warlock. These "Schools of Psionics" are as much about the state of
-mind of the manifester and the method for manifestation as they are
-about the outcome of the manifestation (there are several of my
-Psionic "schools" that may each manifest effects in the transmutation
-school of magic for instance, but each according to its own particular
-rules).
-</p>
-
-<p>
-What I mean is this:
-</p>
-
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-
-
-<colgroup>
-<col class="left" />
-
-<col class="left" />
-
-<col class="left" />
-</colgroup>
-<thead>
-<tr>
-<th scope="col" class="left"> </th>
-<th scope="col" class="left">Introvertion (a)</th>
-<th scope="col" class="left">Extroversion (b)</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="left">Mind (1)</td>
-<td class="left">Cogitation</td>
-<td class="left">Domination</td>
-</tr>
-
-<tr>
-<td class="left">Body (2)</td>
-<td class="left">Sympathy</td>
-<td class="left">Manifestation</td>
-</tr>
-
-<tr>
-<td class="left">Time (3)</td>
-<td class="left">Prescience</td>
-<td class="left">Anticipation</td>
-</tr>
-
-<tr>
-<td class="left">Space (4)</td>
-<td class="left">Metapsionics</td>
-<td class="left">Apportation</td>
-</tr>
-</tbody>
-</table>
-
-<p>
-There are eight categories split into two primary focuses and four
-topical domains, and each of the eight describes HOW a power is
-manifested. It tells us what our character is DOING to get the
-blasted power to work. As a D&D culture, we know how wizards do it,
-careful study and recitation, memorization, etc. We know how Bards do
-it, they hear the music of creation and wrap their words in it. All
-these effects are propagated through Mystra's Weave and are bound by
-it's limitations. But nobody has a clue how Psionics works. Or
-rather, we all have half-baked ideas that don't jive.
-</p>
-
-<p>
-In order for this to work, we need to know in canon, what it means to
-BE A PSIONIST and manifest powers. I'm probably no different than
-anybody else in my half-baked understanding, but as a Physicist and an
-editor I feel it is my duty to try to make sense of this mess.
-</p>
-
-<p>
-First off, since we don't have a Weave, but all magic needs a medium,
-lets make one. Lets call it the Psionic Field. Created spontaneously
-from the first thinking being (or Source), the Psionic Field exists on
-any plane containing thought. Some sources of psionic power are
-stronger than others, but all thinking things produce some connection
-to the field (some might wonder if magic and the Weave itself is
-naught but an echo of Mystra's or Auppenser's mind–and in that light
-perhaps the Psionic Field is not so foreign after all).
-</p>
-
-<p>
-With that medium in place, the world of Psionics slowly falls into
-place as well. Detailed descriptions of the eight schools follow:
-</p>
-
-<p>
-1a) Cogitation - Clarity of thought, memory, action, and connection to
-the Psionic Field.
-</p>
-
-<p>
-Cogitation is often one's first exposure to Psionics. It's a
-clear-mindedness that opens up your own mind to see itself for the
-first time, and beyond that, to sense the edges of the minds of
-others. It includes the stereotypical bloody-nosed mind reading,
-mimicry, and perfect recall.
-</p>
-
-<p>
-Examples of Cogitation include "Detect Thoughts" and "Mind Meld" and
-the ability to learn or borrow skills and proficiencies directly from
-the minds of others.
-</p>
-
-<p>
-1b) Domination - Exert dominating willpower over other minds.
-</p>
-
-<p>
-Once you've encountered sources outside yourself it is only natural to
-try to influence or even dominate them. Exerting your will into the
-minds of others isn't the same as reading their thoughts, you might
-not know what your target is thinking, only that it will succumb.
-</p>
-
-<p>
-Examples of Domination include "Command", "Suggestion", and "Dominate
-Person".
-</p>
-
-<p>
-2a) Sympathy - Exerting influence upon sympathetic objects.
-</p>
-
-<p>
-The Psionic Field is produced by thinking creatures, but it can leave
-an imprint on even mundane objects and materials. Objects may be
-imbued with Psionic energy to produce a variety of effects, and may
-soak up ambient energy by just sitting within the Psionic Field which
-can be later be discerned by a Psionist to know about an object's
-history. This is done by expanding your sense of self outward from
-your mind and body and into the object.
-</p>
-
-<p>
-Examples of Sympathy include "Psychometry", "Animate Objects", and
-"Guards and Wards".
-</p>
-
-<p>
-2b) Manifestion - Creating both illusory and physically manipulable
-constructs of pure thought.
-</p>
-
-<p>
-By focusing and condensing ideas down to their most concrete forms,
-Psionists can manifest the essence of a thing as either an illusion or
-as a real physical object made of Astral matter (ectoplasm). Astral
-matter is most commonly associated with the Astral plane (or plane of
-thought) where it occurs naturally, but can exist anywhere with a
-sufficient psionic field for a Psionist to conjure it.
-</p>
-
-<p>
-Examples of Manifestation include "Mage Hand", "Conjure Astral
-Construct", and "Programmed Illusion"
-</p>
-
-<p>
-3a) Prescience - See and feel other places and times.
-</p>
-
-<p>
-Because the actions of thinking things (sources of psionics) are not
-stagnant, their movements create ripples in the Psionic Field.
-Births, deaths, and exchanges of knowledge leave their marks. By
-studying these echos and patterns, Psionists can discern events that
-occurred in distant parts of the world or even in the past or future.
-</p>
-
-<p>
-Examples of Prescience include "Detect Poison and Disease", "Scrying",
-and "Foresight".
-</p>
-
-<p>
-3b) Anticipation - Solidify expectation and possibility into reality.
-</p>
-
-<p>
-In many ways the Universe itself is just composed of the interactions
-of groups of sources of psionism and the objects being pulled in their
-wake (albeit a rather large number of each). With an awareness of the
-way ripples propagate in the Psionic Field and by using the techniques
-of Sympathy but directing them outwards, a Psionist can begin to
-subtly manipulate expectation and the laws of Physics themselves.
-</p>
-
-<p>
-Examples of Anticipation include "Heat Metal", "Telekinesis", "Reverse
-Gravity", and "Time Stop".
-</p>
-
-<p>
-4a) Metapsionics - Manipulating sources of Psionism and their direct
-effects.
-</p>
-
-<p>
-The way that thinking creatures interact with the Psionic Field is
-complicated and diverse, just as the creatures which produce it are
-themselves. By studying how the minds of Psionically-attuned
-creatures create Psionic and even Magical Weave-based effects, a
-Psionist can learn to imitate or manipulate psionic effects as they
-see them (and sometimes use what they've learned to imbue limited
-psionic potential into others).
-</p>
-
-<p>
-Examples of Metapsionics include "Detect Magic", "Counterspell", and
-"Awaken"
-</p>
-
-<p>
-4b) Apportation - Pulling and pushing on planar boundaries with the
-Psionic Field.
-</p>
-
-<p>
-Since the material plane is not the only one with thinking creatures,
-some far-minded Psionists can detect the Psionic Field existing on
-other planes of existence and pull on these remote fields of power.
-Doing so can banish alien creatures, abjure harmful elemental effects,
-or even tear open portals to distant planes and places.
-</p>
-
-<p>
-Examples of Apportation include "Dimension Door", "Banishment", and
-"Whitefire Portal"
-</p>
-
-<p>
-<code>= Post Script =</code>
-</p>
-
-<p>
-Q: Specifics (where do these fit in?) - A: Answer
-</p>
-
-<p>
-What about Soul Knives??? - A soul knife is just an adept who uses a
-combination of Manifestation and Sympathy to conjure a blade and imbue
-it with different Sympathetic effects. In a similar way, you can use
-these eight to extend specific domains on to different classes.
-Psionic warrior? Uses Sympathy to strengthen his body and Prescience
-to predict the strikes of his enemy. Psionic rogue? Apportation to
-teleport around or Cogitation to read minds to cheat at cards (or
-memorize the deck). Once the system is in place, the variations build
-themselves because you know what's possible and what isn't.
-Restriction breeds Creativity. You gotta know the rules to use them.
-</p>
-
-<p>
-What's all this about "Psionist?" Isn't it "Psion" - In my
-understanding a "Psion" is a mystic who uses metapsionics to
-manipulate her own mind into casting spells with the Weave. It is
-also a term that gets some use for a general practitioner of psionics.
-It is also one of those 4e tattoo addicts… just a really overloaded
-term really. Psionist sounds the best to me as a general term like
-"mage."
-</p>
-
-<p>
-What's the difference between Sympathy and Anticipation when
-moving/lifting things? - In Sympathy, you convince the object to move
-by extending your sense of self into it and lifting it yourself, in
-Anticipation, it moves because you trick the Universe into thinking
-the object should already be moving and so the Universe does it for
-you. Expanding self is all monk-like vs. essentially casting Luck
-Bending spells.
-</p>
-
-<p>
-Apportation includes an allusion to "Whitefire Portal". What's that? -
-Oh, just this cool thing I made:
-</p>
-
-<p>
-<b>Whitefire Portal</b>: You burn a temporary hole through the Astral Plane
-and into another plane of your choice. Once per long rest, centered on
-a point within 300 ft of you, you summon raw Astral ectoplasm which
-burns with hellish, white-hot fury. Any creature standing within 20
-feet of the whitefire must make a Dexterity saving throw or take 12d10
-fire damage or half on a successful save. Inanimate objects in the
-area also take the damage and flammable objects may catch on fire. A
-portal then opens to the chosen plane as with a Gate spell and remains
-open for 1 minute as the planes slowly knit themselves back
-together. Alternatively, instead of a specific location on a plane of
-your choice, you may choose to have your portal open into a generally
-inhospitable location in one of the elemental planes or the planes of
-positive or negative energy. If you do so, creatures who enter or
-begin their turns within 20 feet of the portal take 6d10 damage of the
-appropriate elemental or energy type.
-</p>
-
-<p>
-I'm actually working on an entire Psionist class for eventual
-publication on the Dungeon Master's Guild (or as part of my
-"MagnumOpis-MagicOfTheMultiverse" which covers EVERYTHING magical as I
-understand it). Of course if somebody #wotcstaff wants to buy it
-and/or hire me, I'd be totally up for #theorycrafting for a living.
-</p>
-
-<p>
-–
-</p>
-
-<p>
-Thanks for Reading!
-Andrew Murrell
-ImFromNASA@gmail.com
-</p>
-</div>
-<div id="postamble" class="status">
-<p class="date">Created: 2016-12-28 Wed 21:09</p>
-<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.5.1 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
-<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
-</div>
-</body>
-</html>
diff --git a/DND/SoP.txt b/DND/SoP.txt deleted file mode 100644 index 8ea569b..0000000 --- a/DND/SoP.txt +++ /dev/null @@ -1,226 +0,0 @@ -Possibly easier to read but automatically converted HTML version (if you're into that): http://AndrewDM.me/DND/PsionicSchools.html
-
-=== Schools of Psionics ===
-
-From what I've seen, the most recent few 5e Unearthed Arcana dealing
-with "Psionics and the Mystic" have been getting somewhat mixed
-reviews. I don't think this is because of the mechanics--or rather
-not COMPLETELY because of the mechanics. Mechanics for psionics have
-always been weird, and the 5e style is good for D&D, so maintaining
-that is good and won't get any gripes from me.
-
-But I think that no matter what purely mechanical tweaks the UA team
-has planned for the Mystic, the general lukewarm reception isn't going
-to change unless we get something else squared away first. Something
-a little deeper--something that helps us grasp Psionics in the same
-way we grasp Magic: with a complete and intuitive system.
-
-With Weave-based magic there are schools which somewhat delineate
-magical effects (conjuration, divination, etc), but that's not exactly
-what I mean. Not to bash the magical schools (any system will have
-inconsistencies--mine notwithstanding), few people really understand
-what it means to be a wizard by what school of magic they specialize
-in. An enchantment wizard isn't fundamentally different from an
-evocation one. But a wizard is different than a bard or a warlock.
-These "Schools of Psionics" are as much about the state of mind of the
-manifester and the method for manifestation as they are about the
-outcome of the manifestation (there are several of my Psionic
-"schools" that may each manifest effects in the transmutation school
-of magic for instance, but each according to its own particular
-rules).
-
-What I mean is this:
-
-| | Introvertion (a) | Extroversion (b) |
-|-----------+------------------+------------------|
-| Mind (1) | Cogitation | Domination |
-| Body (2) | Sympathy | Manifestation |
-| Time (3) | Prescience | Anticipation |
-| Space (4) | Metapsionics | Apportation |
-
-There are eight categories split into two primary focuses and four
-topical domains, and each of the eight describes HOW a power is
-manifested. It tells us what our character is DOING to get the
-blasted power to work. As a D&D culture, we know how wizards do it,
-careful study and recitation, memorization, etc. We know how Bards do
-it, they hear the music of creation and wrap their words in it. All
-these effects are propagated through Mystra's Weave and are bound by
-it's limitations. But nobody has a clue how Psionics works. Or
-rather, we all have half-baked ideas that don't jive.
-
-In order for this to work, we need to know in canon, what it means to
-BE A PSIONIST and manifest powers. I'm probably no different than
-anybody else in my half-baked understanding, but as a Physicist and an
-editor I feel it is my duty to try to make sense of this mess.
-
-First off, since we don't have a Weave, but all magic needs a medium,
-lets make one. Lets call it the Psionic Field. Created spontaneously
-from the first thinking being (or Source), the Psionic Field exists on
-any plane containing thought. Some sources of psionic power are
-stronger than others, but all thinking things produce some connection
-to the field (some might wonder if magic and the Weave itself is
-naught but an echo of Mystra's or Auppenser's mind--and in that light
-perhaps the Psionic Field is not so foreign after all).
-
-With that medium in place, the world of Psionics slowly falls into
-place as well. Detailed descriptions of the eight schools follow:
-
-1a) Cogitation - Clarity of thought, memory, action, and connection to
-the Psionic Field.
-
-Cogitation is often one's first exposure to Psionics. It's a
-clear-mindedness that opens up your own mind to see itself for the
-first time, and beyond that, to sense the edges of the minds of
-others. It includes the stereotypical bloody-nosed mind reading,
-mimicry, and perfect recall.
-
-Examples of Cogitation include "Detect Thoughts" and "Mind Meld" and
-the ability to learn or borrow skills and proficiencies directly from
-the minds of others.
-
-1b) Domination - Exert dominating willpower over other minds.
-
-Once you've encountered sources outside yourself it is only natural to
-try to influence or even dominate them. Exerting your will into the
-minds of others isn't the same as reading their thoughts, you might
-not know what your target is thinking, only that it will succumb.
-
-Examples of Domination include "Command", "Suggestion", and "Dominate
-Person".
-
-2a) Sympathy - Exerting influence upon sympathetic objects.
-
-The Psionic Field is produced by thinking creatures, but it can leave
-an imprint on even mundane objects and materials. Objects may be
-imbued with Psionic energy to produce a variety of effects, and may
-soak up ambient energy by just sitting within the Psionic Field which
-can be later be discerned by a Psionist to know about an object's
-history. This is done by expanding your sense of self outward from
-your mind and body and into the object.
-
-Examples of Sympathy include "Psychometry", "Animate Objects", and
-"Guards and Wards".
-
-2b) Manifestion - Creating both illusory and physically manipulable
-constructs of pure thought.
-
-By focusing and condensing ideas down to their most concrete forms,
-Psionists can manifest the essence of a thing as either an illusion or
-as a real physical object made of Astral matter (ectoplasm). Astral
-matter is most commonly associated with the Astral plane (or plane of
-thought) where it occurs naturally, but can exist anywhere with a
-sufficient psionic field for a Psionist to conjure it.
-
-Examples of Manifestation include "Mage Hand", "Conjure Astral
-Construct", and "Programmed Illusion"
-
-3a) Prescience - See and feel other places and times.
-
-Because the actions of thinking things (sources of psionics) are not
-stagnant, their movements create ripples in the Psionic Field.
-Births, deaths, and exchanges of knowledge leave their marks. By
-studying these echos and patterns, Psionists can discern events that
-occurred in distant parts of the world or even in the past or future.
-
-Examples of Prescience include "Detect Poison and Disease", "Scrying",
-and "Foresight".
-
-3b) Anticipation - Solidify expectation and possibility into reality.
-
-In many ways the Universe itself is just composed of the interactions
-of groups of sources of psionism and the objects being pulled in their
-wake (albeit a rather large number of each). With an awareness of the
-way ripples propagate in the Psionic Field and by using the techniques
-of Sympathy but directing them outwards, a Psionist can begin to
-subtly manipulate expectation and the laws of Physics themselves.
-
-Examples of Anticipation include "Heat Metal", "Telekinesis", "Reverse
-Gravity", and "Time Stop".
-
-4a) Metapsionics - Manipulating sources of Psionism and their direct
-effects.
-
-The way that thinking creatures interact with the Psionic Field is
-complicated and diverse, just as the creatures which produce it are
-themselves. By studying how the minds of Psionically-attuned
-creatures create Psionic and even Magical Weave-based effects, a
-Psionist can learn to imitate or manipulate psionic effects as they
-see them (and sometimes use what they've learned to imbue limited
-psionic potential into others).
-
-Examples of Metapsionics include "Detect Magic", "Counterspell", and
-"Awaken"
-
-4b) Apportation - Pulling and pushing on planar boundaries with the
-Psionic Field.
-
-Since the material plane is not the only one with thinking creatures,
-some far-minded Psionists can detect the Psionic Field existing on
-other planes of existence and pull on these remote fields of power.
-Doing so can banish alien creatures, abjure harmful elemental effects,
-or even tear open portals to distant planes and places.
-
-Examples of Apportation include "Dimension Door", "Banishment", and
-"Whitefire Portal"
-
-== Post Script ==
-
-Q: Specifics (where do these fit in?) - A: Answer
-
-What about Soul Knives??? - A soul knife is just an adept who uses a
-combination of Manifestation and Sympathy to conjure a blade and imbue
-it with different Sympathetic effects. In a similar way, you can use
-these eight to extend specific domains on to different classes.
-Psionic warrior? Uses Sympathy to strengthen his body and Prescience
-to predict the strikes of his enemy. Psionic rogue? Apportation to
-teleport around or Cogitation to read minds to cheat at cards (or
-memorize the deck). Once the system is in place, the variations build
-themselves because you know what's possible and what isn't.
-Restriction breeds Creativity. You gotta know the rules to use them.
-
-What's all this about "Psionist?" Isn't it "Psion" - In my
-understanding a "Psion" is a mystic who uses metapsionics to
-manipulate her own mind into casting spells with the Weave. It is
-also a term that gets some use for a general practitioner of psionics.
-It is also one of those 4e tattoo addicts... just a really overloaded
-term really. Psionist sounds the best to me as a general term like
-"mage."
-
-What's the difference between Sympathy and Anticipation when
-moving/lifting things? - In Sympathy, you convince the object to move
-by extending your sense of self into it and lifting it yourself, in
-Anticipation, it moves because you trick the Universe into thinking
-the object should already be moving and so the Universe does it for
-you. Expanding self is all monk-like vs. essentially casting Luck
-Bending spells.
-
-Apportation includes an allusion to "Whitefire Portal". What's that? -
-Oh, just this cool thing I made:
-
-*Whitefire Portal*: You burn a temporary hole through the Astral Plane
-and into another plane of your choice. Once per long rest, centered on
-a point within 300 ft of you, you summon raw Astral ectoplasm which
-burns with hellish, white-hot fury. Any creature standing within 20
-feet of the whitefire must make a Dexterity saving throw or take 12d10
-fire damage or half on a successful save. Inanimate objects in the
-area also take the damage and flammable objects may catch on fire. A
-portal then opens to the chosen plane as with a Gate spell and remains
-open for 1 minute as the planes slowly knit themselves back
-together. Alternatively, instead of a specific location on a plane of
-your choice, you may choose to have your portal open into a generally
-inhospitable location in one of the elemental planes or the planes of
-positive or negative energy. If you do so, creatures who enter or
-begin their turns within 20 feet of the portal take 6d10 damage of the
-appropriate elemental or energy type.
-
-I'm actually working on an entire Psionist class for eventual
-publication on the Dungeon Master's Guild (or as part of my
-"MagnumOpis-MagicOfTheMultiverse" which covers EVERYTHING magical as I
-understand it). Of course if somebody #wotcstaff wants to buy it
-and/or hire me, I'd be totally up for #theorycrafting for a living.
-
---
-
-Thanks for Reading!
-Andrew Murrell
-ImFromNASA@gmail.com
diff --git a/HACKING.md b/HACKING.md new file mode 100644 index 0000000..1333ed7 --- /dev/null +++ b/HACKING.md @@ -0,0 +1 @@ +TODO diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a9b703b --- /dev/null +++ b/Makefile @@ -0,0 +1,46 @@ +SHELL = bash -o pipefail + +RUBYLIB=$(realpath .)/bin +export RUBYLIB + +# Usage: $(call patsubst,PATTERN1 PATTERN2...,REPLACEMENT,TEXT) +# +# Like $(patsubst), but takes multiple patterns that are all replaced +# with the same replacement. +patsubst-all = $(if $1,$(call patsubst-all,$(wordlist 2,$(words $1),$1),$2,$(patsubst $(firstword $1),$2,$3)),$3) + +# Which suffixes can we turn in to HTML? +html.suffixes = md org +# Find all source files with those suffixes +html.src = $(shell find src -type f \( -false $(foreach s,$(html.suffixes), -o -name '*.$s' ) \)) +# Translate the source filenames into output filenames +html.out = $(call patsubst-all,$(addprefix src/%.,$(html.suffixes)),out/%.html,$(html.src)) + +all: $(html.out) + +bin/page = bin/page bin/util.rb bin/pandoc.rb + +# We have to repeat each `src/% -> out/%` rule twice; where once we +# write it as `out/% -> out/%`. This allows us to chain rules. + +# Markdown +out/%.html: src/%.md $(bin/page) bin/page.html.erb bin/write-atomic + mkdir -p $(@D) + bin/page html $< | bin/write-atomic $@ +out/%.html: out/%.md $(bin/page) bin/page.html.erb bin/write-atomic + bin/page html $< | bin/write-atomic $@ + +# Org-Mode +out/%.html: src/%.org $(bin/page) bin/page.html.erb bin/write-atomic + mkdir -p $(@D) + bin/page html $< | bin/write-atomic $@ +out/%.html: out/%.org $(bin/page) bin/page.html.erb bin/write-atomic + bin/page html $< | bin/write-atomic $@ + +#out/index.md : index index.md.erb .var.articles $(addsuffix .md,$(articles)) util.rb Makefile write-atomic +# ./index md $(filter %.md,$^) | ./write-atomic $@ +#out/index.atom: index index.atom.erb .var.articles $(addsuffix .md,$(articles)) util.rb Makefile write-atomic +# ./index atom $(filter %.md,$^) | ./write-atomic $@ + +.DELETE_ON_ERROR: +.SECONDARY: diff --git a/DND/WaterdeepBazaar b/WaterdeepBazaar -Subproject ea56414e75f88838f98a053369f09aa2b3607b6 +Subproject ea56414e75f88838f98a053369f09aa2b3607b6 diff --git a/bin/index b/bin/index new file mode 100755 index 0000000..44cdc35 --- /dev/null +++ b/bin/index @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +load 'util.rb' + +template = "index.#{ARGV.shift}.erb" + +@pages = [] +for filename in ARGV do + @pages.push(Page.new(filename)) +end + +erb = ERB.new(File.read(template)); +erb.filename = template +erb.run() diff --git a/bin/index.atom.erb b/bin/index.atom.erb new file mode 100644 index 0000000..a5e1586 --- /dev/null +++ b/bin/index.atom.erb @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + + <title>Luke Shumaker's Web Log</title> + <link rel="self" type="application/atom+xml" href="./index.atom"/> + <link rel="alternate" type="text/html" href="./"/> + <link rel="alternate" type="text/markdown" href="./index.md"/> + <updated><%= @pages.map{|p|p.date}.sort.last.rfc3339 %></updated> + <author><%= Person.new("Luke Shumaker").atom %></author> + <id>https://lukeshu.com/blog/</id> + + <% @pages.sort_by{|p| p.date}.reverse.each do |page| %> + <entry xmlns="http://www.w3.org/2005/Atom"> + <link rel="alternate" type="text/html" href="./<%= page.slug %>.html"/> + <link rel="alternate" type="text/markdown" href="./<%= page.slug %>.md"/> + <id>https://lukeshu.com/blog/<%= page.slug %>.html</id> + <updated><%= page.date.rfc3339 %></updated> + <published><%= page.date.rfc3339 %></published> + <title><%= page.title %></title> + <content type="html"><%= html_escape(page.content) %></content> + <author><%= page.author.atom %></author> + <rights type="html"><%= html_escape(page.rights) %></rights> + </entry> + <% end %> +</feed> diff --git a/bin/index.md.erb b/bin/index.md.erb new file mode 100644 index 0000000..4da9a5d --- /dev/null +++ b/bin/index.md.erb @@ -0,0 +1,13 @@ +Web log entries +=============== +<style> +li { + list-style-type: none; +} +time { + color: #AAAAAA; + font-family: monospace; +} +</style> +<% @pages.sort_by{|p| p.date}.reverse.each do |a| %> + * <time><%= a.date.strftime('%Y-%m-%d') %></time> - [<%= a.title %>](./<%= a.slug %>.html)<% end %> diff --git a/bin/page b/bin/page new file mode 100755 index 0000000..ca8b5bd --- /dev/null +++ b/bin/page @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +load 'util.rb' + +template = "bin/page.#{ARGV[0]}.erb" +@page = Page.new(ARGV[1]) + +erb = ERB.new(File.read(template)); +erb.filename = template +erb.run() diff --git a/bin/page.html.erb b/bin/page.html.erb new file mode 100644 index 0000000..2dee55e --- /dev/null +++ b/bin/page.html.erb @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title><%= @page.title %></title> + <link rel="stylesheet" href="/main.css"> + <link rel="alternate" type="application/atom+xml" href="./index.atom" name="web log entries"/> + <%= @page.head %> + </head> + <body> + <header><%= @page.breadcrumbs %></header> + <header id="logobar"> + <h1>Andrew DM</h1> + <ul> + <li><a href="">Projects</a></li> + <li><a href="blahg/CHANGELOG.html"><abbr title="Blog">Blahg</abbr></a></li> + <li><a href="Andrew.html">Andrew</a></li> + <li> + <form class="headerlink" method="GET" action="index.html#"> + <input id="search" style="hidden" type="text" name="searchbar" size="0" placeholder="Search" /> + </form> + </li> + </header> + <article> + <h1><%= @page.title %></h1> + <%= @page.content %> + </article> + <footer> + <%= @page.rights %> + </footer> + </body> +</html> diff --git a/bin/pandoc.rb b/bin/pandoc.rb new file mode 100644 index 0000000..155ddde --- /dev/null +++ b/bin/pandoc.rb @@ -0,0 +1,95 @@ +require 'open3' +require 'json' + +module Pandoc + def self.prog + @prog ||= 'pandoc' + end + def self.prog=(val) + @prog = val + end + def self.load(fmt, input) + cmd = Pandoc::prog + " -t json" + unless fmt.nil? + cmd += " -f " + fmt + end + str = input + if str.respond_to? :read + str = str.read + end + json = '' + errors = '' + Open3::popen3(cmd) do |stdin, stdout, stderr| + stdin.puts(str) + stdin.close + json = stdout.read + errors = stderr.read + end + unless errors.empty? + raise errors + end + return Pandoc::AST::new(json) + end + + class AST + def initialize(json) + @js = JSON::parse(json) + end + + def [](key) + Pandoc::AST::js2sane(@js["meta"][key]) + end + + def js + @js + end + + def to(format) + cmd = Pandoc::prog + " -f json -t " + format.to_s + output = '' + errors = '' + Open3::popen3(cmd) do |stdin, stdout, stderr| + stdin.puts @js.to_json + stdin.close + output = stdout.read + errors = stderr.read + end + unless errors.empty? + raise errors + end + return output + end + + def self.js2sane(js) + if js.nil? + return js + end + case js["t"] + when "MetaMap" + Hash[js["c"].map{|k,v| [k, js2sane(v)]}] + when "MetaList" + js["c"].map{|c| js2sane(c)} + when "MetaBool" + js["c"] + when "MetaString" + js["c"] + when "MetaInlines" + js["c"].map{|c| js2sane(c)}.join() + when "MetaBlocks" + js["c"].map{|c| js2sane(c)}.join("\n") + when "Str" + js["c"] + when "Space" + " " + when "RawInline" + js["c"][1] + when "RawBlock" + js["c"][1] + when "Para" + js["c"].map{|c| js2sane(c)}.join() + else + throw js["t"] + end + end + end +end diff --git a/bin/post-commit b/bin/post-commit new file mode 100755 index 0000000..6b72bd2 --- /dev/null +++ b/bin/post-commit @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +branch=$(git name-rev --name-only HEAD) +if [[ $branch == master ]]; then + + stash=false + if [[ -n "$(git status --porcelain)" ]]; then + stash=true + git add . + git stash + fi + + git checkout pre-generated + git merge master -m 'bogus' + rm -rf out + make --always-make -j12 + git add . + git commit --amend -m "make: $(git log -n1 master --pretty=format:%B)" + git checkout master + + if $stash; then + git stash pop + fi + +fi diff --git a/bin/util.rb b/bin/util.rb new file mode 100644 index 0000000..ce91007 --- /dev/null +++ b/bin/util.rb @@ -0,0 +1,111 @@ +# coding: utf-8 +load 'pandoc.rb' +require 'erb' +require 'date' + +$license_urls = { + "CC BY-SA-3.0" => 'https://creativecommons.org/licenses/by-sa/3.0/', + 'WTFPL-2' => "http://www.wtfpl.net/txt/copying/", +} +$person_uris = { + "Luke Shumaker" => "https://lukeshu.com/", + "Andrew Murrell" => "https://andrewdm.me/", +} +$person_emails = { + "Luke Shumaker" => "lukeshu@parabola.nu", + "Andrew Murrell" => "ImFromNASA@gmail.com", +} + +class Person + def initialize(name) + @name = name + end + def name + @name + end + def uri + $person_uris[@name] + end + def email + $person_emails[@name] + end + def html + if not email.nil? + return "<a href=\"mailto:#{email}\">#{name}</a>" + elsif not uri.nil? + return "<a href=\"#{uri}\">#{name}</a>" + else + return @name + end + end + def atom + ret = "" + ret += "<name>#{name}</name>" unless name.nil? + ret += "<uri>#{uri}</uri>" unless uri.nil? + ret += "<email>#{email}</email>" unless email.nil? + end +end + +class License + def initialize(name) + @name = name + end + def name + @name + end + def url + $license_urls[@name] + end + def html + "<a href=\"#{url}\">#{name}</a>" + end +end + +class Page + def initialize(infile) + @infile = infile + end + + def infile ; @infile ; end + def input ; @input ||= File.read(infile) ; end + def pandoc + if @pandoc.nil? + types = { + 'md' => 'markdown' + } + + ext = File.extname(infile).gsub(/^[.]/, '') + type = types[ext] || ext + @pandoc = Pandoc::load(type, input) + + if @pandoc['pandoc_format'] + @pandoc = Pandoc::load(@pandoc['pandoc_format'], input) + end + end + @pandoc + end + + def title ; @title ||= pandoc['title'] || input.split("\n",2).first ; end + def author ; @author ||= Person.new( pandoc['author'] || "Andrew Murrell") ; end + def license ; @license ||= License.new(pandoc['license'] || "CC BY-SA-3.0") ; end + def date ; @date ||= Date.parse(pandoc['date']) unless pandoc['date'].nil? ; end + def slug ; @slug ||= infile.sub(/\..*$/,'').sub(/^.*\//,'') ; end + def content ; @content ||= pandoc.to('html5 '+(pandoc['pandoc_flags']||'')) ; end + def head ; @head ||= pandoc['html_head_extra'] ; end + + def rights + @rights ||= "<p>The content of this page is Copyright © #{date.year unless date.nil?} #{author.html}.</p>\n" + + "<p>This page is licensed under the #{license.html} license.</p>" + end + + def breadcrumbs + @breadcrumbs ||= '<a href="/">Andrew Murrell</a> » ' + ( (slug == 'index') ? "blog" : "<a href=/blog>blog</a> » #{slug}" ) + end +end + +def html_escape(html) + html + .gsub('&', '&') + .gsub('>', '>') + .gsub('<', '<') +end diff --git a/bin/write-atomic b/bin/write-atomic new file mode 100755 index 0000000..efb2551 --- /dev/null +++ b/bin/write-atomic @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +outfile=$1 +tmpfile="$(dirname "$outfile")/.tmp${outfile##*/}" + +cat > "$tmpfile" || { r=$?; rm -f "$tmpfile"; exit $r; } +mv -f "$tmpfile" "$outfile" diff --git a/bin/write-ifchanged b/bin/write-ifchanged new file mode 100755 index 0000000..185ceb0 --- /dev/null +++ b/bin/write-ifchanged @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Copyright (C) 2015 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +outfile=$1 +tmpfile="$(dirname "$outfile")/.tmp${outfile##*/}" + +cat > "$tmpfile" || exit $? +if cmp -s "$tmpfile" "$outfile"; then + rm -f "$tmpfile" || : +else + mv -f "$tmpfile" "$outfile" +fi diff --git a/git-setup b/git-setup new file mode 100755 index 0000000..e968cf5 --- /dev/null +++ b/git-setup @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -e +cd "$(dirname -- "$(readlink -f -- "$0")")" +if ! [[ -x .git/hooks/post-commit ]]; then + ln -sf bin/post-commit .git/hooks/post-commit +fi diff --git a/index.html b/index.html deleted file mode 100644 index 6c8a7e4..0000000 --- a/index.html +++ /dev/null @@ -1,79 +0,0 @@ -<html lang="en"> - <head> - <meta charset="UTF-8"/> - <!--<meta http-equiv="refresh" content="5; url=redirect.html"/>--> - <meta name="description" content="AndrewDM.me: Personal Blogs, Projects, - and Portfolios of Andrew - Murrell."/> - <meta name="keywords" content="" /> - <meta name="robots" content="noindex,nofollow"/> - - <!-- See main.js for Copyright details. ---> - <script type="text/javascript" src="main.js"></script> - <link rel="stylesheet" href="main.css"/> - <link rel="icon" type="image/ico" href="ADM.ico"/> - <title>AndrewDM</title> - </head> - <body> - <header id="logobar"> - <h1>Andrew DM</h1> - <div class="headercontainer"> - <a class="headerlink" href="">Projects</a> - </div> - <div class="headercontainer"> - <a class="headerlink" - href="blahg/CHANGELOG.html"><abbr title="Blog">Blahg</abbr></a> - </div> - <div class="headercontainer"> - <a class="headerlink" - href="Andrew.txt">Andrew</a> - </div> - <div class="headercontainer"> - <form class="headerlink" method="GET" action="index.html#"> - <input id="search" style="hidden" type="text" name="searchbar" size="0" - maxlength="0" value="Search" /> - </form> - </div> - </header> - - <!-- Content cross, bubbles with project page links, surrounded by -- - -- navigation and information rectangles. --> - - <main id="content"> - <section id="sidebar"> - <div> - <h3>Coming Soon!</h3> - <ul> - <li>Better CSS!</li> - <li>Better <span style="color:red;"</span>Colors</span> [help!]</li> - <li>Magic is Magic [1.5/5 complete!] - <a href="?s=SS" class="tag SS">Short Story </a> - </li> - <li> - Search functionality that actually searches the text! - </li> - </ul> - </div> - </section> - <section id="topbar"> - <!--<div id="constructionBanner"> - <h1 id="constructionMessage">Website Under Construction: - I'm not a web dev, please don't mind the colors and blocky edges.</h1> - </div>--> - <br> - <div id="links"> - </div> - </section> - <br><br><hr> - <section> - <!--<a href="staticindex.html">CS Major Mode</a>--> - </section> - </main> - <br> - <footer id="copyright"> - <address>AndrewDM.me</address> - <small>Copyright 2016 Andrew Murrell</small> - </footer> - </body> -</html> - diff --git a/Andrew.txt b/src/Andrew.md index ddca263..ddca263 100644 --- a/Andrew.txt +++ b/src/Andrew.md diff --git a/images/Background.png b/src/DND/Background.orig.png Binary files differindex 837ce8c..837ce8c 100644 --- a/images/Background.png +++ b/src/DND/Background.orig.png diff --git a/DND/Background2.png b/src/DND/Background.orig.small.png Binary files differindex becc4c1..becc4c1 100644 --- a/DND/Background2.png +++ b/src/DND/Background.orig.small.png diff --git a/DND/Background3.png b/src/DND/Background.png Binary files differindex c932f67..c932f67 100644 --- a/DND/Background3.png +++ b/src/DND/Background.png diff --git a/src/DND/PsionicSchools.css b/src/DND/PsionicSchools.css new file mode 100644 index 0000000..b258cd1 --- /dev/null +++ b/src/DND/PsionicSchools.css @@ -0,0 +1,9 @@ +#content { + padding: 0px 16%; + width: 68%; +} + +body { + background: url(Background3.png) repeat-y; + background-size: 100%; +} diff --git a/org/PsionicSchools.org b/src/DND/PsionicSchools.org index 871abd2..eb18786 100644 --- a/org/PsionicSchools.org +++ b/src/DND/PsionicSchools.org @@ -1,5 +1,4 @@ -#+HTML_HEAD_EXTRA: <style type="text/css">#content { padding: 0px 16%; width: 68%; } body { background: url(Background3.png) repeat-y; background-size: 100%;} </style>
-=== Schools of Psionics ===
+#+TITLE: Schools of Psionics
From what I've seen, the most recent few 5e Unearthed Arcana dealing
with "Psionics and the Mystic" have been getting somewhat mixed
@@ -217,9 +216,3 @@ publication on the Dungeon Master's Guild (or as part of my "MagnumOpis-MagicOfTheMultiverse" which covers EVERYTHING magical as I
understand it). Of course if somebody #wotcstaff wants to buy it
and/or hire me, I'd be totally up for #theorycrafting for a living.
-
---
-
-Thanks for Reading!
-Andrew Murrell
-ImFromNASA@gmail.com
diff --git a/DND/Psionist.html b/src/DND/Psionist.html index f6aedfb..f6aedfb 100644 --- a/DND/Psionist.html +++ b/src/DND/Psionist.html diff --git a/DND/SpellGauntlet.txt b/src/DND/SpellGauntlet.org index 22ff498..22ff498 100644 --- a/DND/SpellGauntlet.txt +++ b/src/DND/SpellGauntlet.org diff --git a/DND/Tastavi.html b/src/DND/Tastavi.html index 199f8f4..199f8f4 100644 --- a/DND/Tastavi.html +++ b/src/DND/Tastavi.html diff --git a/ADM.gif b/src/favicon.gif Binary files differindex 6441028..6441028 100644 --- a/ADM.gif +++ b/src/favicon.gif diff --git a/ADM.ico b/src/favicon.ico Binary files differindex 0ab067d..0ab067d 100644 --- a/ADM.ico +++ b/src/favicon.ico diff --git a/src/index.md b/src/index.md new file mode 100644 index 0000000..a4cc5a7 --- /dev/null +++ b/src/index.md @@ -0,0 +1,30 @@ +--- +title: AndrewDM +html_head_extra: | + <script src=main.js></script> + <meta name="description" content="AndrewDM.me: Personal Blogs, Projects, and Portfolios of Andrew Murrell."/> +--- + +<section id="sidebar"> + <h3>Coming Soon!</h3> + <ul> + <li>Better CSS!</li> + <li>Better <span style="color:red;">Colors</span> [help!]</li> + <li>Magic is Magic [1.5/5 complete!] + <a href="?s=SS" class="tag SS">Short Story </a> + </li> + <li>Search functionality that actually searches the text!</li> + </ul> +</section> +<section id="topbar"> + <!--<div id="constructionBanner"> + <h1 id="constructionMessage">Website Under Construction: + I'm not a web dev, please don't mind the colors and blocky edges.</h1> + </div>--> + <div id="links"> + </div> +</section> +<hr> +<section> + <!--<a href="staticindex.html">CS Major Mode</a>--> +</section> @@ -3,27 +3,12 @@ body { background: white; } -/* background-color: #b94a48; other colors: #f89406, #468847, #3a87ad */ - header { width: 100%; height: 100px; background-color: black; } -header:before, header:after { - content: ""; - display: table; -} - -header:after { - clear: both; -} - -header { - *zoom: 1; -} - header h1 { color: white; font-size: 50px; @@ -80,10 +65,6 @@ header h1 { float: right; } -main { - -} - li { font-size: 14px; } @@ -110,11 +91,3 @@ li { .HB { background: DimGray; } .DM { background: DarkSlateGray; } .WP { background: GhostWhite; color: black; } - -/* - - - - - -*/ @@ -40,37 +40,37 @@ function initSections() { "365 Tomorrows: A Simple Lament", [["FF", "Flash Fiction"]])); addItem("Writing", - mkItem("https://AndrewDM.me/DND/Tastavi.html", + mkItem("./DND/Tastavi.html", "Tastavi's Backstory", [["SS", "Short Story"]])); addItem("Writing", - mkItem("https://AndrewDM.me/DND/SpellGauntlet.txt", + mkItem("./DND/SpellGauntlet.txt", "Spell Gauntlet: Practical Spellcasting", [["FF", "Flash Fiction"], ["SS", "Short Story"], ["WP", "WIP"]])); addItem("Writing", - mkItem("https://AndrewDM.me/DND/SoP.txt", + mkItem("./DND/SoP.txt", "Psionic Schools for D&D", [["ES", "Essay"], ["HB", "Homebrew"]])); /*addItem("Writing", - mkItem("https://AndrewDM.me/DND/Psionist.html", + mkItem("./DND/Psionist.html", "D&D 5e Psionist Class", [//["ES", "Essay"], ["HB", "Homebrew"]]));*/ addSection("Programming"); addItem("Programming", - mkItem("https://AndrewDM.me/DND/WaterdeepBazaar/WaterdeepBazaar.html", + mkItem("./DND/WaterdeepBazaar/WaterdeepBazaar.html", "Waterdeep Bazaar: Marketplace Generator", [["DM", "DMing Resource"], ["WP", "WIP"]])); /*addSection("Music"); addItem("Music", - mkItem("https://AndrewDM.me/Playlists.html", + mkItem("./Playlists.html", "Playlists", [["WP", "WIP"]]));*/ @@ -78,7 +78,7 @@ function initSections() { /*addSection("Misc"); addItem("Misc", - mkItem("https://AndrewDM.me/Reading_List.html", + mkItem("./Reading_List.html", "Reading List", [["WP", "WIP"]]));*/ |