digitalmars.D.announce - bootDoc - advanced DDoc framework using Twitter's Bootstrap
- Jakob Ovrum (27/27) May 02 2012 This project is finally published and documented, so here's an
- Jacob Carlborg (4/11) May 02 2012 Looks good.
- Dmitry Olshansky (6/13) May 02 2012 Wooha! remove in std.algorithm finally points to _function_.
- Masahiro Nakagawa (4/32) May 02 2012 Great!
- Nick Sabalausky (3/3) May 02 2012 While it would be nice if the nav tree were still there w/o JS, and I'm ...
- Jakob Ovrum (4/9) May 02 2012 Alright, with some effort, I made it so that at least a basic
- Nick Sabalausky (3/11) May 02 2012 Very nice :)
- James Miller (8/15) May 02 2012 I would make a minor change that lets you see the function tree
- Jakob Ovrum (8/25) May 02 2012 Packages in the module view are collapsable, just click on them.
- Jacob Carlborg (4/6) May 03 2012 I think that would be a good idea.
- Ary Manzana (3/7) May 03 2012 I'm not sure. I'd like the symbols to be under the same tree.
- Rory McGuire (3/14) May 03 2012 Would be great if you could make it an accordion with a live search at t...
- Jakob Ovrum (6/9) May 04 2012 An accordion is a nice idea, and Bootstrap has good support for
- Rory McGuire (8/16) May 04 2012 I would put a text input above the accordian, with the word "Filter
- Jacob Carlborg (4/6) May 03 2012 I didn't even know the symbols where there until a scrolled down.
- Ary Manzana (8/14) May 03 2012 The same happened to me.
- Jakob Ovrum (5/24) May 03 2012 There would be a lot of wasted whitespace to the left, and
- Jacob Carlborg (5/9) May 03 2012 The right side is pretty empty if you have a wide screen. Perhaps the
- Jakob Ovrum (12/14) May 04 2012 On my current 16:9 1080p monitor, the full width of the page is
- Jacob Carlborg (5/18) May 04 2012 Well, it's not empty but the main content doesn't need to be that wide.
- Steven Schveighoffer (19/44) May 03 2012 I suggest:
- Jakob Ovrum (21/35) May 04 2012 You mean like the module list currently works with packages and
- Steven Schveighoffer (18/42) May 04 2012 I don't see it working that way. If I click on etc.c.sqlite3 for exampl...
- Jakob Ovrum (6/19) May 04 2012 Right, I didn't notice that problem, but it is indeed glaringly
- Steven Schveighoffer (18/26) May 04 2012 I was envisioning eliminating the rest of the tree, and you'd have to
- Jakob Ovrum (2/19) May 04 2012 I think that's an awesome idea, I'll play with it later. Thanks.
- Jacob Carlborg (3/9) May 03 2012 Aha, I was thinking more like "below the tree" as it is now.
- James Miller (4/32) May 03 2012 Ahh, I missed that, sorry. Nevermind me, carry on, you're awesome.
- Ary Manzana (6/15) May 02 2012 Very nice!
- Jakob Ovrum (17/40) May 02 2012 The symbols in the symbol tree appear in the order the symbols
- Ary Manzana (10/49) May 02 2012 I don't think the main documentation order is right in the first place.
- Jacob Carlborg (4/6) May 03 2012 I really hope we get this functionality.
- Jakob Ovrum (13/20) May 04 2012 I agree that the current order doesn't make a whole lot of sense,
- Dejan Lekic (5/42) May 07 2012 As I said on irc://irc.freenode.org/d , this is probably the best DDoc t...
- Jonas Drewsen (9/9) May 08 2012 I guess most devs have a pretty wide screen. How about letting
This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/ LuaD's official documentation also uses bootDoc http://jakobovrum.github.com/LuaD/ bootDoc is designed to be easily usable with any project. It is used as a git-submodule in both of the above sample scenarios. All project-specific settings are provided by a separate configuration file (settings.ddoc), which is documented on the project's Github wiki. bootDoc includes a general-purpose generation script. See the readme on Github for usage information. The script uses a candyDoc-style modules.ddoc as input, making the transition from candyDoc projects easy. Note about noscript: JavaScript is used to get around the static nature of DDoc. The sidebar does not work without JavaScript, and neither do fully qualified anchor names. However, anchors with ambiguous names (such as those usable for symbols on dlang.org) work both with and without JavaScript, with the same limitations. Comments, issues, enhancement requests, questions or rants about JavaScript - all feedback is much appreciated!
May 02 2012
On 2012-05-02 20:26, Jakob Ovrum wrote:This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework.Looks good. -- /Jacob Carlborg
May 02 2012
On 02.05.2012 22:26, Jakob Ovrum wrote:Note about noscript: JavaScript is used to get around the static nature of DDoc. The sidebar does not work without JavaScript, and neither do fully qualified anchor names. However, anchors with ambiguous names (such as those usable for symbols on dlang.org) work both with and without JavaScript, with the same limitations.Wooha! remove in std.algorithm finally points to _function_. Impressed :) (BTW It's still "points" to enum in dlang.org)Comments, issues, enhancement requests, questions or rants about JavaScript - all feedback is much appreciated!-- Dmitry Olshansky
May 02 2012
On Wednesday, 2 May 2012 at 18:26:11 UTC, Jakob Ovrum wrote:This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/ LuaD's official documentation also uses bootDoc http://jakobovrum.github.com/LuaD/ bootDoc is designed to be easily usable with any project. It is used as a git-submodule in both of the above sample scenarios. All project-specific settings are provided by a separate configuration file (settings.ddoc), which is documented on the project's Github wiki. bootDoc includes a general-purpose generation script. See the readme on Github for usage information. The script uses a candyDoc-style modules.ddoc as input, making the transition from candyDoc projects easy. Note about noscript: JavaScript is used to get around the static nature of DDoc. The sidebar does not work without JavaScript, and neither do fully qualified anchor names. However, anchors with ambiguous names (such as those usable for symbols on dlang.org) work both with and without JavaScript, with the same limitations. Comments, issues, enhancement requests, questions or rants about JavaScript - all feedback is much appreciated!Great! I will try this :) Masahiro
May 02 2012
While it would be nice if the nav tree were still there w/o JS, and I'm not personally a fan of CSS(or HTML)-based "frames", this is definitely a very nice, clean, great-looking theme!
May 02 2012
On Wednesday, 2 May 2012 at 21:42:21 UTC, Nick Sabalausky wrote:While it would be nice if the nav tree were still there w/o JS, and I'm not personally a fan of CSS(or HTML)-based "frames", this is definitely a very nice, clean, great-looking theme!Alright, with some effort, I made it so that at least a basic module list works without JS. It looks pretty alright with noscript now.
May 02 2012
"Jakob Ovrum" <jakobovrum gmail.com> wrote in message news:lbskaseedspulyynaqlb forum.dlang.org...On Wednesday, 2 May 2012 at 21:42:21 UTC, Nick Sabalausky wrote:Very nice :)While it would be nice if the nav tree were still there w/o JS, and I'm not personally a fan of CSS(or HTML)-based "frames", this is definitely a very nice, clean, great-looking theme!Alright, with some effort, I made it so that at least a basic module list works without JS. It looks pretty alright with noscript now.
May 02 2012
On Wednesday, 2 May 2012 at 18:26:11 UTC, Jakob Ovrum wrote:This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework.I would make a minor change that lets you see the function tree near the top. On my laptop screen (about a standard size) I have to scroll down about an entire screen to see it. How this is implemented is up to you, but being able to collapse to module view might be enough. -- James Miller
May 02 2012
On Thursday, 3 May 2012 at 05:14:43 UTC, James Miller wrote:On Wednesday, 2 May 2012 at 18:26:11 UTC, Jakob Ovrum wrote:Packages in the module view are collapsable, just click on them. Having the module list in its entirety collapsable might be an idea, but unless your project has a ton of top-level packages and modules, it won't help much with your specific problem (the situation would be almost the same). I am considering putting the module tree and symbol tree in tabs instead of below each other.This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework.I would make a minor change that lets you see the function tree near the top. On my laptop screen (about a standard size) I have to scroll down about an entire screen to see it. How this is implemented is up to you, but being able to collapse to module view might be enough. -- James Miller
May 02 2012
On 2012-05-03 08:09, Jakob Ovrum wrote:I am considering putting the module tree and symbol tree in tabs instead of below each other.I think that would be a good idea. -- /Jacob Carlborg
May 03 2012
On 5/3/12 2:10 PM, Jacob Carlborg wrote:On 2012-05-03 08:09, Jakob Ovrum wrote:I'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.I am considering putting the module tree and symbol tree in tabs instead of below each other.I think that would be a good idea.
May 03 2012
Would be great if you could make it an accordion with a live search at the top. On Thu, May 3, 2012 at 10:09 AM, Ary Manzana <ary esperanto.org.ar> wrote:On 5/3/12 2:10 PM, Jacob Carlborg wrote:On 2012-05-03 08:09, Jakob Ovrum wrote: I am considering putting the module tree and symbol tree in tabs insteadI'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.of below each other.I think that would be a good idea.
May 03 2012
On Thursday, 3 May 2012 at 08:16:48 UTC, Rory McGuire wrote:Would be great if you could make it an accordion with a live search at the top.An accordion is a nice idea, and Bootstrap has good support for it. Where would you have the search, exactly, though? And do you mean the existing symbol search, a project-wide search (which is non-trivial), or a module search?
May 04 2012
I would put a text input above the accordian, with the word "Filter Module" or something like that. It would be great if it were possible to search the module too or perhaps a module description of some sort, but that is more work. The purpose for the text input filter on the accordian would just be to show module names for quicker navigation, esp if the text box was selected on page load. On Fri, May 4, 2012 at 2:07 PM, Jakob Ovrum <jakobovrum gmail.com> wrote:On Thursday, 3 May 2012 at 08:16:48 UTC, Rory McGuire wrote:Would be great if you could make it an accordion with a live search at the top.An accordion is a nice idea, and Bootstrap has good support for it. Where would you have the search, exactly, though? And do you mean the existing symbol search, a project-wide search (which is non-trivial), or a module search?
May 04 2012
On 2012-05-03 10:09, Ary Manzana wrote:I'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.I didn't even know the symbols where there until a scrolled down. -- /Jacob Carlborg
May 03 2012
On 5/3/12 6:41 PM, Jacob Carlborg wrote:On 2012-05-03 10:09, Ary Manzana wrote:The same happened to me. What I meant with "under the same tree is" + std + algorithm * map * reduce * ...I'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.I didn't even know the symbols where there until a scrolled down.
May 03 2012
On Thursday, 3 May 2012 at 12:33:33 UTC, Ary Manzana wrote:On 5/3/12 6:41 PM, Jacob Carlborg wrote:There would be a lot of wasted whitespace to the left, and overflow for long symbol names would become an even bigger issue. I do understand the problem though, and I want to fix it. Some more opinions are much appreciated.On 2012-05-03 10:09, Ary Manzana wrote:The same happened to me. What I meant with "under the same tree is" + std + algorithm * map * reduce * ...I'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.I didn't even know the symbols where there until a scrolled down.
May 03 2012
On 2012-05-03 14:43, Jakob Ovrum wrote:There would be a lot of wasted whitespace to the left, and overflow for long symbol names would become an even bigger issue. I do understand the problem though, and I want to fix it. Some more opinions are much appreciated.The right side is pretty empty if you have a wide screen. Perhaps the symbols can be placed there. -- /Jacob Carlborg
May 03 2012
On Thursday, 3 May 2012 at 14:27:38 UTC, Jacob Carlborg wrote:The right side is pretty empty if you have a wide screen. Perhaps the symbols can be placed there.On my current 16:9 1080p monitor, the full width of the page is utilized by the main documentation, tested with Opera and Chrome (as it's supposed to do with the current use of Bootstrap's "table" framework). It does depend on the quantity of documentation though; for LuaD, the right side is considerably more empty than for most Phobos modules. I think it's possible to conditionally and cleanly introduce a right-side sidebar depending on the screen width, that could be worth experimenting with. First I think I want to try to make the sidebar into an accordion, as was suggested earlier in the thread.
May 04 2012
On 2012-05-04 16:04, Jakob Ovrum wrote:On Thursday, 3 May 2012 at 14:27:38 UTC, Jacob Carlborg wrote:Well, it's not empty but the main content doesn't need to be that wide. At least not on my screen, 1920x1080. -- /Jacob CarlborgThe right side is pretty empty if you have a wide screen. Perhaps the symbols can be placed there.On my current 16:9 1080p monitor, the full width of the page is utilized by the main documentation, tested with Opera and Chrome (as it's supposed to do with the current use of Bootstrap's "table" framework). It does depend on the quantity of documentation though; for LuaD, the right side is considerably more empty than for most Phobos modules. I think it's possible to conditionally and cleanly introduce a right-side sidebar depending on the screen width, that could be worth experimenting with. First I think I want to try to make the sidebar into an accordion, as was suggested earlier in the thread.
May 04 2012
On Thu, 03 May 2012 08:43:43 -0400, Jakob Ovrum <jakobovrum gmail.com> wrote:On Thursday, 3 May 2012 at 12:33:33 UTC, Ary Manzana wrote:I suggest: 1. Only expand tree to the level of the current symbol selected. So for instance, you click on std.datetime, you see all the top-level symbols of std.datetime *not* expanded. If you click on std.datetime.Month, the Month enum expands in the tree. 2. When inside a module, only show the packages of that module as breadcrumbs, without indentation. That saves you the white space. BTW, I noticed two issues: 1. If a symbol name is too long, it is truncated with ..., but the expand/collapse arrow is also removed. 2. The index.html goes to links like std_base64.html, but the actual doc is at std.base64.html, so you get a 404. Looks really nice! I agree with Ary, we *really* really need cross references (generated by the compiler), and I'd add it would be nice to be able to show categories and category headers at the top of each module (i.e. here are all the structs in this file, here are all the classes). -SteveOn 5/3/12 6:41 PM, Jacob Carlborg wrote:There would be a lot of wasted whitespace to the left, and overflow for long symbol names would become an even bigger issue. I do understand the problem though, and I want to fix it. Some more opinions are much appreciated.On 2012-05-03 10:09, Ary Manzana wrote:The same happened to me. What I meant with "under the same tree is" + std + algorithm * map * reduce * ...I'm not sure. I'd like the symbols to be under the same tree. With tabs you'd have to click twice to go from one place to another.I didn't even know the symbols where there until a scrolled down.
May 03 2012
On Thursday, 3 May 2012 at 14:30:38 UTC, Steven Schveighoffer wrote:I suggest: 1. Only expand tree to the level of the current symbol selected. So for instance, you click on std.datetime, you see all the top-level symbols of std.datetime *not* expanded. If you click on std.datetime.Month, the Month enum expands in the tree.You mean like the module list currently works with packages and modules?2. When inside a module, only show the packages of that module as breadcrumbs, without indentation. That saves you the white space.Packages of a module? I'm not sure what you mean here, could you try to explain this again, perhaps with an example? I have a feeling it's a good idea, so I want to comprehend it fully.BTW, I noticed two issues: 1. If a symbol name is too long, it is truncated with ..., but the expand/collapse arrow is also removed.Added a comment to an existing issue, thanks. https://github.com/JakobOvrum/bootDoc/issues/12. The index.html goes to links like std_base64.html, but the actual doc is at std.base64.html, so you get a 404.The links on the index page are generated from hard-coded HTML in index.d. With the new fix for the noscript sidebar, file names must use a dot as a package separator, while the hard-coded paths use an underscore (the package separator in output files is configurable, by the way). Previously the links incidentally worked because the output was configured with underscores. So the problem really lies with the Phobos documentation for using hard-coded links. I think the noscript sidebar is more important than the (terribly outdated) index page, which could be fixed by editing the source anyway (I suppose I could easily do this for the Phobos bootDoc demo).
May 04 2012
On Fri, 04 May 2012 09:56:48 -0400, Jakob Ovrum <jakobovrum gmail.com> wrote:On Thursday, 3 May 2012 at 14:30:38 UTC, Steven Schveighoffer wrote:I don't see it working that way. If I click on etc.c.sqlite3 for example, it doesn't collapse std. Essentially, what I mean is, I should only see the parents, immediate children, and siblings of the currently selected item in the tree *by default*, and then let the user expand if he's interested in more. I only suggest this for the module, though. For example, std.datetime has a huge tree, but everything is expanded fully. If all the top-level items are collapsed, then I don't have to go as far to navigate for something.I suggest: 1. Only expand tree to the level of the current symbol selected. So for instance, you click on std.datetime, you see all the top-level symbols of std.datetime *not* expanded. If you click on std.datetime.Month, the Month enum expands in the tree.You mean like the module list currently works with packages and modules?packages that a module is in. For example, etc.c.sqlite3 is in packages etc and c. If we make those breadcrumbs instead of part of a large tree, it can get around your worry about whitespace, because they don't need separate indentation.2. When inside a module, only show the packages of that module as breadcrumbs, without indentation. That saves you the white space.Packages of a module?OK, not a big deal then. Part of the problem with phobos ddoc in this regard is that cross-links are defined in each individual module. -Steve2. The index.html goes to links like std_base64.html, but the actual doc is at std.base64.html, so you get a 404.The links on the index page are generated from hard-coded HTML in index.d. With the new fix for the noscript sidebar, file names must use a dot as a package separator, while the hard-coded paths use an underscore (the package separator in output files is configurable, by the way). Previously the links incidentally worked because the output was configured with underscores. So the problem really lies with the Phobos documentation for using hard-coded links. I think the noscript sidebar is more important than the (terribly outdated) index page, which could be fixed by editing the source anyway (I suppose I could easily do this for the Phobos bootDoc demo).
May 04 2012
On Friday, 4 May 2012 at 14:48:04 UTC, Steven Schveighoffer wrote:I don't see it working that way. If I click on etc.c.sqlite3 for example, it doesn't collapse std. Essentially, what I mean is, I should only see the parents, immediate children, and siblings of the currently selected item in the tree *by default*, and then let the user expand if he's interested in more. I only suggest this for the module, though. For example, std.datetime has a huge tree, but everything is expanded fully. If all the top-level items are collapsed, then I don't have to go as far to navigate for something.Right, I didn't notice that problem, but it is indeed glaringly obvious with std.datetime. Will fix that, thanks!packages that a module is in. For example, etc.c.sqlite3 is in packages etc and c. If we make those breadcrumbs instead of part of a large tree, it can get around your worry about whitespace, because they don't need separate indentation.That's a great idea, but where in the tree would it appear? What would happen to the rest of the modules, should they be indented like they are now? Wouldn't that look a little weird?
May 04 2012
On Fri, 04 May 2012 10:59:46 -0400, Jakob Ovrum <jakobovrum gmail.com> wrote:On Friday, 4 May 2012 at 14:48:04 UTC, Steven Schveighoffer wrote:I was envisioning eliminating the rest of the tree, and you'd have to click on one of the breadcrumbs to get it back. But that might be weird. Something like: etc . c . sqlite3 * func1 * func2 ... And then you click on etc or c, and get the module tree back (either dynamically or after a round-trip from the server). The idea is, when you are navigating in a module, you are interested in the module, not the rest of the modules. I personally am not as much concerned about how many clicks it takes to navigate as much as I'm concerned about making the tree more focused on what you are doing now. -Stevepackages that a module is in. For example, etc.c.sqlite3 is in packages etc and c. If we make those breadcrumbs instead of part of a large tree, it can get around your worry about whitespace, because they don't need separate indentation.That's a great idea, but where in the tree would it appear? What would happen to the rest of the modules, should they be indented like they are now? Wouldn't that look a little weird?
May 04 2012
On Friday, 4 May 2012 at 15:11:39 UTC, Steven Schveighoffer wrote:I was envisioning eliminating the rest of the tree, and you'd have to click on one of the breadcrumbs to get it back. But that might be weird. Something like: etc . c . sqlite3 * func1 * func2 ... And then you click on etc or c, and get the module tree back (either dynamically or after a round-trip from the server). The idea is, when you are navigating in a module, you are interested in the module, not the rest of the modules. I personally am not as much concerned about how many clicks it takes to navigate as much as I'm concerned about making the tree more focused on what you are doing now. -SteveI think that's an awesome idea, I'll play with it later. Thanks.
May 04 2012
What I meant with "under the same tree is" + std + algorithm * map * reduce * ...Aha, I was thinking more like "below the tree" as it is now. -- /Jacob Carlborg
May 03 2012
On Thursday, 3 May 2012 at 06:09:31 UTC, Jakob Ovrum wrote:On Thursday, 3 May 2012 at 05:14:43 UTC, James Miller wrote:Ahh, I missed that, sorry. Nevermind me, carry on, you're awesome. -- James MillerOn Wednesday, 2 May 2012 at 18:26:11 UTC, Jakob Ovrum wrote:Packages in the module view are collapsable, just click on them. Having the module list in its entirety collapsable might be an idea, but unless your project has a ton of top-level packages and modules, it won't help much with your specific problem (the situation would be almost the same). I am considering putting the module tree and symbol tree in tabs instead of below each other.This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework.I would make a minor change that lets you see the function tree near the top. On my laptop screen (about a standard size) I have to scroll down about an entire screen to see it. How this is implemented is up to you, but being able to collapse to module view might be enough. -- James Miller
May 03 2012
On 5/3/12 1:26 AM, Jakob Ovrum wrote:This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/Very nice! But why the symbols inside std.algorithm, for instance, are not sorted? http://jakobovrum.github.com/bootdoc-phobos/std.algorithm.html (they are kind of sorted by chunks...) Now if it only had cross references... :-P
May 02 2012
On Thursday, 3 May 2012 at 05:44:47 UTC, Ary Manzana wrote:On 5/3/12 1:26 AM, Jakob Ovrum wrote:The symbols in the symbol tree appear in the order the symbols appear in the documentation, which is the order of declaration in the original source (DMD does it this way). I think it would be a little confusing if the symbol tree was alphabetically sorted, while the main documentation was in order of declaration. It is possible to rearrange everything with JavaScript of course, but... I think this might be going a little bit too far. What do you think?This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/Very nice! But why the symbols inside std.algorithm, for instance, are not sorted? http://jakobovrum.github.com/bootdoc-phobos/std.algorithm.html (they are kind of sorted by chunks...)Now if it only had cross references... :-PIf I understand you correctly, any kind of automatic cross-referencing would need post-processing of DMD's generated output. I am considering such post-processing, but it would massively change the project (a lot less would require JavaScript), and completely bind the project to the included generator tool. I think the tool needs more trial-by-fire testing to determine whether it's good enough to be mandatory.
May 02 2012
On 5/3/12 1:23 PM, Jakob Ovrum wrote:On Thursday, 3 May 2012 at 05:44:47 UTC, Ary Manzana wrote:I don't think the main documentation order is right in the first place. If a module provides many functions, like std.algorithm, I don't see how there could possibly be an "intended" order, like "these are more likely to be used". In any case, if I want to quickly find a function, for example "remove" or "insert" or something I think might have the name I'm looking for, alphabetical order is the best way to go.On 5/3/12 1:26 AM, Jakob Ovrum wrote:The symbols in the symbol tree appear in the order the symbols appear in the documentation, which is the order of declaration in the original source (DMD does it this way). I think it would be a little confusing if the symbol tree was alphabetically sorted, while the main documentation was in order of declaration. It is possible to rearrange everything with JavaScript of course, but... I think this might be going a little bit too far. What do you think?This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/Very nice! But why the symbols inside std.algorithm, for instance, are not sorted? http://jakobovrum.github.com/bootdoc-phobos/std.algorithm.html (they are kind of sorted by chunks...)Oh, I just said that because I have a pull request waiting for that feature to be incorporated in DMD... but I don't think it'll happen...Now if it only had cross references... :-PIf I understand you correctly, any kind of automatic cross-referencing would need post-processing of DMD's generated output. I am considering such post-processing, but it would massively change the project (a lot less would require JavaScript), and completely bind the project to the included generator tool. I think the tool needs more trial-by-fire testing to determine whether it's good enough to be mandatory.
May 02 2012
On 2012-05-03 08:53, Ary Manzana wrote:Oh, I just said that because I have a pull request waiting for that feature to be incorporated in DMD... but I don't think it'll happen...I really hope we get this functionality. -- /Jacob Carlborg
May 03 2012
On Thursday, 3 May 2012 at 06:53:42 UTC, Ary Manzana wrote:I don't think the main documentation order is right in the first place. If a module provides many functions, like std.algorithm, I don't see how there could possibly be an "intended" order, like "these are more likely to be used". In any case, if I want to quickly find a function, for example "remove" or "insert" or something I think might have the name I'm looking for, alphabetical order is the best way to go.I agree that the current order doesn't make a whole lot of sense, but it's something that requires one of three things; either 1) a patch to DDoc to make it emit declarations in a different order, or 2) post-processing of DDoc's output, or 3) dynamic reordering with JavaScript. Although it's actually quite trivial to implement (especially the documentation generator in the first place (DMD's DDoc implementation). I'd rather have a go at making a better DDoc generator (maybe Descent is a good start? A new project using SDC
May 04 2012
Jakob Ovrum wrote:This project is finally published and documented, so here's an announcement. https://github.com/JakobOvrum/bootDoc bootDoc is a configurable DDoc theme, with advanced JavaScript features like a package tree and module tree, as well as fully qualified symbol anchors. The style itself and some of the components come from Twitter's Bootstrap framework. Demonstration of Phobos documentation using bootDoc http://jakobovrum.github.com/bootdoc-phobos/ LuaD's official documentation also uses bootDoc http://jakobovrum.github.com/LuaD/ bootDoc is designed to be easily usable with any project. It is used as a git-submodule in both of the above sample scenarios. All project-specific settings are provided by a separate configuration file (settings.ddoc), which is documented on the project's Github wiki. bootDoc includes a general-purpose generation script. See the readme on Github for usage information. The script uses a candyDoc-style modules.ddoc as input, making the transition from candyDoc projects easy. Note about noscript: JavaScript is used to get around the static nature of DDoc. The sidebar does not work without JavaScript, and neither do fully qualified anchor names. However, anchors with ambiguous names (such as those usable for symbols on dlang.org) work both with and without JavaScript, with the same limitations. Comments, issues, enhancement requests, questions or rants about JavaScript - all feedback is much appreciated!As I said on irc://irc.freenode.org/d , this is probably the best DDoc theme I have seen so far. So nice, and elegant. I have it bookmarked the moment he gave us the link on #D channel. :) Well-done!
May 07 2012
I guess most devs have a pretty wide screen. How about letting the overview of the current selected module be located to the right of the modules listing when there is enough horizontal space. Something like: http://dl.dropbox.com/u/188292/flow.png I guess that it could be accomplished by using left floats and min-widths in order not to break it for people with smaller screens. /Jonas
May 08 2012