Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup new docs.backdropcms.org website for *all* documentation #747

Closed
ghost opened this issue Jan 16, 2021 · 42 comments
Closed

Setup new docs.backdropcms.org website for *all* documentation #747

ghost opened this issue Jan 16, 2021 · 42 comments

Comments

@ghost
Copy link

ghost commented Jan 16, 2021

The Idea

I made a comment about Backdrop's documentation a while ago. Now I'd like to expand upon it and make an official request for my suggestions...

  • Let's setup a new (Backdrop-powered) docs.backdropcms.org website that houses all documentation for Backdrop in one place
  • Let's re-structure/re-categorise our documentation to bring cohesiveness and clarity to our content
  • Let's configure all pages to have a simple URL/path of the form /[page-title] and just use the menu/breadcrumbs for context

Examples of other projects that do this are:

Benefits

The benefits of these suggestions include:

  • Documentation is easy to find
  • It's all stored in one place!
  • Searchable - all documentation can be searched for, and found, from one place
  • Pages can be moved around between sections as needed without URLs changing
  • Shorter, more predictable URLs are easier to bookmark and refer to
  • All documentation sections/categories can be seen at a glance
  • Not separating advanced docs out to a different site means users can more easily grow their skills by having access to all docs at once
  • Backend features that enhance editing/browsing experience (CKEditor, tags, categories, etc.) only need to be installed/maintained on one site
  • API site can be merged into new Docs site (since it has its own sub-pages anyway) - so we don't have yet another site/domain/repo to maintain
  • All docs on their own site gives more focus to the content and less distractions from other thing (e.g. newsletter signup form, service provider list, etc.)
  • Re-structuring the docs can lead to a more natural flow between installing and setting up a site, through how to use a Backdrop site, to developing and then contributing to Backdrop
  • Having all docs in one place makes it easier to see where there might be gaps we need to fill with new documentation
  • A new site means a new repo, and a new, dedicated issue queue where new/improved documentation can be requested
@ghost ghost self-assigned this Jan 16, 2021
@ghost
Copy link
Author

ghost commented Jan 16, 2021

To give an idea of the re-structing changes I'm proposing, and to better see why we should consolidate all docs together, here's a list of all of the Backdrop documentation (and its current location) I could find (please do let me know if I missed any!):

Developer Notes

https://backdropcms.org/developers
(BackdropCMS.org > Support > Developer Notes)

  • System requirements
  • Installation instructions
    • Installing in another language
  • Updates and upgrades
    • Updates on Pantheon
  • Upgrading from Drupal 7
    • Features added to core
    • Features removed from core
    • Top 100 Drupal 7 modules

Contributors Guide

https://backdropcms.org/contributors-guide
(BackdropCMS.org > About > Contributors Guide)

  • How to use the core issue queue
    • Adding labels to issues
    • Adding milestones to issues

User Guide

https://backdropcms.org/user-guide
(BackdropCMS.org > Support > User Guide)

  • Quick Start Guide
  • Logging In
  • Using the Admin Bar
  • Creating and Editing Content
    • Deep Dive: Summaries & Character Limits
    • Deep Dive: Text Formats, Editors & Filters
  • Managing Comments
  • Working with files
    • Managing file locations and access
  • Contact Forms
  • Search
  • Contributed Modules
    • Developing Modules
    • Rules
  • Modules
    • Deep Dive: Manual Module Installation
  • Themes
    • Deep Dive: Skin with Themes
  • Content Types
    • Creating a New Content Type
    • Deep dive: Display Settings
  • Fields
    • Deep Dive: Fields in Detail
  • Menus
  • Taxonomy
  • Users, Roles and Permissions
    • Security of roles and permissions
    • User Registration
  • Views
    • Configuring Views
      • Deep Dive: Example Views
      • Deep Dive: Advanced Views Configuration
  • Layouts and Templates
    • Deep Dive: Advanced Layout Options
    • Deep Dive: Building with Blocks and Layouts
  • Blocks
    • Deep Dive: Configuring Blocks
  • Project Installer and Updates
  • Clean URLs
  • URL Aliases
  • URL Redirects
  • Add-Ons: Modules, Themes, and Layout templates
    • Extend with Modules
    • Skin with Themes
    • Build with Blocks and Layouts
  • Backing up a site
  • Site configuration and web hosting issues
    • Prepare your server for clean URLs
    • PHP configuration for files
    • Setting up cron
    • Enabling and disabling phpinfo()

Developer Documentation

https://api.backdropcms.org/
(API > Developer Documentation)

  • Advanced Installation
    • Database Configuration
    • Set max_input_vars for PHP
    • Protecting against HTTP Host header attacks
      • Trusted host security setting in Backdrop
  • Developing Modules
    • Creating modules
    • Understanding the hook system
    • Overriding template files in a module
    • Testing Framework
  • Developing Themes
    • Creating themes
    • Creating sub-themes
    • Adding theme settings (advanced)
    • Theme debug mode
  • Developing Layouts
    • Creating layout templates
  • Upgrading from Drupal 7
  • Converting Drupal code
    • Converting modules to Backdrop from Drupal 7
    • Converting themes to Backdrop from Drupal 7.
    • Change Records
  • Working with configuration
    • Versioned staging directory
    • Versioned extra directory
    • The Figure-8 approach
  • Deploying a Backdrop site
    • Deploying with SSH and Git
    • Deploying with FTP & PHPmyAdmin
    • Deploying with Backup & Migrate
  • Coding and documentation standards
    • PHP Coding Standards
    • CSS Coding Standards
    • JavaScript Coding Standards
    • Documentation Standards
  • Writing secure code
    • Securing user input
    • Securing database access
    • Creating safe forms
  • Contributing for Backdrop CMS
    • Contribute to a module, layout, or theme
      • Contrib application process
    • Contribute to Backdrop core

Backdrop API

https://api.backdropcms.org/api/backdrop/groups
(API > Backdrop API)

  • [Auto-generated API pages]
  • Form API Reference

Glossary

https://api.backdropcms.org/glossary
(API > Glossary)

@ghost
Copy link
Author

ghost commented Jan 16, 2021

And here's a rough idea of the re-structuring for the new site I have in mind:

Getting Started

Installing

  • System requirements
  • Installation instructions
    • Installing in another language
    • Advanced Installation
      • Database Configuration
      • Set max_input_vars for PHP
      • Protecting against HTTP Host header attacks
        • Trusted host security setting in Backdrop

Updating/Upgrading

  • Updates and upgrades
    • Updates on Pantheon

Hosting/Deploying

  • Site configuration and web hosting issues
    • Prepare your server for clean URLs
    • PHP configuration for files
    • Setting up cron
    • Enabling and disabling phpinfo()
  • Deploying a Backdrop site
    • Deploying with SSH and Git
    • Deploying with FTP & PHPmyAdmin
    • Deploying with Backup & Migrate
  • Working with configuration
    • Versioned staging directory
    • Versioned extra directory
    • The Figure-8 approach

Migrating from Drupal

Introduction

  • Features added to core
  • Features removed from core
  • Top 100 Drupal 7 modules

Upgrading from D7

  • Upgrading from Drupal 7 (from Developer Notes)
  • Upgrading from Drupal 7 (from Developer Documentation (API site))
  • Converting Drupal code
    • Converting modules to Backdrop from Drupal 7
    • Converting themes to Backdrop from Drupal 7.

User Guide

Quick Start

  • Quick Start Guide

Using Backdrop

  • Logging In
  • Using the Admin Bar
  • Creating and Editing Content
    • Deep Dive: Summaries & Character Limits
    • Deep Dive: Text Formats, Editors & Filters
  • Managing Comments
  • Working with files
    • Managing file locations and access
  • Contact Forms
  • Search
  • Modules
    • Deep Dive: Manual Module Installation
  • Themes
    • Deep Dive: Skin with Themes
  • Content Types
    • Creating a New Content Type
    • Deep dive: Display Settings
  • Fields
    • Deep Dive: Fields in Detail
  • Menus
  • Taxonomy
  • Users, Roles and Permissions
    • Security of roles and permissions
    • User Registration
  • Views
    • Configuring Views
      • Deep Dive: Example Views
      • Deep Dive: Advanced Views Configuration
  • Layouts and Templates
    • Deep Dive: Advanced Layout Options
    • Deep Dive: Building with Blocks and Layouts
  • Blocks
    • Deep Dive: Configuring Blocks
  • Project Installer and Updates
  • URLs/Paths
    • Clean URLs
    • URL Aliases
    • URL Redirects
  • Add-Ons: Modules, Themes, and Layout templates
    • Extend with Modules
    • Skin with Themes
    • Build with Blocks and Layouts
  • Backing up a site

Contributed Modules

  • Contributed Modules
    • Developing Modules
    • Rules

Developing for Backdrop

Modules

  • Developing Modules
    • Creating modules
    • Understanding the hook system
    • Overriding template files in a module
    • Testing Framework

Themes

  • Developing Themes
    • Creating themes
    • Creating sub-themes
    • Adding theme settings (advanced)
    • Theme debug mode

Layouts

  • Developing Layouts
    • Creating layout templates

Security

  • Writing secure code
    • Securing user input
    • Securing database access
    • Creating safe forms

Contributing

Issue Queue

  • How to use the core issue queue
    • Adding labels to issues
    • Adding milestones to issues

BackdropCMS.org

  • Contributing for Backdrop CMS
    • Contribute to a module, layout, or theme
      • Contrib application process
    • Contribute to Backdrop core

API

  • [Auto-generated API pages]
  • Form API Reference

Appendix/Reference

General

  • Change Records
  • Glossary

Coding/Documentation Standards

  • Coding and documentation standards
    • PHP Coding Standards
    • CSS Coding Standards
    • JavaScript Coding Standards
    • Documentation Standards

@cellear
Copy link

cellear commented Jan 16, 2021

Can we add "Migrating from Wordpress" in there? :)

@cellear
Copy link

cellear commented Jan 16, 2021

Also getting data in and out.

@ghost
Copy link
Author

ghost commented Jan 16, 2021

So this issue is primarily about setting up a new site for our documentation, and then consolidating all of our existing documentation there. If/when that happens, we'll have a new, separate repo for the Docs site where requests for new/improved documentation can be posted.

That just made me realise another benefit that I'll add above: When everything's in the one place, it's easier to see where we might have gaps in the documentation and so it'll be easier to add and improve it over time.

Also just remembered another example of where I've seen this done (added link above too): https://docs.tugboat.qa/

@klonos
Copy link
Member

klonos commented Jan 16, 2021

It should be "Migrate from WP", but "Update from Drupal 7"

@klonos
Copy link
Member

klonos commented Jan 16, 2021

I'm supportive of this initiative 👍 👍 👍

@bugfolder
Copy link
Contributor

As a relatively new Backdrop user who is still discovering the little nuggets of useful information squirreled away in diverse places, I applaud this as well. 👍 👍 👍

@docwilmot
Copy link
Contributor

This is a great idea

@jenlampton
Copy link
Member

jenlampton commented Jan 18, 2021

I'm still concerned that were starting with a proposed solution (a new website) without first identifying what the actual problem is. We've been through this several times before, and every time we do so, we end up realizing that all the problems we'd like to solve can be solved with the tools we already have.

Creating yet another website will mean that we will have yet another place for people to need to know about in order to find what they need. It will mean that people will need another log-in, and we'll have more sites to maintain.

If we have time to devote to documentation, it should be spent on writing and/or organizing the documentation, and not on building a new site or setting up a new platform. I know that we're all developers and would rather be doing that, but I don't think it's what the community needs us to be spending our time on right now.

@ghost
Copy link
Author

ghost commented Jan 18, 2021

I'm still concerned that were starting with a proposed solution (a new website) without first identifying what the actual problem is.

The problem is that our documentation is spread out between two separate websites. That's not ideal. It's disjointed, hard to find, and can't be all viewed at-a-glance. Its also harder to update and maintain docs on two separate sites.

Creating yet another website will mean that we will have yet another place for people to need to know about in order to find what they need. It will mean that people will need another log-in, and we'll have more sites to maintain.

Incorrect. I have really done my best to consider issues like this and mitigate them where possible, so read through what I propose above and you'll see that I mention that the ”API site can be merged into new Docs site (since it has its own sub-pages anyway) - so we don't have yet another site/domain/repo to maintain”.

In other words, I'm proposing that we move all docs that are on b.org to the API site, reorganise them, then change the URL from api.b.org to docs.b.org. The docs site will replace the API site.

Users won't need a login to read the docs, and those who want to contribute documentation likely already have an account on the API site since that's where half our documentation's lives currently. So no extra logins needed. In fact, currently users wanting to contribute need two logins: b.org and api.b.org. With this new site, they'll only need one: docs.b.org.

And there will be no more sites to maintain than we have now.

@jenlampton
Copy link
Member

jenlampton commented Jan 18, 2021

I really like the proposed re-organization of content, but I don't see any advantage to moving any of it to yet another website. If we were to leave the user-guide where it is, and put everything else on the API site, that would result in a massive improvement to our documentation, with significantly less dev work.

We worked with a designer and content strategist when we first built b.org, and we discovered that separating the user-guide from the back-end documentation is an improvement over having them both in the same place. The API helps people understand how to write code, and the user-guide helps people understand how to use the interface.

People who are trying to understand how to create content and learn what taxonomy terms are, do not want to read an API. There's no reason we should make them dig through developer documentation to find what page they need to be on to push a button. (This was one one of the biggest complaints about Drupal's documentation -- that it was written by developers for developers, and did not consider the perspective of the non-developers.)

There is an additional benefit to having a user-guide on the primary, promotional website. People are already on that website to evaluate whether they want to use Backdrop or not. Having a user-guide on that site is valuable in helping them make that decision.

All of the examples above where documentation is separated out into a different site are all developer tools. None of these projects have a user-interface (or a User Guide) that is intended for a different audience, and would be better off in a more user-friendly location.

I think we need to be careful not to make the same mistakes as the Drupal project. API documentation is not "advanced" documentation, and the User Guide is not "beginner" documentation. They are documenting different things.

The problem is that our documentation is spread out between two separate websites.

Wouldn't moving everything (other than the user guide) to the API site solve this same problem?

Its also harder to update and maintain docs on two separate sites.

This sounds nice, but I don't think this is a legitimate concern. Can you provide an example where a change would require something to be updated in both places?

read through what I propose above and you'll see that I mention that the ”API site can be merged into new Docs site

I saw that. But this is also an argument for keeping the API site. The curent API site is the api, plus a handful of documentation pages. If that's the end goal for the new docs site, then there's no reason to build anything new at all.

In other words, I'm proposing that we move all docs that are on b.org to the API site, reorganise them, then change the URL from api.b.org to docs.b.org. The docs site will replace the API site.

So why go through all the extra work of building a new site? Let's just reorg the docs, and change the URL if you think docs. is better than api.

@ghost
Copy link
Author

ghost commented Jan 18, 2021

So why go through all the extra work of building a new site? Let's just reorg the docs, and change the URL if you think docs. is better than api.

Absolutely.

My suggestion to 'build a new documentation website' was just a way of stating the need for a dedicated website (which we don't currently have) to store all documentation. I wasn't meaning to imply that the actual implementation needed to be literally building a new website from scratch. I fully support and agree that the implementation to achieve this goal should be re-purposing the API site. And yes I think an important step is renaming the API site/domain from 'API' to 'Docs'. I even had an initial thought to do a POC for this idea by making a PR against the API repo and using Tugboat to test/preview it), but now that I think about it there won't be much/any changes that would go into a PR, it'll mainly be content/DB changes... So I'm sorry if I used the wrong terminology above when referring to building a new website...

As for leaving the User Guide separate from the rest of the documentation, I don't support that idea and would be interested to hear from others on that subject. Having said that, if the only way to get this to happen is to agree to leave the User Guide on B.org by itself, then I'll yield on that point for now, and we can re-assess once the new documentation site is working and please have had a chance to see it in action.

@jenlampton
Copy link
Member

jenlampton commented Jan 18, 2021

And yes I think an important step is renaming the API site/domain from 'API' to 'Docs'.

This is a good place to start. We'll need to do some server magic to rewrite all he URLs when a request for api comes in. But I suspect @larsdesigns can probably figure out the nginx config to add for that...

I'm sorry if I used the wrong terminology above when referring to building a new website...

No need to apologize. I hear "build a new website" and my brain hears "more unnecessary work". Since the problem we're facing isn't technical so much as organizational, let's organize first :)

As for leaving the User Guide separate from the rest of the documentation, I don't support that idea and would be interested to hear from others on that subject.

I'd also like to hear from others, but preferably not any other developers.

So far the only calls I've heard to merge the User Guide with the developer docs have come from developers and not the people we intended to read the user guide. I'd like to hear from Content editors and Decision makers (though, those voices are historically the ones that are hardest for us to get) to see if they currently use the User Guide, and how they'd feel about having it merged with the API site.

@bugfolder
Copy link
Contributor

Although I'm also a developer (sort of), I'm mostly a content editor. When I use the docs, if I'm looking up how to use something, I use the User Guide; when I'm looking up how to alter or augment something, I use the API docs.

As another example of ways of addressing this issue, CiviCRM has a whole slew of different guides that all live at https://docs.civicrm.org. While I would not hold up Civi as a paradigm of great documentation in all things, that is a nice organization of information.

@ghost
Copy link
Author

ghost commented Jan 18, 2021

CiviCRM has a whole slew of different guides that all live at https://docs.civicrm.org.

Thanks for that, hadn't seen it before. This is what I'm envisioning for Backdrop - a 'docs' site that has everything in one place. User guide, developer docs, upgrading, installing, etc. All on the one site, but all in their own sections. Users don't have to read developer guides, but at least they know where they are should they ever want to try writing some code or something down the track. And with the ability to see all documentation at a glance, you can better see where something's missing to better improve it.

@olafgrabienski
Copy link

This is what I'm envisioning for Backdrop - a 'docs' site that has everything in one place. User Guide, developer docs, upgrading, installing, etc. All on the one site, but all in their own sections.

In my opinion that would be an improvement. I see @jenlampton's point re separating User guide and Developer documentation. But there are things that belong in both (or even more) places, and if some of them are on different websites and others not, it's harder to find the information I need and to see how it is related.

An example: The installation of Backdrop is mentioned in the User Guide on https://backdropcms.org/user-guide/quick-start. The page links to https://backdropcms.org/installation, which according of the sidebar navigation is part of some "Developer notes" of the User Guide (without navigation items referencing to the actual User Guide, though). Finally, there is a link to "advanced instructions" which points to a page on the API site. In my opinion, it would be more easy to place and connect these instructions on one site.

@ghost
Copy link
Author

ghost commented Jan 19, 2021

Documentation is easy to find

Case in point: I just went looking for the documentation re. how to adopt an abandoned project. I knew I'd seen it somewhere before, so I first went to B.org, then to the Developer section there. Couldn't find it. Maybe it's in the Contributors Guide then... Nope. User guide? Also nope. Ok, must be on the API site then. Finally found it under: Developer Documentation > Contributing for Backdrop CMS > Contribute to a module, layout, or theme > Contrib application process (right at the bottom of the page).

That just made me realise another benefit of having all documentation on the one site: searchability! You currently can't search for a topic across multiple sites. But on one site, you could search and find everything about a particular topic.

@ghost
Copy link
Author

ghost commented Jan 22, 2021

A brief discussion about this in the meeting today resulted in:

  • Not needing PMC approval for this (just treat it like any other issue)
  • Let's do this (setup docs site and migrate content there) as an initial step, then remaining steps (adding/updating documentation, adding moderation queue for anonymous content, etc.) can be part of the ongoing Documentation initiative
  • We still need to decide if the User Guide will be moved to the new site, or stay on B.org
  • We need a 'plan of attack' on how to actual do this...

My thoughts on a plan are to clone the API repo to a new 'docs' repo, then use this to install the site live on the B.org server under the 'docs' sub-domain with a copy of the (non-sanitised) API DB. Then start adding documentation content from B.org onto the new site.

Questions I have are:

  • Is there a better/easier way?
  • What do we do with the live API site while this is happening to avoid updates in two different places? Shut down the API site as soon as the cloned Docs site is up-and-running? Put the API site into 'ready-only' mode?
  • How do we handle URL redirections? (e.g. api.backdropcms.org/... -> docs.backdropcms.org/...) Will the core Redirect functionality work, or do we need some sort of server-level redirection in place?

I'd love to get @larsdesigns' feedback on all of this 😃

@docwilmot
Copy link
Contributor

I think it makes a lot of sense to have all docs in one place and I again approve this message.
Re developers vs non-developers, I dont think this is much of an issue. Prior to learning to write code, searching Drupal for ideas on how to do things, the most frustrating thing as a non-developer was having to jump all over the place and search incessantly to learn stuff. And even as a non-developer you find yourself searching through all sources; the idea is to solve your question or issue, not whether its an API doc or a User doc (I dont think I understood that "API docs" were different from "User docs" then either), as long as it helps. And what helps is having everything accessible, and a single site would be sensible.

@larsdesigns
Copy link
Contributor

Redirects are possible...

@ghost
Copy link
Author

ghost commented Jan 23, 2021

Looks like we can try using BIEN to export content from B.org and import into the new site. I can even do the exporting from my local copy of B.org so as not to install extra modules on the live site unnecessarily.

@jenlampton
Copy link
Member

jenlampton commented Jan 27, 2021

Is there a better/easier way?

Yes.

It would be a lot less work to add the new docs content directly onto the api site. We don't need another site. We don't even need another repo.

I'd like to recommend the first step of this process be to change api. to docs., and set up the redirect.

How do we handle URL redirections? (e.g. api.backdropcms.org/... -> docs.backdropcms.org/...) Will the core Redirect functionality work, or do we need some sort of server-level redirection in place?

This will need to happen at the nginx level. We need to recieve all incoming traffic at api., and rewrite the URL with docs. instead, so the path remains unchanged. Core redirect will not work for this purpose.

Then, any content we want moved can be migrated (I recommend using feeds module since we'll be able to keep everything from the current nodes if we want it). Then, all the docs pages can be re-organized in their final destination.

If we want to leave all the new content unpublished until it's ready for prime-time we can do that :)

@ghost
Copy link
Author

ghost commented Jan 27, 2021

We don't need another site. We don't even need another repo.

I thought we did because the current repo is named api.backdropcms.org, but if we can just rename it and keep all the existing issues, code, etc., then that's obviously preferred 🙂

I'd like to recommend the first step of this process be to change api. to docs., and set up the redirect.

👍🏻 I will liaise with @larsdesigns to get this done.

@jenlampton
Copy link
Member

jenlampton commented Jan 27, 2021

but if we can just rename it

Yep, we can. :) Let's rename it the same time as we switch the subdomain and do the redirect.

I will liaise with @larsdesigns to get this done.

❤️

Re developers vs non-developers, I dont think this is much of an issue.

Also -- just for the record -- if everyone feels that moving the non-developer docs over to this site is the preferred way to go, I'll support it. As always, thank you all for continuing to bring up documentation issues and working hard to improve everyone's experience with Backdrop :)

@larsdesigns
Copy link
Contributor

Completed the following:

  1. Created a clone of the api.backdropcms.org as docs.backdropcms.org including database and files.
  2. Created a docs user for the server and database.
  3. Created DNS A record for docs.backdrop.org (@BWPanda).
  4. Configured the docs site clone to run as docs.backdropcms.org (@BWPanda).
  5. Created SSL certificate for docs.backdropcms.org.
  6. Created nginx redirect for api.backdropcms.org to docs.backdropcms.org.
  7. Recorded the new ssh pasword in 1password.
  8. Recorded the sql password in the ~/mysql.txt file.

@BWPanda, is going to update content within docs.backdropcms.org.

Everything seems to be in working condition. Let me know if something comes up.

@larsdesigns
Copy link
Contributor

  1. Created the cron jobs for docs.backdropcms.org.
  2. Disabled the cron jobs for api.backdropcms.org. It will take a little while but the sanitized backups should drop off for the api site.

@jenlampton
Copy link
Member

I was going to rename the github repo, but it looks like someone's beaten me to it :)
https://github.com/backdrop-ops/docs.backdropcms.org

@ghost
Copy link
Author

ghost commented Feb 10, 2021

Then, any content we want moved can be migrated (I recommend using feeds module since we'll be able to keep everything from the current nodes if we want it). Then, all the docs pages can be re-organized in their final destination.

@jenlampton What do you mean by "we'll be able to keep everything from the current nodes if we want it"...? Does Feeds let you do stuff that BIEN doesn't?

I'm planning to do the migration of content from my local B.org site to the live Docs site, but I've also heard comments that @jenlampton was planning to migrate the content. So as not to duplicate efforts, how best can we coordinate this? Divide and conquer? Be good to nail down the exact migration steps too so we're all on the same page...

@jenlampton
Copy link
Member

jenlampton commented Feb 10, 2021

@jenlampton What do you mean by "we'll be able to keep everything from the current nodes if we want it"...? Does Feeds let you do stuff that BIEN doesn't?

I would assume so, because it can do so much. But I don't know what BIEN does so I can't really say.

I'm currently using Feeds on 6 backdrop sites, and about 15 Drupal sites. It's running imports as frequently as every 15 minutes in production, pulling from YouTube, Zotero, Granicus, CSV files, other various JSON or XML feeds, and often from one of my sites to another (usually when I need the same content in both places).

If this experience would be helpful - let me know.

I'm planning to do the migration of content from my local B.org site to the live Docs site,

I was planning on doing it from the live b.org site to the live docs site, every 12 hours or so. Until we are ready to pull the plug on the old docs pages. (Then we don't need to worry about things getting out of sync)

but I've also heard comments that @jenlampton was planning to migrate the content. So as not to duplicate efforts, how best can we coordinate this? Divide and conquer?

I didn't want to do anything while you were away since I wasn't sure what your plan was. If you would prefer to plow forward without me, that's fine too. :)

Be good to nail down the exact migration steps too so we're all on the same page...

Yes, let's make a plan.

Do you already know what you want to keep from the old docs pages? All the same fields? Any of the node metadata like Author info, published status, published date? What about menu items, and/or book order? (I was thinking maybe you wouldn't want to keep the book and book order info...)

edit: There are some book pages that we are not moving over, it would also be good to get some solid logic on what makes a book page one we are moving vs one we are not.

@ghost
Copy link
Author

ghost commented Feb 10, 2021

I was planning on doing it from the live b.org site to the live docs site, every 12 hours or so. Until we are ready to pull the plug on the old docs pages. (Then we don't need to worry about things getting out of sync)

Ah, nice! I hadn't considered that. I was just going to do a once-off migration.

If this experience would be helpful - let me know.

Yes please. It sounds like you have a better grasp of what's required here @jenlampton (and undoubtedly more time than I have ATM), so please take this over from me in order to move this issue forward.

Do you already know what you want to keep from the old docs pages?

I hadn't considered exactly what would be migrated. I guess I just assumed everything would be copied over as-is, then any future thoughts about possible changes and improvements could be addressed in separate issues.

As for what to copy over, I think the list I added above should contain all the content that needs migrating.

@ghost
Copy link
Author

ghost commented Feb 10, 2021

Also, @larsdesigns and I were talking a week or so back about how to do redirects for individual pages/URLs from B.org to Docs, and after looking into it Idiscovered that Backdrop's core Redirect module/functionality allows redirecting from a Backdrop path to an external one. So my plan was to create redirects on B.org for all migrated content pointing to the same node on the Docs site.

@ghost ghost assigned jenlampton Feb 17, 2021
@jenlampton
Copy link
Member

jenlampton commented Feb 26, 2021

@BWPanda the importer is set up on the docs site to pull in all "Documentation" nodes every 12 hours. There are currently 77 nodes that will get synced. I copied both the node type and the text format from b.org to docs.b.org, but I added a Legcacy NID field to the docs site. (That can be removed when we're done) You may want further adjustments -- but have a look and let me know if you need anything else :)

(Also -- feel free to create separate issues in the docs queue if needed)

@jenlampton jenlampton assigned ghost and unassigned ghost and jenlampton Feb 26, 2021
@ghost
Copy link
Author

ghost commented Mar 29, 2021

I think we can close this now, since the new site is setup and working. I'll open separate issues in the Docs issue queue re. migrating content, etc. as needed.

@ghost ghost closed this as completed Mar 29, 2021
@ghost
Copy link
Author

ghost commented Mar 30, 2021

Actually I'm going to re-open this as this seems like the best place to discuss the progress of migrating the documentation content over. Once it has been migrated and is the canonical source of documentation, then we can use the Docs issue queue for ongoing tickets.

@ghost
Copy link
Author

ghost commented Mar 30, 2021

So I posted this in Zulip, and will copy it here as an update for those interested/involved:

Ok, so I've made a start on this, see https://docs.backdropcms.org/documentation/getting-started (bottom of the right sidebar menu). I created blank (for now) book pages for the sections, and am then going through the migrated content and editing it to update the book settings and menu settings.

The problem is I need to do both - add it to the appropriate book/parent, and add it to the appropriate menu/parent. These two things seem very similar, and it feels like I'm duplicating work. So I'm going to stop here for now, and file an issue about making menus act more like books, then we'll only need to edit each node to update the menu settings, and won't have to worry about books anymore.

The problem is that we want to have links in the menu for docs pages (e.g. the right sidebar on the Docs site), but we also want to have those handy pager-type links at the bottom of each page to navigate back and forth easily, therefore we have to use the Book module too. But adding a docs node to a menu (and specifying a parent, weight, etc.) and then also adding the same node to a book (and specifying the parent, weight, etc.) seems like a duplication of work.

My suggestion therefore is to add functionality to menus that allow the display of a pager that navigates between links in that menu. Basically a combination of Book and Menu. I found a Drupal module that does essentially that: https://www.drupal.org/project/menu_pager

My questions now are:

  • Do I port that module to Backdrop and use it on the Docs site (instead of the Book module)?
  • Do I open an issue to add that functionality to core (to ultimately replace core's Book module)?
  • Does the Documentation migration/initiative need to wait for all this before continuing, or is there an easy way to proceed that I haven't thought of?

@ghost ghost reopened this Mar 30, 2021
@ghost
Copy link
Author

ghost commented Mar 30, 2021

Maybe I'll proceed with setting up nodes with menu links (so they appear in the right sidebar), but I won't add Book functionality (since hopefully that'll be replaced in future anyway).

Still open to feedback though.

@jenlampton
Copy link
Member

jenlampton commented Mar 30, 2021 via email

@ghost
Copy link
Author

ghost commented Mar 31, 2021

Here you go: https://github.com/backdrop-contrib/menu_pager

I have it installed on my local copy of the Docs site. It works nicely, but is duplicated by the Book navigation on certain pages. We'll need to remove the Book module if possible, as long as it doesn't remove the content type, since that's what we're using for the documentation nodes...

@jenlampton
Copy link
Member

jenlampton commented Mar 31, 2021 via email

@ghost
Copy link
Author

ghost commented Apr 1, 2021

I uninstalled the Book module from my local site, and it leaves the content type in place, so all nodes, etc. still working nicely.

@ghost
Copy link
Author

ghost commented Apr 2, 2021

So I've update the live Docs site to use the new Menu Pager module. In addition to its defalt functionality of adding previous/next links based on the current page in the menu, I've added functionality similar to Book module to show child links for each parent page. I've then disabled (but not uninstalled, just in case) the Book module from the Docs site, so now all navigation is being handled by the main menu and Menu Pager module.

Now I think we can close this issue as 'complete' and use the Docs issue queue for ongoing bug fixes, feature requests, etc.

@ghost ghost closed this as completed Apr 2, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants