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

[EXPERIMENT] term-macro #559

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

osfameron
Copy link
Collaborator

@osfameron osfameron commented May 19, 2022

Inspired by the text adventure game language Inform7, and in particular its features for formatting the names of things. http://inform7.com/book/WI_5_3.html

Inform7 is based around objects, and finds clever ways within its (English-like) syntax to describe and name them, and also express relationships between them.

It seems like something a documentation system might want to do, only instead of "The brass lantern is in the chest" we might want to declare that "An Application Service is a kind of Service. It has zero or more Application Endpoints."

Anyway, this macro just looks at the formatting of names for now…​

@osfameron osfameron requested a review from a team May 20, 2022 08:00
@osfameron osfameron marked this pull request as ready for review May 20, 2022 08:00
@simon-dew
Copy link
Contributor

What's the problem that this solves? Is it to enforce consistent terminology? 🤔

Because if that's the case, it seems to me, you then have the problem of enforcing the use of term macros.

@osfameron
Copy link
Collaborator Author

What's the problem that this solves?

Good question @simon-dew!

This came up from our N1QL -> SQL++ question.
More recently we're trying to name e.g. "App Service" or "Application Service" or "Backend-as-a-Service" and thought it would be convenient to tokenize these so they can all be changed en masse when we get the definitive wording.
But that approach has issues.

I'm not sure if the solution is worth shoehorning into existing process, but thought it was interesting enough thought experiment in marking up our "objects" (terms) to share with team.

@simon-dew
Copy link
Contributor

More recently we're trying to name e.g. "App Service" or "Application Service" or "Backend-as-a-Service" and thought it would be convenient to tokenize these so they can all be changed en masse when we get the definitive wording. But that approach has issues.

Yep, (a) don't I know it, and (b) @RayOffiah rightly pointed out that even if you can completely automate the process of substituting one term for another, and fix all the dependent linguistic issues, there may still be issues of style, tone, or word choice which just can't be automated, so the author is going to have to examine every instance by eye anyway.

But thinking about it, one thing that might still be really useful in this regard is some way of simply marking terms as terms, so that if we do need to find all instances of a term throughout the documentation, we can do so with greater confidence. (But still doing en-masse replacements manually, not programmatically.) I don't know what this markup would look like. I think simple markup is better, to make the barrier for authors as low as possible. Maybe use AsciiDoc's built-in custom inline markup with a term role? I'm also thinking about document portability.

An [.term]#Application Service# is a kind of Service

Does seem a little hard to read though. What do you think?

@simon-dew
Copy link
Contributor

Maybe use AsciiDoc's built-in custom inline markup with a term role

This might quickly become unworkable if you have a lot of terms in a page.

@osfameron
Copy link
Collaborator Author

An [.term]#Application Service# is a kind of Service

Ooo. Yes, that's not beautiful, but portability is worth something. Could try it on one page and see how it looks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants