Problem/Motivation

On #2503371: Set up a drupal.org development site for the D8 user manual project, the infra team set up a temporary site for the User Guide project. We are currently using this site to develop and display the project as we go; see:

THESE ARE THE OLD URLs
https://userguide-drupal.redesign.devdrupal.org/d8guide/en/index.html (in-progress guide)
https://userguide-drupal.redesign.devdrupal.org/guidelines/index.html (guidelines and instructions)

https://userguide_new-drupal.dev.devdrupal.org/d8guide/en/index.html (in-progress guide)
https://userguide_new-drupal.dev.devdrupal.org/guidelines/instructions.html (guidelines and instructions)

This is OK for the moment , but our process for getting the project's source and HTML output files up there is manual right now: jhodgdon builds the output and uses SFTP to transfer it to the site; she also logs in and does a git pull to update the source directory. This needs to be replaced with a Jenkins job or similar. [This part has been taken care of]

Also, we need a more permanent home for the site.

Specifications / Features

Desired features of the more permanent home for the User Guide (each feature is given a code name for easy reference below):

  • [git] The definitive source for the Guide is a Git repository. Due to the ability to have branching, multiple translations, patches, etc., we do not want to lose that.
  • [display] We would like to display the guide in HTML form, which can be built from the source and ideally updated when the source is updated.
  • [integration] Ideally, it should look like other Drupal documentation, and be integrated with other Drupal documentation (which is in nodes on Drupal.org).
  • [ebook] People should also be able to download PDF and other e-book versions of the guide, which are also built from the source and should ideally be automatically built and updated when the source is updated.
  • [multilingual] The guide will be translated, so we would like to display all the language versions (HTML and e-book downloads).
  • [edit] Allow contributors to edit the guide on-line and download revised text source files for the pages, and to see project information (file an issue link, link to the project, etc.).
  • [versions] The Guide will need to be branched for different versions of Drupal. For 8.x.y versions, we can probably live with just displaying the most current branch. But when 9.x is in development and/or close to release or released, there will definitely be a significant time when we'll need to have both the 8.x and 9.x versions available to view/download, because presumably 8.x and 9.x versions of Drupal will be in widespread use.
  • [additional] We may eventually have more books (like Volume 2: Advanced Views or something); would be good to display them too. We already actually have 2 books -- one is the "contributor guide" for people working on the Guide, and the other is the Guide itself.
  • [discover] We'll need to direct people to this Guide, and ideally if they search drupal.org these pages would come up in the search results

Note on [edit]: The editorial workflow for the guide uses issues in the User guide project. Basically, if someone wants to propose a change they would need to file an issue in that project, and the maintainers would then examine the changes to the text source files and commit them. The current online editor we have on the dev site allows people to preview the AsciiDoc output as they write it, and then download the revised text file that they can attach to an issue. Many of our contributors are using the online editor now, and as we move forward with updates needed for new versions of Drupal being released, and with translating the guide into new languages, this need will continue. The online editor also has support for [multilingual], as it lets you see the English source while you're translating.

Features we don't need on this site:

  • Comments
  • Generally people logging into the site, except possibly one or two admins to edit some settings or maybe the home page; we could probably even get around that by putting the settings in a Feature and generating the home page from another AsciiDoc project?
  • The pages of this site are not directly related to Drupal.org pages, although we may put in manual links on docs pages to the manual, or in the manual to docs pages.

Proposed resolution

Option 1 for implementing these features: AsciiDoc Display module in Drupal site

On the current dev site, features [display], [multilingual], [edit], and [additional] are being taken care of by using the AsciiDoc Display in Drupal module. (Well, to be clear, the multilingual feature works in that module, but we don't currently have any multilingual source so the block that enables it is not being displayed.)

Feature [ebook] has not been implemented, but the User Guide project has scripts that generate PDF, ePub, and Mobi output (they may need some work to make better output, but they do work). We'd probably need a small module that would list the e-book versions in a block or page.

Feature [discover] - no idea how to make this work with the Solr multisite search, but it might be possible to do.

Option 2 for implementing these features: static HTML site

On some of the comments on this issue, it was suggested that for the HTML output, we could use a static HTML site generated directly from the AsciiDoc source. However, it's not clear how this would support features [multilingual], [edit], [additional], or [ebook]. It seems like we'd need some kind of PHP scripting for that or sidebar blocks or something, and if we're going to do that, it seems like we should use Drupal.

Note on having a separate site vs. on Drupal.org itself

Assuming we're displaying this in a Drupal site, we'd also need to decide whether to put it on www.drupal.org itself or in a docs.drupal.org or similar subsite.

Considerations:
- Multilingual - www.drupal.org currently isn't, but may be soon due to groups migration
- Fragmentation - may be better to have it on www.drupal.org for unity
- Getting lost - may be better to have it on its own site so that it stands out more and the navigation/blocks can be specific to that site

Option 3 - Import AsciiDoc HTML output into Drupal.org nodes

This is the option we are planning to implement

Build a way to import the HTML output of the AsciiDoc source into Drupal nodes in the appropriate language(s). This would be a modification (or sub-module) of the AsciiDoc Display module, which would provide a Drush command to import a "book" into Drupal nodes, and another one to update existing nodes (so it would need to have a database table to keep track of the correspondence). We would plan to do the import of a given language when the guide is deemed to be "stable" in that language, and then update it (by running a Jenkins job that would be available but not run automatically) when deemed to be a good idea.

Features to be added later:
- Ability to do on-line editing (using AsciiDoc Display module, connected to the nodes but reading the source as it does now, should be easy enough since we will have the table with the correspondences)
- Ability to download PDF and ePub ebooks (Jenkins can build and copy to a standard location, and links can be put into a block that is displayed on these pages)

This satisfies most/all of the desired specifications/features.

Remaining tasks

- Decide on the eventual home
- Build the site
- Set up Jenkins scripts [jhodgdon can provide information; will need to install 4 Apt/Yum packages but the scripts themselves are straightforward] Done!
- Modify the existing Jenkins scripts to point to the new site.

User interface changes

Permanent home for the User Guide, with auto-generated HTML and e-book output.

Comments

tvn’s picture

Thanks for the detailed issue, jhodgdon. A few questions:

1. Will there be any user generated content / comments on this sub-site? Or is it purely for display of the Guide?

2. How will the editorial workflow work? The source for the Guide is in the Git repo, so to make changes to any page on the new sub-site people will need to provide a patch via D.o issue queue?

3. What are your thoughts on making this guide and individual pages of it findable on Drupal.org? We can do multi site search of course, but we'll loose the ability to tag pages and relate them to other pages on Drupal.org, since it's a separate sub-site. (Not saying this shouldn't be a sub-site, just wondering).

jhodgdon’s picture

I can answer question 2 in comment #1: Yes, the editorial workflow is via the User Guide project, which is using issues to manage changes to the source in the Git repo.

Regarding question 1, I believe there will not be many pages, but I would think there might be a page or two explaining what the user manual is, with links to the User Guide project for potential contributors? I don't really know, maybe someone in the Docs WG can comment.

Regarding question 3, multi-site search sounds like a good idea.

But I am not sure what you mean by "tagging" pages or "relating" to other pages. I believe that the only relationships between pages on this proposed sub-site and pages on Drupal.org would be links between them (in both directions)... I don't know what type of "tagging" you are referring to.

drumm’s picture

We're thinking probably we'd want a separate site (docs.drupal.org or guide.drupal.org or something like that) rather than putting this onto Drupal.org. Reasons:
- Multilingual

Unfortunately, I'm not aware of issues open for this, but we as staff have been talking about multilingual on Drupal.org, as a side-effect of https://groups.drupal.org/node/445048. That would get done this year.

- Drupal.org is huge, this might get lost

Regardless, we need a home for this in Drupal.org's content strategy. The URL is more of an afterthought than the navigation.

- Requires a module to be installed https://www.drupal.org/project/asciidoc_display and doesn't require all the other modules currently on Drupal.org

We can install modules on Drupal.org. And should be just as careful with installing them on subsites.

jhodgdon’s picture

OK. I don't think that the DocsWG has a strong opinion on whether this should be on its own site or on drupal.org. The important points are:
- The guide will hopefully be massively multilingual. However, at the moment the Asciidoc Display module doesn't really integrate with Drupal languages. I was going to file an issue on that point today actually.
- The guide is not really directly related to drupal.org pages in any way.
- We want to make sure people can find the guide, and either view it online or download a PDF or other e-book.
- We want to have a Jenkins job that builds/updates the online content and the e-books.

tvn’s picture

Regarding question 1, I believe there will not be many pages, but I would think there might be a page or two explaining what the user manual is, with links to the User Guide project for potential contributors? I don't really know, maybe someone in the Docs WG can comment.

To clarify further, do you need users to be able to log in to the site and edit any content via UI? Or will all the content be automatically generated via Jenkins job from the source files?

But I am not sure what you mean by "tagging" pages or "relating" to other pages. I believe that the only relationships between pages on this proposed sub-site and pages on Drupal.org would be links between them (in both directions)... I don't know what type of "tagging" you are referring to.

I meant that if this wasn't a sub-site, but part of Drupal.org, we could potentially use taxonomy or entity references or something else to display links to parts of the guide as 'Related content ' on Drupal.org documentation pages (or other places, e.g. topic, project pages) to make it contextually findable.

jhodgdon’s picture

I think there may be just a very small number of editable pages on the site, that a few designated administrators would need to be able to log on and edit, such as a home page explaining what the site is. We could possibly live without this by designating an AsciiDoc-Jenkins-generated page as the site home page.

The rest of the content would be generated from Jenkins scripts.

joshuami’s picture

+1 to making the homepage generated by AsciiDoc-Jenkins. Having just played with Jekyll a bit, that seems to be a very functional way to produce that sort of site and it would be very performant without any security issues.

jhodgdon’s picture

Should be doable. That's if it's a separate site at all and not on drupal.org directly.

Regarding "without any security issues", at least I thought the plan would be to display the AsciiDoc through a Drupal site, and someone would still need to be the site admin.

tvn’s picture

But does it actually have to be a Drupal site? If the only purpose of it is to display static html, can't we use a script to generate those files and host them directly. Would remove maintenance burden of updates etc.

jhodgdon’s picture

I am not sure about that, actually, the more I think about it.

Ideally, we'd want to:
- Display the HTML output of at least two books on the site. Right now we already have two: the Contributor guide and the User Guide to Drupal 8 itself. There may be more.
- Display the User Guide and possible follow-up volumes (like maybe "Advanced Guide to Views" or something else the docs team might decide to do in the future) in multiple languages, with a language switcher.
- Also provide links to download the PDF and other e-book formats.
- Allow people to edit and/or translate using the on-line editors, and download the resulting source text files.

Much of this functionality would require some kind of scripting rather than being static HTML. I would think Drupal would be the logical choice for a framework to put the scripting in?

jhodgdon’s picture

Issue summary: View changes

Updating summary with some of the recent discussions.

webchick’s picture

One other requirement: searching for things on Drupal.org brings up pages in the user guide(s). (Probably at a very high weight.)

jhodgdon’s picture

That's already there:

[discover] We'll need to direct people to this Guide, and ideally if they search drupal.org these pages would come up in the search results

Perhaps not written the best but there. ;)

webchick’s picture

Oops. Reading! It's important. :D

jhodgdon’s picture

So... Any decision here? I still think that the best option is a Drupal-based site, because we want people to be able to edit on-line. We already have a Drupal module that allows for that, and I do not really want to (a) redo that code so it is independent of Drupal or (b) maintain this hypothetical independent code.

I also think that for navigating a set of potentially many languages and many books, the Drupal options (navigation blocks, etc.) are a plus, rather than probably having to maintain an HTML-based navigation separately, which seems like a pain. It's definitely possible to output *1* book as HTML, but not so easy to automate the navigation without some kind of scripting... and as I stated before, if we need some kind of scripting, it seems like Drupal would be the logical choice.

Given that, I still don't know about www.drupal.org vs. another site. But I'd like to not have to manually build and transfer the files over to the temporary site every day. It is getting to be a pain, and right now I am the only one who is doing it, so it's a bottleneck.

Maybe at least we could set up a Jenkins job that would do the build/transfer part on the temporary site (which we could then use as a proof of concept for the real site)?

joshuami’s picture

We are not ready to make a decision about whether this content belongs on Drupal.org or a separate site. Both options have drawbacks and maintenance costs.

That said, we can devote time to making your collaborative writing process easier by setting up a Jenkins job to automatically pull the committed files down to the https://userguide-drupal.redesign.devdrupal.org/ demo site.

Please confirm this is the workflow you are looking to achieve.

1. maintainer of project/user_guide commits to the 8.0.x branch
2. a Jenkins job deploys that code to /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_source on devwww

Is there anything else the Jenkins job needs to do for those source files to build into the pages at https://userguide-drupal.redesign.devdrupal.org/d8guide/en/index.html ?

jhodgdon’s picture

Sounds good! That will be very very helpful. I am currently the only person who is updating the site and it's kind of tedious.

The workflow in #16 is incomplete. Actual workflow that I am doing:

a) Maintainer commits to the 8.0.x branch of project/user_guide

b) I do a local git pull and build the HTML output on my local machine. I am currently doing this using a script called "mkoutput.sh" in the scripts directory of the repository. That script builds both the HTML and e-book output, but for purposes of the dev site, it could stop after just doing the HTML. The script has copious comments in it so should be fairly easy to figure out. There is also a README file that explains what tools are needed (command-line tools to build the HTML output from the AsciiDoc source).

c) I ssh to devwww.drupalsystems.org and do a git pull on /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_source

d) I use sftp to transfer my local output to /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_output -- after running the script, this is located in my local project/user_guide/output/html directory and I transfer the en and guidelines directories into userguide_output

e) Clear the cache on the dev site using Drush

I am unfortunately not going to be available much or at all for the next 2.5 weeks to help in getting this done... or for that matter for updating the site, since I'm going on a bicycle trip. Sorry.

drumm’s picture

/var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_source/output/html is now being generated, but looks like it has nontrivial differences from /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_output, I've left off copying to that directory to now.

The asciidoc that we now have on devwww is

$ asciidoc --version
asciidoc 8.4.5

It looks like 8.6.9 is available, http://asciidoc.org/CHANGELOG.html. What version are you running locally?

The Jenkins job implementation is currently

cd /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_source
git pull
cd scripts
./mkoutput.sh --no-ebooks

And I've patched mkoutput.sh with #2568921: Improve mkoutput.sh script. It is triggered on commit, but only polls once an hour.

jhodgdon’s picture

I'm back from my trip; sorry for the delay in responding here.

Thanks for setting up the git pull job -- that seems to be working (or at least, when I ssh'd into the site, the git pull was up to date except for the modification to scripts/mkoutput.sh, which I'll look at shortly on the other issue).

Regarding asciidoc versions, I am running 8.6.9 locally, vs. the 8.4.5 version you are running.

Also, I am running 0.0.25 version of xmlto, vs. 0.0.23 on the dev site.

Can we update the dev site to those versions?

drumm’s picture

Assigned: Unassigned » basic

That's a question for Rudy. In general, the packages that are available for CentOS 6 are easy to install.

basic’s picture

Assigned: basic » Unassigned

Sorry for the delay here, just catching up post-drupalcon...

The versions currently installed are the latest available in the CentOS 6.x yum repositories.

Are there features added between 0.23 and 0.25, and 8.6.9 and 8.4.5 that are needed?

jhodgdon’s picture

Assigned: Unassigned » jhodgdon

Hm, that I don't know. I will have to check and see what the differences are between the output being created on my local machine (which we like) and the output on the d.o machine (which I haven't really looked at). I'll take a look at some of the intermediate output and see what is going on. Probably tomorrow.

jhodgdon’s picture

Assigned: jhodgdon » Unassigned

Or maybe today. ;)

So, it looks like the asciidoc command is the problem. The version on the devdrupal.org machine is not producing the right output from the source, and the output cannot be parsed by the xmlto command. For instance, it is not finding the assigned section IDs to assign to each topic, so that cross-references to topics can be made. Then when the xmlto command is run, there are all sorts of validation errors about not finding the cross-referenced sections. I'm not familiar with the history of AsciiDoc, so I'm not sure when/why that macro for putting in cross-reference IDs changed, but that seems to be the main problem.

To look at the xmlto step, I copied in the guide.docbook (intermediate docbook file created by the asciidoc command) from my local machine and ran the xmlto command. This then at least ran... But the output is slightly different here and there (some different classes added to divs and the like) and it is not working quite right with the AsciiDoc Display module. It is *mostly* OK but not perfect.

xmlto is basically just an engine for applying XSL style files to XML output (docbook is XML). So probably the difference between your version and mine is that the XSL style files are slightly different. So... xmlto allows you to have an "overrides" file (and we already have one) to use different XSL style commands here and there. This means that I could probably coerce this to work. It's pretty close to the output the AsciiDoc display module is expecting, so it probably wouldn't take too much to fix it up.

So:

a) We definitely need to update the AsciiDoc command on the machine that runs the scripts. The version on there now is not working at all, and there is not an easy way to override it or fix it.

b) Ideally we would also update the xmlto package, but I could get around this with some work in the scripts and/or AsciiDoc display module if necessary. That might be a good idea anyway, since others theoretically using this module may also be using different versions of the xmlto package and/or its XSL style files.

For information on installing AsciiDoc, see
http://www.methods.co.nz/asciidoc/INSTALL.html

basic’s picture

It looks like http://pkgs.repoforge.org/asciidoc/ has the latest version in rpm for centos6, we can use that for asciidoc. We can probably install https://fedorahosted.org/releases/x/m/xmlto/ pretty easily between puppet and these tarballs, I'll spend some time today on this.

basic’s picture

devwww1 and devwww2 now both have:

[root@devwww1 ~]# asciidoc --version
asciidoc 8.6.9
[root@devwww1 ~]# xmlto --version
/usr/bin/xmlto: line 243: /usr/bin/grep: No such file or directory
xmlto version 0.0.25

Please note that xmlto has a bug in it where it thinks that grep lives in /usr/bin/grep. This can likely be fixed with a symlink.

jhodgdon’s picture

Thanks! I'll test this out later today.

jhodgdon’s picture

The xmlto script has additional issues. It ran for a while after complaining about grep, and then it stopped at:

/usr/share/xmlto/format/docbook/xhtml: line 10: /usr/bin/cp: No such file or directory

so apparently both cp and grep are misplaced. I wonder why they would have those hard-wired in the script -- seems very stupid.

Anyway, those two errors should be easy enough to fix, as you said, with symlinks. There may be others, but it looks like the script was pretty much done by that point... probably just had to copy its output from a temp directory somewhere into its final destination? Not sure.. I didn't look at the script.

I also took the output from the asciidoc command and copied it to my local site. From there I was able to run xmlto and verified it works fine for display. So it does look like the new asciidoc script you installed works fine.

Anyway, if you want to test whether all the necessary symlinks have been made, you could do this:

cd /var/www/dev/userguide-drupal.redesign.devdrupal.org/userguide_source/scripts
./mkoutput.sh --no-ebooks

That will not overwrite anything important, and if it runs without any errors, it's probably fine. I don't think I probably have permission to make symlinks on that server in /usr/bin. Or that you'd want me to if I could. ;)

Thanks!

basic’s picture

I've copied the xmlto script to /usr/local/bin/xmlto with fixed paths. Let me know if this fixed the issues.

jhodgdon’s picture

The script runs, and the output looks good now. Thanks!

So. What we would need the Jenkins job to do is -- and this is all relative to the userguide-drupal.redesign.devdrupal.org directory on the dev server:

a) git pull on the userguide_source directory [it is doing that now]

b) Remove the userguide_source/output directory completely (to get rid of old output).

c) cd to userguide_source/scripts

d) run ./mkoutput.sh --no-ebooks

e) If successful, replace what is currently in the userguide_output directory with the contents of userguide_source/output/html

So there should end up being userguide_output/en and userguide_output/guidelines directories.

drumm’s picture

The script is now complete, step e was missing until now.

jhodgdon’s picture

Yes, seems to be working great! Thanks!

jhodgdon’s picture

The dev site that the User Guide project is currently using seems unstable. I would really like to see this project get a permanent home as soon as possible.

The first step is that we still need to figure out whether this permanent home is on drupal.org or a different *.drupal.org. And then get it into the drupal.org infrastructure plan.

Any thoughts?

joshuami’s picture

The dev sites were all a bit unstable over the past week. That seems to be resolved now, but it has us doing some work to shore up those services.

@tvn is working on a few upcoming documentation stories for our next couple of sprints. We still need to chat through the pros and cons of making it part of Drupal.org or making it a subsite. There is a lot to think about there and no clear winner among the options.

Personally, I lean towards static site generation and indexing the content in our Solr server to serve results from Drupal.org. I imagine the guide will be pretty static once it reaches a certain state of done—and it would be nice to have one less feature to support or site to update during those long periods of stability.

With dev stabilized, I think we have a little time to figure out the best solution for hosting. I'd definitely like to get this documentation out there in the first quarter of 2016 to better support users of Drupal 8, but to get it off the backlog, we might need to shoot for a minimum viable solution before something with more functionality.

jhodgdon’s picture

Issue summary: View changes

The dev site has been a big pain for us throughout the development of the User Guide, which we started at the end of June.

At least we now have Jenkins scripts that have removed the need for me to manually update the site whenever we make a commit -- THANK YOU @drumm.

But the site itself has been very problematic. For instance, so far we have had two different URLs -- dev sites are really not meant to be used for longer-term projects like this, and at some point between last June and now, the infra team changed how dev sites were being done and we had to move this one and the URL changed, which meant we had to go find all the links and change them, which was very painful. We had a note on the old site for a while telling people about the new URL, but with the latest crash that has been lost.

Then we have also had to deal with the .htaccess login, which even though we tell people as often as possible how to log in, they still don't get it all the time. And the dev sites have been unstable and/or slow multiple times, not just this week.

So it would be really very helpful if someone could just make a decision one way or another what we want to do with this, and do it. Having an active development project for something as (I think) important as the User Guide to the Drupal project, living on what is supposed to be used for one-off temporary development projects, is not really working all that well. We're making do but the sooner we can have a more permanent home, the better.

jhodgdon’s picture

And just to say this one more time... really having a static HTML site is not going to work well, because of the online editing feature, which a static HTML site would not have. Even after the English guide is done for 8.0.x, we will need to make updates for 8.1.x, 8.2.x, ... 9.0.x, etc. (all of them may have UI changes), and these versions are coming out every 6 months I think. Also there will hopefully be translations.

I personally am comfortable editing in a plain text editor as I'm very familiar with the formatting, but most people aren't and having an online editor with buttons for the formatting, and preview capability, has been VERY helpful. I think it will continue to be. So I wish that the static HTML option would be taken off the table. There's no way to offer editing on-line in a static HTML site that is just displaying the User Guide output, and we really do need editing.

jhodgdon’s picture

Our development site for the User Guide has been down with some MySQL error for almost a week, although I understand the infrastructure team is supposedly working on fixing the problem... no sign of a fix though.

The User Guide project is really suffering from the lack of a more permanent and supported home -- we've had quite a bit of down time throughout the lifetime of the project so far. Is there any hope of moving this forward?

jhodgdon’s picture

Issue summary: View changes

Updating the issue summary with the current URL...

basic’s picture

@jhodgdon I recreated the dev site two days ago, and @tvn pinged me about the URLs not working this morning.

After looking into the configuration, we noticed there is configuration missing from https://userguide_new-drupal.dev.devdrupal.org/admin/config/development/... that needs to be re-added to the site. We looked for documentation on what this should be but weren't able to track down the correct settings.

I did sync over the hid_source, hid_output, userguide_source, userguide_output and also verified the Jenkins job is running correctly again to rebuild the docs.

I believe this will be back in action once the asciidoc configuration is updated.

@isntall is working on nightly snapshot backups of the dev databases to give us something to recover databases from when the next docker+devicemapper+ebs thin provisioning copy on write mess gives us data loss.

jhodgdon’s picture

Thanks for making a new site again!

I have created the AsciiDoc config items, plus put back the needed blocks and set up permissions. The site is back up.

jhodgdon’s picture

Hm. I also tried to turn off the page cache from admin/config/development/performance but it seems to be locked on. Why is that? On this site, we have run into problems with the page cache because the Jenkins job doesn't clear the cache for the AsciiDoc books, leading to stale content.

drumm’s picture

That's been hard-coded recently. I've added a drush6 cc all to the build script.

(sites/default/settings.local.php would be the best place to override this or anything else in sites/default/settings.php.)

jhodgdon’s picture

The drush cc all should do it. Thanks!

jhodgdon’s picture

Issue summary: View changes

Adding some notes to the summary.

jhodgdon’s picture

Issue summary: View changes

Outcome of meeting today (please correct if I missed something or got something wrong):

Having the User Guide in ordinary nodes on Drupal.org is very desirable because:
- It would be like other documentation (easier to tie things together, theme, etc.)
- Solr indexing

At the same time, we really need to keep the source for the User Guide in Git.

So, the plan is to build a way to import the HTML output of the AsciiDoc source into Drupal nodes in the appropriate language(s). This would be a modification (or sub-module) of the AsciiDoc Display module, which would provide a Drush command to import a "book" into Drupal nodes, and another one to update existing nodes (so it would need to have a database table to keep track of the correspondence). We would plan to do the import of a given language when the guide is deemed to be "stable" in that language, and then update it (by running a Jenkins job that would be available but not run automatically) when deemed to be a good idea.

Features to be added later:
- Ability to do on-line editing (using AsciiDoc Display module, connected to the nodes but reading the source as it does now, should be easy enough since we will have the table with the correspondences)
- Ability to download PDF and ePub ebooks (Jenkins can build and copy to a standard location, and links can be put into a block that is displayed on these pages)

I'll be working on the AsciiDoc Display module to make it do the node stuff.

Updating the summary...

jhodgdon’s picture

I've also filed two related issues in the AsciiDoc display module:
#2757925: Add a way to link to ebook output
#2757921: Import AsciiDoc HTML output into nodes

jhodgdon’s picture

@tvn and @drumm: I have some questions about importing into Nodes.... and I may have more. Can you follow #2757921: Import AsciiDoc HTML output into nodes please?

tvn’s picture

Done!

webchick’s picture

Just generally, big +1 to some sort of AsciiDoc module that uses Nodes as the editing interface, but saves to version control. This has a lot of practical application outside of the user guide project. Not that I'm in any mood to write a book again, but if I ever do, I'd love to be able to write it from within Drupal! :)

jhodgdon’s picture

Just to clarify... Editing within nodes that save to VCS is not actually what is being proposed here.

What is being proposed here:
- Source would be in VCS in text files
- We would periodically build the HTML output from the AsciiDoc source, and re-import the output into Drupal nodes (a Jenkins process that we could kick off whenever we decide it's time to make an update, similar to the human decision of when to make a new released version for Drupal Core or a module)
- We will hopefully have available the existing on-line editor that lets you edit/preview on the Drupal site, but doesn't save anything anywhere. Instead you can download a revised .txt file and attach it to an issue (or save it to your local git repo and make a patch file)

webchick’s picture

Oh, darn. :) Well a girl can dream. :D

jhodgdon’s picture

Status: Active » Fixed

The permanent site for the docs is up at
https://www.drupal.org/docs/user_guide/en/index.html
and the Guidelines book is up at
https://www.drupal.org/docs/user_guide_guidelines/index.html
so this is fixed.

Gábor Hojtsy’s picture

Woot, yay! Also nice seeing the Catalan and Hungarian translations up :)

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.