Skip to content

Conversation

@tflanagan
Copy link
Contributor

This commit introduces the Documentation YAML metadata concept to the
documentation.

  • Parses added or Added for HTML
  • Parses all data for JSON

This is in prelude to #3713.

Markup would look like this:

## assert(value[, message]), assert.ok(value[, message])<!-- YAMLadded: v0.10.0-->

@jasnell
Copy link
Member

LGTM

@mscdexmscdex added the tools Issues and PRs related to the tools directory. label Nov 16, 2015
@jasnell
Copy link
Member

@nodejs/documentation

@bengl
Copy link
Member

Could this possibly include examples in tools/doc/README.md?

@tflanagan
Copy link
ContributorAuthor

@bengl, I've added examples

/poke

@bengl
Copy link
Member

LGTM

@Qard
Copy link
Member

Qard commented Jan 22, 2016

Hey, so I'm working on replacing our doctool with remark, hopefully sooner than later. Part of that work is going to be to parsing YAML metadata after headers, which could be used for this sort of thing.

I just wanted to share that bit of info because this data seems like it'd fit well into YAML metadata, so it'd be good to keep that in mind.

@tflanagan
Copy link
ContributorAuthor

@Qard, looks like a format is still being debated?

@bengl
Copy link
Member

@tflanagan I think it's better to merge what you have here so folks can get started annotating the docs. We can change to the new YAML format later, once it's been solidified.

@chrisdickinson
Copy link
Contributor

It just occurred to me to ask this: does adding <sup> info to an existing header change the generated anchor?

@tflanagan
Copy link
ContributorAuthor

No,

var id = getId(filename + '_' + removeHeadingSup(tok.text.trim()));

@jasnell
Copy link
Member

+1 to getting this landed and incrementally improving from there.

@chrisdickinson
Copy link
Contributor

Some background: the direction we are planning on heading is to add per-section YAML data in an HTML comment below the section header — that way we can store all sorts of metadata about the section, including "since version" info. Concretely, this is what that would look like. In any case, we'll need the "since version" information annotated, but we might introduce a little extra churn if we go the <sup> route.

So, I'm +1 on merging this as-is, with the knowledge that we may be revisiting docs that include <sup> with a subsequent PR to move that information to a YAML section, or +1 on starting out in the HTML comment path. Sorry for the back-and-forth — we're working on a Docs roadmap to make sure that this sort of discussion doesn't take folks by surprise in the future.

@jasnell
Copy link
Member

sounds like a solid approach to me. btw, I've been wanting to join the docs wg discussions more but have been buried the past two weeks. I'm looking forward to seeing what more y'all have come up with so far.

@Qard
Copy link
Member

Qard commented Jan 23, 2016

I'm also 👍 on this, just wanted to share some details on the doctool we're working on and how that will impact the content of this PR in the future.

If you want to see what we're working on for the doctool, there's a tracking issue with a list of the parts we need to put together. 😸

@tflanagan
Copy link
ContributorAuthor

Awesome, I'd love to get this landed too.

But this requires some CSS to go along with it. I wasn't sure if that was something I should introduce or something that the Doc team would take care of, but as of right now, this PR would make the Docs look a bit off...

@jasnell
Copy link
Member

That should likely be included in this PR then if possible.
On Jan 25, 2016 6:25 AM, "Tristian Flanagan" [email protected]
wrote:

Awesome, I'd love to get this landed too.

But this requires some CSS to go along with it. I wasn't sure if that was
something I should introduce or something that the Doc team would take care
of, but as of right now, this PR would make the Docs look a bit off...


Reply to this email directly or view it on GitHub
#3867 (comment).

@tflanagan
Copy link
ContributorAuthor

The HTML API is rather constraining in terms of width... Which makes putting it next to either the hashtag static link or the method/prop/class/etc name a little hard.

We either need to expand the width of the #apicontent div or move this since ver tag somewhere else

@Qard
Copy link
Member

Qard commented Jan 25, 2016

I was thinking for the YAML formatted stuff in the future doctool, it could put a block of stuff below the header. You could maybe try that here to start us in that direction.

@nodejs/documentation Does that sound like a reasonable plan?

@tflanagan
Copy link
ContributorAuthor

@Qard, That's a good idea. I'll submit a solution by EOD

@tflanagantflanaganforce-pushed the doc-parse-since-ver branch 2 times, most recently from ffcb651 to 19e0bc8CompareJanuary 25, 2016 21:56
@tflanagan
Copy link
ContributorAuthor

@jasnell, @Qard, so here's the first draft, pretty basic, but gets the concept out there.

## assert(value[, message]), assert.ok(value[, message])<!-- YAMLstability: 0added: v0.10.0deprecated: v4.0.0-->

This implementation allows for and already supports any other metadata (stability, deprecated) you wish to add.

assert_meta

I've also, done a little touch up on generate.js.

json.js adds a meta property:

{"textRaw": "assert(value[, message]), assert.ok(value[, message])", "type": "method", "name": "ok", "meta":{"stability": 0, "added": "v0.10.0", "deprecated": "v4.0.0" }, "desc": "<p>Tests if <code>value</code> is truthy. It is equivalent to\n<code>assert.equal(!!value, true, message)</code>.\n\n</p>\n<p>If <code>value</code> is not truthy, an <code>AssertionError</code> is thrown with a <code>message</code>\nproperty set equal to the value of the <code>message</code> parameter. If the <code>message</code>\nparameter is <code>undefined</code>, a default error message is assigned.\n\n</p>\n<pre><code class=\"js\">const assert = require(&#39;assert&#39;);\n\nassert(true); // OK\nassert(1); // OK\nassert(false);\n // throws &quot;AssertionError: false == true&quot;\nassert(0);\n // throws &quot;AssertionError: 0 == true&quot;\nassert(false, &#39;it\\&#39;s false&#39;);\n // throws &quot;AssertionError: it&#39;s false&quot;\n\nassert.ok(true); // OK\nassert.ok(1); // OK\nassert.ok(false);\n // throws &quot;AssertionError: false == true&quot;\nassert.ok(0);\n // throws &quot;AssertionError: 0 == true&quot;\nassert.ok(false, &#39;it\\&#39;s false&#39;);\n // throws &quot;AssertionError: it&#39;s false&quot;</code></pre>\n", "signatures": [{"params": [{"name": "value" },{"name": "message])" },{"name": "assert.ok(value" },{"name": "message", "optional": true } ] } ] }

Here is the CSS:

.api_metadata{font-size:.75em; margin-bottom:1em} .api_metadataspan{margin-right:1em} .api_metadataspan:last-child{margin-right:0px}

@tflanagantflanaganforce-pushed the doc-parse-since-ver branch 3 times, most recently from ae6c941 to 6d1a70fCompareJanuary 25, 2016 22:10
@tflanagan
Copy link
ContributorAuthor

That's fine, in terms of adding the actual data to the docs, I imagine something like one commit per doc file is what is desired?

Edit: I would do that in a different PR

@jasnell
Copy link
Member

Yeah, I'd think so, anything else becomes too difficult to rebase if things change while the PR is being reviewed.

@tflanagantflanagan mentioned this pull request Jan 28, 2016
5 tasks
@tflanagantflanagan changed the title tools: parse documentation heading "since version"tools: parse documentation metadataFeb 6, 2016
@tflanagan
Copy link
ContributorAuthor

/poke

@jasnell
Copy link
Member

/cc @nodejs/documentation

@Knighton910
Copy link

generally LGTM

@addaleax
Copy link
Member

@tflanagan Could you rebase this again?

@addaleax
Copy link
Member

ping @tflanagan again – still interested in this? if not, would you mind if someone else took this PR up again?

@jasnelljasnell added the stalled Issues and PRs that are stalled. label Apr 30, 2016
@jasnell
Copy link
Member

@addaleax ... at this point I'd say if you'd like to pick this up go for it. It's been stalled for a while.

@addaleax
Copy link
Member

Continuing this in #6495.

addaleax pushed a commit that referenced this pull request May 4, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: #3867 Ref: #3713 Ref: #6470 PR-URL: #6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
@addaleax
Copy link
Member

Pleased to announce that, after almost half a year, this has landed with some minor tweaking in 015f4fd! 🎉

@addaleaxaddaleax closed this May 4, 2016
evanlucas pushed a commit that referenced this pull request May 17, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: #3867 Ref: #3713 Ref: #6470 PR-URL: #6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
addaleax pushed a commit to addaleax/node that referenced this pull request Jul 12, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: nodejs#3867 Ref: nodejs#3713 Ref: nodejs#6470 PR-URL: nodejs#6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
MylesBorins pushed a commit that referenced this pull request Jul 12, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: #3867 Ref: #3713 Ref: #6470 PR-URL: #6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
MylesBorins pushed a commit that referenced this pull request Jul 14, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: #3867 Ref: #3713 Ref: #6470 PR-URL: #6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
MylesBorins pushed a commit that referenced this pull request Jul 14, 2016
This commit introduces the Documentation YAML metadata concept to the documentation. - Parses added or Added for HTML - Parses all data for JSON Ref: #3867 Ref: #3713 Ref: #6470 PR-URL: #6495 Reviewed-By: Robert Jefe Lindstaedt <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stalledIssues and PRs that are stalled.toolsIssues and PRs related to the tools directory.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

@tflanagan@jasnell@bengl@Qard@chrisdickinson@DavidTPate@Knighton910@addaleax@benjamingr@mscdex