Wrinkle / Sections of page
From WhyNotWiki
Sections are those things on a page that are usually set off by their headings.
Contents |
[edit] don't punish deep nesting by making the inner ones super small
in general only use indenting / borders to indicate nesting, not font-size ?
but allow small headings where appropriate
This can be solved by: "Idea: Sections = Subcategories"
[edit] Example usage (example of nesting problem): Directory of software
I have a directory of software on Ruby libraries that is currently organized with headings.
Level-1 headings (=) indicate a major category of software (Networking, Graphics, etc.).
Level-2 headings (==) indicate the name of the software package ... oh wait! That's not always the case. It can also indicate a subcategory of software... in which case, that necessarily bumps the actual software package entries to level-3 headings (===).
(Another problem: To insert a new subcategory between a category and some of its items (for example, make "PDFLib" a member of subcategory "Output formats / PDF" instead of just "Output formats"), you have to write in your new subcategory and then put another = before (demote) each item. This is actually pretty easy (let's keep it that easy in the new interface!), but error-prone (could accidentally "demote" other items than the ones you meant to).)
I don't like that at all. It feels like all software package entries should have the same formatting/font size.
[edit] Solution idea 1:
Still use the level-1, level-2, etc. idea but have those visually indicated by indentation only (not decreased font size). Then if a specific software title happens to land at level-3 instead of level-2, it won't feel as bad, because it will be treated with equal importance.
The problem with this is that actual software packages should be treated differently than categories.
[edit] Solution idea 2:
All categories should be treated the same (if we let them grow successively smaller, then by the time we got to level-5 or so, they would be too small...) and all specific entries would be treated the same.
So the solution would be to have "category depth" and "heading level" be two completely independent variables.
Each time you go down another subdirectory, the "category depth" is incremented by one, which increases indentation (and maybe draws another vertical line).
Each time you transition between types of entities (categories to specific items to features of specific items), you increment the heading level, making things smaller.
So you might have something that looks like this (organizationally):
- category 1
- category 1.1
- specific item 1
- feature 1 of specific item 1
- feature 2 of specific item 1
- specific item 2
- specific item 1
- category 1.2
- category 1.1
- category 2
- category 3
- category 4
[edit] Don't have "sections" at all / Sections = Subcategories / Pulled into page dynamically
Maybe we don't need/want to have sections at all. Or, more accurately, maybe we want sections to be inferred dynamically from the objects we are dynamically pulling into the page.
(This is assuming everything is a list/tree/set/collection, though, which isn't necessarily accurate. We may also have, say, an introduction section, which wouldn't really be part of a list... it could still be a separate object, though.)
Example:
{include_objects :root_category_node => "Ruby libraries", :include => [:specific_software], :category_template => "heading_with_brief_description_sentence"}
It would display a nice tree view starting at the given node and going all the way to the leaf nodes.
The "template" option would let you specify your own custom "partials" if you wanted.
The "include" option would let you specify what type of nodes/objects to include.
Categories would all have "heading level" 1. "specific_software" nodes would be displayed with a "heading level" 2.
[edit] partials
"Why do we need to add support for partials?" you wonder?
Because one size doesn't always fit all...when we're displaying a lot of data, we want it to be the data that the user wants and not be cluttered with extra stuff.
We may want to be able to choose to have each software item be output in a format similar to on RubyForge, or maybe later decide we want to see it with the information that FreshMeat has, or maybe we only care about a couple fields, so we make a partial that only shows those 2 fields for each software item.
Or the user may want it to flag each item that matches a certain criterion.
[edit] Linking to sections from other pages
http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style#Sections_and_headings describes the problem where links may break if a section heading is changed:
- If at all possible, try not to change section headings and sub-headings often. Other articles may link to a specific section. It will break the section links.
- If you link to a section, leave an editor's note to remind others that the section title is linked. List the names of the linking articles, so when the title needs changing, others can fix the links more easily. For example: <!-- This section is linked from [[Richard Dawkins]] and [[Daniel Dennett]] --> .
This problem could be avoided by using the record ID of the section (which doesn't change) rather than its title (which can change).
Categories: Wrinkle | Wikis | Sections
